Browse Source

fix:命题计划统计更改

caozixuan 3 năm trước cách đây
mục cha
commit
413b4d4d63

+ 21 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java

@@ -97,31 +97,46 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                 Set<Long> clazzIdSet = Arrays.stream(clazzIds.split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
                 // 根据课程和考试查到的命题计划数据
                 List<ExamTaskPlanStatisticDto> examTaskPlanStatisticDtoList = this.baseMapper.findByExamIdCourseCode(examId,courseCode);
+                if (examTaskPlanStatisticDtoList == null || examTaskPlanStatisticDtoList.size() == 0){
+                    continue;
+                }
                 for (Long clazzId : clazzIdSet) {
                     // 匹配到班级的所有命题计划
                     List<ExamTaskPlanStatisticDto> matchClazzList = examTaskPlanStatisticDtoList.stream().filter(e -> {
+                        if (!SystemConstant.strNotNull(e.getClazzIds())){
+                            return false;
+                        }
                         Set<Long> ebcClazzIdSet = Arrays.stream(e.getClazzIds().split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
                         return ebcClazzIdSet.contains(clazzId);
                     }).collect(Collectors.toList());
 
-                    // 匹配到以印刷的
-                    List<ExamTaskPlanStatisticDto> printClazzList = matchClazzList.stream().filter(e -> ExamDetailStatusEnum.FINISH.equals(e.getExamDetailStatus())).collect(Collectors.toList());
-
                     ClazzContentDto clazzContent = new ClazzContentDto();
                     clazzContent.setClazzId(clazzId);
                     clazzContent.setClazzName(examDetailService.findClazzNamesByClazzIds(String.valueOf(clazzId), ","));
+                    if (matchClazzList.size() == 1){
+                        // 课程-班级只提交一次(且已有印刷计划)的数据记录印刷计划试卷编号等信息
+                        ExamTaskPlanStatisticDto matchClazz = matchClazzList.get(0);
+                        clazzContent.setExamPrintPlanId(matchClazz.getExamPrintPlanId());
+                        clazzContent.setExamPrintPlanName(matchClazz.getExamPrintPlanName());
+                        clazzContent.setPaperNumber(matchClazz.getPaperNumber());
+                        clazzContent.setStudentCount(matchClazz.getStudentCount());
+                    }
+
+                    // 匹配到以印刷的
+                    List<ExamTaskPlanStatisticDto> printClazzList = matchClazzList.stream().filter(e -> ExamDetailStatusEnum.FINISH.equals(e.getExamDetailStatus())).collect(Collectors.toList());
+
+
                     if (printClazzList.size() > 1) {
                         // 同一个班级课程已完成印刷的命题任务多次提交
                         status = StatisticsStatusEnum.UN_FINISH;
                         clazzContent.setStatus(ClazzContentEnum.EXCEPTION);
                     } else if (printClazzList.size() == 1) {
-                        ExamTaskPlanStatisticDto printMatchClazz = printClazzList.get(0);
-                        // 查询考场表状态为已印刷的被匹配数据
+                        // 该班级对应的命题任务完成印刷
+                        ExamTaskPlanStatisticDto printMatchClazz = matchClazzList.get(0);
                         clazzContent.setExamPrintPlanId(printMatchClazz.getExamPrintPlanId());
                         clazzContent.setExamPrintPlanName(printMatchClazz.getExamPrintPlanName());
                         clazzContent.setPaperNumber(printMatchClazz.getPaperNumber());
                         clazzContent.setStudentCount(printMatchClazz.getStudentCount());
-                        // 改版机对应的命题任务完成印刷
                         clazzContent.setStatus(ClazzContentEnum.FINISH);
                     } else {
                         // 该班级对应的命题任务还未完成印刷