Bladeren bron

科目同步-替换paperNumber为paperNumberId

xiaof 3 jaren geleden
bovenliggende
commit
e0ffafc449

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/SyncExamCardDto.java

@@ -13,6 +13,8 @@ public class SyncExamCardDto extends ExamCard {
 
     private String paperNumber;
 
+    private String paperNumberId;
+
     private String title;
 
     private String content;
@@ -45,6 +47,14 @@ public class SyncExamCardDto extends ExamCard {
         this.paperNumber = paperNumber;
     }
 
+    public String getPaperNumberId() {
+        return paperNumberId;
+    }
+
+    public void setPaperNumberId(String paperNumberId) {
+        this.paperNumberId = paperNumberId;
+    }
+
     @Override
     public String getTitle() {
         return title;

+ 10 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/SyncExamStudentDto.java

@@ -14,6 +14,8 @@ public class SyncExamStudentDto extends ExamStudent {
 
     private String paperNumber;
 
+    private String paperNumberId;
+
     public String getCourseCode() {
         return courseCode;
     }
@@ -37,4 +39,12 @@ public class SyncExamStudentDto extends ExamStudent {
     public void setPaperNumber(String paperNumber) {
         this.paperNumber = paperNumber;
     }
+
+    public String getPaperNumberId() {
+        return paperNumberId;
+    }
+
+    public void setPaperNumberId(String paperNumberId) {
+        this.paperNumberId = paperNumberId;
+    }
 }

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamPaperStructure.java

@@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.distributed.print.business.enums.ExamPaperStructureStatusEnum;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.data.annotation.Transient;
 
 import java.io.Serializable;
 import java.util.List;
@@ -103,6 +104,9 @@ public class ExamPaperStructure extends BaseEntity implements Serializable {
      */
     private Boolean enable;
 
+    @Transient
+    private String paperNumberId;
+
     public Long getSchoolId() {
         return schoolId;
     }
@@ -222,4 +226,12 @@ public class ExamPaperStructure extends BaseEntity implements Serializable {
     public void setEnable(Boolean enable) {
         this.enable = enable;
     }
+
+    public String getPaperNumberId() {
+        return paperNumberId;
+    }
+
+    public void setPaperNumberId(String paperNumberId) {
+        this.paperNumberId = paperNumberId;
+    }
 }

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

@@ -56,6 +56,12 @@ public class ExamTask extends BaseEntity implements Serializable {
      */
     @TableField("paper_number")
     private String paperNumber;
+
+    /**
+     * 试卷编号ID
+     */
+    @TableField("paper_number_id")
+    private Long paperNumberId;
     /**
      * 命题开始时间
      */
@@ -185,6 +191,14 @@ public class ExamTask extends BaseEntity implements Serializable {
         this.paperNumber = paperNumber;
     }
 
+    public Long getPaperNumberId() {
+        return paperNumberId;
+    }
+
+    public void setPaperNumberId(Long paperNumberId) {
+        this.paperNumberId = paperNumberId;
+    }
+
     public Long getStartTime() {
         return startTime;
     }

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

@@ -200,7 +200,6 @@ public class DataSyncServiceImpl implements DataSyncService {
     }
 
     public void doSyncStructure(ExamPaperStructure examPaperStructure) {
-
         // 开始同步
         examPaperStructureService.updateStatusById(examPaperStructure.getId(), ExamPaperStructureStatusEnum.START_SYNC);
         ExamPaperStructureStatusEnum status = ExamPaperStructureStatusEnum.UPLOAD_FINISH;
@@ -236,7 +235,7 @@ public class DataSyncServiceImpl implements DataSyncService {
 
                 // 同步试卷文件
                 File paperFile = downFileFromFss(paper, paperType, SyncFileTypeEnum.PAPER);
-                String syncPaperFileUrl = stmmsUtils.syncFile(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber() + paperType, SyncFileTypeEnum.PAPER, paperFile);
+                String syncPaperFileUrl = stmmsUtils.syncFile(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumberId() + paperType, SyncFileTypeEnum.PAPER, paperFile);
                 if (StringUtils.isNotBlank(syncPaperFileUrl)) {
                     atomicInteger.getAndIncrement();
                 }
@@ -266,7 +265,7 @@ public class DataSyncServiceImpl implements DataSyncService {
 
                 // 同步标答文件
                 File answerFile = downFileFromFss(answer, paperType, SyncFileTypeEnum.ANSWER);
-                String syncAnswerFileUrl = stmmsUtils.syncFile(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumber() + paperType, SyncFileTypeEnum.ANSWER, answerFile);
+                String syncAnswerFileUrl = stmmsUtils.syncFile(examPaperStructure.getSchoolId(), String.valueOf(examPaperStructure.getThirdRelateId()), examPaperStructure.getPaperNumberId() + paperType, SyncFileTypeEnum.ANSWER, answerFile);
                 if (StringUtils.isNotBlank(syncAnswerFileUrl)) {
                     atomicInteger.getAndIncrement();
                 }
@@ -448,8 +447,8 @@ public class DataSyncServiceImpl implements DataSyncService {
                 String college = Objects.nonNull(sysOrg) && StringUtils.isNotBlank(sysOrg.getName()) ? sysOrg.getName() : "无";
                 String className = StringUtils.isBlank(examStudent.getClazzName()) ? getClassName(examStudent.getExtendFields()) : examStudent.getClazzName();
                 String teacher = "无";
-                String subjectCode = examStudent.getPaperNumber() + examStudent.getPaperType(); // 取试卷编号
-                String subjectName = examStudent.getCourseName();
+                String subjectCode = examStudent.getPaperNumberId() + examStudent.getPaperType(); // 取试卷编号
+                String subjectName = examStudent.getPaperNumber() + examStudent.getPaperType() + "-" + examStudent.getCourseName();
                 boolean syncStudent = stmmsUtils.syncStudent(schoolId, examId, examNumber, studentCode, name, college, className, teacher, subjectCode, subjectName, null, null, null, null);
 
                 if (syncStudent) {
@@ -500,7 +499,7 @@ public class DataSyncServiceImpl implements DataSyncService {
                         String filePath = getTempDir(SyncFileTypeEnum.CARD);
                         file = createJsonFile(filePath, syncExamCardDto.getContent());
                         if (file.exists()) {
-                            String uploadCardUrl = stmmsUtils.syncFile(schoolId, String.valueOf(thirdRelateId), syncExamCardDto.getPaperNumber() + s, SyncFileTypeEnum.CARD, file);
+                            String uploadCardUrl = stmmsUtils.syncFile(schoolId, String.valueOf(thirdRelateId), syncExamCardDto.getPaperNumberId() + s, SyncFileTypeEnum.CARD, file);
                             if (StringUtils.isNotBlank(uploadCardUrl)) {
                                 UpdateWrapper<ExamCard> updateWrapper = new UpdateWrapper<>();
                                 updateWrapper.lambda().set(ExamCard::getSyncStatus, true).eq(ExamCard::getId, syncExamCardDto.getId());

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

@@ -162,8 +162,10 @@ public class ExamPaperStructureServiceImpl extends ServiceImpl<ExamPaperStructur
         examPaperStructureTemp.setObjectiveStructure(JSONObject.toJSONString(objectiveStructureList));
         // 上传成功
         examPaperStructureTemp.setStatus(ExamPaperStructureStatusEnum.UPLOAD_FINISH);
-
         this.updateById(examPaperStructureTemp);
+
+        ExamTask examTask = examTaskService.getByCourseCodeAndPaperNumber(examPaperStructureTemp.getSchoolId(), examPaperStructureTemp.getCourseCode(), examPaperStructureTemp.getPaperNumber());
+        examPaperStructureTemp.setPaperNumberId(String.valueOf(examTask.getPaperNumberId()));
         return examPaperStructureTemp;
     }
 

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

@@ -402,6 +402,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 String paperNumber = printCommonService.createPaperNumber(schoolId);
                 examTask.setPaperNumber(paperNumber);
             }
+            examTask.setPaperNumberId(SystemConstant.getDbUuid());
 
             QueryWrapper<BasicExamRule> queryWrapper = new QueryWrapper<>();
             queryWrapper.lambda().eq(BasicExamRule::getSchoolId, examTask.getSchoolId());
@@ -685,6 +686,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 userMap.put("paperNumber", paperNumber);
             }
             examTask.setPaperNumber(userMap.get("paperNumber"));
+            examTask.setPaperNumberId(SystemConstant.getDbUuid());
             examTask.setStartTime(task.getStartTime());
             examTask.setEndTime(task.getEndTime());
             examTask.setEnable(true);
@@ -1484,6 +1486,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             }
 
             examTask.setId(Objects.isNull(examTask.getId()) ? SystemConstant.getDbUuid() : examTask.getId());
+            examTask.setPaperNumberId(SystemConstant.getDbUuid());
             examTask.setSchoolId(schoolId);
             examTask.setOrgId(basicCourseService.getOrgIdBySchoolIdAndCourseCode(schoolId, examTask.getCourseCode()));
             examTask.setCreateId(sysUser.getId());
@@ -1623,6 +1626,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             }
 
             examTask.setId(SystemConstant.getDbUuid());
+            examTask.setPaperNumberId(SystemConstant.getDbUuid());
             examTask.setSchoolId(schoolId);
             examTask.setOrgId(basicCourseService.getOrgIdBySchoolIdAndCourseCode(schoolId, examTask.getCourseCode()));
             examTask.setReview(basicExamRule.getReview());

+ 1 - 0
distributed-print-business/src/main/resources/mapper/ExamCardMapper.xml

@@ -162,6 +162,7 @@
             a.school_id schoolId,
             a.course_code courseCode,
             a.paper_number paperNumber,
+            a.paper_number_id paperNumberId,
             c.title,
             d.content
         FROM

+ 6 - 1
distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml

@@ -104,13 +104,18 @@
             a.ticket_number ticketNumber,
             a.clazz_name clazzName,
             a.extend_fields extendFields,
-            a.paper_type paperType
+            a.paper_type paperType,
+            et.paper_number_id paperNumberId
         FROM
             exam_student a
                 LEFT JOIN
             exam_detail_course b ON a.exam_detail_course_id = b.id
                 LEFT JOIN
             exam_detail c ON b.exam_detail_id = c.id
+                LEFT JOIN
+            exam_task et ON b.school_id = et.school_id
+                and b.course_code = et.course_code
+                and b.paper_number = et.paper_number
         WHERE
             c.print_plan_id = #{printPlanId}
     </select>