src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java
@@ -26,7 +26,9 @@ import org.springblade.modules.system.vo.UserVO; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.sql.Array; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.*; @@ -51,6 +53,7 @@ /** * 自定义分页 * * @param query page,size * @param examScore 考试成绩信息对象 */ @@ -71,6 +74,7 @@ /** * 新增 * * @param examScore 考试成绩信息对象 */ @PostMapping("/save") @@ -91,6 +95,7 @@ /** * 保存考试成绩 * * @param examScore 考试成绩信息对象 */ @PostMapping("/saveExamScore") @@ -102,6 +107,7 @@ /** * 修改 * * @param examScore 考试成绩信息对象 */ @PostMapping("/update") @@ -111,6 +117,7 @@ /** * 修改总成绩 * * @param examScore 考试成绩信息对象 */ @PostMapping("/updateExamScore") @@ -186,6 +193,7 @@ /** * 新增或修改 * * @param examScore 考试成绩信息对象 */ @PostMapping("/submit") @@ -195,6 +203,7 @@ /** * 删除 * * @param ids 考试成绩信息ids 数组 */ @PostMapping("/remove") @@ -209,9 +218,9 @@ } /** * 详情 * * @param examScore 考试成绩信息对象 */ @GetMapping("/detail") @@ -226,6 +235,7 @@ /** * 详情 * * @param examScore 考试成绩信息对象 */ @GetMapping("/details") @@ -239,6 +249,7 @@ /** * 导入实操成绩 * * @param isCovered 1 覆盖 0不覆盖 * @return */ @@ -265,7 +276,43 @@ */ @GetMapping("score-statistics") @ApiOperation(value = "分数统计") public R<List> scoreStatistics(HttpServletResponse response,String deptid,String jurisdiction) { return R.data(examScoreService.scoreStatistics(deptid,jurisdiction)); public R<Map> scoreStatistics(HttpServletResponse response, String deptid, String jurisdiction) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); response.setHeader("Access-Control-Allow-Credentials", "true"); List<Map<String, Object>> a = examScoreService.scoreStatistics(deptid, jurisdiction); List<Map<String, Object>> b = examScoreService.scoreStatisticssc(deptid, jurisdiction); Map<String, List> cjhz = new HashMap<>(); List llcj = new ArrayList(); List sccj = new ArrayList(); for (int i = 0; i <= 100; i++) { int xb1 = 0,xb2 = 0; for (int j = 0; j < a.size(); j++) { if (i == (int) a.get(j).get("fs")) { llcj.add(a.get(j).get("count").toString()); xb1 = 1; } } for (int j = 0; j < b.size(); j++) { if (i == (int) b.get(j).get("fs")) { sccj.add(b.get(j).get("count").toString()); xb2 = 1; } } if (xb1 == 0){ llcj.add("0"); } if (xb2 == 0){ sccj.add("0"); } } cjhz.put("llcj",llcj); cjhz.put("sccj",sccj); return R.data(cjhz); } } src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java
@@ -49,4 +49,5 @@ ExamScore getExamScoreInfoByIdCardNo(@Param("idCardNo")String idCardNo,@Param("examId")Long examId); List<Map<String,Object>> scoreStatistics(String deptid,String jurisdiction); List<Map<String,Object>> scoreStatisticssc(String deptid,String jurisdiction); } src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -142,39 +142,76 @@ <!--考试成绩详情信息--> <!-- <select id="scoreStatistics" resultType="java.util.HashMap">--> <!-- SELECT * FROM(SELECT--> <!-- COUNT( CASE WHEN theory_grade < 60 THEN 1 END ) AS 'bhg',--> <!-- COUNT( CASE WHEN theory_grade >= 60 AND theory_grade < 80 THEN 1 END ) AS 'hg',--> <!-- COUNT( CASE WHEN theory_grade >= 80 AND theory_grade < 90 THEN 1 END ) AS 'lh',--> <!-- COUNT( CASE WHEN theory_grade >= 90 THEN 1 END ) AS 'yx'--> <!-- FROM--> <!-- exam_score exam--> <!-- LEFT JOIN blade_user user ON exam.user_id = user.id--> <!-- WHERE 1 = 1--> <!-- <if test="jurisdiction!=null and jurisdiction=='' and jurisdiction!='1123598813738675201'">--> <!-- AND user.jurisdiction = #{jurisdiction}--> <!-- </if>--> <!-- <if test="deptid!=null and deptid==''">--> <!-- AND user.dept_id = #{deptid}--> <!-- </if>--> <!-- ) a UNION ALL--> <!-- SELECT * FROM( SELECT--> <!-- COUNT( CASE WHEN learn_grade < 60 THEN 1 END ) AS 'bhg',--> <!-- COUNT( CASE WHEN learn_grade >= 60 AND learn_grade < 80 THEN 1 END ) AS 'hg',--> <!-- COUNT( CASE WHEN learn_grade >= 80 AND learn_grade < 90 THEN 1 END ) AS 'lh',--> <!-- COUNT( CASE WHEN learn_grade >= 90 THEN 1 END ) AS 'yx'--> <!-- FROM--> <!-- exam_score exam--> <!-- LEFT JOIN blade_user user ON exam.user_id = user.id--> <!-- WHERE 1 = 1--> <!-- <if test="jurisdiction!=null and jurisdiction=='' and jurisdiction!='1123598813738675201'">--> <!-- AND user.jurisdiction = #{jurisdiction}--> <!-- </if>--> <!-- <if test="deptid!=null and deptid==''">--> <!-- AND user.dept_id = #{deptid}--> <!-- </if>--> <!-- ) b--> <!-- </select>--> <!--考试成绩详情信息 理论--> <select id="scoreStatistics" resultType="java.util.HashMap"> SELECT * FROM(SELECT COUNT( CASE WHEN theory_grade < 60 THEN 1 END ) AS 'bhg', COUNT( CASE WHEN theory_grade >= 60 AND theory_grade < 80 THEN 1 END ) AS 'hg', COUNT( CASE WHEN theory_grade >= 80 AND theory_grade < 90 THEN 1 END ) AS 'lh', COUNT( CASE WHEN theory_grade >= 90 THEN 1 END ) AS 'yx' SELECT theory_grade as fs, COUNT( * ) AS count FROM exam_score exam LEFT JOIN blade_user user ON exam.user_id = user.id WHERE 1 = 1 WHERE 1 = 1 AND theory_grade is not null <if test="jurisdiction!=null and jurisdiction=='' and jurisdiction!='1123598813738675201'"> AND user.jurisdiction = #{jurisdiction} </if> <if test="deptid!=null and deptid==''"> AND user.dept_id = #{deptid} </if> ) a UNION ALL SELECT * FROM( SELECT COUNT( CASE WHEN learn_grade < 60 THEN 1 END ) AS 'bhg', COUNT( CASE WHEN learn_grade >= 60 AND learn_grade < 80 THEN 1 END ) AS 'hg', COUNT( CASE WHEN learn_grade >= 80 AND learn_grade < 90 THEN 1 END ) AS 'lh', COUNT( CASE WHEN learn_grade >= 90 THEN 1 END ) AS 'yx' GROUP BY exam.theory_grade </select> <!--考试成绩详情信息 实操--> <select id="scoreStatisticssc" resultType="java.util.HashMap"> SELECT learn_grade as fs, COUNT( * ) AS count FROM exam_score exam LEFT JOIN blade_user user ON exam.user_id = user.id WHERE 1 = 1 WHERE 1 = 1 AND learn_grade is not null <if test="jurisdiction!=null and jurisdiction=='' and jurisdiction!='1123598813738675201'"> AND user.jurisdiction = #{jurisdiction} </if> <if test="deptid!=null and deptid==''"> AND user.dept_id = #{deptid} </if> ) b GROUP BY exam.learn_grade </select> <!--根据用户身份证号查询考试成绩--> src/main/java/org/springblade/modules/exam/service/ExamScoreService.java
@@ -45,4 +45,5 @@ void importExamScore(List<ExamScoreExcel> examScoreExcelList, Boolean isCovered); List<Map<String,Object>> scoreStatistics(String deptid,String jurisdiction); List<Map<String,Object>> scoreStatisticssc(String deptid,String jurisdiction); } src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -315,4 +315,8 @@ public List<Map<String, Object>> scoreStatistics(String deptid,String jurisdiction) { return baseMapper.scoreStatistics(deptid,jurisdiction); } @Override public List<Map<String, Object>> scoreStatisticssc(String deptid,String jurisdiction) { return baseMapper.scoreStatisticssc(deptid,jurisdiction); } }