巡检分析异常巡检统计
正在显示
2 个修改的文件
包含
79 行增加
和
19 行删除
... | @@ -6,6 +6,7 @@ import com.skua.core.context.BaseContextHandler; | ... | @@ -6,6 +6,7 @@ import com.skua.core.context.BaseContextHandler; |
6 | import com.skua.core.context.SpringContextUtils; | 6 | import com.skua.core.context.SpringContextUtils; |
7 | import com.skua.core.util.ConvertUtils; | 7 | import com.skua.core.util.ConvertUtils; |
8 | import com.skua.core.util.DateUtils; | 8 | import com.skua.core.util.DateUtils; |
9 | import com.skua.modules.biz.IBusinessService; | ||
9 | import com.skua.modules.common.service.ICommonSqlService; | 10 | import com.skua.modules.common.service.ICommonSqlService; |
10 | import com.skua.modules.flow.business.service.FlowBusinessService; | 11 | import com.skua.modules.flow.business.service.FlowBusinessService; |
11 | import com.skua.modules.flow.engine.constant.FlowEngineConstant; | 12 | import com.skua.modules.flow.engine.constant.FlowEngineConstant; |
... | @@ -57,6 +58,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -57,6 +58,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
57 | private IInspectionTaskPointFillGroupService inspectionTaskPointFillGroupService; | 58 | private IInspectionTaskPointFillGroupService inspectionTaskPointFillGroupService; |
58 | @Autowired | 59 | @Autowired |
59 | private IInspectionTaskFillGroupFillService inspectionTaskFillGroupFillService; | 60 | private IInspectionTaskFillGroupFillService inspectionTaskFillGroupFillService; |
61 | @Autowired | ||
62 | private IBusinessService businessService; | ||
60 | 63 | ||
61 | @Autowired | 64 | @Autowired |
62 | private ICommonSqlService commonSqlService; | 65 | private ICommonSqlService commonSqlService; |
... | @@ -1075,15 +1078,11 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -1075,15 +1078,11 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
1075 | Integer abnormalCheckedItemsCount = 0; | 1078 | Integer abnormalCheckedItemsCount = 0; |
1076 | for (String tempInspectionTaskId : tempInspectionTaskIdList) { | 1079 | for (String tempInspectionTaskId : tempInspectionTaskIdList) { |
1077 | totalCheckeItemsCount += ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0); | 1080 | totalCheckeItemsCount += ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0); |
1078 | checkedItemsCount += ConvertUtils.getInt(taskCheckedItemsCountMap.get(tempInspectionTaskId), 0); | 1081 | checkedItemsCount += Math.min(ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0), ConvertUtils.getInt(taskCheckedItemsCountMap.get(tempInspectionTaskId), 0)); |
1079 | abnormalCheckedItemsCount += ConvertUtils.getInt(abnormalTaskCheckedItemsCountMap.get(tempInspectionTaskId), 0); | 1082 | abnormalCheckedItemsCount += ConvertUtils.getInt(abnormalTaskCheckedItemsCountMap.get(tempInspectionTaskId), 0); |
1080 | } | 1083 | } |
1081 | inspectionAbnormalItemsTrendVO.setInspectionTaskDate(date); | 1084 | inspectionAbnormalItemsTrendVO.setInspectionTaskDate(date); |
1082 | if(totalCheckeItemsCount - checkedItemsCount < 0){ | 1085 | inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount); |
1083 | inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(checkedItemsCount - totalCheckeItemsCount); | ||
1084 | }else{ | ||
1085 | inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount); | ||
1086 | } | ||
1087 | inspectionAbnormalItemsTrendVO.setAbnormalItemsCount(abnormalCheckedItemsCount); | 1086 | inspectionAbnormalItemsTrendVO.setAbnormalItemsCount(abnormalCheckedItemsCount); |
1088 | inspectionAbnormalItemsTrendVOList.add(inspectionAbnormalItemsTrendVO); | 1087 | inspectionAbnormalItemsTrendVOList.add(inspectionAbnormalItemsTrendVO); |
1089 | } | 1088 | } |
... | @@ -1100,7 +1099,80 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -1100,7 +1099,80 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
1100 | * @return | 1099 | * @return |
1101 | */ | 1100 | */ |
1102 | public List<InspectionAbnormalItemsTrendVO> getInspectionAbnormalItemsTrendDetail(String departIds, String startDate, String endDate){ | 1101 | public List<InspectionAbnormalItemsTrendVO> getInspectionAbnormalItemsTrendDetail(String departIds, String startDate, String endDate){ |
1103 | return inspectionAnalysisMapper.getInspectionAbnormalItemsTrendDetail( departIds, startDate, endDate); | 1102 | List<InspectionAbnormalItemsTrendVO> inspectionAbnormalItemsTrendVOList = new ArrayList<>(); |
1103 | //查询时间内已巡检任务信息 | ||
1104 | QueryWrapper<InspectionTask> inspectionTaskQueryWrapper = new QueryWrapper(); | ||
1105 | if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { | ||
1106 | inspectionTaskQueryWrapper.ge("inspection_cycle_start_date", startDate + " 00:00:00"); | ||
1107 | inspectionTaskQueryWrapper.le("inspection_cycle_start_date", endDate + " 23:59:59"); | ||
1108 | } | ||
1109 | inspectionTaskQueryWrapper.in("task_state", "2","3"); | ||
1110 | List<InspectionTask> inspectionTaskList = inspectionTaskService.list(inspectionTaskQueryWrapper); | ||
1111 | // 巡检任务按照departId分组 | ||
1112 | Map<String, List<String>> departId2inspectionTaskIdMap = new LinkedHashMap<>(); | ||
1113 | for (InspectionTask inspectionTask : inspectionTaskList) { | ||
1114 | String departId = inspectionTask.getDepartId(); | ||
1115 | List<String> inspectionTaskIdList = departId2inspectionTaskIdMap.computeIfAbsent(departId, k -> new ArrayList<>()); | ||
1116 | inspectionTaskIdList.add(inspectionTask.getId()); | ||
1117 | } | ||
1118 | // 使用stream对inspectionTaskList进行分组操作,按照巡检周期起始日期进行分组 | ||
1119 | Map<String, List<String>> inspectionDateMap = inspectionTaskList.stream() | ||
1120 | .collect(Collectors.groupingBy( | ||
1121 | inspectionTask -> DateUtils.format(inspectionTask.getInspectionCycleStartDate(), "yyyy-MM-dd"), | ||
1122 | Collectors.mapping(InspectionTask::getId, Collectors.toList()) | ||
1123 | )); | ||
1124 | //巡检任务ID集合 | ||
1125 | List<String> inspectionTaskIdList = inspectionTaskList.stream().map(InspectionTask::getId).collect(Collectors.toList()); | ||
1126 | Map<String, Integer> taskCheckeItemsCountMap = new HashMap<>(); | ||
1127 | Map<String, Integer> taskCheckedItemsCountMap = new HashMap<>(); | ||
1128 | Map<String, Integer> abnormalTaskCheckedItemsCountMap = new HashMap<>(); | ||
1129 | if (inspectionTaskIdList.size() > 0) { | ||
1130 | //查询每个巡检任务的填报项数量 | ||
1131 | QueryWrapper<InspectionTaskFillGroupFill> inspectionTaskFillGroupFillQueryWrapper = new QueryWrapper<>(); | ||
1132 | inspectionTaskFillGroupFillQueryWrapper.in("inspection_task_id", inspectionTaskIdList); | ||
1133 | inspectionTaskFillGroupFillQueryWrapper.select("inspection_task_id inspectionTaskId, count(inspection_task_id) count"); | ||
1134 | inspectionTaskFillGroupFillQueryWrapper.groupBy("inspection_task_id"); | ||
1135 | List<Map<String, Object>> taskCheckeItemsCountList = inspectionTaskFillGroupFillService.listMaps(inspectionTaskFillGroupFillQueryWrapper); | ||
1136 | taskCheckeItemsCountMap = taskCheckeItemsCountList.stream().collect(Collectors.toMap(map -> ConvertUtils.getString(map.get("inspectionTaskId")), map -> ConvertUtils.getInt(map.get("count")))); | ||
1137 | //查询巡检任务已填报的数据 | ||
1138 | QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>(); | ||
1139 | inspectionTaskFillContentQueryWrapper.in("inspection_task_id", inspectionTaskIdList); | ||
1140 | inspectionTaskFillContentQueryWrapper.groupBy("inspection_task_id"); | ||
1141 | inspectionTaskFillContentQueryWrapper.select("inspection_task_id inspectionTaskId, count(inspection_task_id) count"); | ||
1142 | inspectionTaskFillContentQueryWrapper.isNotNull("fill_content"); | ||
1143 | inspectionTaskFillContentQueryWrapper.ne("fill_content", ""); | ||
1144 | List<Map<String, Object>> taskCheckedItemsCountList = inspectionTaskFillContentService.listMaps(inspectionTaskFillContentQueryWrapper); | ||
1145 | taskCheckedItemsCountMap = taskCheckedItemsCountList.stream().collect(Collectors.toMap(map -> ConvertUtils.getString(map.get("inspectionTaskId")), map -> ConvertUtils.getInt(map.get("count")))); | ||
1146 | //查询巡检任务异常填报数量 | ||
1147 | inspectionTaskFillContentQueryWrapper.eq("choice_state", "0"); | ||
1148 | List<Map<String, Object>> abnormalTaskCheckedItemsCountList = inspectionTaskFillContentService.listMaps(inspectionTaskFillContentQueryWrapper); | ||
1149 | abnormalTaskCheckedItemsCountMap = abnormalTaskCheckedItemsCountList.stream().collect(Collectors.toMap(map -> ConvertUtils.getString(map.get("inspectionTaskId")), map -> ConvertUtils.getInt(map.get("count")))); | ||
1150 | } | ||
1151 | InspectionAbnormalItemsTrendVO inspectionAbnormalItemsTrendVO; | ||
1152 | // 翻译 | ||
1153 | Map<String, String> sysDepartDictMap = businessService.dictMap("sys_depart", null); | ||
1154 | for (Map.Entry<String, List<String>> entry: departId2inspectionTaskIdMap.entrySet()) { | ||
1155 | String departId = entry.getKey(); | ||
1156 | List<String> tempInspectionTaskIdList = entry.getValue(); | ||
1157 | inspectionAbnormalItemsTrendVO = new InspectionAbnormalItemsTrendVO(); | ||
1158 | //巡检任务Id集合查询对应任务填报项数量 | ||
1159 | //总的填报项数量 | ||
1160 | Integer totalCheckeItemsCount = 0; | ||
1161 | //已填报的填报项数量 | ||
1162 | Integer checkedItemsCount = 0; | ||
1163 | //异常填报项数量 | ||
1164 | Integer abnormalCheckedItemsCount = 0; | ||
1165 | for (String tempInspectionTaskId : tempInspectionTaskIdList) { | ||
1166 | totalCheckeItemsCount += ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0); | ||
1167 | checkedItemsCount += Math.min(ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0), ConvertUtils.getInt(taskCheckedItemsCountMap.get(tempInspectionTaskId), 0)); | ||
1168 | abnormalCheckedItemsCount += ConvertUtils.getInt(abnormalTaskCheckedItemsCountMap.get(tempInspectionTaskId), 0); | ||
1169 | } | ||
1170 | inspectionAbnormalItemsTrendVO.setDepartName(StringUtils.isEmpty(departId) ? departId : sysDepartDictMap.get(departId)); | ||
1171 | inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount); | ||
1172 | inspectionAbnormalItemsTrendVO.setAbnormalItemsCount(abnormalCheckedItemsCount); | ||
1173 | inspectionAbnormalItemsTrendVOList.add(inspectionAbnormalItemsTrendVO); | ||
1174 | } | ||
1175 | return inspectionAbnormalItemsTrendVOList; | ||
1104 | } | 1176 | } |
1105 | 1177 | ||
1106 | //InspectionEquipInfoListVO | 1178 | //InspectionEquipInfoListVO | ... | ... |
... | @@ -34,16 +34,4 @@ public class InspectionAbnormalItemsTrendVO { | ... | @@ -34,16 +34,4 @@ public class InspectionAbnormalItemsTrendVO { |
34 | private Integer notCheckedItemsCount; | 34 | private Integer notCheckedItemsCount; |
35 | @ApiModelProperty(value = "异常项数量") | 35 | @ApiModelProperty(value = "异常项数量") |
36 | private Integer abnormalItemsCount; | 36 | private Integer abnormalItemsCount; |
37 | |||
38 | public Integer getNotCheckedItemsCount() { | ||
39 | if (totalCount != null && checkedItemsCount != null) { | ||
40 | if (totalCount - checkedItemsCount < 0) { | ||
41 | return checkedItemsCount - totalCount; | ||
42 | } else { | ||
43 | return totalCount - checkedItemsCount; | ||
44 | } | ||
45 | } else { | ||
46 | return 0; | ||
47 | } | ||
48 | } | ||
49 | } | 37 | } | ... | ... |
-
请 注册 或 登录 后发表评论