Переглянути джерело

部门培训培训课程安排 排行榜

wangchangsheng 2 роки тому
батько
коміт
f78bb1e0a5

+ 18 - 4
exam-06173-api/src/main/java/com/gyee/exam/modules/course/controller/CourseController.java

@@ -6,15 +6,13 @@ import com.gyee.boot.base.api.annon.DataProtect;
 import com.gyee.boot.base.api.annon.LogInject;
 import com.gyee.boot.base.api.api.ApiRest;
 import com.gyee.boot.base.api.api.controller.BaseController;
-import com.gyee.boot.base.api.api.dto.BaseIdReqDTO;
-import com.gyee.boot.base.api.api.dto.BaseIdsReqDTO;
-import com.gyee.boot.base.api.api.dto.BaseStateReqDTO;
-import com.gyee.boot.base.api.api.dto.PagingReqDTO;
+import com.gyee.boot.base.api.api.dto.*;
 import com.gyee.boot.base.api.utils.BeanMapper;
 import com.gyee.boot.base.aspect.log.enums.LogType;
 import com.gyee.exam.modules.course.dto.CourseDTO;
 import com.gyee.exam.modules.course.dto.ext.CourseDetailExtDTO;
 import com.gyee.exam.modules.course.dto.request.UserCourseReqDTO;
+import com.gyee.exam.modules.course.dto.response.CourseDepartTotalDTO;
 import com.gyee.exam.modules.course.dto.response.UserCourseRespDTO;
 import com.gyee.exam.modules.course.entity.Course;
 import com.gyee.exam.modules.course.service.CourseService;
@@ -28,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -182,4 +181,19 @@ public class CourseController extends BaseController {
 
 
 
+
+    /**
+     * 各部门课程排行
+     * @return
+     */
+    @ApiOperation(value = "课程部门排行")
+    @GetMapping("/cdt-total")
+    public ApiRest courseDepartTotal(@RequestBody BaseQueryReqDTO reqDTO) {
+
+        List<CourseDepartTotalDTO> dtoList = baseService.courseDepartTotal(reqDTO);
+
+        return super.success(dtoList);
+    }
+
+
 }

+ 24 - 0
exam-06173-api/src/main/java/com/gyee/exam/modules/course/dto/response/CourseDepartTotalDTO.java

@@ -0,0 +1,24 @@
+package com.gyee.exam.modules.course.dto.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+@ApiModel(value="课程统计响应类", description="课程统计响应类")
+public class CourseDepartTotalDTO {
+
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "部门编码")
+    private String deptCode;
+
+    @ApiModelProperty(value = "部门名称")
+    private String deptName;
+
+    @ApiModelProperty(value = "课程数量")
+    private Integer total;
+
+}

+ 6 - 0
exam-06173-api/src/main/java/com/gyee/exam/modules/course/mapper/CourseMapper.java

@@ -3,14 +3,17 @@ package com.gyee.exam.modules.course.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gyee.boot.base.api.api.dto.BaseQueryReqDTO;
 import com.gyee.exam.modules.course.dto.ext.CourseDetailExtDTO;
 import com.gyee.exam.modules.course.dto.request.UserCourseReqDTO;
+import com.gyee.exam.modules.course.dto.response.CourseDepartTotalDTO;
 import com.gyee.exam.modules.course.dto.response.UserCourseProcessDTO;
 import com.gyee.exam.modules.course.dto.response.UserCourseRespDTO;
 import com.gyee.exam.modules.course.entity.Course;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
 * <p>
@@ -39,4 +42,7 @@ public interface CourseMapper extends BaseMapper<Course> {
     IPage<UserCourseRespDTO> userPaging(Page page, @Param("query") UserCourseReqDTO reqDTO);
 
     List<UserCourseProcessDTO> userPagingToal(Page page, @Param("query") UserCourseReqDTO reqDTO);
+
+
+    List<CourseDepartTotalDTO> courseDepartTotal(@Param("query") BaseQueryReqDTO reqDTO);
 }

