xiaofei 2 жил өмнө
parent
commit
35265b7146
13 өөрчлөгдсөн 64 нэмэгдсэн , 26 устгасан
  1. 6 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/SyncExamTaskDto.java
  2. 22 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTask.java
  3. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/DataSyncServiceImpl.java
  4. 3 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamCardServiceImpl.java
  5. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamDetailCourseServiceImpl.java
  6. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamPrintPlanServiceImpl.java
  7. 2 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  8. 4 3
      distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml
  9. 2 2
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java
  10. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java
  11. 2 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysOrg.java
  12. 16 5
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java
  13. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/sync/CloudMarkingTaskUtils.java

+ 6 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/SyncExamTaskDto.java

@@ -33,9 +33,9 @@ public class SyncExamTaskDto {
     private String syncUserName;
     private String printPlanIds;
 
-    private Long teachingRoomId;
+    private String teachingRoomId;
 
-    private Long collegeId;
+    private String collegeId;
     private String collegeCode;
     private String collegeName;
 
@@ -191,19 +191,19 @@ public class SyncExamTaskDto {
         this.printPlanIds = printPlanIds;
     }
 
-    public Long getTeachingRoomId() {
+    public String getTeachingRoomId() {
         return teachingRoomId;
     }
 
-    public void setTeachingRoomId(Long teachingRoomId) {
+    public void setTeachingRoomId(String teachingRoomId) {
         this.teachingRoomId = teachingRoomId;
     }
 
-    public Long getCollegeId() {
+    public String getCollegeId() {
         return collegeId;
     }
 
-    public void setCollegeId(Long collegeId) {
+    public void setCollegeId(String collegeId) {
         this.collegeId = collegeId;
     }
 

+ 22 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTask.java

@@ -142,6 +142,12 @@ public class ExamTask extends BaseEntity implements Serializable {
     @TableField(value = "approve_form_attachment_id")
     private Long approveFormAttachmentId;
 
+    @TableField(exist = false)
+    private Long examStartTime;
+
+    @TableField(exist = false)
+    private Long examEndTime;
+
     public Long getExamId() {
         return examId;
     }
@@ -345,4 +351,20 @@ public class ExamTask extends BaseEntity implements Serializable {
     public void setApproveFormAttachmentId(Long approveFormAttachmentId) {
         this.approveFormAttachmentId = approveFormAttachmentId;
     }
+
+    public Long getExamStartTime() {
+        return examStartTime;
+    }
+
+    public void setExamStartTime(Long examStartTime) {
+        this.examStartTime = examStartTime;
+    }
+
+    public Long getExamEndTime() {
+        return examEndTime;
+    }
+
+    public void setExamEndTime(Long examEndTime) {
+        this.examEndTime = examEndTime;
+    }
 }

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

@@ -133,7 +133,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                 ExamTaskSyncStatusEnum syncStatus = ExamTaskSyncStatusEnum.STARTING;
 
                 if (examTaskSync == null) {
-                    examTaskSync = new ExamTaskSync(schoolId, examTask.getCourseCode(), examTask.getPaperNumber(), orgCode, thirdRelateOrgId, syncStatus, sysUser.getId(), System.currentTimeMillis(), null);
+                    examTaskSync = new ExamTaskSync(schoolId, examTask.getCourseCode(), examTask.getPaperNumber(), orgCode, Math.toIntExact(thirdRelateId), syncStatus, sysUser.getId(), System.currentTimeMillis(), null);
                 } else {
                     examTaskSync.setSyncStatus(syncStatus);
                     examTaskSync.setSyncStartTime(System.currentTimeMillis());

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

@@ -161,9 +161,9 @@ public class ExamCardServiceImpl extends ServiceImpl<ExamCardMapper, ExamCard> i
 
             examCard = this.getById(examCardParams.getId());
             examCard.setTitle(examCardParams.getTitle());
-            if (CardTypeEnum.CUSTOM.equals(examCard.getType()) && !examCardParams.getCourseCode().equals(examCard.getCourseCode())) {
-                throw ExceptionResultEnum.ERROR.exception("课程不能更改");
-            }
+//            if (CardTypeEnum.CUSTOM.equals(examCard.getType()) && !examCardParams.getCourseCode().equals(examCard.getCourseCode())) {
+//                throw ExceptionResultEnum.ERROR.exception("课程不能更改");
+//            }
 //            if (!examCardParams.getMakeMethod().name().equals(examCard.getMakeMethod().name())) {
 //                throw ExceptionResultEnum.ERROR.exception("题卡制作方式不能更改");
 //            }

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

@@ -121,13 +121,13 @@ public class ExamDetailCourseServiceImpl extends ServiceImpl<ExamDetailCourseMap
                 examTaskDto.setSyncCardType(String.join(",", stringSet));
             }
 
-            List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(examTaskDto.getTeachingRoomId(), false, false);
+            List<SysOrg> sysOrgList = sysOrgService.findByConnectByParentId(Long.valueOf(examTaskDto.getTeachingRoomId()), false, false);
             if(sysOrgList.isEmpty()){
                 throw ExceptionResultEnum.ERROR.exception(String.format("未找到课程[%s(%s)]所属机构及上级机构", examTaskDto.getCourseName(), examTaskDto.getCourseCode()));
             }
             SysOrg collegeOrg = sysOrgList.stream().filter(m->m.getParentId().equals(rootOrg.getId())).findFirst().orElseGet(null);
             if(collegeOrg != null){
-                examTaskDto.setCollegeId(collegeOrg.getId());
+                examTaskDto.setCollegeId(String.valueOf(collegeOrg.getId()));
                 examTaskDto.setCollegeCode(collegeOrg.getCode());
                 examTaskDto.setCollegeName(collegeOrg.getName());
             }

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

@@ -520,7 +520,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         if (cloudMarkingTaskUtils.isCollegeMode(schoolId)) {
             // 查询科目所属学院是否一致
-            Set<Long> collegeSet = new HashSet<>();
+            Set<String> collegeSet = new HashSet<>();
             for (SyncExamTaskDto param : syncDataParam.getList()) {
                 if (param.getCollegeId() == null) {
                     throw ExceptionResultEnum.ERROR.exception(String.format("未找到课程[%s(%s)]所属学院", param.getCourseName(), param.getCourseCode()));
@@ -530,7 +530,7 @@ public class ExamPrintPlanServiceImpl extends ServiceImpl<ExamPrintPlanMapper, E
             if (collegeSet.size() != 1) {
                 throw ExceptionResultEnum.ERROR.exception("所选课程存在不同的学院,无法一起推送");
             }
-            return String.valueOf(collegeSet.toArray()[0]);
+            return syncDataParam.getList().get(0).getCollegeCode();
         }
         return null;
     }

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

@@ -1606,6 +1606,8 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             examTask.setReview(basicPrintConfig.getReview());
             examTask.setUserId(sysUser.getId());
             examTask.setStatus(ExamStatusEnum.SUBMIT);
+            examTask.setStartTime(examTask.getExamStartTime());
+            examTask.setEndTime(examTask.getExamEndTime());
             examTask.setCreateId(sysUser.getId());
             examTask.setCreateTime(System.currentTimeMillis());
 

+ 4 - 3
distributed-print-business/src/main/resources/mapper/ExamPaperStructureMapper.xml

@@ -36,13 +36,14 @@
                  edc.paper_number,
                  edc.course_code,
                  edc.course_name,
-                 edc.third_relate_id,
+                 ets.third_relate_id,
                  tsse.exam_name third_relate_name
              FROM
                  exam_detail ed
                      LEFT JOIN exam_detail_course edc ON ed.id = edc.exam_detail_id
-                     LEFT JOIN t_sync_stmms_exam tsse ON edc.school_id = tsse.school_id and edc.third_relate_id = tsse.exam_id
-            WHERE edc.sync_status = #{syncStatus}) ep ON epp.id = ep.print_plan_id
+                     LEFT JOIN exam_task_sync ets ON edc.school_id = ets.school_id and edc.paper_number = ets.paper_number
+                     LEFT JOIN t_sync_stmms_exam tsse ON edc.school_id = tsse.school_id and ets.third_relate_id = tsse.exam_id
+            WHERE ets.sync_status = #{syncStatus}) ep ON epp.id = ep.print_plan_id
                 LEFT JOIN
             (SELECT
                  school_id, paper_number, paper_type

+ 2 - 2
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamPrintPlanSyncController.java

@@ -72,8 +72,8 @@ public class ExamPrintPlanSyncController {
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.PUSH)
     public Result checkSyncMode(@RequestBody SyncDataParam syncDataParam) {
-        examPrintPlanService.checkSyncMode(syncDataParam);
-        return ResultUtil.ok(true);
+        String orgCode = examPrintPlanService.checkSyncMode(syncDataParam);
+        return ResultUtil.ok(orgCode,"");
     }
 
     /**

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

@@ -652,7 +652,7 @@ public class SysController {
                         .lambda()
                         .eq(BasicSemester::getSchoolId, schoolId)
                         .eq(BasicSemester::getEnable, true)
-                        .orderByDesc(BasicSemester::getInUsed));
+                        .orderByDesc(BasicSemester::getCreateTime));
                 dictionaryResultList = basicSemesterList.stream().map(e -> {
                     DictionaryResult dictionaryResult = new DictionaryResult();
                     dictionaryResult.setId(e.getId());

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/entity/SysOrg.java

@@ -35,6 +35,7 @@ public class SysOrg extends BaseEntity implements Serializable {
     /**
      * 机构代码
      */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private String code;
 
     @ApiModelProperty(value = "类型,COLLEGE:学院,FACULTY:院系,TEACHING_ROOM:教研室,PRINTING_HOUSE:印刷厂")
@@ -60,6 +61,7 @@ public class SysOrg extends BaseEntity implements Serializable {
     private String historicName;
 
     @ApiModelProperty("云阅卷机构ID")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
     private Integer thirdRelateId;
 
     public SysOrg() {

+ 16 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysOrgServiceImpl.java

@@ -152,11 +152,6 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
             org.setSchoolId(schoolId);
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
 
-            // 已经推送到云阅卷,不允许修改机构代码
-            if(org.getThirdRelateId() != null && org.getThirdRelateId() > 0){
-                throw ExceptionResultEnum.ERROR.exception("机构已经同步到云阅卷,不支持修改机构代码");
-            }
-
             // 机构代码不为空,校验唯一性
             if (StringUtils.isNotBlank(org.getCode())) {
                 QueryWrapper<SysOrg> queryWrapper = new QueryWrapper<>();
@@ -168,11 +163,27 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
                     throw ExceptionResultEnum.ERROR.exception("机构代码已存在");
                 }
             }
+            // 机构代码为空,若为一级学院,则自动生成code
+            else {
+                SysOrg sysOrgRoot = this.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getType, OrgTypeEnum.SCHOOL));
+                // 学校下第一级机构,自动生成code
+                if (sysOrgRoot != null && org.getParentId().equals(sysOrgRoot.getId())) {
+                    Integer maxOrgCode = commonCacheService.getMaxOrgCode(schoolId);
+                    Integer currentCode = maxOrgCode + 1;
+                    commonCacheService.setMaxOrgCode(schoolId, currentCode);
+                    org.setCode(SystemConstant.ORG_PREFIX + currentCode);
+                }
+            }
 
             if (org.getId() == null) {// 新增
                 org.insertInfo(sysUser.getId());
                 success = this.save(org);
             } else { // 修改
+                // 已经推送到云阅卷,不允许修改机构代码
+                SysOrg sysOrg = this.getById(org.getId());
+                if(!sysOrg.getCode().equals(org.getCode()) && sysOrg.getThirdRelateId() != null && sysOrg.getThirdRelateId() > 0){
+                    throw ExceptionResultEnum.ERROR.exception("机构已经同步到云阅卷,不支持修改机构代码");
+                }
                 org.updateInfo(sysUser.getId());
                 success = this.updateById(org);
             }

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/sync/CloudMarkingTaskUtils.java

@@ -88,7 +88,7 @@ public class CloudMarkingTaskUtils {
     }
 
     /**
-     * 考试创建/更新接口
+     * 学院创建/更新接口
      *
      * @param code 学院代码
      * @param name 学院名称