Parcourir la source

Merge remote-tracking branch 'origin/dev_v2.2.0' into dev_v2.2.0

wangliang il y a 3 ans
Parent
commit
9f8c44f50f

+ 22 - 19
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1830,10 +1830,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             throw ExceptionResultEnum.ERROR.exception("未找到命题任务");
         }
 
-        List<PrintPlanStatusEnum> printPlanStatusEnumList = new ArrayList<>();
-        printPlanStatusEnumList.add(PrintPlanStatusEnum.NEW);
-        printPlanStatusEnumList.add(PrintPlanStatusEnum.READY);
-        List<ExamPackageDetail> examPackageDetailDatasource = this.baseMapper.findExamPackageDetailByPaperNumber(schoolId,examTask.getCourseCode(),paperNumber, printPlanStatusEnumList);
+        List<ExamPackageDetail> examPackageDetailDatasource = this.baseMapper.findExamPackageDetailByPaperNumber(schoolId,examTask.getCourseCode(),paperNumber, null);
         ExamObjectDto examObjectDto = this.buildExamObjectDtoByPackageDatasource(examPackageDetailDatasource);
 
 
@@ -1921,8 +1918,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 // 试卷该考场备份数量
                 Integer backupCount = backupCountList.get(0);
                 // 班级主键','隔开
-                String clazzIds = "";
-                final String separator = ",";
+                List<Long> clazzIds = new ArrayList<>();
+                String separator = ",";
                 for (ExamPackageDetail examPackageDetail : examPackageDetailCell) {
                     // 处理考试开始结束时间
                     Long cellStartTime = examPackageDetail.getExamStartTime();
@@ -1935,21 +1932,27 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     }
                     // 处理班级和数量
                     Integer studentCellCount = examPackageDetail.getExamDetailCourseTotalSubjects();
-                    String clazzIdCell = examPackageDetail.getClazzIds();
                     studentCount = studentCount + studentCellCount;
-                    clazzIds = clazzIds + clazzIdCell + separator;
+                    String clazzIdCell = examPackageDetail.getClazzIds();
+                    if(StringUtils.isNotBlank(clazzIdCell)){
+                        for (String s : clazzIdCell.split(separator)) {
+                            clazzIds.add(Long.valueOf(s));
+                        }
+                    }
+                }
+
+                if(!CollectionUtils.isEmpty(clazzIds)) {
+                    classNames = basicClazzService.findClazzNamesByClazzIds(clazzIds, separator);
+                    printCount = studentCount + " + " + backupCount;
+                    printTotalCount = printTotalCount + studentCount + backupCount;
+
+                    // 组装examRoom
+                    ExamRoomInfo examRoomInfo = new ExamRoomInfo();
+                    examRoomInfo.setClazzNames(classNames);
+                    examRoomInfo.setStudentCount(studentCount);
+                    examRoomInfo.setPrintCount(printCount);
+                    examRoomInfoList.add(examRoomInfo);
                 }
-                clazzIds = clazzIds.substring(0, clazzIds.length() - separator.length());
-                classNames = basicClazzService.findClazzNamesByClazzIds(clazzIds, separator);
-                printCount = studentCount + " + " + backupCount;
-                printTotalCount = printTotalCount + studentCount + backupCount;
-
-                // 组装examRoom
-                ExamRoomInfo examRoomInfo = new ExamRoomInfo();
-                examRoomInfo.setClazzNames(classNames);
-                examRoomInfo.setStudentCount(studentCount);
-                examRoomInfo.setPrintCount(printCount);
-                examRoomInfoList.add(examRoomInfo);
             }
         }
         ExamObjectDto examObjectDto = new ExamObjectDto();

+ 2 - 2
distributed-print-business/src/main/resources/mapper/ExamDetailCourseMapper.xml

@@ -65,7 +65,7 @@
                 LEFT JOIN
             exam_detail b ON a.exam_detail_id = b.id
         <where>
-            <if test="printPlanIdList.size() > 0">
+            <if test="printPlanIdList != null and printPlanIdList.size() > 0">
                 and b.print_plan_id IN
                 <foreach collection="printPlanIdList" item="item" index="index" open="(" separator="," close=")">
                     #{item}
@@ -86,7 +86,7 @@
                 LEFT JOIN
             exam_detail b ON a.exam_detail_id = b.id
         <where>
-            <if test="printPlanIdList.size() > 0">
+            <if test="printPlanIdList != null and printPlanIdList.size() > 0">
                 and b.print_plan_id IN
                 <foreach collection="printPlanIdList" item="item" index="index" open="(" separator="," close=")">
                     #{item}