Sfoglia il codice sorgente

3.2.4 归档问题修复

xiaofei 2 anni fa
parent
commit
c999b7e4d1

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TSyncExamStudentScore.java

@@ -271,6 +271,14 @@ public class TSyncExamStudentScore implements Serializable {
         this.examId = examId;
     }
 
+    public Long getThirdRelateId() {
+        return thirdRelateId;
+    }
+
+    public void setThirdRelateId(Long thirdRelateId) {
+        this.thirdRelateId = thirdRelateId;
+    }
+
     public String getExamCode() {
         return examCode;
     }

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

@@ -16,5 +16,5 @@ public interface TSyncExamLogService extends IService<TSyncExamLog> {
 
     void syncStudentScore(Long semesterId, Long examId, Long thirdRelateId);
 
-    TSyncExamLog selectBySchoolIdAndSemesterIdAndExamId(Long schoolId, Long semesterId, Long examId);
+    TSyncExamLog selectBySchoolIdAndSemesterIdAndExamId(Long schoolId, Long semesterId, Long examId, Long thirdRelateId);
 }

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

@@ -49,7 +49,7 @@ public class TSyncExamLogServiceImpl extends ServiceImpl<TSyncExamLogMapper, TSy
         Long schoolId = Long.parseLong(ServletUtil.getRequestHeaderSchoolId().toString());
         IPage<TSyncExamLog> examLogResultIPage = this.baseMapper.list(iPage, semesterId, examId);
         for (TSyncExamLog record : examLogResultIPage.getRecords()) {
-            TSyncExamLog tSyncExamLog = this.selectBySchoolIdAndSemesterIdAndExamId(schoolId, semesterId, record.getExamId());
+            TSyncExamLog tSyncExamLog = this.selectBySchoolIdAndSemesterIdAndExamId(schoolId, semesterId, examId, record.getThirdRelateId());
             if (tSyncExamLog == null) {
                 TSyncStmmsExam tSyncStmmsExam = tSyncStmmsExamService.getBySchoolIdAndExamId(schoolId, null, examId);
                 if (tSyncStmmsExam != null) {
@@ -101,7 +101,7 @@ public class TSyncExamLogServiceImpl extends ServiceImpl<TSyncExamLogMapper, TSy
             }
         }
 
-        TSyncStmmsExam tSyncStmmsExam = tSyncStmmsExamService.getBySchoolIdAndExamId(sysUser.getSchoolId(), null, examId);
+        TSyncStmmsExam tSyncStmmsExam = tSyncStmmsExamService.getBySchoolIdAndExamId(sysUser.getSchoolId(), null, thirdRelateId);
         String examName = tSyncStmmsExam == null ? null : tSyncStmmsExam.getExamName();
         TSyncExamLog tSyncExamLog = new TSyncExamLog(sysUser.getSchoolId(), semesterId, examId, thirdRelateId, examName, TaskStatusEnum.INIT, sysUser.getId(), System.currentTimeMillis());
         boolean isSave = this.save(tSyncExamLog);
@@ -112,11 +112,12 @@ public class TSyncExamLogServiceImpl extends ServiceImpl<TSyncExamLogMapper, TSy
     }
 
     @Override
-    public TSyncExamLog selectBySchoolIdAndSemesterIdAndExamId(Long schoolId, Long semesterId, Long examId) {
+    public TSyncExamLog selectBySchoolIdAndSemesterIdAndExamId(Long schoolId, Long semesterId, Long examId, Long thirdRleateId) {
         QueryWrapper<TSyncExamLog> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(TSyncExamLog::getSchoolId, schoolId)
                 .eq(TSyncExamLog::getSemesterId, semesterId)
-                .eq(TSyncExamLog::getExamId, examId);
+                .eq(TSyncExamLog::getExamId, examId)
+                .eq(TSyncExamLog::getThirdRelateId, thirdRleateId);
         return this.getOne(queryWrapper);
     }
 }

+ 4 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/PushLogicServiceImpl.java

@@ -46,8 +46,8 @@ public class PushLogicServiceImpl implements PushLogicService {
     public Map<String, Object> executeScorePushLogic(TSyncExamLog tSyncExamLog) {
         Long schoolId = tSyncExamLog.getSchoolId();
         Long semesterId = tSyncExamLog.getSemesterId();
-        Integer examId = Math.toIntExact(tSyncExamLog.getExamId());
-        Integer thirdRelateId = Math.toIntExact(tSyncExamLog.getThirdRelateId());
+        Long examId = tSyncExamLog.getExamId();
+        Integer thirdRelateId = Integer.valueOf(String.valueOf(tSyncExamLog.getThirdRelateId()));
         List<TSyncExamStudentScore> tSyncExamStudentScoreList = new ArrayList<>();
         List<String> errorTSyncExamStudentScoreList = new ArrayList<>();
         Set<String> courseList = new HashSet<>();
@@ -110,7 +110,8 @@ public class PushLogicServiceImpl implements PushLogicService {
                 if (tSyncExamStudentScoreList.size() > 0) {
                     tSyncExamStudentScoreService.remove(new QueryWrapper<TSyncExamStudentScore>().lambda().eq(TSyncExamStudentScore::getSchoolId, schoolId)
                             .eq(TSyncExamStudentScore::getSemesterId, semesterId)
-                            .eq(TSyncExamStudentScore::getExamId, Long.parseLong(String.valueOf(examId))));
+                            .eq(TSyncExamStudentScore::getExamId, Long.parseLong(String.valueOf(examId)))
+                            .eq(TSyncExamStudentScore::getThirdRelateId, thirdRelateId));
                     tSyncExamStudentScoreService.saveOrUpdateBatch(tSyncExamStudentScoreList);
                 }
             }

+ 4 - 0
distributed-print-business/src/main/resources/mapper/TSyncExamStudentScoreMapper.xml

@@ -5,6 +5,8 @@
     <sql id="headCommonSql">
          select
             distinct tsess.id,
+            bs.id semesterId,
+            bs.name semesterName,
             tsess.exam_id as examId,
             tsess.exam_code as examCode,
             tsess.name,
@@ -30,6 +32,8 @@
             ets.school_id = et.school_id and ets.exam_id = et.exam_id and ets.paper_number = et.paper_number
         join sys_user su on
             et.user_id = su.id
+        join basic_exam be on tsess.exam_id = be.id
+        join basic_semester bs on be.semester_id = bs.id
     </sql>
 
     <sql id="footCommonSql">