Parcourir la source

导入模式修改

wangliang il y a 21 heures
Parent
commit
2c6e573b7b

+ 18 - 20
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TCFinalScoreServiceImpl.java

@@ -52,7 +52,6 @@ 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;
 
@@ -175,7 +174,7 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                         BigDecimal score = new BigDecimal(0);
                         for (int j = 0; j < strs.length; j++) {
                             if (Objects.isNull(strs[j]) || Objects.equals(strs[j].trim(), "")) {
-                                errorData.add("excel第").add((i + 1) + "").add("行[").add(columnNames[j] + "]为空;").add("\r\n");
+//                                errorData.add("excel第").add((i + 1) + "").add("行[").add(columnNames[j] + "]为空;").add("\r\n");
                                 error = true;
                             } else {
                                 if (Objects.equals(columnNames[j].trim(), "学号")) {
@@ -232,28 +231,27 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
                 if (!CollectionUtils.isEmpty(tcFinalScoreList)) {
                     successData.add("共导入").add(tcFinalScoreList.size() + "").add("条数据");
                     List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId, courseId, paperNumber, examId);
-                    if (!CollectionUtils.isEmpty(tcFinalScoreDbSourceList)) {
-                        Map<String, TCFinalScore> tcUsualScoreDbMap = tcFinalScoreDbSourceList.stream().collect(Collectors.toMap(TCFinalScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
+                    if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList)) {
+                        throw ExceptionResultEnum.ERROR.exception("请先同步学生数据");
+                    } else {
+                        Map<String, TCFinalScore> tcFinalScoreDbMap = tcFinalScoreDbSourceList.stream().collect(Collectors.toMap(TCFinalScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
                         tcFinalScoreList.stream().peek(s -> {
-                            if (Objects.nonNull(s.getStudentCode()) && tcUsualScoreDbMap.containsKey(s.getStudentCode().trim())) {
-                                s.updateExamAndPaperNumberInfo(tcUsualScoreDbMap.get(s.getStudentCode().trim()));
+                            if (Objects.nonNull(s.getStudentCode()) && tcFinalScoreDbMap.containsKey(s.getStudentCode().trim())) {
+                                s.updateExamAndPaperNumberInfo(tcFinalScoreDbMap.get(s.getStudentCode().trim()));
                             }
                         }).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 (Objects.nonNull(s.getStudentCode()) && tcUsualScoreDbMap.containsKey(s.getStudentCode().trim())) {
-                                size.incrementAndGet();
-                            }
-                        }).collect(Collectors.toList());
-                        if (size.get() != tcFinalScoreList.size()) {
-                            throw ExceptionResultEnum.ERROR.exception("请勿导入其他班级数据");
+
+                        Map<String, TCFinalScore> tcFinalScoreMap = tcFinalScoreList.stream().collect(Collectors.toMap(TCFinalScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
+                        List<TCFinalScore> tcFinalScoreFilterList = tcFinalScoreDbSourceList.stream().filter(s -> tcFinalScoreMap.containsKey(s.getStudentCode().trim())).collect(Collectors.toList());
+                        if (!CollectionUtils.isEqualCollection(tcFinalScoreFilterList, tcFinalScoreList)) {
+                            tcFinalScoreDbSourceList.stream().peek(s -> {
+                                if (Objects.nonNull(s.getStudentCode()) && tcFinalScoreMap.containsKey(s.getStudentCode().trim())) {
+                                    s.updateInfo(tcFinalScoreMap.get(s.getStudentCode().trim()), sysUser.getId());
+                                }
+                            }).collect(Collectors.toList());
+                            tcFinalScoreService.saveOrUpdateBatch(tcFinalScoreDbSourceList);
+                            trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
                         }
-                        tcFinalScoreService.removeByIds(tcFinalScoreDbSourceList.stream().map(s -> s.getId()).collect(Collectors.toList()));
-                        tcFinalScoreService.saveBatch(tcFinalScoreList);
-                        trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
                     }
                 }
             }

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

@@ -10,7 +10,6 @@ import com.qmth.boot.tools.excel.ExcelReader;
 import com.qmth.boot.tools.excel.enums.ExcelType;
 import com.qmth.distributed.print.business.bean.excel.ExcelField;
 import com.qmth.distributed.print.business.enums.SourceEnum;
-import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.bean.dto.DataPermissionRule;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicCourse;
@@ -36,7 +35,6 @@ 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;
 
@@ -126,7 +124,7 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
                         TCUsualScore tcUsualScore = new TCUsualScore(cultureProgramId, basicCourse.getId(), basicCourse.getCode(), basicCourse.getName(), paperNumber, SourceEnum.SYNC, sysUser.getId(), examId);
                         for (int j = 0; j < strs.length; j++) {
                             if (Objects.isNull(strs[j]) || Objects.equals(strs[j].trim(), "")) {
-                                errorData.add("excel第").add((i + 1) + "").add("行[").add(columnNames[j] + "]为空;").add("\r\n");
+//                                errorData.add("excel第").add((i + 1) + "").add("行[").add(columnNames[j] + "]为空;").add("\r\n");
                                 error = true;
                             } else {
                                 if (Objects.equals(columnNames[j].trim(), "学号")) {
@@ -174,29 +172,27 @@ public class TCUsualScoreServiceImpl extends ServiceImpl<TCUsualScoreMapper, TCU
                 if (!CollectionUtils.isEmpty(tcUsualScoreList)) {
                     successData.add("共导入").add(tcUsualScoreList.size() + "").add("条数据");
                     List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId, basicCourse.getId(), paperNumber, examId);
-                    if (!CollectionUtils.isEmpty(tcUsualScoreDbSourceList)) {
+                    if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList)) {
+                        throw ExceptionResultEnum.ERROR.exception("请先同步学生数据");
+                    } else {
                         Map<String, TCUsualScore> tcUsualScoreDbMap = tcUsualScoreDbSourceList.stream().collect(Collectors.toMap(TCUsualScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
                         tcUsualScoreList.stream().peek(s -> {
                             if (Objects.nonNull(s.getStudentCode()) && tcUsualScoreDbMap.containsKey(s.getStudentCode().trim())) {
                                 s.updateExamAndPaperNumberInfo(tcUsualScoreDbMap.get(s.getStudentCode().trim()));
                             }
                         }).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 (Objects.nonNull(s.getStudentCode()) && tcUsualScoreDbMap.containsKey(s.getStudentCode().trim())) {
-                                size.incrementAndGet();
-                            }
-                        }).collect(Collectors.toList());
-                        if (size.get() != tcUsualScoreList.size()) {
-                            throw ExceptionResultEnum.ERROR.exception("请勿导入其他班级数据");
+
+                        Map<String, TCUsualScore> tcUsualScoreMap = tcUsualScoreList.stream().collect(Collectors.toMap(TCUsualScore::getStudentCode, Function.identity(), (dto1, dto2) -> dto1));
+                        List<TCUsualScore> tcUsualScoreFilterList = tcUsualScoreDbSourceList.stream().filter(s -> tcUsualScoreMap.containsKey(s.getStudentCode().trim())).collect(Collectors.toList());
+                        if (!CollectionUtils.isEqualCollection(tcUsualScoreFilterList, tcUsualScoreList)) {
+                            tcUsualScoreDbSourceList.stream().peek(s -> {
+                                if (Objects.nonNull(s.getStudentCode()) && tcUsualScoreMap.containsKey(s.getStudentCode().trim())) {
+                                    s.updateInfo(tcUsualScoreMap.get(s.getStudentCode().trim()), sysUser.getId());
+                                }
+                            }).collect(Collectors.toList());
+                            tcUsualScoreService.saveOrUpdateBatch(tcUsualScoreDbSourceList);
+                            trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, false);
                         }
-                        tcUsualScoreService.removeByIds(tcUsualScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
-                        tcUsualScoreService.saveBatch(tcUsualScoreList);
-                        trBasicInfoService.clearReportData(cultureProgramId, basicCourse.getId(), paperNumber, examId
-                                , false);
                     }
                 }
             }