| | |
| | | |
| | | @Override |
| | | public Map<String, Object> statistic(String examPaperId, String departmentId) { |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | // 获取原始数据 |
| | | Map<String, Object> histogram = examPaperAnswerMapper.histogram(examPaperId, departmentId); |
| | | Map<String, Object> pieChart = examPaperAnswerMapper.pieChart(examPaperId, departmentId); |
| | | map.put("histogram", histogram); |
| | | map.put("pieChart", pieChart); |
| | | // 初始化结果容器 |
| | | HashMap<String, Object> map = new HashMap<>(); |
| | | List<Map<String, Object>> score = new ArrayList<>(); |
| | | List<Map<String, Object>> age = new ArrayList<>(); |
| | | List<Map<String, Object>> examPeopleNum = new ArrayList<>(); |
| | | // 处理成绩与年龄分布 |
| | | histogram.forEach((k, v) -> { |
| | | Map<String, Object> hashMap = new HashMap<>(); |
| | | hashMap.put(k, v); |
| | | if (k.contains("score")) { |
| | | score.add(hashMap); |
| | | } |
| | | if (k.contains("age")) { |
| | | age.add(hashMap); |
| | | } |
| | | }); |
| | | // 处理参考人数(出席与缺席) |
| | | pieChart.forEach((k, v) -> { |
| | | Map<String, Object> hashMap = new HashMap<>(); |
| | | hashMap.put(k, v); |
| | | if ("totalAttended".equals(k)) { |
| | | examPeopleNum.add(hashMap); |
| | | } |
| | | if ("totalAbsent".equals(k)) { |
| | | examPeopleNum.add(hashMap); |
| | | } |
| | | }); |
| | | map.put("score", score); |
| | | map.put("age", age); |
| | | map.put("examPeopleNum", examPeopleNum); |
| | | return map; |
| | | } |
| | | } |