+ 11 - 0
exam-06173-api/src/main/java/com/gyee/exam/modules/course/service/CourseService.java

@@ -2,13 +2,17 @@ package com.gyee.exam.modules.course.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.gyee.boot.base.api.api.dto.BaseQueryReqDTO;
 import com.gyee.boot.base.api.api.dto.PagingReqDTO;
 import com.gyee.exam.modules.course.dto.CourseDTO;
 import com.gyee.exam.modules.course.dto.ext.CourseDetailExtDTO;
 import com.gyee.exam.modules.course.dto.request.UserCourseReqDTO;
+import com.gyee.exam.modules.course.dto.response.CourseDepartTotalDTO;
 import com.gyee.exam.modules.course.dto.response.UserCourseRespDTO;
 import com.gyee.exam.modules.course.entity.Course;
 
+import java.util.List;
+
 /**
 * <p>
 * 课程信息业务类
@@ -69,4 +73,11 @@ public interface CourseService extends IService<Course> {
      */
     int courseAllTotal();
 
+    /**
+     * 部门课程排行榜
+     * @return
+     */
+    List<CourseDepartTotalDTO> courseDepartTotal(BaseQueryReqDTO reqDTO);
+
+
 }

+ 8 - 0
exam-06173-api/src/main/java/com/gyee/exam/modules/course/service/impl/CourseServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gyee.boot.base.api.api.dto.BaseQueryReqDTO;
 import com.gyee.boot.base.api.api.dto.PagingReqDTO;
 import com.gyee.boot.base.api.utils.BeanMapper;
 import com.gyee.exam.enums.OpenType;
@@ -15,6 +16,7 @@ import com.gyee.exam.modules.course.dto.ext.CourseDetailExtDTO;
 import com.gyee.exam.modules.course.dto.ext.CourseRefDirExtDTO;
 import com.gyee.exam.modules.course.dto.ext.CourseRefFileExtDTO;
 import com.gyee.exam.modules.course.dto.request.UserCourseReqDTO;
+import com.gyee.exam.modules.course.dto.response.CourseDepartTotalDTO;
 import com.gyee.exam.modules.course.dto.response.UserCourseProcessDTO;
 import com.gyee.exam.modules.course.dto.response.UserCourseRespDTO;
 import com.gyee.exam.modules.course.entity.Course;
@@ -300,4 +302,10 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
         return count;
     }
 
+    @Override
+    public List<CourseDepartTotalDTO> courseDepartTotal(BaseQueryReqDTO reqDTO) {
+        List<CourseDepartTotalDTO> dtoList = baseMapper.courseDepartTotal(reqDTO);
+        return dtoList;
+    }
+
 }

+ 34 - 0
exam-06173-api/src/main/resources/mapper/course/CourseMapper.xml

@@ -174,4 +174,38 @@
     </select>
 
 
+    <select id="courseDepartTotal" resultType="com.gyee.exam.modules.course.dto.response.CourseDepartTotalDTO">
+
+        select
+        cd.dept_code deptCode,
+        sd.dept_name deptName,
+        count(cd .id) total
+        from  el_course_depart cd
+        LEFT JOIN sys_depart sd on cd.dept_code = sd.dept_code
+        LEFT JOIN el_course ec on ec.id = cd.course_id
+
+        <where>
+            <if test="query!=null">
+
+                <if test="query.statDateL!=null ">
+                    AND ec.create_time >= #{query.statDateL}
+                </if>
+
+                <if test="query.statDateR!=null ">
+                    AND ec.create_time &lt; #{query.statDateR}
+                </if>
+
+                <if test="query.q!=null and query.q!=''">
+                    AND cd.dept_code = #{query.q}
+                </if>
+
+            </if>
+
+        </where>
+
+        GROUP BY cd.dept_code order by count(cd .id)	desc
+
+    </select>
+
+
 </mapper>