Răsfoiți Sursa

成绩管理1对多

wangliang 8 luni în urmă
părinte
comite
6cedbd7725

+ 11 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -50,6 +50,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -229,6 +230,16 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                     List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId, courseId, paperNumber, examId, sysUser.getId());
                     tcFinalScoreList.stream().peek(s -> s.updateExamAndPaperNumberInfo(tcFinalScoreDbSourceList.get(0))).collect(Collectors.toList());
                     if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(tcFinalScoreDbSourceList, tcFinalScoreList)) {
+                        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())) {
+                                size.incrementAndGet();
+                            }
+                        }).collect(Collectors.toList());
+                        if (size.get() != tcFinalScoreList.size()) {
+                            throw ExceptionResultEnum.ERROR.exception("请勿导入其他班级数据");
+                        }
                         tcFinalScoreService.removeByIds(tcFinalScoreDbSourceList.stream().map(s -> s.getId()).collect(Collectors.toList()));
                         tcFinalScoreService.saveBatch(tcFinalScoreList);
                         trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);

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

@@ -33,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -169,6 +170,16 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
                     List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId, basicCourse.getId(), paperNumber, examId, sysUser.getId());
                     tcUsualScoreList.stream().peek(s -> s.updateExamAndPaperNumberInfo(tcUsualScoreDbSourceList.get(0))).collect(Collectors.toList());
                     if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(tcUsualScoreDbSourceList, tcUsualScoreList)) {
+                        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())) {
+                                size.incrementAndGet();
+                            }
+                        }).collect(Collectors.toList());
+                        if (size.get() != tcUsualScoreList.size()) {
+                            throw ExceptionResultEnum.ERROR.exception("请勿导入其他班级数据");
+                        }
                         tcUsualScoreService.removeByIds(tcUsualScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
                         tcUsualScoreService.saveBatch(tcUsualScoreList);
                         trBasicInfoService.clearReportData(cultureProgramId, basicCourse.getId(), paperNumber, examId