wangliang 7 months ago
parent
commit
dca3ba7542

+ 4 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TCPaperStructController.java

@@ -262,7 +262,10 @@ public class TCPaperStructController {
                         }
                     }).collect(Collectors.toList());
                 }).collect(Collectors.toList());
-                paperStructDimensionResultNewList.stream().peek(s -> s.getTargetList().clear()).collect(Collectors.toList());
+                paperStructDimensionResultNewList.stream().peek(s -> {
+                    s.getTargetList().clear();
+                    s.setCourseTargetName(null);
+                }).collect(Collectors.toList());
             }
         }
         return ResultUtil.ok(paperStructDimensionResultList);

+ 4 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TRBasicInfoController.java

@@ -158,6 +158,9 @@ public class TRBasicInfoController {
                     Objects.nonNull(tcPaperStruct.getDimensionSign())
                             && tcPaperStruct.getDimensionSign().longValue()
                             != obeCourseWeightResult.getDimensionSign().longValue());
+            trBasicInfoService.saveOrUpdateBatch(trBasicInfoList);
+            trBasicInfoList.clear();
+            trBasicInfoList.addAll(trBasicInfoCurrentList);
         } else {
             List<TRBasicInfo> trBasicInfoFilterList = trBasicInfoList.stream().filter(s -> Objects.nonNull(s.getTeachClassName()) && Objects.equals(s.getTeachClassName(), SystemConstant.ALL)).collect(Collectors.toList());
             if (!CollectionUtils.isEmpty(trBasicInfoFilterList)) {
@@ -212,11 +215,11 @@ public class TRBasicInfoController {
                             reportCourseBasicInfoDto, reportCourseEvaluationSpreadDto, reportCourseEvaluationResultDto,
                             reportCourseEvaluationResultDetailDto, trBasicInfo, finalScatterYMap));
                     trBasicInfo.updateInfo(sysUser.getId());
+                    trBasicInfoService.saveOrUpdateBatch(trBasicInfoList);
                 }
             }
         }
         //课程目标达成评价明细结果-课程目标达成评价值图
-        trBasicInfoService.saveOrUpdateBatch(trBasicInfoList);
         List<ReportResult> reportResultList = new ArrayList<>(trBasicInfoList.size());
         trBasicInfoList.stream().peek(s -> reportResultList.add(s.getReportResult())).collect(Collectors.toList());
         return ResultUtil.ok(reportResultList);

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

