99fae81f sonin

巡检分析异常巡检统计

1 个父辈 e98581cd
...@@ -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 }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!