Переглянути джерело

Merge remote-tracking branch 'origin/dev_v3.2.0' into dev_v3.2.0

wangliang 2 роки тому
батько
коміт
00e03e3a69

+ 9 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDetailCardDto.java

@@ -32,6 +32,7 @@ public class ExamTaskDetailCardDto {
     private String semesterName;
     private FlowStatusEnum flowStatus;
     private String flowStatusStr;
+    private String printContent;
 
     public FlowStatusEnum getFlowStatus() {
         return flowStatus;
@@ -211,4 +212,12 @@ public class ExamTaskDetailCardDto {
     public void setSemesterName(String semesterName) {
         this.semesterName = semesterName;
     }
+
+    public String getPrintContent() {
+        return printContent;
+    }
+
+    public void setPrintContent(String printContent) {
+        this.printContent = printContent;
+    }
 }

+ 3 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamRuleServiceImpl.java

@@ -55,6 +55,7 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
 
         // 新增
         if (examRule.getId() == null) {
+            examRule.setIncludePaper(true);
             examRule.insertInfo(sysUser.getId());
             examRule.setOrgId(sysUser.getOrgId());
             this.save(examRule);
@@ -101,9 +102,9 @@ public class BasicExamRuleServiceImpl extends ServiceImpl<BasicExamRuleMapper, B
                 if (!basicExamRule.getReview().equals(examRule.getReview())) {
                     throw ExceptionResultEnum.ERROR.exception("有未结束的印刷计划,不能修改入库审核控制");
                 }
-                if (!basicExamRule.getIncludePaper().equals(examRule.getIncludePaper())) {
+                /*if (!basicExamRule.getIncludePaper().equals(examRule.getIncludePaper())) {
                     throw ExceptionResultEnum.ERROR.exception("有未结束的印刷计划,不能修改包含试卷控制");
-                }
+                }*/
                 if (!basicExamRule.getPrintMethod().equals(examRule.getPrintMethod())) {
                     throw ExceptionResultEnum.ERROR.exception("有未结束的印刷计划,不能修改印刷方式控制");
                 }

+ 34 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -853,13 +853,18 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         if (StringUtils.isBlank(examTaskDetail.getOperateType())) {
             throw ExceptionResultEnum.ERROR.exception("命题任务提交类型不能为空");
         }
+
+        // 更新examTask状态status
+        ExamTask examTask = this.getById(examTaskDetail.getExamTaskId());
         // 提交时,校验
         if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType())) {
-            validSubmitParam(examTaskDetail);
+            BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examTask.getExamId(), examTask.getCourseCode());
+            if (basicPrintConfig == null) {
+                throw ExceptionResultEnum.ERROR.exception("印品配置未设置");
+            }
+            validSubmitParam(examTaskDetail, basicPrintConfig.getPrintContent());
         }
 
-        // 更新examTask状态status
-        ExamTask examTask = this.getById(examTaskDetail.getExamTaskId());
 
         if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType())) {
             //TODO 加入从前端获取userId
@@ -959,7 +964,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
     @Override
     public ExamTaskDetailCardDto applyGetOne(Long examTaskId, String source) {
-        return this.baseMapper.applyGetOne(examTaskId, source);
+        ExamTaskDetailCardDto detailCardDto = this.baseMapper.applyGetOne(examTaskId, source);
+        if(detailCardDto != null) {
+            ExamTask examTask = examTaskService.getById(examTaskId);
+            BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examTask.getExamId(), examTask.getCourseCode());
+            if (basicPrintConfig != null) {
+                detailCardDto.setPrintContent(basicPrintConfig.getPrintContent());
+            }
+        }
+        return detailCardDto;
     }
 
     @Override
@@ -1420,7 +1433,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             // 提交时,校验
             if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType())) {
                 //TODO 加入从前端获取userId
-                validSubmitParam(examTaskDetail);
+                BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examTask.getExamId(), examTask.getCourseCode());
+                if (basicPrintConfig == null) {
+                    throw ExceptionResultEnum.ERROR.exception("印品配置未设置");
+                }
+                validSubmitParam(examTaskDetail, basicPrintConfig.getPrintContent());
                 if (Objects.nonNull(examTask.getFlowId())) {
                     // 审核一级
                     Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(examTask.getFlowId())).singleResult();
@@ -1561,7 +1578,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
             // 新建试卷
             ExamTaskDetail examTaskDetail = JSONObject.parseObject(String.valueOf(jsonObject.get("examTaskDetail")), ExamTaskDetail.class);
-            validSubmitParam(examTaskDetail);
+            validSubmitParam(examTaskDetail, basicPrintConfig.getPrintContent());
             // 已曝光试卷和未曝光试卷赋值(新增时,已曝光试卷为null,未曝光试卷为paper_type)
             examTaskDetail.setId(SystemConstant.getDbUuid());
             examTaskDetail.setUnexposedPaperType(examTaskDetail.getPaperType());
@@ -1591,7 +1608,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examPrintPlan.setName(examTask.getCourseName() + examTask.getPaperNumber());
                 examPrintPlan.setExamStartTime(examDetailParams.getExamStartTime());
                 examPrintPlan.setExamEndTime(examDetailParams.getExamEndTime());
