فهرست منبع

3.2.5 bug修改

xiaofei 2 سال پیش
والد
کامیت
f914724c8b

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamDetailService.java

@@ -11,6 +11,7 @@ import com.qmth.distributed.print.business.bean.result.SummarizedDataResult;
 import com.qmth.distributed.print.business.entity.ExamDetail;
 import com.qmth.distributed.print.business.entity.ExamDetailCourse;
 import com.qmth.distributed.print.business.entity.ExamPrintPlan;
+import com.qmth.distributed.print.business.entity.ExamStudent;
 import com.qmth.distributed.print.business.enums.ExamDataSourceEnum;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -245,4 +246,5 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
     void dataDelete(Long id);
 
+    List<ExamStudent> listStudentByExamDetailId(String examDetailId);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicPrintConfigServiceImpl.java

@@ -101,7 +101,7 @@ public class BasicPrintConfigServiceImpl extends ServiceImpl<BasicPrintConfigMap
     }
 
     @Override
-    public BasicPrintConfig getByExamIdAndCourseCode(Long examId, String courseCode) {
+    public BasicPrintConfig getByExamIdAndCourseCode(Long examId, String courseCode1) {
         BasicExam basicExam = basicExamService.getById(examId);
 
         BasicPrintConfig printConfig = this.baseMapper.getBySchoolIdAndExamId(basicExam.getSchoolId(), examId);

+ 28 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -83,9 +83,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Resource
     private BasicAttachmentService basicAttachmentService;
 
-    @Resource
-    private BasicStudentService basicStudentService;
-
     @Resource
     private BasicExamService basicExamService;
 
@@ -125,6 +122,12 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Resource
     BasicRoleDataPermissionService basicRoleDataPermissionService;
 
+    @Resource
+    BasicPrintConfigService basicPrintConfigService;
+
+    @Resource
+    BasicCardRuleService basicCardRuleService;
+
     @Resource
     @Lazy
     private PrintCommonService printCommonService;
@@ -692,6 +695,14 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     @Override
     public void disposeExamStudentByExaminationExcel(Long examId, List<ExaminationImportDto> dataList, Long userId, SysUser sysUser) throws IllegalAccessException {
         BasicExam basicExam = basicExamService.getById(examId);
+
+        BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examId, null);
+        if (basicPrintConfig == null) {
+            throw ExceptionResultEnum.ERROR.exception("印品配置未设置");
+        }
+
+        BasicCardRule basicCardRule = basicCardRuleService.getById(basicPrintConfig.getCardRuleId());
+
         // 查询学期下所有考务数据的准考证号集合
         List<String> examStudentTicketNumberList = examStudentService.listTicketNumberBySemesterId(basicExam.getSemesterId(), examId);
 
@@ -714,7 +725,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
             String studentCode = examinationImportDto.getStudentCode();
             String ticketNumber = null;
             if (Objects.isNull(examinationImportDto.getTicketNumber()) || Objects.equals(examinationImportDto.getTicketNumber().trim(), "")) {//如果为空
-                ticketNumber = printCommonService.createTicketNumber(schoolId, 10);
+                ticketNumber = printCommonService.createTicketNumber(schoolId, basicCardRule == null ? null : basicCardRule.getExamNumberDigit());
             } else {
                 ticketNumber = examinationImportDto.getTicketNumber();
             }
@@ -1104,6 +1115,19 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         examPrintPlanService.update(updateWrapper);
     }
 
+    @Override
+    public List<ExamStudent> listStudentByExamDetailId(String examDetailId) {
+        QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
+        examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getId, examDetailId);
+        List<ExamDetailCourse> examDetailCourses = examDetailCourseService.list(examDetailCourseQueryWrapper);
+
+        List<Long> examDetailCourseIds = examDetailCourses.stream().map(ExamDetailCourse::getId).collect(Collectors.toList());
+
+        QueryWrapper<ExamStudent> examStudentQueryWrapper = new QueryWrapper<>();
+        examStudentQueryWrapper.lambda().in(ExamStudent::getExamDetailCourseId, examDetailCourseIds);
+        return examStudentService.list(examStudentQueryWrapper);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void deleteExaminationData(Long printPlanId, ExamDataSourceEnum source) {

+ 9 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -356,12 +356,17 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
                 }
             }
 
-
             // 班级
-            if(StringUtils.isNotBlank(record.getClassName())) {
-                String className = examDetailService.findClazzNamesByClazzIds(record.getClassId(), ",");
-                record.setClassName(className);
+            String className = examDetailService.findClazzNamesByClazzIds(record.getClassId(), ",");
+            if (StringUtils.isBlank(className)) {
+                // 查询考场下考生对应的班级
+                List<ExamStudent> examStudentList = examDetailService.listStudentByExamDetailId(record.getExamDetailId());
+                List<String> classNameList = examStudentList.stream().filter(m -> StringUtils.isNotBlank(m.getClazzName())).map(ExamStudent::getClazzName).distinct().collect(Collectors.toList());
+                if (!CollectionUtils.isEmpty(classNameList)) {
+                    className = String.join(",", classNameList);
+                }
             }
+            record.setClassName(className);
         }
         return clientPrintTaskDtoIPage;
     }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/PrintCommonServiceImpl.java

@@ -1157,7 +1157,7 @@ public class PrintCommonServiceImpl implements PrintCommonService {
             examStudent.setPaperNumber(paperNumber);
             examStudent.setCollegeName(basicStudentResult.getCollegeName());
             examStudent.setMajorName(basicStudentResult.getMajorName());
-            examStudent.setTicketNumber(createTicketNumber(schoolId, basicCardRule.getExamNumberDigit()));
+            examStudent.setTicketNumber(createTicketNumber(schoolId, basicCardRule == null ? null : basicCardRule.getExamNumberDigit()));
             examStudent.setSiteNumber(String.valueOf(atomicInteger.getAndIncrement()));
             examStudent.setExtendFields(extendFields);
             examStudent.setCreateId(sysUser.getId());

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

@@ -162,7 +162,6 @@
             c.courseNameCode,
             c.paperNumber,
             c.classId,
-            c.className,
             b.exam_place examPlace,
             b.exam_room examRoom,
             b.total_subjects totalSubjects,
@@ -205,7 +204,6 @@
                     GROUP_CONCAT(CONCAT(a.course_name, '(', a.course_code, ')')) courseNameCode,
                     GROUP_CONCAT(a.paper_number) paperNumber,
                     GROUP_CONCAT(a.clazz_id) classId,
-                    GROUP_CONCAT(a.clazz_name) className,
                     GROUP_CONCAT(IFNULL(a.paper_pages_a3, 0) + IFNULL(a.card_pages_a3, 0)) singlePagesA3,
                     SUM(CASE b.is_download
                         WHEN true THEN 0