ソースを参照

3.4.5 update-20250425,bug修改

xiaofei 1 ヶ月 前
コミット
73c97c35a7

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

@@ -125,14 +125,6 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
     boolean taskBatchCancel(Map data);
 
-    /**
-     * 删除考务数据
-     *
-     * @param printPlanId 印刷计划id
-     * @param source
-     */
-    void deleteExaminationData(Long printPlanId, ExamDataSourceEnum source);
-
     List<ExamDetail> listByPrintPlanIdAndCourseCodeAndPaperNumber(Long schoolId, Long printPlanId, Long courseId, String paperNumber);
 
     /**
@@ -172,7 +164,7 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
     void deleteByExamIdAndPaperNumber(Long schoolId, Long examId, String paperNumber);
 
-    TBTask importData(String printPlanId, MultipartFile file);
+    TBTask importData(Long printPlanId, MultipartFile file);
 
     void deleteExaminationDataByExamDetailIds(List<Long> examDetailIdList);
 
@@ -196,7 +188,7 @@ public interface ExamDetailService extends IService<ExamDetail> {
 
     List<Long> saveImportExamStudent(ExamPrintPlan examPrintPlan, List<BasicExamStudent> basicExamStudentList, Long createId);
 
-    int countByPrintPlanId(String printPlanId);
+    int countByPrintPlanId(Long printPlanId);
 
     void updateTotalSubjects(Long id, int totalSubjects);
 

+ 3 - 45
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailServiceImpl.java

@@ -869,13 +869,13 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     }
 
     @Override
-    public TBTask importData(String printPlanId, MultipartFile file) {
+    public TBTask importData(Long printPlanId, MultipartFile file) {
         if (this.countByPrintPlanId(printPlanId) > 0) {
             throw ExceptionResultEnum.ERROR.exception("计划下已导入考务数据,不允许多次导入");
         }
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         try {
-            Map<String, Object> map = printCommonService.saveTask(SystemConstant.convertIdToLong(printPlanId), file, TaskTypeEnum.EXAMINATION_IMPORT);
+            Map<String, Object> map = printCommonService.saveTask(printPlanId, file, TaskTypeEnum.EXAMINATION_IMPORT);
             boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_IMPORT_EXAM_DATA + schoolId, SystemConstant.REDIS_LOCK_IMPORT_EXAM_DATA_TIME_OUT);
             if (lock) {
                 asyncExamStudentImportService.importTask(map);
@@ -975,48 +975,6 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
         return examDetailCourseInitMarkDtoList.stream().filter(t -> this.allExamDetailIsFinish(t.getExamId(), t.getCourseId(), t.getPaperNumber())).collect(Collectors.toList());
     }
 
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void deleteExaminationData(Long printPlanId, ExamDataSourceEnum source) {
-        ExamPrintPlan examPrintPlan = examPrintPlanService.getById(printPlanId);
-        if (examPrintPlan == null) {
-            throw ExceptionResultEnum.ERROR.exception("未找到印刷计划信息");
-        }
-        PrintPlanStatusEnum status = examPrintPlan.getStatus();
-        if (PrintPlanStatusEnum.NEW != status && PrintPlanStatusEnum.READY != status) {
-            throw ExceptionResultEnum.ERROR.exception(status.getName() + "状态下的印刷计划不能删除考务数据");
-        }
-        // 准备删除的考务-场次表id
-        LambdaQueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<ExamDetail>().lambda().eq(ExamDetail::getPrintPlanId, printPlanId);
-        if (Objects.nonNull(source)) {
-            examDetailQueryWrapper.eq(ExamDetail::getExamDataSource, source);
-        }
-        List<Long> examDetailIds = this.list(examDetailQueryWrapper).stream().map(ExamDetail::getId).collect(Collectors.toList());
-        if (examDetailIds.size() == 0) {
-            return;
-        }
-        // 删除exam_detail 表数据
-        this.remove(new QueryWrapper<ExamDetail>().lambda().in(ExamDetail::getId, examDetailIds));
-
-        // 准备删除的考务-科目表id
-        List<Long> examDetailCourseIds = examDetailCourseService.list(new QueryWrapper<ExamDetailCourse>().lambda().in(ExamDetailCourse::getExamDetailId, examDetailIds))
-                .stream().map(ExamDetailCourse::getId).collect(Collectors.toList());
-        if (examDetailCourseIds.size() == 0) {
-            return;
-        }
-        // 删除exam_detail_course 表数据
-        examDetailCourseService.remove(new QueryWrapper<ExamDetailCourse>().lambda().in(ExamDetailCourse::getId, examDetailCourseIds));
-
-        // 准备删除的考务-考生表id
-        List<Long> examStudentIds = examStudentService.list(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getExamDetailCourseId, examDetailCourseIds))
-                .stream().map(ExamStudent::getId).collect(Collectors.toList());
-        if (examStudentIds.size() == 0) {
-            return;
-        }
-        // 删除exam_student 表数据
-        examStudentService.remove(new QueryWrapper<ExamStudent>().lambda().in(ExamStudent::getId, examStudentIds));
-    }
-
     private List<CodeNameEnableValue> getExtendFieldsByFields(List<FieldsDto> fieldsDtoList) {
         List<CodeNameEnableValue> extendFieldsDtoList = new ArrayList<>();
         for (FieldsDto fieldsDto : fieldsDtoList) {
@@ -1167,7 +1125,7 @@ public class ExamDetailServiceImpl extends ServiceImpl<ExamDetailMapper, ExamDet
     }
 
     @Override
-    public int countByPrintPlanId(String printPlanId) {
+    public int countByPrintPlanId(Long printPlanId) {
         QueryWrapper<ExamDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(ExamDetail::getPrintPlanId, printPlanId);
         return this.count(queryWrapper);

+ 6 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java

@@ -252,15 +252,14 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
         Long id = deleteParams.getId();
         ExamPrintPlan examPrintPlan = this.getById(id);
         if (examPrintPlan == null) {
-            throw ExceptionResultEnum.ERROR.exception("要删除的项目计划不存在");
+            throw ExceptionResultEnum.ERROR.exception("印刷计划不存在");
         }
-        if (!tbTaskPdfService.countByPrintPlanIdAndEntityId(examPrintPlan.getSchoolId(), id)) {
-            throw ExceptionResultEnum.ERROR.exception("要删除的印刷计划正在生成pdf中,无法删除");
+        if (examDetailService.countByPrintPlanId(id) > 0) {
+            throw ExceptionResultEnum.ERROR.exception("印刷计划下存在考场,不允许删除");
         }
-        if (!PrintPlanStatusEnum.NEW.equals(examPrintPlan.getStatus())) {
-            throw ExceptionResultEnum.ERROR.exception("只有'新建'状态的项目计划可以被删除");
-        }
-        examDetailService.deleteExaminationData(id, null);
+//        if (!tbTaskPdfService.countByPrintPlanIdAndEntityId(examPrintPlan.getSchoolId(), id)) {
+//            throw ExceptionResultEnum.ERROR.exception("印刷计划有考场正在生成PDF,不允许删除");
+//        }
         return this.removeById(id);
     }
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamDetailController.java

@@ -68,7 +68,7 @@ public class ExamDetailController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @OperationLogDetail(operationType = OperationTypeEnum.IMPORT)
     public Result examinationImportAsync(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
-                                         @ApiParam(value = "印刷计划id", required = true) @RequestParam String printPlanId) {
+                                         @ApiParam(value = "印刷计划id", required = true) @RequestParam Long printPlanId) {
         TBTask tbTask = examDetailService.importData(printPlanId, file);
         return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
     }