Sfoglia il codice sorgente

新增标准流程消息体

wangliang 2 anni fa
parent
commit
f2cfde71f8

+ 32 - 11
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -1755,13 +1755,17 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examPrintPlanService.save(examPrintPlan);
 
                 // 查询考试+课程下已用过的班级
-                List<String> usedClassIds = new ArrayList<>();
-                List<ExamDetailCourse> examDetailCourseList = examDetailService.listByExamIdAndCourseCode(schoolId, examTask.getExamId(), examTask.getCourseCode());
+                Map<String, String> usedClassIdsMap = new HashMap<>();
+                List<ExamDetailCourseDto> examDetailCourseList = examDetailService.listByExamIdAndCourseCode(schoolId, examTask.getExamId(), examTask.getCourseCode());
                 if (!CollectionUtils.isEmpty(examDetailCourseList)) {
                     examDetailCourseList.stream().filter(m -> StringUtils.isNotBlank(m.getClazzId())).forEach(m -> {
-                        usedClassIds.addAll(Arrays.asList(m.getClazzId().split(",")));
+//                        usedClassIds.addAll(Arrays.asList(m.getClazzId().split(",")));
+                        for (String s : m.getClazzId().split(",")) {
+                            usedClassIdsMap.put(s, String.format("%s(%s)", m.getRealName(), m.getLoginName()));
+                        }
                     });
                 }
+                Set<String> classIdSet = usedClassIdsMap.keySet();
 
                 // 已使用过的班级集合(报错用)
                 List<String> errorClassIds = new ArrayList<>();
@@ -1776,9 +1780,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                             throw ExceptionResultEnum.ERROR.exception("选择的考试班级【" + clazzName + "】下无学生,请确认该班级学生信息");
                         }
 
-                        for (String s : examDetailList.getClassId().split(",")) {
-                            if (usedClassIds.contains(s)) {
-                                errorClassIds.add(s);
+                        if (!CollectionUtils.isEmpty(classIdSet)) {
+                            for (String s : examDetailList.getClassId().split(",")) {
+                                if (classIdSet.contains(s)) {
+                                    errorClassIds.add(s);
+                                }
                             }
                         }
 
@@ -1838,9 +1844,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                         }
                     }
                 } else if (ExamModelEnum.MODEL2.equals(basicExam.getExamModel())) {
-                    if (StringUtils.isNotBlank(examDetailParams.getClassId())) {
+                    if (StringUtils.isNotBlank(examDetailParams.getClassId()) && !CollectionUtils.isEmpty(classIdSet)) {
                         for (String s : examDetailParams.getClassId().split(",")) {
-                            if (usedClassIds.contains(s)) {
+                            if (classIdSet.contains(s)) {
                                 errorClassIds.add(s);
                             }
                         }
@@ -1883,10 +1889,25 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 }
 
                 //TODO 测试流程暂时屏蔽
-//                if (!CollectionUtils.isEmpty(errorClassIds)) {
+//               if (!CollectionUtils.isEmpty(errorClassIds)) {
+//                    Map<String, List<String>> finalMap = new HashMap<>();
+//                    StringJoiner stringJoiner = new StringJoiner(",");
 //                    List<BasicClazz> basicClazzList = basicClazzService.listByIds(errorClassIds);
-//                    String clazzNames = basicClazzList.stream().map(m -> m.getClazzName()).collect(Collectors.joining(","));
-//                    throw ExceptionResultEnum.ERROR.exception("考试对象[" + clazzNames + "]已被其它人占用");
+//                    for (BasicClazz basicClazz : basicClazzList) {
+//                        String key = usedClassIdsMap.get(basicClazz.getId().toString());
+//                        List<String> value;
+//                        if (finalMap.containsKey(key)) {
+//                            value = finalMap.get(key);
+//                        } else {
+//                            value = new ArrayList<>();
+//                        }
+//                        value.add(basicClazz.getClazzName());
+//                        finalMap.put(key, value);
+//                    }
+//                    for (Map.Entry<String, List<String>> entry : finalMap.entrySet()) {
+//                        stringJoiner.add("考试对象[" + String.join(",", entry.getValue()) + "]已被" + entry.getKey() + "选择");
+//                    }
+//                    throw ExceptionResultEnum.ERROR.exception(stringJoiner.toString());
 //                }
             }