소스 검색

3.3.1 update

xiaofei 1 년 전
부모
커밋
c757d24fd7

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

@@ -105,7 +105,7 @@ public interface BasicExamStudentService extends IService<BasicExamStudent> {
      * @param requestUser           请求人
      * @return 考生字典
      */
-    BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, BasicExam basicExam, SysUser requestUser);
+    BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, BasicExam basicExam, List<String> oldPaperNumberList, SysUser requestUser);
 
     List<BasicExamStudent> listByExamIdAndPaperNumber(Long examId, String paperNumber);
 }

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

@@ -135,7 +135,8 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
     public Long save(BasicExamStudentParam basicExamStudentParam, SysUser requestUser) {
         BasicExam basicExam = basicExamService.getById(basicExamStudentParam.getExamId());
         BasicExamStudent basicExamStudentOld = this.getById(basicExamStudentParam.getId());
-        BasicExamStudent basicExamStudent = this.editEntityHelp(basicExamStudentParam, basicExam, requestUser);
+        List<String> oldPaperNumberList = new ArrayList<>();
+        BasicExamStudent basicExamStudent = this.editEntityHelp(basicExamStudentParam, basicExam, oldPaperNumberList, requestUser);
         this.saveOrUpdate(basicExamStudent);
         MarkPaper markPaper = null;
         if (ExamModelEnum.MODEL4.equals(basicExam.getExamModel())) {
@@ -220,7 +221,7 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
      * @return 考生对象
      */
     @Override
-    public BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, BasicExam basicExam, SysUser requestUser) {
+    public BasicExamStudent editEntityHelp(BasicExamStudentParam basicExamStudentParam, BasicExam basicExam, List<String> oldPaperNumberList, SysUser requestUser) {
         List<String> errorMsgList = new ArrayList<>();
         Long schoolId = requestUser.getSchoolId();
         Long requestUserId = requestUser.getId();
@@ -349,6 +350,9 @@ public class BasicExamStudentServiceImpl extends ServiceImpl<BasicExamStudentMap
             if (markStudent != null && markStudent.getUpload() && StringUtils.isNotBlank(paperNumber) && !paperNumber.equals(dbBasicExamStudent.getPaperNumber())) {
                 throw ExceptionResultEnum.ERROR.exception("考生已扫描,不能修改试卷编号");
             }
+            if (ExamModelEnum.MODEL4.equals(basicExam.getExamModel()) && dbBasicExamStudent != null) {
+                oldPaperNumberList.add(dbBasicExamStudent.getPaperNumber());
+            }
 
             basicExamStudent.setId(id);
             basicExamStudent.updateInfo(requestUserId);

+ 12 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/execute/SyncBasicExamStudentImportService.java

@@ -19,6 +19,7 @@ import com.qmth.teachcloud.common.service.FileUploadService;
 import com.qmth.teachcloud.common.service.TBTaskService;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.mark.service.MarkPaperService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.poi.ss.usermodel.FillPatternType;
 import org.apache.poi.ss.usermodel.Font;
@@ -57,7 +58,8 @@ public class SyncBasicExamStudentImportService extends SyncImportTaskTemplate {
     private BasicExamService basicExamService;
     @Resource
     private BasicExamStudentService basicExamStudentService;
-
+    @Resource
+    private MarkPaperService markPaperService;
     @Resource
     private FileUploadService fileUploadService;
 
@@ -95,6 +97,15 @@ public class SyncBasicExamStudentImportService extends SyncImportTaskTemplate {
                 BasicExam basicExam = basicExamService.getById(tbTask.getExamId());
                 if (ExamModelEnum.MODEL4.equals(basicExam.getExamModel())) {
                     taskLogicService.saveMarkStudent(tbTask.getExamId(), basicExamStudentList);
+
+                    // 重新统计试卷下考生数量
+                    basicExamStudentList.stream().map(BasicExamStudent::getPaperNumber).distinct().forEach(m-> markPaperService.updateStudentCountByExamIdAndPaperNumberAndPaperType(tbTask.getExamId(), m, SystemConstant.DEFAULT_PAPER_TYPE_A));
+
+                    // 更改过试卷编号后,该试卷编号下没有考生则删除该试卷
+                    List<String> oldPaperNumberList = JSON.parseArray(JSON.toJSONString(result.get("oldPaperNumberList")), String.class);
+                    for (String paperNumber : oldPaperNumberList) {
+                        markPaperService.deleteByExamIdAndPaperNumber(tbTask.getExamId(), paperNumber, true);
+                    }
                 }
             } else if (result.containsKey(SystemConstant.ERROR_DATA_LIST)) {
                 // 有异常数据

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

@@ -2017,6 +2017,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         ExcelResult<BasicExamStudentDto> excelResult = ConvertUtil.analyzeExcel(inputStream, BasicExamStudentDto.class,
                 true, 1);
         List<BasicExamStudentDto> basicExamStudentDtoList = excelResult.getDatasource();
+        List<String> oldPaperNumberList = new ArrayList<>();
         for (BasicExamStudentDto basicExamStudentDto : basicExamStudentDtoList) {
             List<String> errorMsgList = new ArrayList<>();
             // 行索引
@@ -2081,7 +2082,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             basicExamStudentParam.setExamRoom(examRoom);
             try {
                 BasicExamStudent basicExamStudent = basicExamStudentService.editEntityHelp(basicExamStudentParam,
-                        basicExam, requestUser);
+                        basicExam, oldPaperNumberList, requestUser);
                 // 考试课程下学号重复 后面的替换前面的
                 studentCodeObjMap.put(key, basicExamStudent);
             } catch (Exception e) {
@@ -2110,6 +2111,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         map.put(SystemConstant.DATA_COUNT, basicExamStudentDtoList.size());
         map.put(SystemConstant.SUCCESS_DATA_COUNT, successInteger.get());
         map.put(SystemConstant.ERROR_DATA_COUNT, exceptionInteger.get());
+        map.put("oldPaperNumberList", oldPaperNumberList);
         return map;
     }