|
@@ -8,11 +8,13 @@ import com.qmth.boot.api.exception.ApiException;
|
|
|
import com.qmth.boot.tools.excel.ExcelReader;
|
|
|
import com.qmth.boot.tools.excel.enums.ExcelType;
|
|
|
import com.qmth.distributed.print.business.enums.SourceEnum;
|
|
|
+import com.qmth.distributed.print.business.service.BasicExamStudentService;
|
|
|
import com.qmth.distributed.print.business.service.PrintCommonService;
|
|
|
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;
|
|
|
+import com.qmth.teachcloud.common.entity.BasicExamStudent;
|
|
|
import com.qmth.teachcloud.common.entity.SysUser;
|
|
|
import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
|
|
|
import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
|
|
@@ -96,6 +98,9 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
|
|
|
@Resource
|
|
|
private BasicRoleDataPermissionService basicRoleDataPermissionService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ BasicExamStudentService basicExamStudentService;
|
|
|
+
|
|
|
/**
|
|
|
* 导入期末成绩excel
|
|
|
*
|
|
@@ -350,13 +355,18 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
|
|
|
public Map<String, String> finalScoreSync(Long examId, Long courseId, String paperNumber, Long cultureProgramId) {
|
|
|
Map<String, String> messageMap = new LinkedHashMap<>();
|
|
|
try {
|
|
|
+ BasicCourse basicCourse = basicCourseService.getById(courseId);
|
|
|
+ Objects.requireNonNull(basicCourse, "未找到基础课程信息");
|
|
|
SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
|
|
|
StringJoiner errorData = new StringJoiner("");
|
|
|
StringJoiner successData = new StringJoiner("");
|
|
|
List<MarkStudentScoreVo> markStudentScoreVoList = markStudentService.listMarkStudentScoreList(examId, paperNumber);
|
|
|
+ //不为空则从markPaper里同步基础数据,否则从basicExamStudent同步
|
|
|
+ List<TCFinalScore> tcFinalScoreList = null;
|
|
|
+ List<TCUsualScore> tcUsualScoreList = null;
|
|
|
if (!CollectionUtils.isEmpty(markStudentScoreVoList)) {
|
|
|
- List<TCFinalScore> tcFinalScoreList = new ArrayList<>(markStudentScoreVoList.size());
|
|
|
- List<TCUsualScore> tcUsualScoreList = new ArrayList<>(markStudentScoreVoList.size());
|
|
|
+ tcFinalScoreList = new ArrayList<>(markStudentScoreVoList.size());
|
|
|
+ tcUsualScoreList = new ArrayList<>(markStudentScoreVoList.size());
|
|
|
List<PaperStructDimensionResult> paperStructDimensionResultList = new ArrayList<>(markStudentScoreVoList.size());
|
|
|
for (int i = 0; i < markStudentScoreVoList.size(); i++) {
|
|
|
MarkStudentScoreVo markStudentScoreVo = markStudentScoreVoList.get(i);
|
|
@@ -379,42 +389,54 @@ public class TCFinalScoreServiceImpl extends ServiceImpl<TCFinalScoreMapper, TCF
|
|
|
SourceEnum.SYNC, sysUser.getId(), cultureProgramId, courseId));
|
|
|
}
|
|
|
}
|
|
|
- if (!CollectionUtils.isEmpty(tcFinalScoreList) && !CollectionUtils.isEmpty(
|
|
|
- paperStructDimensionResultList)) {
|
|
|
- successData.add("共同步").add(tcFinalScoreList.size() + "").add("条数据");
|
|
|
- List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId,
|
|
|
- courseId, paperNumber, examId, null);
|
|
|
- List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId,
|
|
|
- courseId, paperNumber, examId, null);
|
|
|
- log.info("tcFinalScoreDbSourceList:{}", JacksonUtil.parseJson(tcFinalScoreDbSourceList));
|
|
|
- log.info("tcFinalScoreList:{}", JacksonUtil.parseJson(tcFinalScoreList));
|
|
|
- if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(
|
|
|
- tcFinalScoreDbSourceList, tcFinalScoreList)) {
|
|
|
- tcFinalScoreService.removeByIds(
|
|
|
- tcFinalScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
|
|
|
- tcFinalScoreService.saveBatch(tcFinalScoreList);
|
|
|
- trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
|
|
|
- }
|
|
|
- if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(
|
|
|
- tcUsualScoreDbSourceList, tcUsualScoreList)) {
|
|
|
- tcUsualScoreService.removeByIds(
|
|
|
- tcUsualScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
|
|
|
- tcUsualScoreService.saveBatch(tcUsualScoreList);
|
|
|
- }
|
|
|
+ if (!CollectionUtils.isEmpty(paperStructDimensionResultList)) {
|
|
|
TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
|
|
|
if (Objects.nonNull(tcPaperStruct)) {
|
|
|
tcPaperStructService.removeById(tcPaperStruct.getId());
|
|
|
}
|
|
|
- BasicCourse basicCourse = basicCourseService.getById(courseId);
|
|
|
- Objects.requireNonNull(basicCourse, "未找到基础课程信息");
|
|
|
-
|
|
|
paperStructDimensionResultList = SDFrame.read(paperStructDimensionResultList).sortDesc(Sorter.sortDescBy(PaperStructDimensionResult::getMainNumber).sortDesc(PaperStructDimensionResult::getMainNumber)).toLists();
|
|
|
tcPaperStruct = new TCPaperStruct(cultureProgramId, courseId, basicCourse.getCode(), basicCourse.getName(), paperNumber, JacksonUtil.parseJson(paperStructDimensionResultList),
|
|
|
- sysUser.getId());
|
|
|
- tcPaperStruct.setExamId(examId);
|
|
|
-
|
|
|
+ sysUser.getId(), examId);
|
|
|
tcPaperStructService.saveOrUpdate(tcPaperStruct);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ List<BasicExamStudent> basicExamStudentList = basicExamStudentService.list(new QueryWrapper<BasicExamStudent>().lambda().eq(BasicExamStudent::getExamId, examId).eq(BasicExamStudent::getCourseId, courseId).eq(BasicExamStudent::getPaperNumber, paperNumber));
|
|
|
+ if (!CollectionUtils.isEmpty(basicExamStudentList)) {
|
|
|
+ tcFinalScoreList = new ArrayList<>(basicExamStudentList.size());
|
|
|
+ tcUsualScoreList = new ArrayList<>(basicExamStudentList.size());
|
|
|
+ for (BasicExamStudent basicExamStudent : basicExamStudentList) {
|
|
|
+ tcFinalScoreList.add(
|
|
|
+ new TCFinalScore(basicExamStudent, basicCourse,
|
|
|
+ SourceEnum.SYNC, sysUser.getId(), cultureProgramId, courseId));
|
|
|
+ tcUsualScoreList.add(
|
|
|
+ new TCUsualScore(basicExamStudent, basicCourse,
|
|
|
+ SourceEnum.SYNC, sysUser.getId(), cultureProgramId, courseId));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
|
|
|
+ if (Objects.nonNull(tcPaperStruct)) {
|
|
|
+ tcPaperStructService.removeById(tcPaperStruct.getId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(tcFinalScoreList) && !CollectionUtils.isEmpty(tcUsualScoreList)) {
|
|
|
+ successData.add("共同步").add(tcFinalScoreList.size() + "").add("条数据");
|
|
|
+ List<TCFinalScore> tcFinalScoreDbSourceList = tcFinalScoreService.queryFinalScore(cultureProgramId,
|
|
|
+ courseId, paperNumber, examId, null);
|
|
|
+ List<TCUsualScore> tcUsualScoreDbSourceList = tcUsualScoreService.queryUsualScore(cultureProgramId,
|
|
|
+ courseId, paperNumber, examId, null);
|
|
|
+ if (CollectionUtils.isEmpty(tcFinalScoreDbSourceList) || !CollectionUtils.isEqualCollection(
|
|
|
+ tcFinalScoreDbSourceList, tcFinalScoreList)) {
|
|
|
+ tcFinalScoreService.removeByIds(
|
|
|
+ tcFinalScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
|
|
|
+ tcFinalScoreService.saveBatch(tcFinalScoreList);
|
|
|
+ trBasicInfoService.clearReportData(cultureProgramId, courseId, paperNumber, examId, true);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(tcUsualScoreDbSourceList) || !CollectionUtils.isEqualCollection(
|
|
|
+ tcUsualScoreDbSourceList, tcUsualScoreList)) {
|
|
|
+ tcUsualScoreService.removeByIds(
|
|
|
+ tcUsualScoreDbSourceList.stream().map(BaseEntity::getId).collect(Collectors.toList()));
|
|
|
+ tcUsualScoreService.saveBatch(tcUsualScoreList);
|
|
|
+ }
|
|
|
}
|
|
|
messageMap.put(SystemConstant.SUCCESS, successData.length() > 0 ? successData.toString() : "无");
|
|
|
messageMap.put(SystemConstant.EXCEL_ERROR, errorData.length() > 0 ? errorData.toString() : "无");
|