瀏覽代碼

web散点图补0

wangliang 6 月之前
父節點
當前提交
053d1975af

+ 7 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TCFinalScoreController.java

@@ -102,13 +102,16 @@ public class TCFinalScoreController {
                                            @ApiParam(value = "科目id", required = true) @RequestParam Long courseId,
                                            @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
                                            @ApiParam(value = "培养方案id", required = true) @RequestParam Long cultureProgramId) throws IOException {
+        if (Objects.isNull(examId) && Objects.isNull(paperNumber)) {
+            throw ExceptionResultEnum.ERROR.exception("请先同步成绩数据再下载模板");
+        }
         tcFinalScoreService.getLock(cultureProgramId, courseId, paperNumber, examId);
         TCPaperStruct tcPaperStruct = tcPaperStructService.queryPaperStruct(cultureProgramId, courseId, paperNumber, examId);
         List<Set<ExcelField>> excelFieldRowSet = new ArrayList<>();
         List<TCFinalScore> finalScoreList = tcFinalScoreService.queryFinalScore(cultureProgramId, courseId, paperNumber, examId);
         if (CollectionUtils.isNotEmpty(finalScoreList)) {
             finalScoreList.stream().peek(s -> {
-                        Set<ExcelField> excelFieldList = new LinkedHashSet<>();
+                Set<ExcelField> excelFieldList = new LinkedHashSet<>();
                         excelFieldList.addAll(new ArrayList<>(Arrays.asList(new ExcelField("studentCode", "学号", s.getStudentCode(), true), new ExcelField("name", "姓名", s.getName(), true), new ExcelField("score", "成绩", Objects.nonNull(s.getScore()) ? s.getScore().toString() : null, true))));
                         excelFieldRowSet.add(excelFieldList);
                     }
@@ -156,6 +159,9 @@ public class TCFinalScoreController {
                                    @ApiParam(value = "课程id", required = true) @RequestParam Long courseId,
                                    @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
                                    @ApiParam(value = "培养方案id", required = true) @RequestParam Long cultureProgramId) {
+        if (Objects.isNull(examId) && Objects.isNull(paperNumber)) {
+            throw ExceptionResultEnum.ERROR.exception("请先同步成绩数据再导入");
+        }
         tcFinalScoreService.getLock(cultureProgramId, courseId, paperNumber, examId);
         String lockKey = SystemConstant.REDIS_FINAL_SCORE_DATA_PREFIX + SystemConstant.IMPORT + cultureProgramId + "_" + courseId + "_" + paperNumber + "_" + examId;
         boolean lock = redisUtil.lock(lockKey, SystemConstant.REDIS_LOCK_IMPORT_EXAM_DATA_TIME_OUT);

+ 3 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TCPaperStructController.java

@@ -126,6 +126,9 @@ public class TCPaperStructController {
                                                      @ApiParam(value = "课程id", required = true) @RequestParam Long courseId,
                                                      @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
                                                      @ApiParam(value = "培养方案id", required = true) @RequestParam Long cultureProgramId) {
+        if (Objects.isNull(examId) && Objects.isNull(paperNumber)) {
+            throw ExceptionResultEnum.ERROR.exception("请先同步成绩数据再同步蓝图");
+        }
         Objects.requireNonNull(paperNumber, "未查询到题和知识点对应关系请手动关联");
         tcFinalScoreService.getLock(cultureProgramId, courseId, paperNumber, examId);
         String lockKey = SystemConstant.REDIS_PAPER_STRUCT_PREFIX + SystemConstant.SYNC + cultureProgramId + "_" + courseId + "_" + paperNumber + "_" + examId;

+ 6 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/obe/TCUsualScoreController.java

@@ -92,6 +92,9 @@ public class TCUsualScoreController {
                                            @ApiParam(value = "考试id") @RequestParam(required = false) Long examId,
                                            @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber
     ) throws IOException {
+        if (Objects.isNull(examId) && Objects.isNull(paperNumber)) {
+            throw ExceptionResultEnum.ERROR.exception("请先同步成绩数据再下载模板");
+        }
         tcUsualScoreService.getUsualScoreImportLock(cultureProgramId, courseId, paperNumber, examId);
         List<Set<ExcelField>> excelFieldRowList = new ArrayList<>();
         List<TCUsualScore> tcUsualScoreList = tcUsualScoreService.queryUsualScore(cultureProgramId, courseId, paperNumber, examId);
@@ -155,6 +158,9 @@ public class TCUsualScoreController {
                                    @ApiParam(value = "考试id") @RequestParam(required = false) Long examId,
                                    @ApiParam(value = "试卷编号") @RequestParam(required = false) String paperNumber,
                                    @ApiParam(value = "作业分数集合") @RequestParam(required = false) String usualScoreList) throws IOException {
+        if (Objects.isNull(examId) && Objects.isNull(paperNumber)) {
+            throw ExceptionResultEnum.ERROR.exception("请先同步成绩数据再导入");
+        }
         return ResultUtil.ok(tcUsualScoreService.usualScoreExcelImport(file, cultureProgramId, courseId, examId, paperNumber, usualScoreList));
     }
 

+ 19 - 0
teachcloud-obe/src/main/java/com/qmth/teachcloud/obe/service/impl/TRBasicInfoServiceImpl.java

@@ -1867,6 +1867,25 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             }
             if (scatterYMap.size() > 0) {
                 finalScatterYMap = trBasicInfoService.getFinalScatterValue(scatterYMap);
+                if (Objects.nonNull(trBasicInfo.getCourseSuggest())) {
+                    List<CourseSuggestDto> courseSuggestDtoList = JSONArray.parseArray(trBasicInfo.getCourseSuggest(), CourseSuggestDto.class);
+                    List<CourseSuggestDto> CourseSuggestDtoFilterList = courseSuggestDtoList.stream().filter(s -> !scatterYMap.containsKey(s.getTargetId())).collect(Collectors.toList());
+                    if (!CollectionUtils.isEmpty(CourseSuggestDtoFilterList)) {
+                        List<List<Map<String, String>>> collectionList = new ArrayList<>(finalScatterYMap.values());
+                        List<Map<String, String>> list = collectionList.get(0);
+                        List<Map<String, String>> listNew = new LinkedList<>();
+                        for (Map<String, String> map : list) {
+                            Map<String, String> mapTemp = new LinkedHashMap<>();
+                            map.forEach((k, v) -> {
+                                mapTemp.put(k, "0.0");
+                            });
+                            listNew.add(mapTemp);
+                        }
+                        for (CourseSuggestDto c : CourseSuggestDtoFilterList) {
+                            finalScatterYMap.put(c.getTargetId(), listNew);
+                        }
+                    }
+                }
             }
         }
         return ImmutableMap.of("examStudentList", examStudentList, "finalScatterYMap", finalScatterYMap);