wangliang 6 달 전
부모
커밋
0b3529ffd1

+ 12 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/TCFinalScoreService.java

@@ -146,6 +146,18 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      */
     public List<TCFinalScore> queryFinalScoreNotEqPaperNumber(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
 
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    public List<TCFinalScore> queryFinalScoreNotEqExamIdAndPaperNumber(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
+
     /**
      * 获取期末考试同步锁
      *

+ 45 - 4
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -419,6 +419,7 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
             if (!CollectionUtils.isEmpty(tcFinalScoreList) && !CollectionUtils.isEmpty(tcUsualScoreList)) {
                 DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
                 List<TCFinalScore> tcFinalScoreNotEqPaperNumberList = tcFinalScoreService.queryFinalScoreNotEqPaperNumber(cultureProgramId, courseId, paperNumber, examId, null);
+                List<TCFinalScore> tcFinalScoreNotEqExamAndPaperNumberList = tcFinalScoreService.queryFinalScoreNotEqExamIdAndPaperNumber(cultureProgramId, courseId, paperNumber, examId, null);
                 if (!CollectionUtils.isEmpty(tcFinalScoreNotEqPaperNumberList)) {
                     for (TCFinalScore t : tcFinalScoreNotEqPaperNumberList) {
                         tcUsualScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId());
@@ -426,6 +427,13 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                         trBasicInfoService.clearReportData(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), true);
                     }
                 }
+                if (!CollectionUtils.isEmpty(tcFinalScoreNotEqExamAndPaperNumberList)) {
+                    for (TCFinalScore t : tcFinalScoreNotEqExamAndPaperNumberList) {
+                        tcUsualScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId());
+                        tcFinalScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId());
+                        trBasicInfoService.clearReportData(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), true);
+                    }
+                }
                 if ((CollectionUtils.isEmpty(dpr.getOrgIdSet()) && Objects.isNull(dpr.getCourseUserId()) &&
                         Objects.isNull(dpr.getRequestUserId()))
                         || !CollectionUtils.isEmpty(dpr.getOrgIdSet())
@@ -588,6 +596,42 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      */
     @Override
     public List<TCFinalScore> queryFinalScoreNotEqPaperNumber(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId) {
+        QueryWrapper<TCFinalScore> queryWrapper = this.commonTcFinalScoreQuery(cultureProgramId, courseId, paperNumber, userId);
+        if (Objects.nonNull(examId)) {
+            queryWrapper.lambda().eq(TCFinalScore::getExamId, examId);
+        }
+        return tcFinalScoreService.list(queryWrapper);
+    }
+
+    /**
+     * 根据考试id/课程编码/试卷编码查询数据库数据
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param examId
+     * @param userId
+     * @return
+     */
+    @Override
+    public List<TCFinalScore> queryFinalScoreNotEqExamIdAndPaperNumber(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId) {
+        QueryWrapper<TCFinalScore> queryWrapper = this.commonTcFinalScoreQuery(cultureProgramId, courseId, paperNumber, userId);
+        if (Objects.nonNull(examId)) {
+            queryWrapper.lambda().and(w -> w.ne(TCFinalScore::getExamId, examId).or().isNull(TCFinalScore::getExamId));
+        }
+        return tcFinalScoreService.list(queryWrapper);
+    }
+
+    /**
+     * 期末成绩公共查询
+     *
+     * @param cultureProgramId
+     * @param courseId
+     * @param paperNumber
+     * @param userId
+     * @return
+     */
+    protected QueryWrapper<TCFinalScore> commonTcFinalScoreQuery(Long cultureProgramId, Long courseId, String paperNumber, Long userId) {
         QueryWrapper<TCFinalScore> queryWrapper = new QueryWrapper<>();
         queryWrapper.select(" distinct culture_program_id as cultureProgramId,course_id as courseId,exam_id as examId,paper_number as paperNumber");
         queryWrapper.lambda().eq(TCFinalScore::getCultureProgramId, cultureProgramId)
@@ -598,10 +642,7 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
         if (Objects.nonNull(paperNumber)) {
             queryWrapper.lambda().and(w -> w.ne(TCFinalScore::getPaperNumber, paperNumber).or().isNull(TCFinalScore::getPaperNumber));
         }
-        if (Objects.nonNull(examId)) {
-            queryWrapper.lambda().eq(TCFinalScore::getExamId, examId);
-        }
-        return tcFinalScoreService.list(queryWrapper);
+        return queryWrapper;
     }
 
     /**