浏览代码

寝室统计

dzx 8 月之前
父节点
当前提交
f81682ab3b

+ 19 - 9
src/main/java/com/xjrsoft/module/databoard/controller/DatadetailController.java

@@ -916,29 +916,39 @@ public class DatadetailController {
         BigDecimal notEmptyRatio = BigDecimal.valueOf(notEmptyCount).divide(BigDecimal.valueOf(allCount), 4, RoundingMode.HALF_UP);
         result.setNotEmptyRatio(notEmptyRatio.doubleValue() + "");
 
-        Map<String, List<Map<String, Object>>> gradeMap = list.stream().filter(x -> ObjectUtil.isNotNull(x.get("user_id"))).collect(Collectors.groupingBy(x -> x.get("grade_name").toString()));
+        Map<String, List<Map<String, Object>>> gradeMap = list.stream().filter(x -> ObjectUtil.isNotNull(x.get("grade_name"))).collect(Collectors.groupingBy(x -> x.get("grade_name").toString()));
         List<ItemCount2Vo> gradeList = new ArrayList<>();
         for (String gradeName : gradeMap.keySet()) {
             List<Map<String, Object>> gradeDataList = gradeMap.get(gradeName);
-            Map<String, Long> genderMap = gradeDataList.stream().collect(Collectors.groupingBy(x -> x.get("gender").toString(), Collectors.counting()));
+            Map<String, Long> genderMap = gradeDataList.stream().filter(x -> ObjectUtil.isNotNull(x.get("gender"))).collect(Collectors.groupingBy(x -> x.get("gender").toString(), Collectors.counting()));
             ItemCount2Vo gradeVo = new ItemCount2Vo();
             gradeVo.setItem(gradeName);
-            gradeVo.setCount(genderMap.get(GenderDictionaryEnum.MALE.getCode()).intValue());
-            gradeVo.setCount2(genderMap.get(GenderDictionaryEnum.FEMALE.getCode()).intValue());
+            if(genderMap.get(GenderDictionaryEnum.MALE.getCode()) != null){
+                gradeVo.setCount(genderMap.get(GenderDictionaryEnum.MALE.getCode()).intValue());
+            }
+            if(genderMap.get(GenderDictionaryEnum.FEMALE.getCode()) != null){
+                gradeVo.setCount2(genderMap.get(GenderDictionaryEnum.FEMALE.getCode()).intValue());
+            }
+
             gradeList.add(gradeVo);
         }
         Collections.reverse(gradeList);
         result.setGradeList(gradeList);
 
-        Map<String, List<Map<String, Object>>> deptMap = list.stream().filter(x -> ObjectUtil.isNotNull(x.get("user_id"))).collect(Collectors.groupingBy(x -> x.get("dept_name").toString()));
+        Map<String, List<Map<String, Object>>> deptMap = list.stream().filter(x -> ObjectUtil.isNotNull(x.get("dept_name"))).collect(Collectors.groupingBy(x -> x.get("dept_name").toString()));
         List<ItemCount2Vo> deptList = new ArrayList<>();
         for (String deptName : deptMap.keySet()) {
-            List<Map<String, Object>> deptDataList = gradeMap.get(deptName);
-            Map<String, Long> genderMap = deptDataList.stream().collect(Collectors.groupingBy(x -> x.get("gender").toString(), Collectors.counting()));
+            List<Map<String, Object>> deptDataList = deptMap.get(deptName);
+            Map<String, Long> genderMap = deptDataList.stream().filter(x -> ObjectUtil.isNotNull(x.get("gender"))).collect(Collectors.groupingBy(x -> x.get("gender").toString(), Collectors.counting()));
             ItemCount2Vo deptVo = new ItemCount2Vo();
             deptVo.setItem(deptName);
-            deptVo.setCount(genderMap.get(GenderDictionaryEnum.MALE.getCode()).intValue());
-            deptVo.setCount2(genderMap.get(GenderDictionaryEnum.FEMALE.getCode()).intValue());
+            if(genderMap.get(GenderDictionaryEnum.MALE.getCode()) != null){
+                deptVo.setCount(genderMap.get(GenderDictionaryEnum.MALE.getCode()).intValue());
+            }
+            if(genderMap.get(GenderDictionaryEnum.FEMALE.getCode()) != null){
+                deptVo.setCount2(genderMap.get(GenderDictionaryEnum.FEMALE.getCode()).intValue());
+            }
+
             deptList.add(deptVo);
         }
         result.setDeptList(deptList);

+ 3 - 3
src/main/resources/sqlScript/今日安排视图.sql

@@ -1,4 +1,3 @@
-
 -- id,开始时间,结束时间,右上角的类别,中间竖线左边内容,中间竖线右边地点,底部类别,名称,参与人id
 DROP VIEW IF EXISTS today_schedule;
 CREATE VIEW today_schedule AS
@@ -31,9 +30,10 @@ t1.adjust_type,t1.class_name,t2.name AS place,t1.course_name,7,t1.teacher_id AS
 INNER JOIN base_classroom t2 ON t1.site_id = t2.id
 WHERE t1.schedule_date = DATE_FORMAT(NOW(), '%Y-%m-%d')
 UNION ALL
-SELECT t1.id,CONCAT(t1.meeting_apply_date, t1.meeting_apply_s),CONCAT(t1.meeting_apply_date,t1.meeting_apply_e),'会议',
-CONCAT(t4.name,t3.name) AS place,'会议',t1.meeting_apply_theme,8,t2.user_id FROM wf_meeting_apply t1
+SELECT t1.id,CONCAT(t1.meeting_apply_date, ' ', t1.meeting_apply_s),CONCAT(t1.meeting_apply_date, ' ',t1.meeting_apply_e),NULL,
+IFNULL(CONCAT(t4.name,t3.name), t1.meeting_apply_url),t5.name,t1.meeting_apply_theme,8,t2.user_id FROM wf_meeting_apply t1
 INNER JOIN meeting_conferee t2 ON t2.wf_meeting_apply_id = t1.id
 LEFT JOIN meeting_room t3 ON t1.meeting_room_id = t3.id
 LEFT JOIN base_office_build t4 ON t3.office_build_id = t4.id
+LEFT JOIN xjr_dictionary_detail t5 ON t1.meeting_apply_format = t5.code
 WHERE t1.meeting_apply_date = DATE_FORMAT(NOW(), '%Y-%m-%d');