@@ -144,7 +144,7 @@ public interface TCFinalScoreService extends IService<TCFinalScore> {
      * @param userId
      * @return
      */
-    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
+    public List<TCFinalScore> queryFinalScoreNotEqPaperNumber(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId);
 
     /**
      * 获取期末考试同步锁

+ 70 - 31
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -239,7 +239,7 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                         Map<String, TCFinalScore> tcUsualScoreDbMap = tcFinalScoreDbSourceList.stream().collect(Collectors.toMap(TCFinalScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
                         AtomicInteger size = new AtomicInteger();
                         tcFinalScoreList.stream().peek(s -> {
-                            if (tcUsualScoreDbMap.containsKey(s.getStudentCode())) {
+                            if (tcUsualScoreDbMap.containsKey(s.getStudentCode().trim())) {
                                 size.incrementAndGet();
                             }
                         }).collect(Collectors.toList());
@@ -417,35 +417,72 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                 }
             }
             if (!CollectionUtils.isEmpty(tcFinalScoreList) && !CollectionUtils.isEmpty(tcUsualScoreList)) {
-                Long teachId = Objects.nonNull(tcFinalScoreList.get(0).getCreateId()) ? tcFinalScoreList.get(0).getCreateId() : sysUser.getId();
-                List<TCFinalScore> tcFinalScoreActualList = tcFinalScoreList.stream().filter(s -> s.getCreateId().longValue() == teachId.longValue()).collect(Collectors.toList());
-                successData.add("共同步").add(tcFinalScoreActualList.size() + "").add("条数据");
-                List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId,
-                        courseId, paperNumber, examId);
-                List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId,
-                        courseId, paperNumber, examId);
-                boolean clearReport = false;
-                if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(
-                        tcFinalScoreDbSourceList, tcFinalScoreList)) {
-                    tcFinalScoreService.remove(cultureProgramId, courseId, paperNumber, examId);
-                    tcFinalScoreService.saveBatch(tcFinalScoreList);
-                    clearReport = true;
-                }
-                if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(
-                        tcUsualScoreDbSourceList, tcUsualScoreList)) {
-                    tcUsualScoreService.remove(cultureProgramId, courseId, paperNumber, examId);
-                    tcUsualScoreService.saveBatch(tcUsualScoreList);
-                    clearReport = true;
-                }
-                if (clearReport) {
-                    trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
-                }
-                List<TCFinalScore> tcFinalScoreNotEqList = tcFinalScoreService.queryFinalScoreNotEq(cultureProgramId, courseId, paperNumber, examId, tcFinalScoreList.get(0).getCreateId());
+                DataPermissionRule dpr = basicRoleDataPermissionService.findDataPermission(sysUser.getSchoolId(), sysUser.getId(), ServletUtil.getRequest().getServletPath());
+                List<TCFinalScore> tcFinalScoreNotEqList = tcFinalScoreService.queryFinalScoreNotEqPaperNumber(cultureProgramId, courseId, paperNumber, examId, null);
                 if (!CollectionUtils.isEmpty(tcFinalScoreNotEqList)) {
                     for (TCFinalScore t : tcFinalScoreNotEqList) {
-                        tcUsualScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), tcFinalScoreList.get(0).getCreateId());
-                        tcFinalScoreService.remove(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), tcFinalScoreList.get(0).getCreateId());
-                        trBasicInfoService.clearReportData(t.getCultureProgramId(), t.getCourseId(), t.getPaperNumber(), t.getExamId(), true, tcFinalScoreList.get(0).getCreateId());
+                        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.nonNull(dpr.getCourseUserId())) {
+                    successData.add("共同步").add(tcFinalScoreList.size() + "").add("条数据");
+                    List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId,
+                            courseId, paperNumber, examId);
+                    List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId,
+                            courseId, paperNumber, examId);
+                    boolean clearReport = false;
+                    if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(
+                            tcFinalScoreDbSourceList, tcFinalScoreList)) {
+                        tcFinalScoreService.remove(cultureProgramId, courseId, paperNumber, examId);
+                        tcFinalScoreService.saveBatch(tcFinalScoreList);
+                        clearReport = true;
+                    }
+                    if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(
+                            tcUsualScoreDbSourceList, tcUsualScoreList)) {
+                        tcUsualScoreService.remove(cultureProgramId, courseId, paperNumber, examId);
+                        tcUsualScoreService.saveBatch(tcUsualScoreList);
+                        clearReport = true;
+                    }
+                    if (clearReport) {
+                        trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
+                    }
+                } else {
+                    List<TCFinalScore> tcFinalScoreActualList = tcFinalScoreList.stream().filter(s -> s.getCreateId().longValue() == sysUser.getId().longValue()).collect(Collectors.toList());
+                    if (!CollectionUtils.isEmpty(tcFinalScoreActualList)) {
+                        successData.add("共同步").add(tcFinalScoreActualList.size() + "").add("条数据");
+
+                        List<TCUsualScore> tcUsualScoreActualList = tcUsualScoreList.stream().filter(s -> s.getCreateId().longValue() == sysUser.getId().longValue()).collect(Collectors.toList());
+                        List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId,
+                                courseId, paperNumber, examId);
+                        List<TCFinalScore> tcFinalScoreDbActualList = new ArrayList<>();
+                        if (!CollectionUtils.isEmpty(tcFinalScoreDbSourceList)) {
+                            tcFinalScoreDbActualList = tcFinalScoreDbSourceList.stream().filter(s -> s.getCreateId().longValue() == sysUser.getId().longValue()).collect(Collectors.toList());
+                        }
+                        List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId,
+                                courseId, paperNumber, examId);
+                        List<TCUsualScore> tcUsualScoreDbActualList = new ArrayList<>();
+                        if (!CollectionUtils.isEmpty(tcUsualScoreDbSourceList)) {
+                            tcUsualScoreDbActualList = tcUsualScoreDbSourceList.stream().filter(s -> s.getCreateId().longValue() == sysUser.getId().longValue()).collect(Collectors.toList());
+                        }
+
+                        boolean clearReport = false;
+                        if (CollectionUtils.isEmpty(tcFinalScoreDbActualList) || !CollectionUtils.isEqualCollection(
+                                tcFinalScoreDbActualList, tcFinalScoreActualList)) {
+                            tcFinalScoreService.removeByIds(tcFinalScoreDbActualList.stream().map(s -> s.getId()).collect(Collectors.toList()));
+                            tcFinalScoreService.saveBatch(tcFinalScoreActualList);
+                            clearReport = true;
+                        }
+                        if (CollectionUtils.isEmpty(tcUsualScoreDbActualList) || !CollectionUtils.isEqualCollection(
+                                tcUsualScoreDbActualList, tcUsualScoreActualList)) {
+                            tcUsualScoreService.removeByIds(tcUsualScoreDbActualList.stream().map(s -> s.getId()).collect(Collectors.toList()));
+                            tcUsualScoreService.saveBatch(tcUsualScoreActualList);
+                            clearReport = true;
+                        }
+                        if (clearReport) {
+                            trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
+                        }
                     }
                 }
             }
@@ -547,12 +584,14 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
      * @return
      */
     @Override
-    public List<TCFinalScore> queryFinalScoreNotEq(Long cultureProgramId, Long courseId, String paperNumber, Long examId, Long userId) {
+    public List<TCFinalScore> queryFinalScoreNotEqPaperNumber(Long cultureProgramId, Long courseId, String paperNumber, Long examId, 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)
-                .eq(TCFinalScore::getCourseId, courseId)
-                .eq(TCFinalScore::getCreateId, userId);
+                .eq(TCFinalScore::getCourseId, courseId);
+        if (Objects.nonNull(userId)) {
+            queryWrapper.lambda().eq(TCFinalScore::getCreateId, userId);
+        }
         if (Objects.nonNull(paperNumber)) {
             queryWrapper.lambda().and(w -> w.ne(TCFinalScore::getPaperNumber, paperNumber).or().isNull(TCFinalScore::getPaperNumber));
         }

+ 1 - 1
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCUsualScoreServiceImpl.java

@@ -181,7 +181,7 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
                         Map<String, TCUsualScore> tcUsualScoreDbMap = tcUsualScoreDbSourceList.stream().collect(Collectors.toMap(TCUsualScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
                         AtomicInteger size = new AtomicInteger();
                         tcUsualScoreList.stream().peek(s -> {
-                            if (tcUsualScoreDbMap.containsKey(s.getStudentCode())) {
+                            if (tcUsualScoreDbMap.containsKey(s.getStudentCode().trim())) {
                                 size.incrementAndGet();
                             }
                         }).collect(Collectors.toList());