wangliang vor 3 Jahren
Ursprung
Commit
71fb60d9f7

+ 6 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TCStatisticsMapper.java

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * <p>
@@ -29,6 +30,7 @@ public interface TCStatisticsMapper extends BaseMapper<TCStatistics> {
      * @param courseName
      * @param teacherName
      * @param schoolId
+     * @param userId
      * @return
      */
     public IPage<TCStatisticsDto> list(IPage<Map> iPage,
@@ -37,14 +39,16 @@ public interface TCStatisticsMapper extends BaseMapper<TCStatistics> {
                                        @Param("status") String status,
                                        @Param("courseName") String courseName,
                                        @Param("teacherName") String teacherName,
-                                       @Param("schoolId") Long schoolId);
+                                       @Param("schoolId") Long schoolId,
+                                       @Param("userId") Long userId);
 
     /**
      * 根据batchNo统计信息
      *
      * @param schoolId
      * @param batchNo
+     * @param orgIds
      * @return
      */
-    public List<TCStatisticsDto> findByBatchNoCount(@Param("schoolId") Long schoolId, @Param("batchNo") String batchNo);
+    public List<TCStatisticsDto> findByBatchNoCount(@Param("schoolId") Long schoolId, @Param("batchNo") String batchNo, @Param("orgIds") Set<Long> orgIds);
 }

+ 6 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TCStatisticsService.java

@@ -8,6 +8,7 @@ import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * <p>
@@ -29,6 +30,7 @@ public interface TCStatisticsService extends IService<TCStatistics> {
      * @param courseName
      * @param teacherName
      * @param schoolId
+     * @param userId
      * @return
      */
     public IPage<TCStatisticsDto> list(IPage<Map> iPage,
@@ -37,14 +39,16 @@ public interface TCStatisticsService extends IService<TCStatistics> {
                                        StatisticsStatusEnum status,
                                        String courseName,
                                        String teacherName,
-                                       Long schoolId);
+                                       Long schoolId,
+                                       Long userId);
 
     /**
      * 根据batchNo统计信息
      *
      * @param schoolId
      * @param batchNo
+     * @param orgIds
      * @return
      */
-    public List<TCStatisticsDto> findByBatchNoCount(Long schoolId, String batchNo);
+    public List<TCStatisticsDto> findByBatchNoCount(Long schoolId, String batchNo, Set<Long> orgIds);
 }

+ 7 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java

@@ -13,6 +13,7 @@ import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
+import java.util.Set;
 
 /**
  * <p>
@@ -38,11 +39,12 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
      * @param courseName
      * @param teacherName
      * @param schoolId
+     * @param userId
      * @return
      */
     @Override
-    public IPage<TCStatisticsDto> list(IPage<Map> iPage, Long collegeId, Long teachingRoomId, StatisticsStatusEnum status, String courseName, String teacherName, Long schoolId) {
-        return tcStatisticsMapper.list(iPage, collegeId, teachingRoomId, Objects.nonNull(status) ? status.name() : null, courseName, teacherName, schoolId);
+    public IPage<TCStatisticsDto> list(IPage<Map> iPage, Long collegeId, Long teachingRoomId, StatisticsStatusEnum status, String courseName, String teacherName, Long schoolId, Long userId) {
+        return tcStatisticsMapper.list(iPage, collegeId, teachingRoomId, Objects.nonNull(status) ? status.name() : null, courseName, teacherName, schoolId, userId);
     }
 
     /**
@@ -50,10 +52,11 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
      *
      * @param schoolId
      * @param batchNo
+     * @param orgIds
      * @return
      */
     @Override
-    public List<TCStatisticsDto> findByBatchNoCount(Long schoolId, String batchNo) {
-        return tcStatisticsMapper.findByBatchNoCount(schoolId, batchNo);
+    public List<TCStatisticsDto> findByBatchNoCount(Long schoolId, String batchNo, Set<Long> orgIds) {
+        return tcStatisticsMapper.findByBatchNoCount(schoolId, batchNo, orgIds);
     }
 }

+ 12 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -1359,12 +1359,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     String teacherName = statisticsImportDto.getTeacherName();
                     BasicClazz basicClazz = this.validBasicClazzExists(clazzMap, statisticsImportDto.getClazzName(), sysUser.getSchoolId(), excelErrorTemp, (y + 1), (i + 1), "班级名称");
 
-                    collegeIdSet.add(collegeOrg.getId());
-                    teachingRoomIdSet.add(teachingRoomOrg.getId());
-                    courseSet.add(basicCourse.getCode());
-                    ClazzIdSet.add(basicClazz.getId());
-
                     if (excelErrorTemp.size() == 0) {
+                        collegeIdSet.add(collegeOrg.getId());
+                        teachingRoomIdSet.add(teachingRoomOrg.getId());
+                        courseSet.add(basicCourse.getCode());
+                        ClazzIdSet.add(basicClazz.getId());
+
                         TCStatisticsTemp tcStatistics = new TCStatisticsTemp(collegeOrg.getId(),
                                 collegeOrg.getName(),
                                 teachingRoomOrg.getId(),
@@ -1384,6 +1384,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 List<String> errors = excelErrorTemp.stream().map(m -> m.getExcelErrorType()).collect(Collectors.toList());
                 throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(errors));
             }
+            Set<Long> orgIds = new HashSet<>();
+            for (Long l : collegeIdSet) {
+                List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(l);
+                Set<Long> orgTempIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
+                orgIds.addAll(orgTempIds);
+            }
             //加入删除
             QueryWrapper<TCStatistics> tcStatisticsQueryWrapper = new QueryWrapper<>();
             tcStatisticsQueryWrapper.lambda().in(TCStatistics::getCollegeId, collegeIdSet)
@@ -1411,7 +1417,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 }
                 tcStatisticsTempService.saveBatch(tcStatisticsTempList);
 
