caozixuan 3 năm trước cách đây
mục cha
commit
bd7900ca01

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDto.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.bean.dto;
 import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.teachcloud.common.bean.dto.BlurryUserDto;
 import com.qmth.teachcloud.common.enums.FlowStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
 import java.util.Objects;
@@ -40,6 +41,16 @@ public class ExamTaskDto {
     private String statusStr;
     private List<BlurryUserDto> users;
     private boolean myself;
+    @ApiModelProperty(value = "审批表展示状态")
+    private Boolean approveFormStatus;
+
+    public Boolean getApproveFormStatus() {
+        return approveFormStatus;
+    }
+
+    public void setApproveFormStatus(Boolean approveFormStatus) {
+        this.approveFormStatus = approveFormStatus;
+    }
 
     public boolean isMyself() {
         return myself;

+ 56 - 37
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -175,6 +175,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         Set<Long> orgIds = teachcloudCommonService.listSubOrgIds(null);
         Page<ExamTaskDto> page = new Page<>(pageNumber, pageSize);
         IPage<ExamTaskDto> examTaskDtoIPage = this.baseMapper.listPage(page, schoolId, enable, status, cardRuleId, courseCode, paperNumber, startTime, endTime, orgIds, userName, createName);
+        for (ExamTaskDto record : examTaskDtoIPage.getRecords()) {
+            // 判断审批表状态
+            String cellPaperNumber = record.getPaperNumber();
+            List<PrintPlanStatusEnum> printPlanStatusEnumList = new ArrayList<>();
+            printPlanStatusEnumList.add(PrintPlanStatusEnum.PRINTING);
+            printPlanStatusEnumList.add(PrintPlanStatusEnum.PRINT_FINISH);
+            List<ExamPackageDetail> examPackageDetailDatasource = this.baseMapper.findExamPackageDetailByPaperNumber(cellPaperNumber, printPlanStatusEnumList);
+            record.setApproveFormStatus(examPackageDetailDatasource.size() > 0);
+        }
         return examTaskDtoIPage;
     }
 
@@ -1698,37 +1707,41 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         List<PrintPlanStatusEnum> printPlanStatusEnumList = new ArrayList<>();
         printPlanStatusEnumList.add(PrintPlanStatusEnum.PRINTING);
         printPlanStatusEnumList.add(PrintPlanStatusEnum.PRINT_FINISH);
-        List<ExamPackageDetail> examPackageDetailDatasource = this.baseMapper.findExamPackageDetailByPaperNumber(paperNumber,printPlanStatusEnumList);
+        List<ExamPackageDetail> examPackageDetailDatasource = this.baseMapper.findExamPackageDetailByPaperNumber(paperNumber, printPlanStatusEnumList);
         ExamObjectDto examObjectDto = this.buildExamObjectDtoByPackageDatasource(examPackageDetailDatasource);
 
         // 3.ApprovalInfo部分
+        Boolean review = examTask.getReview();
+        final String remark = "通过";
+        final String link = ",";
         List<ApprovalInfo> approvalInfoList = new ArrayList<>();
-        ApprovalInfo second = examTaskReviewLogService.findOnePassBySetUp(flowId, 2);
-        if (Objects.isNull(second)) {
-            throw ExceptionResultEnum.ERROR.exception("未找到主任级审核记录");
-        }
-        ApprovalInfo third = examTaskReviewLogService.findOnePassBySetUp(flowId, 3);
-        if (Objects.isNull(third)) {
-            throw ExceptionResultEnum.ERROR.exception("未找到院长级审核记录");
-        }
-        String secondRemark = second.getRemark();
-        if (SystemConstant.strNotNull(secondRemark)) {
-            secondRemark = "通过," + secondRemark;
-        } else {
-            secondRemark = "通过";
-        }
-        String thirdRemark = third.getRemark();
-        if (SystemConstant.strNotNull(thirdRemark)) {
-            thirdRemark = "通过," + thirdRemark;
-        } else {
-            thirdRemark = "通过";
-        }
-        second.setRemark(secondRemark);
-        third.setRemark(thirdRemark);
-        approvalInfoList.add(second);
-        approvalInfoList.add(third);
-
+        if (review) {
+            ApprovalInfo second = examTaskReviewLogService.findOnePassBySetUp(flowId, 2);
+            if (Objects.isNull(second)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到主任级审核记录");
+            }
+            ApprovalInfo third = examTaskReviewLogService.findOnePassBySetUp(flowId, 3);
+            if (Objects.isNull(third)) {
+                throw ExceptionResultEnum.ERROR.exception("未找到院长级审核记录");
+            }
+            String secondRemark = second.getRemark();
+            if (SystemConstant.strNotNull(secondRemark)) {
+                secondRemark = remark + link + secondRemark;
+            } else {
+                secondRemark = remark;
+            }
 
+            String thirdRemark = third.getRemark();
+            if (SystemConstant.strNotNull(thirdRemark)) {
+                thirdRemark = remark + link + thirdRemark;
+            } else {
+                thirdRemark = remark;
+            }
+            second.setRemark(secondRemark);
+            third.setRemark(thirdRemark);
+            approvalInfoList.add(second);
+            approvalInfoList.add(third);
+        }
         // ---- 组装Dto
         ExamTaskApprovalFormDto examTaskApprovalFormDto = new ExamTaskApprovalFormDto();
         BasicInfo basicInfo = new BasicInfo();
@@ -1785,11 +1798,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         List<PrintPlanStatusEnum> printPlanStatusEnumList = new ArrayList<>();
         printPlanStatusEnumList.add(PrintPlanStatusEnum.NEW);
         printPlanStatusEnumList.add(PrintPlanStatusEnum.READY);
-        List<ExamPackageDetail> examPackageDetailDatasource = this.baseMapper.findExamPackageDetailByPaperNumber(paperNumber,printPlanStatusEnumList);
+        List<ExamPackageDetail> examPackageDetailDatasource = this.baseMapper.findExamPackageDetailByPaperNumber(paperNumber, printPlanStatusEnumList);
         ExamObjectDto examObjectDto = this.buildExamObjectDtoByPackageDatasource(examPackageDetailDatasource);
 
-        ExamTask examTask = examTaskService.getOne(new QueryWrapper<ExamTask>().lambda().eq(ExamTask::getPaperNumber,paperNumber).eq(ExamTask::getSchoolId,schoolId));
-        if (Objects.isNull(examTask)){
+        ExamTask examTask = examTaskService.getOne(new QueryWrapper<ExamTask>().lambda().eq(ExamTask::getPaperNumber, paperNumber).eq(ExamTask::getSchoolId, schoolId));
+        if (Objects.isNull(examTask)) {
             throw ExceptionResultEnum.ERROR.exception("未找到命题任务");
         }
         examObjectDto.setPaperName(examTask.getPaperName());
@@ -1841,12 +1854,18 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         }
     }
 
