99fae81f sonin

巡检分析异常巡检统计

1 个父辈 e98581cd
......@@ -6,6 +6,7 @@ import com.skua.core.context.BaseContextHandler;
import com.skua.core.context.SpringContextUtils;
import com.skua.core.util.ConvertUtils;
import com.skua.core.util.DateUtils;
import com.skua.modules.biz.IBusinessService;
import com.skua.modules.common.service.ICommonSqlService;
import com.skua.modules.flow.business.service.FlowBusinessService;
import com.skua.modules.flow.engine.constant.FlowEngineConstant;
......@@ -57,6 +58,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
private IInspectionTaskPointFillGroupService inspectionTaskPointFillGroupService;
@Autowired
private IInspectionTaskFillGroupFillService inspectionTaskFillGroupFillService;
@Autowired
private IBusinessService businessService;
@Autowired
private ICommonSqlService commonSqlService;
......@@ -1075,15 +1078,11 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
Integer abnormalCheckedItemsCount = 0;
for (String tempInspectionTaskId : tempInspectionTaskIdList) {
totalCheckeItemsCount += ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0);
checkedItemsCount += ConvertUtils.getInt(taskCheckedItemsCountMap.get(tempInspectionTaskId), 0);
checkedItemsCount += Math.min(ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0), ConvertUtils.getInt(taskCheckedItemsCountMap.get(tempInspectionTaskId), 0));
abnormalCheckedItemsCount += ConvertUtils.getInt(abnormalTaskCheckedItemsCountMap.get(tempInspectionTaskId), 0);
}
inspectionAbnormalItemsTrendVO.setInspectionTaskDate(date);
if(totalCheckeItemsCount - checkedItemsCount < 0){
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(checkedItemsCount - totalCheckeItemsCount);
}else{
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount);
}
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount);
inspectionAbnormalItemsTrendVO.setAbnormalItemsCount(abnormalCheckedItemsCount);
inspectionAbnormalItemsTrendVOList.add(inspectionAbnormalItemsTrendVO);
}
......@@ -1100,7 +1099,80 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
* @return
*/
public List<InspectionAbnormalItemsTrendVO> getInspectionAbnormalItemsTrendDetail(String departIds, String startDate, String endDate){
return inspectionAnalysisMapper.getInspectionAbnormalItemsTrendDetail( departIds, startDate, endDate);
List<InspectionAbnormalItemsTrendVO> inspectionAbnormalItemsTrendVOList = new ArrayList<>();
//查询时间内已巡检任务信息
QueryWrapper<InspectionTask> inspectionTaskQueryWrapper = new QueryWrapper();
if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
inspectionTaskQueryWrapper.ge("inspection_cycle_start_date", startDate + " 00:00:00");
inspectionTaskQueryWrapper.le("inspection_cycle_start_date", endDate + " 23:59:59");
}
inspectionTaskQueryWrapper.in("task_state", "2","3");
List<InspectionTask> inspectionTaskList = inspectionTaskService.list(inspectionTaskQueryWrapper);
// 巡检任务按照departId分组
Map<String, List<String>> departId2inspectionTaskIdMap = new LinkedHashMap<>();
for (InspectionTask inspectionTask : inspectionTaskList) {
String departId = inspectionTask.getDepartId();
List<String> inspectionTaskIdList = departId2inspectionTaskIdMap.computeIfAbsent(departId, k -> new ArrayList<>());
inspectionTaskIdList.add(inspectionTask.getId());
}
// 使用stream对inspectionTaskList进行分组操作,按照巡检周期起始日期进行分组
Map<String, List<String>> inspectionDateMap = inspectionTaskList.stream()
.collect(Collectors.groupingBy(
inspectionTask -> DateUtils.format(inspectionTask.getInspectionCycleStartDate(), "yyyy-MM-dd"),
Collectors.mapping(InspectionTask::getId, Collectors.toList())
));
//巡检任务ID集合
List<String> inspectionTaskIdList = inspectionTaskList.stream().map(InspectionTask::getId).collect(Collectors.toList());
Map<String, Integer> taskCheckeItemsCountMap = new HashMap<>();
Map<String, Integer> taskCheckedItemsCountMap = new HashMap<>();
Map<String, Integer> abnormalTaskCheckedItemsCountMap = new HashMap<>();
if (inspectionTaskIdList.size() > 0) {
//查询每个巡检任务的填报项数量
QueryWrapper<InspectionTaskFillGroupFill> inspectionTaskFillGroupFillQueryWrapper = new QueryWrapper<>();
inspectionTaskFillGroupFillQueryWrapper.in("inspection_task_id", inspectionTaskIdList);
inspectionTaskFillGroupFillQueryWrapper.select("inspection_task_id inspectionTaskId, count(inspection_task_id) count");
inspectionTaskFillGroupFillQueryWrapper.groupBy("inspection_task_id");
List<Map<String, Object>> taskCheckeItemsCountList = inspectionTaskFillGroupFillService.listMaps(inspectionTaskFillGroupFillQueryWrapper);
taskCheckeItemsCountMap = taskCheckeItemsCountList.stream().collect(Collectors.toMap(map -> ConvertUtils.getString(map.get("inspectionTaskId")), map -> ConvertUtils.getInt(map.get("count"))));
//查询巡检任务已填报的数据
QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>();
inspectionTaskFillContentQueryWrapper.in("inspection_task_id", inspectionTaskIdList);
inspectionTaskFillContentQueryWrapper.groupBy("inspection_task_id");
inspectionTaskFillContentQueryWrapper.select("inspection_task_id inspectionTaskId, count(inspection_task_id) count");
inspectionTaskFillContentQueryWrapper.isNotNull("fill_content");
inspectionTaskFillContentQueryWrapper.ne("fill_content", "");
List<Map<String, Object>> taskCheckedItemsCountList = inspectionTaskFillContentService.listMaps(inspectionTaskFillContentQueryWrapper);
taskCheckedItemsCountMap = taskCheckedItemsCountList.stream().collect(Collectors.toMap(map -> ConvertUtils.getString(map.get("inspectionTaskId")), map -> ConvertUtils.getInt(map.get("count"))));
//查询巡检任务异常填报数量
inspectionTaskFillContentQueryWrapper.eq("choice_state", "0");
List<Map<String, Object>> abnormalTaskCheckedItemsCountList = inspectionTaskFillContentService.listMaps(inspectionTaskFillContentQueryWrapper);
abnormalTaskCheckedItemsCountMap = abnormalTaskCheckedItemsCountList.stream().collect(Collectors.toMap(map -> ConvertUtils.getString(map.get("inspectionTaskId")), map -> ConvertUtils.getInt(map.get("count"))));
}
InspectionAbnormalItemsTrendVO inspectionAbnormalItemsTrendVO;
// 翻译
Map<String, String> sysDepartDictMap = businessService.dictMap("sys_depart", null);
for (Map.Entry<String, List<String>> entry: departId2inspectionTaskIdMap.entrySet()) {
String departId = entry.getKey();
List<String> tempInspectionTaskIdList = entry.getValue();
inspectionAbnormalItemsTrendVO = new InspectionAbnormalItemsTrendVO();
//巡检任务Id集合查询对应任务填报项数量
//总的填报项数量
Integer totalCheckeItemsCount = 0;
//已填报的填报项数量
Integer checkedItemsCount = 0;
//异常填报项数量
Integer abnormalCheckedItemsCount = 0;
for (String tempInspectionTaskId : tempInspectionTaskIdList) {
totalCheckeItemsCount += ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0);
checkedItemsCount += Math.min(ConvertUtils.getInt(taskCheckeItemsCountMap.get(tempInspectionTaskId), 0), ConvertUtils.getInt(taskCheckedItemsCountMap.get(tempInspectionTaskId), 0));
abnormalCheckedItemsCount += ConvertUtils.getInt(abnormalTaskCheckedItemsCountMap.get(tempInspectionTaskId), 0);
}
inspectionAbnormalItemsTrendVO.setDepartName(StringUtils.isEmpty(departId) ? departId : sysDepartDictMap.get(departId));
inspectionAbnormalItemsTrendVO.setNotCheckedItemsCount(totalCheckeItemsCount - checkedItemsCount);
inspectionAbnormalItemsTrendVO.setAbnormalItemsCount(abnormalCheckedItemsCount);
inspectionAbnormalItemsTrendVOList.add(inspectionAbnormalItemsTrendVO);
}
return inspectionAbnormalItemsTrendVOList;
}
//InspectionEquipInfoListVO
......
......@@ -34,16 +34,4 @@ public class InspectionAbnormalItemsTrendVO {
private Integer notCheckedItemsCount;
@ApiModelProperty(value = "异常项数量")
private Integer abnormalItemsCount;
public Integer getNotCheckedItemsCount() {
if (totalCount != null && checkedItemsCount != null) {
if (totalCount - checkedItemsCount < 0) {
return checkedItemsCount - totalCount;
} else {
return totalCount - checkedItemsCount;
}
} else {
return 0;
}
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!