-                examPrintPlan.setPrintContent(String.join(",", JSONObject.parseArray(basicPrintConfig.getPrintContent(), String.class)));
+                List<String> stringList = JSONObject.parseArray(basicPrintConfig.getPrintContent(), String.class);
+                if(!stringList.contains("PAPER")){
+                    List<Map> paperAttachmentIds = JSONObject.parseArray(examTaskDetail.getPaperAttachmentIds(), Map.class);
+                    long count = paperAttachmentIds.stream().filter(m -> StringUtils.isBlank(m.get("attachmentId").toString())).count();
+                    if (count == 0){
+                        stringList.add("PAPER");
+                    }
+                }
+                examPrintPlan.setPrintContent(String.join(",", stringList));
                 examPrintPlan.setBackupMethod(BackupMethodEnum.valueOf(basicPrintConfig.getBackupMethod()));
                 examPrintPlan.setBackupCount(basicPrintConfig.getBackupCount());
                 examPrintPlan.setDrawRule(basicPrintConfig.getDrawRule());
@@ -2179,12 +2204,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
      *
      * @param examTaskDetail
      */
-    void validSubmitParam(ExamTaskDetail examTaskDetail) {
+    void validSubmitParam(ExamTaskDetail examTaskDetail, String printContent) {
         if (StringUtils.isBlank(examTaskDetail.getPaperType())) {
             throw ExceptionResultEnum.ERROR.exception("没有设置卷型");
         }
 
-        BasicExamRule basicExamRule = basicExamRuleService.getBySchoolId();
         List<Map> paperAttachmentIds = JSONObject.parseArray(examTaskDetail.getPaperAttachmentIds(), Map.class);
         for (Map paperAttachmentId : paperAttachmentIds) {
             // 校验试卷必须绑定题卡
@@ -2207,7 +2231,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         // 是否强制包含试卷
         // 未上传试卷的类型个数
         long count = paperAttachmentIds.stream().filter(m -> StringUtils.isBlank(m.get("attachmentId").toString())).count();
-        if (basicExamRule.getIncludePaper()) {
+        if (printContent.contains("PAPER")) {
             if (CollectionUtils.isEmpty(paperAttachmentIds)) {
                 throw ExceptionResultEnum.ERROR.exception("没有设置卷型");
             }

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

@@ -449,7 +449,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
         GradeBatch gradeBatch = this.getById(batchId);
 
         if (gradeBatch == null) {
-            throw ExceptionResultEnum.SUCCESS.exception("未找到批次信息");
+            throw ExceptionResultEnum.ERROR.exception("未找到批次信息");
         }
         Long schoolId = gradeBatch.getSchoolId();
 
@@ -457,7 +457,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
         sysRoleQueryWrapper.lambda().eq(SysRole::getType, RoleTypeEnum.TEACHER).eq(SysRole::getEnable, true);
         List<SysRole> sysRoleList = sysRoleService.list(sysRoleQueryWrapper);
         if (sysRoleList.isEmpty()) {
-            throw ExceptionResultEnum.SUCCESS.exception("未找到任课老师角色,请联系管理员");
+            throw ExceptionResultEnum.ERROR.exception("未找到任课老师角色,请联系管理员");
         }
         Map<String, List<GradeBatchStudentClazzDto>> listMap = list.stream().collect(Collectors.groupingBy(m -> m.getTeacherNumber() + "##" + m.getTeacherName()));
         for (Map.Entry<String, List<GradeBatchStudentClazzDto>> entry : listMap.entrySet()) {
@@ -465,7 +465,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
             List<GradeBatchStudentClazzDto> dtoList = entry.getValue();
             List<SysUser> sysUserList = sysUserService.findBySchoolIdAndCode(schoolId, key[0]);
             if (!sysUserList.isEmpty() && sysUserList.size() > 1) {
-                throw ExceptionResultEnum.SUCCESS.exception(key[0] + "找到多条用户记录");
+                throw ExceptionResultEnum.ERROR.exception(key[0] + "找到多条用户记录");
             }
 
             List<Long> orgIds = dtoList.stream().map(m -> m.getCourseCode() + "##" + m.getPaperNumber()).distinct().map(m -> {
@@ -475,7 +475,7 @@ public class GradeBatchServiceImpl extends ServiceImpl<GradeBatchMapper, GradeBa
                 return sysOrg.getId();
             }).distinct().collect(Collectors.toList());
             if (orgIds.size() != 1) {
-                throw ExceptionResultEnum.SUCCESS.exception("任课老师" + key[0] + "对应课程不能属于不同学院");
+                throw ExceptionResultEnum.ERROR.exception("任课老师" + key[0] + "对应课程不能属于不同学院");
             }
             Long courseSecondaryOrgId = orgIds.get(0);
 

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -353,9 +353,9 @@ public class CreatePdfUtil {
                 } else if ("paperNumber".equals(code)) {
                     List<String> paperNumbers = examDetailCourseList.stream().map(ExamDetailCourse::getPaperNumber).collect(Collectors.toList());
                     basicMap.put("value", String.join(",", paperNumbers));
-                } else if ("examPlace".equals(code)) {
+                } else if ("examPlace".equals(code) || "campusName".equals(code)) {
                     basicMap.put("value", examDetail.getExamPlace());
-                } else if ("examRoom".equals(code)) {
+                } else if ("examRoom".equals(code) || "examClassroomName".equals(code)) {
                     basicMap.put("value", examDetail.getExamRoom());
                 } else if ("collegeName".equals(code)) {
                     Set<String> collegeNames = examStudentList.stream().map(ExamStudent::getCollegeName).collect(Collectors.toSet());

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

@@ -656,7 +656,6 @@ public class ExamTaskController {
     @RequestMapping(value = "/submit_task_apply", method = RequestMethod.POST)
 //    @OperationLogDetail(detail = "入库申请-新建任务(一步到位)",level = LevelEnum.PRIMARY)
     public Result submitTaskApply(@RequestBody ExamTaskApplyTemp examTaskApplyTemp) throws IOException {
-        System.out.println("请求参数 examTaskApplyTemp :\n" + JSON.toJSONString(examTaskApplyTemp));
         ExamTask examTask = examTaskService.submitTaskApply(examTaskApplyTemp);
         if (!examTask.getReview()) {
             // 校验是否可以提交打印状态

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -254,6 +254,7 @@ public interface SysUserService extends IService<SysUser> {
 
     /**
      * 为没有学校管理员的学校自动创建一个学校管理员
+     * @param schoolId 学校id
      */
-    void buildAdministratorForSchool();
+    void buildAdministratorForSchool(Long schoolId);
 }

+ 11 - 7
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -599,7 +599,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             }
             List<SysUser> requestUserList = this.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).like(SysUser::getLoginName, "admin"));
             if (requestUserList.size() == 0 && !Objects.equals(userSaveParams.getRealName(), "学校管理员")) {
-                throw ExceptionResultEnum.ERROR.exception("该学校没有内置的学校管理员");
+                this.buildAdministratorForSchool(schoolId);
             }
             Long requestUserId = 1L;
             if (requestUserList.size() > 0) {
@@ -1000,16 +1000,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void buildAdministratorForSchool() {
+    public void buildAdministratorForSchool(Long schoolId) {
         // 为没有学校管理员的学校自动创建一个学校管理员
-        List<BasicSchool> basicSchoolList = basicSchoolService.list();
+        QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
+        if (SystemConstant.longNotNull(schoolId)){
+            basicSchoolQueryWrapper.lambda().eq(BasicSchool::getId,schoolId);
+        }
+        List<BasicSchool> basicSchoolList = basicSchoolService.list(basicSchoolQueryWrapper);
         SysRole role = sysRoleService.list(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, RoleTypeEnum.SCHOOL_ADMIN)).get(0);
         List<Long> roleIds = new ArrayList<>();
         roleIds.add(role.getId());
         for (BasicSchool basicSchool : basicSchoolList) {
-            Long schoolId = basicSchool.getId();
+            Long cellSchoolId = basicSchool.getId();
             SysOrg schoolOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda()
-                    .eq(SysOrg::getSchoolId, schoolId)
+                    .eq(SysOrg::getSchoolId, cellSchoolId)
                     .eq(SysOrg::getType, OrgTypeEnum.SCHOOL));
             if (Objects.isNull(schoolOrg)) {
                 throw ExceptionResultEnum.ERROR.exception("未找到学校对应的顶级机构");
@@ -1022,7 +1026,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                     .distinct().collect(Collectors.toList());
             if (adminUserIdList.size() > 0) {
                 List<SysUser> adminUserList = sysUserService.list(new QueryWrapper<SysUser>().lambda()
-                        .eq(SysUser::getSchoolId, schoolId)
+                        .eq(SysUser::getSchoolId, cellSchoolId)
                         .in(SysUser::getId, adminUserIdList));
                 if (adminUserList.size() > 0) {
                     // 存在管理员
@@ -1030,7 +1034,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
                 }
             }
             UserSaveParams userSaveParams = new UserSaveParams();
-            userSaveParams.setSchoolId(schoolId);
+            userSaveParams.setSchoolId(cellSchoolId);
             userSaveParams.setLoginName("admin");
             userSaveParams.setRealName("学校管理员");
             userSaveParams.setPassword(SystemConstant.DEFAULT_PASSWORD);

+ 0 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/templete/strategy/CalculateTaskTemplate.java

@@ -15,7 +15,6 @@ import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.report.business.bean.params.CalculateParams;
 import com.qmth.teachcloud.report.business.entity.TBSyncTask;
-import com.qmth.teachcloud.report.business.service.AnalyzeForReportService;
 import com.qmth.teachcloud.report.business.service.TBSyncTaskService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/start/StartRunning.java

@@ -29,7 +29,7 @@ public class StartRunning implements CommandLineRunner {
     public void run(String... args) {
         log.info("服务器启动时执行 start");
         authInfoService.appInfoInit();
-        sysUserService.buildAdministratorForSchool();
+        sysUserService.buildAdministratorForSchool(null);
         log.info("服务器启动时执行 end");
     }
 }