-    private ExamObjectDto buildExamObjectDtoByPackageDatasource(List<ExamPackageDetail> examPackageDetailDatasource){
+    /**
+     * 根据试卷袋信息构建考试对象信息
+     *
+     * @param examPackageDetailDatasource 试卷袋数据源
+     * @return 考试对象
+     */
+    private ExamObjectDto buildExamObjectDtoByPackageDatasource(List<ExamPackageDetail> examPackageDetailDatasource) {
         Long examStartTime = null;
         Long examEndTime = null;
         int printTotalCount = 0;
         List<ExamRoomInfo> examRoomInfoList = new ArrayList<>();
-        if (examPackageDetailDatasource.size() > 0){
+        if (examPackageDetailDatasource.size() > 0) {
             Set<Long> examDetailIdSet = examPackageDetailDatasource.stream().map(ExamPackageDetail::getExamDetailId).collect(Collectors.toSet());
             for (Long examDetailId : examDetailIdSet) {
                 // 一个考场下
@@ -1860,11 +1879,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                         .collect(Collectors.toList());
 
                 List<BackupMethodEnum> backupMethodEnums = examPackageDetailCell.stream().map(ExamPackageDetail::getBackupMethod).distinct().collect(Collectors.toList());
-                if (backupMethodEnums.size() != 1 && backupMethodEnums.get(0) != BackupMethodEnum.ROOM){
+                if (backupMethodEnums.size() != 1 && backupMethodEnums.get(0) != BackupMethodEnum.ROOM) {
                     throw ExceptionResultEnum.ERROR.exception("印刷计划试卷备份方式必须按考场");
                 }
                 List<Integer> backupCountList = examPackageDetailCell.stream().map(ExamPackageDetail::getBackupCount).distinct().collect(Collectors.toList());
-                if (backupCountList.size() != 1){
+                if (backupCountList.size() != 1) {
                     throw ExceptionResultEnum.ERROR.exception("印刷计划试卷备份数量异常");
                 }
                 // 试卷该考场备份数量
@@ -1876,10 +1895,10 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     // 处理考试开始结束时间
                     Long cellStartTime = examPackageDetail.getExamStartTime();
                     Long cellEndTime = examPackageDetail.getExamEndTime();
-                    if (examStartTime == null || cellStartTime < examStartTime){
+                    if (examStartTime == null || cellStartTime < examStartTime) {
                         examStartTime = cellStartTime;
                     }
-                    if (examEndTime == null || cellEndTime > examEndTime){
+                    if (examEndTime == null || cellEndTime > examEndTime) {
                         examEndTime = cellEndTime;
                     }
                     // 处理班级和数量
@@ -1888,8 +1907,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     studentCount = studentCount + studentCellCount;
                     clazzIds = clazzIds + clazzIdCell + separator;
                 }
-                clazzIds = clazzIds.substring(0,clazzIds.length() - separator.length());
-                classNames = basicClazzService.findClazzNamesByClazzIds(clazzIds,separator);
+                clazzIds = clazzIds.substring(0, clazzIds.length() - separator.length());
+                classNames = basicClazzService.findClazzNamesByClazzIds(clazzIds, separator);
                 printCount = studentCount + " + " + backupCount;
                 printTotalCount = printTotalCount + studentCount + backupCount;