-                List<TCStatisticsDto> tcStatisticsDtoList = tcStatisticsService.findByBatchNoCount(sysUser.getSchoolId(), batchNo);
+                List<TCStatisticsDto> tcStatisticsDtoList = tcStatisticsService.findByBatchNoCount(sysUser.getSchoolId(), batchNo, orgIds);
                 if (Objects.nonNull(tcStatisticsDtoList) && tcStatisticsDtoList.size() > 0) {
                     Gson gson = new Gson();
                     List<TCStatistics> tcStatisticsList = gson.fromJson(JacksonUtil.parseJson(tcStatisticsDtoList), new TypeToken<List<TCStatistics>>() {

+ 26 - 10
distributed-print-business/src/main/resources/mapper/TCStatisticsMapper.xml

@@ -16,6 +16,7 @@
         t.clazzName,
         IF(t.examStudentCount = 0,null,t.paperNumber) as paperNumber,
         t.printPlanId,
+        t.createId,
         IF(t.examStudentCount = 0,null,t.printPlanName) as printPlanName,
         t.examStudentCount,
         IF(t.examStudentCount = 0,null,t.examStudentCount + (t.drawCount * t.backupCount)) as printSum,
@@ -35,6 +36,7 @@
         tcs.clazz_name as clazzName,
         tcs.batch_no as batchNo,
         tcs.paper_number as paperNumber,
+        tcs.create_id as createId,
         epp.id as printPlanId,
         epp.name as printPlanName,
         (
@@ -61,11 +63,14 @@
         end status
         from
         t_c_statistics tcs
-        join exam_print_plan epp on
+        left join exam_print_plan epp on
         epp.id = tcs.print_plan_id
         where
         epp.school_id = #{schoolId}) t) temp
         <where>
+            <if test="userId != null and userId != ''">
+                and temp.createId = #{userId}
+            </if>
             <if test="collegeId != null and collegeId != ''">
                 and temp.collegeId = #{collegeId}
             </if>
@@ -143,24 +148,35 @@
                 end status
             from
                     t_c_statistics_temp tcst
-            join exam_task et on
+            left join exam_task et on
                     et.course_code = tcst.course_code
                 and et.teaching_room_id = tcst.teaching_room_id
-            join exam_task_detail etd on
+            left join exam_task_detail etd on
                     etd.exam_task_id = et.id
-            join exam_detail_course edc on
+            left join exam_detail_course edc on
                     edc.course_code = tcst.course_code
                 and edc.paper_number = et.paper_number
                 and edc.school_id = et.school_id
-            join exam_detail ed on
+            left join exam_detail ed on
                     ed.id = edc.exam_detail_id
-            join exam_print_plan epp on
+            left join exam_print_plan epp on
                     epp.id = ed.print_plan_id
-            where
-                    et.enable = true
+            <where>
+                and et.enable = true
                 and etd.enable = true
-                and et.school_id = #{schoolId}
-                and tcst.batch_no = #{batchNo}) t
+                <if test="schoolId != null and schoolId != ''">
+                    and et.school_id = #{schoolId}
+                </if>
+                <if test="batchNo != null and batchNo != ''">
+                    and tcst.batch_no = #{batchNo}
+                </if>
+                <if test="orgIds != null and orgIds.size() > 0">
+                    AND epp.org_id IN
+                    <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            </where>) t
         group by
             t.collegeId,
             t.collegeName,

+ 5 - 5
distributed-print-business/src/main/resources/mapper/TCStatisticsTempMapper.xml

@@ -19,18 +19,18 @@
         etd.id as examTaskDetailId
         from
         t_c_statistics_temp tcst
-        join exam_task et on
+        left join exam_task et on
         et.course_code = tcst.course_code
         and et.teaching_room_id = tcst.teaching_room_id
-        join exam_task_detail etd on
+        left join exam_task_detail etd on
         etd.exam_task_id = et.id
-        join exam_detail_course edc on
+        left join exam_detail_course edc on
         edc.course_code = tcst.course_code
         and edc.paper_number = et.paper_number
         and edc.school_id = et.school_id
-        join exam_detail ed on
+        left join exam_detail ed on
         ed.id = edc.exam_detail_id
-        join exam_print_plan epp on
+        left join exam_print_plan epp on
         epp.id = ed.print_plan_id
         <where>
             and et.enable = true

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/TCStatisticsController.java

@@ -77,6 +77,6 @@ public class TCStatisticsController {
                        @ApiParam(value = "页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @ApiParam(value = "数量", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(tcStatisticsService.list(new Page<>(pageNumber, pageSize), SystemConstant.convertIdToLong(collegeId), SystemConstant.convertIdToLong(teachingRoomId), status, courseName, teacherName, sysUser.getSchoolId()));
+        return ResultUtil.ok(tcStatisticsService.list(new Page<>(pageNumber, pageSize), SystemConstant.convertIdToLong(collegeId), SystemConstant.convertIdToLong(teachingRoomId), status, courseName, teacherName, sysUser.getSchoolId(), sysUser.getId()));
     }
 }