From 6e72545fc4ff922354192b16eb14e92c1e1f75c1 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 16 七月 2024 09:49:47 +0800 Subject: [PATCH] 登录空指针异常 --- src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java | 65 ++++++++++++++++++++++++++++++-- 1 files changed, 61 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java index 8270867..efce24b 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java +++ b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperAnswerServiceImpl.java @@ -3,6 +3,7 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.mindskip.xzs.domain.*; +import com.mindskip.xzs.domain.enums.AnswerInvalidEnum; import com.mindskip.xzs.domain.enums.ExamPaperAnswerStatusEnum; import com.mindskip.xzs.domain.enums.ExamPaperTypeEnum; import com.mindskip.xzs.domain.enums.QuestionTypeEnum; @@ -10,6 +11,7 @@ import com.mindskip.xzs.domain.other.ExamPaperAnswerUpdate; import com.mindskip.xzs.domain.other.KeyValue; import com.mindskip.xzs.domain.task.TaskItemAnswerObject; +import com.mindskip.xzs.domain.vo.ExamPaperDataExportVO; import com.mindskip.xzs.domain.vo.ExamPaperDataVO; import com.mindskip.xzs.domain.vo.ExamPaperStatisticVO; import com.mindskip.xzs.repository.ExamPaperAnswerMapper; @@ -31,6 +33,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -316,7 +319,25 @@ @Override public Map<String, Object> statistic(ExamPaperStatisticVO examPaperStatisticVO) { // 鑾峰彇鍘熷鏁版嵁 - Map<String, Object> histogram = examPaperAnswerMapper.histogram(examPaperStatisticVO); + Map<String, Object> histogram; + ExamPaperDataExportVO examPaperDataExportVO; + if (Objects.equals(examPaperStatisticVO.getExamPaperType(), 7)) { + histogram = examPaperAnswerMapper.histogramByTemplate(examPaperStatisticVO); + examPaperDataExportVO = examPaperAnswerMapper.totalByTemplate(new ExamPaperDataVO().setId(examPaperStatisticVO.getExamPaperId()).setDeptIds(examPaperStatisticVO.getDepartmentId())); + } else { + histogram = examPaperAnswerMapper.histogram(examPaperStatisticVO); + examPaperDataExportVO = examPaperAnswerMapper.totalByPaper(new ExamPaperDataVO().setId(examPaperStatisticVO.getExamPaperId()).setDeptIds(examPaperStatisticVO.getDepartmentId())); + } + + // 涓嶅瓨鍦ㄦ椂濉厖0 + if (Objects.isNull(examPaperDataExportVO)) { + examPaperDataExportVO = new ExamPaperDataExportVO() + .setExamTotal(examPaperAnswerMapper.getExamTotal(examPaperStatisticVO)) + .setFactPeopleTotal(0) + .setAverageScore(BigDecimal.ZERO) + .setReferencePercentage(BigDecimal.ZERO); + } + Map<String, Object> pieChart = examPaperAnswerMapper.pieChart(examPaperStatisticVO); // 鍒濆鍖栫粨鏋滃鍣� HashMap<String, Object> map = new HashMap<>(); @@ -348,6 +369,7 @@ map.put("score", score); map.put("age", age); map.put("examPeopleNum", examPeopleNum); + map.put("total", examPaperDataExportVO); return map; } @@ -358,12 +380,47 @@ if (Objects.equals(examPaperDataVO.getType(), 7)) { map.put("data", examPaperAnswerMapper.dataByTemplate(examPaperDataVO)); map.put("total", examPaperAnswerMapper.totalByTemplate(examPaperDataVO)); - } - // 鏅�氳瘯鍗� - else { + } else { map.put("data", examPaperAnswerMapper.dataByPaper(examPaperDataVO)); map.put("total", examPaperAnswerMapper.totalByPaper(examPaperDataVO)); } return map; } + + @Override + public List<ExamPaperDataExportVO> dataExport(ExamPaperDataVO examPaperDataVO) { + // 闅忔満璇曞嵎 + if (Objects.equals(examPaperDataVO.getType(), 7)) { + List<ExamPaperDataExportVO > dataByTemplate = examPaperAnswerMapper.dataByTemplate(examPaperDataVO); + ExamPaperDataExportVO totalByTemplate = examPaperAnswerMapper.totalByTemplate(examPaperDataVO); + dataByTemplate.add(0, totalByTemplate.setName("鎵�鏈夐儴闂�")); + return dataByTemplate; + } else { + List<ExamPaperDataExportVO > dataByPaper = examPaperAnswerMapper.dataByPaper(examPaperDataVO); + ExamPaperDataExportVO totalByPaper = examPaperAnswerMapper.totalByPaper(examPaperDataVO); + dataByPaper.add(0, totalByPaper.setName("鎵�鏈夐儴闂�")); + return dataByPaper; + } + } + + @Override + public void maxGrade(ExamPaperAnswer examPaperAnswer) { + // 鑾峰彇鏌愪竴鍦鸿�冭瘯鐨勬渶楂樻垚缁� + ExamPaperAnswer maxGrade; + if (Objects.equals(examPaperAnswer.getPaperType(), 7)) { + maxGrade = examPaperAnswerMapper.getTemplateOtherExamAnswer(examPaperAnswer); + } else { + maxGrade = examPaperAnswerMapper.getPaperOtherExamAnswer(examPaperAnswer); + } + // 鏈涓嶆槸鏈�楂樺垎 + if (!Objects.equals(maxGrade.getId(), examPaperAnswer.getId())) { + // 涔嬪墠鐨勬垚缁╂湁鏁� + maxGrade.setInvalid(AnswerInvalidEnum.VALID); + examPaperAnswerMapper.updateByPrimaryKey(maxGrade); + // 鏈鐨勪笉鏄渶楂樺垎锛屾棤鏁� + examPaperAnswer.setInvalid(AnswerInvalidEnum.INVALID); + examPaperAnswerMapper.updateByPrimaryKey(examPaperAnswer); + } + } + } -- Gitblit v1.8.0