bbf071e3 sonin

巡检分析 巡检设备概况 详情

1 个父辈 1c419398
...@@ -251,7 +251,7 @@ public class InspectionAnalysisController { ...@@ -251,7 +251,7 @@ public class InspectionAnalysisController {
251 @GetMapping("/getInspectionEquipOverview") 251 @GetMapping("/getInspectionEquipOverview")
252 public Result<InspectionEquipOverviewVO> getInspectionEquipOverview(String startDate, String endDate){ 252 public Result<InspectionEquipOverviewVO> getInspectionEquipOverview(String startDate, String endDate){
253 Result<InspectionEquipOverviewVO> result = new Result<>(); 253 Result<InspectionEquipOverviewVO> result = new Result<>();
254 InspectionEquipOverviewVO inspectionEquipOverviewVO = inspectionAnalysisService.getInspectionEquipOverviewNew(startDate,endDate); 254 InspectionEquipOverviewVO inspectionEquipOverviewVO = inspectionAnalysisService.getInspectionEquipOverview(startDate,endDate);
255 result.setSuccess(true); 255 result.setSuccess(true);
256 result.setResult(inspectionEquipOverviewVO); 256 result.setResult(inspectionEquipOverviewVO);
257 return result; 257 return result;
...@@ -259,15 +259,15 @@ public class InspectionAnalysisController { ...@@ -259,15 +259,15 @@ public class InspectionAnalysisController {
259 259
260 @ApiOperation(value = "巡检分析-巡检设备概况-详情", notes = "巡检分析-巡检设备概况-详情") 260 @ApiOperation(value = "巡检分析-巡检设备概况-详情", notes = "巡检分析-巡检设备概况-详情")
261 @GetMapping("/getInspectionEquipOverviewDetail") 261 @GetMapping("/getInspectionEquipOverviewDetail")
262 public Result<List<InspectionEquipIndicatorsDetailVO>> getInspectionEquipOverviewDetail(String departId,String startDate, String endDate){ 262 public Result<List<InspectionEquipOverviewVO>> getInspectionEquipOverviewDetail(String departId,String startDate, String endDate){
263 Result<List<InspectionEquipIndicatorsDetailVO>> result = new Result<>(); 263 Result<List<InspectionEquipOverviewVO>> result = new Result<>();
264 String departIds = departId; 264 String departIds = departId;
265 if(StringUtils.isEmpty(departId)){ 265 if(StringUtils.isEmpty(departId)){
266 departIds = BaseContextHandler.getDeparts(); 266 departIds = BaseContextHandler.getDeparts();
267 }else{ 267 }else{
268 departIds = sysDepartService.getChildDepartId(departId); 268 departIds = sysDepartService.getChildDepartId(departId);
269 } 269 }
270 List<InspectionEquipIndicatorsDetailVO> dataList = inspectionAnalysisService.getInspectionEquipOverviewDetail(departIds,startDate,endDate); 270 List<InspectionEquipOverviewVO> dataList = inspectionAnalysisService.getInspectionEquipOverviewDetail(departIds,startDate,endDate);
271 result.setSuccess(true); 271 result.setSuccess(true);
272 result.setResult(dataList); 272 result.setResult(dataList);
273 return result; 273 return result;
......
...@@ -79,7 +79,7 @@ public interface IInspectionAnalysisService { ...@@ -79,7 +79,7 @@ public interface IInspectionAnalysisService {
79 * @param endDate 79 * @param endDate
80 * @return 80 * @return
81 */ 81 */
82 List<InspectionEquipIndicatorsDetailVO> getInspectionEquipOverviewDetail(String departIds, String startDate, String endDate); 82 List<InspectionEquipOverviewVO> getInspectionEquipOverviewDetail(String departIds, String startDate, String endDate);
83 83
84 /*** 84 /***
85 * 巡检分析-巡检任务异常项趋势 85 * 巡检分析-巡检任务异常项趋势
......
...@@ -548,8 +548,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService ...@@ -548,8 +548,8 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
548 List<String> tempInspectionTaskIdList = entry0.getValue(); 548 List<String> tempInspectionTaskIdList = entry0.getValue();
549 completableFutureList.add(CompletableFuture.supplyAsync(() -> { 549 completableFutureList.add(CompletableFuture.supplyAsync(() -> {
550 InspectionTaskIndicatorsVO vo = new InspectionTaskIndicatorsVO(); 550 InspectionTaskIndicatorsVO vo = new InspectionTaskIndicatorsVO();
551 vo.setDepartName(StringUtils.isEmpty(departId) ? departId : sysDepartDictMap.get(departId));
552 //初始化数据 551 //初始化数据
552 vo.setDepartName(StringUtils.isEmpty(departId) ? departId : sysDepartDictMap.get(departId));
553 vo.setCompletionRate("0"); 553 vo.setCompletionRate("0");
554 vo.setUnCompletionRate("0"); 554 vo.setUnCompletionRate("0");
555 vo.setAbnormalRate("0"); 555 vo.setAbnormalRate("0");
...@@ -1268,31 +1268,139 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService ...@@ -1268,31 +1268,139 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService
1268 * @param endDate 1268 * @param endDate
1269 * @return 1269 * @return
1270 */ 1270 */
1271 public List<InspectionEquipIndicatorsDetailVO> getInspectionEquipOverviewDetail(String departIds, String startDate, String endDate){ 1271 public List<InspectionEquipOverviewVO> getInspectionEquipOverviewDetail(String departIds, String startDate, String endDate){
1272 // return inspectionAnalysisMapper.getInspectionEquipIndicatorsDetail( departIds, startDate, endDate); 1272 List<InspectionEquipOverviewVO> voList = new ArrayList<>();
1273 //return null; 1273 //查询时间内已巡检任务信息
1274 String sql = "select d.depart_name, d.id 'departId' , ifnull(kkk.total_count,0) 'totalInspectionEquipCount' , ifnull(kkk.yj_count,0) 'checkedInspectionEquipCount' ,ifnull(kkk.yc_count,0) 'abnormalInspectionEquipCount' ,(ifnull(kkk.yj_count,0) - ifnull(kkk.yc_count,0) ) 'normalInspectionEquipCount' , " + 1274 QueryWrapper<InspectionTask> inspectionTaskQueryWrapper = new QueryWrapper();
1275 " (ifnull(kkk.total_count,0) - ifnull(kkk.yj_count,0) ) 'notCheckedInspectionEquipCount' " + 1275 if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) {
1276 " from sys_depart d "; 1276 inspectionTaskQueryWrapper.ge("inspection_cycle_start_date", startDate + " 00:00:00");
1277 sql +=" left join ( select ei.depart_id ,count( eee.equip_info_id) 'total_count' ,ifnull( SUM( CASE WHEN fff.equip_info_id > '0' THEN 1 ELSE 0 END ),0) as 'yj_count',ifnull( SUM( CASE WHEN ggg.equip_info_id > '0' THEN 1 ELSE 0 END ),0) as 'yc_count'"; 1277 inspectionTaskQueryWrapper.le("inspection_cycle_start_date", endDate + " 23:59:59");
1278 sql +=" from ( " + getInspectionEquipIdsSql(departIds, startDate, endDate) +") eee ";
1279 sql += " left join ( "+ getCheckedInspectionEquipIds(departIds ,startDate, endDate,null)+" ) fff on fff.equip_info_id = eee.equip_info_id";
1280 sql += " left join ( "+ getCheckedInspectionEquipIds(departIds ,startDate, endDate,"0")+" ) ggg on ggg.equip_info_id = eee.equip_info_id ";
1281 sql += " left join equipment_info ei on eee.equip_info_id = ei.id ";
1282 sql +=" group by ei.depart_id ";
1283 sql +=" ) kkk on d.id = kkk.depart_id ";
1284
1285 sql +=" where d.depart_type = 1 ";
1286 if(StringUtils.isNotEmpty(departIds)){
1287 sql +=" and d.id in ("+JSUtils.quoteEach(departIds,",")+") ";
1288 } 1278 }
1289 sql += " order by kkk.total_count desc "; 1279 inspectionTaskQueryWrapper.in("task_state", "2","3");
1290 List<InspectionEquipIndicatorsDetailVO> dataList =getJdbcTemplate().query(sql,new BeanPropertyRowMapper<InspectionEquipIndicatorsDetailVO>(InspectionEquipIndicatorsDetailVO.class)); 1280 List<InspectionTask> inspectionTaskList = inspectionTaskService.list(inspectionTaskQueryWrapper);
1291 1281 // 巡检任务按照departId分组
1292 return dataList; 1282 Map<String, List<String>> departId2inspectionTaskIdMap = new LinkedHashMap<>();
1293 1283 for (InspectionTask inspectionTask : inspectionTaskList) {
1294 1284 String departId = inspectionTask.getDepartId();
1285 List<String> inspectionTaskIdList = departId2inspectionTaskIdMap.computeIfAbsent(departId, k -> new ArrayList<>());
1286 inspectionTaskIdList.add(inspectionTask.getId());
1287 }
1288 List<CompletableFuture> completableFutureList = new ArrayList<>();
1289 // 翻译
1290 Map<String, String> sysDepartDictMap = businessService.dictMap("sys_depart", null);
1291 for (Map.Entry<String, List<String>> entry0: departId2inspectionTaskIdMap.entrySet()) {
1292 String departId = entry0.getKey();
1293 List<String> tempInspectionTaskIdList = entry0.getValue();
1294 completableFutureList.add(CompletableFuture.supplyAsync(() -> {
1295 InspectionEquipOverviewVO inspectionEquipOverviewVO = new InspectionEquipOverviewVO();
1296 //设置初始化数据
1297 inspectionEquipOverviewVO.setDepartName(StringUtils.isEmpty(departId) ? departId : sysDepartDictMap.get(departId));
1298 inspectionEquipOverviewVO.setTotalInspectionEquipCount(0);
1299 inspectionEquipOverviewVO.setCheckedInspectionEquipCount(0);
1300 inspectionEquipOverviewVO.setNotCheckedInspectionEquipCount(0);
1301 inspectionEquipOverviewVO.setNormalInspectionEquipCount(0);
1302 inspectionEquipOverviewVO.setAbnormalInspectionEquipCount(0);
1303 inspectionEquipOverviewVO.setProcessedAbnormalRate("0");
1304 if (tempInspectionTaskIdList.size() > 0) {
1305 //查询应检设备数量
1306 QueryWrapper<InspectionTaskPointFillGroup> inspectionTaskPointFillGroupQueryWrapper = new QueryWrapper<>();
1307 inspectionTaskPointFillGroupQueryWrapper.in("inspection_task_id", tempInspectionTaskIdList);
1308 inspectionTaskPointFillGroupQueryWrapper.select("equip_info_id equipInfoId,inspection_point_fill_group_id inspectionPointFillGroupId,inspection_fill_group_id inspectionFillGroupId,inspection_task_id inspectionTaskId");
1309 inspectionTaskPointFillGroupQueryWrapper.groupBy("equip_info_id,inspection_point_fill_group_id,inspection_fill_group_id,inspection_task_id");
1310 inspectionTaskPointFillGroupQueryWrapper.isNotNull("equip_info_id");
1311 inspectionTaskPointFillGroupQueryWrapper.ne("equip_info_id", "");
1312 List<Map<String, Object>> equipInfoIdList = inspectionTaskPointFillGroupService.listMaps(inspectionTaskPointFillGroupQueryWrapper);
1313 //应检设备数量
1314 Integer totalInspectionEquipCount = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("equipInfoId"))).collect(Collectors.toSet()).size();
1315 //查询已巡检设备数量
1316 List<String> inspectionPointFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionPointFillGroupId"))).collect(Collectors.toList());
1317 List<String> inspectionFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionFillGroupId"))).collect(Collectors.toList());
1318 int checkedInspectionEquipCount = 0;
1319 int notCheckedInspectionEquipCount = 0;
1320 int abnormalInspectionEquipCount = 0;
1321 if (inspectionPointFillGroupIdList.size() > 0) {
1322 QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>();
1323 inspectionTaskFillContentQueryWrapper.in("isfc.inspection_task_id", tempInspectionTaskIdList);
1324 inspectionTaskFillContentQueryWrapper.in("isfc.inspection_point_fill_group_id", inspectionPointFillGroupIdList);
1325 inspectionTaskFillContentQueryWrapper.in("isfc.inspection_fill_group_id",inspectionFillGroupIdList);
1326 inspectionTaskFillContentQueryWrapper.isNotNull("itpfg.equip_info_id");
1327 inspectionTaskFillContentQueryWrapper.ne("itpfg.equip_info_id", "");
1328 inspectionTaskFillContentQueryWrapper.groupBy("itpfg.equip_info_id");
1329 inspectionTaskFillContentQueryWrapper.isNotNull("isfc.fill_content");
1330 inspectionTaskFillContentQueryWrapper.ne("isfc.fill_content", "");
1331 List<Map<String, Object>> inspectionTaskFillContentList = inspectionTaskFillContentService.getList(inspectionTaskFillContentQueryWrapper);
1332 //已检设备数量
1333 checkedInspectionEquipCount = inspectionTaskFillContentList.size();
1334 //未检设备数量
1335 notCheckedInspectionEquipCount = totalInspectionEquipCount - checkedInspectionEquipCount;
1336 //查询异常填报设备数量
1337 inspectionTaskFillContentQueryWrapper.eq("choice_state", "0");
1338 abnormalInspectionEquipCount = inspectionTaskFillContentService.getList(inspectionTaskFillContentQueryWrapper).size();
1339 }
1340 //查询问题上报id集合
1341 QueryWrapper<InspectionTaskProblemReport> inspectionTaskProblemReportQueryWrapper = new QueryWrapper<>();
1342 inspectionTaskProblemReportQueryWrapper.in("inspection_task_id", tempInspectionTaskIdList);
1343 List<InspectionTaskProblemReport> inspectionTaskProblemReportList = inspectionTaskProblemReportService.list(inspectionTaskProblemReportQueryWrapper);
1344 List<String> problemReportIdList = inspectionTaskProblemReportList.stream().map(InspectionTaskProblemReport::getProblemReportPlanId).collect(Collectors.toList());
1345 List<ProblemReportPlan> problemReportPlanList = new ArrayList<>();
1346 if (problemReportIdList.size() > 0) {
1347 QueryWrapper<ProblemReportPlan> problemReportPlanQueryWrapper = new QueryWrapper<>();
1348 problemReportPlanQueryWrapper.in("id", problemReportIdList);
1349 problemReportPlanList = problemReportPlanService.list(problemReportPlanQueryWrapper);
1350 }
1351 //存放问题上报的实例ID
1352 Set<String> processInstanceIdList = problemReportPlanList.stream().map(ProblemReportPlan::getProcessInstanceId).collect(Collectors.toSet());
1353 Map<String, Map<String, String>> processStateMap = new HashMap<>();
1354 if (processInstanceIdList.size() > 0) {
1355 processStateMap = flowBusinessService.getProcessState(processInstanceIdList);
1356 }
1357 Map<String, List<String>> processInstanceStateMap = new HashMap<>();
1358 List<String> tempProcessInstanceIdList;
1359 for (Map.Entry<String, Map<String, String>> entry : processStateMap.entrySet()) {
1360 tempProcessInstanceIdList = new ArrayList<>();
1361 String processInstanceId = entry.getKey();
1362 String state = entry.getValue().get("state");
1363 if (processInstanceStateMap.get(state) != null) {
1364 tempProcessInstanceIdList = processInstanceStateMap.get(state);
1365 }
1366 tempProcessInstanceIdList.add(processInstanceId);
1367 processInstanceStateMap.put(state, tempProcessInstanceIdList);
1368 }
1369 //异常项数量(问题上报)
1370 Integer abnormalItemsCount = problemReportPlanList.size();
1371 //已处理异常项数量(问题上报)
1372 Integer processedAbnormalItemsCount = 0;
1373 if (processInstanceStateMap != null && processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED) != null) {
1374 processedAbnormalItemsCount = processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED).size();
1375 }
1376 //异常项处理率
1377 String processedAbnormalRate = "0";
1378 if (abnormalItemsCount != 0) {
1379 processedAbnormalRate = numberFormat.format(processedAbnormalItemsCount / (double) abnormalItemsCount * 100);
1380 }
1381 inspectionEquipOverviewVO.setTotalInspectionEquipCount(totalInspectionEquipCount);
1382 inspectionEquipOverviewVO.setCheckedInspectionEquipCount(checkedInspectionEquipCount);
1383 inspectionEquipOverviewVO.setNotCheckedInspectionEquipCount(notCheckedInspectionEquipCount);
1384 inspectionEquipOverviewVO.setNormalInspectionEquipCount(checkedInspectionEquipCount - abnormalInspectionEquipCount);
1385 inspectionEquipOverviewVO.setAbnormalInspectionEquipCount(abnormalInspectionEquipCount);
1386 inspectionEquipOverviewVO.setProcessedAbnormalRate(processedAbnormalRate);
1387 }
1388 return inspectionEquipOverviewVO;
1389 }, (Executor) SpringContextUtils.getBean("taskExecutor2")));
1390 }
1391 // 等待所有子线程处理完毕
1392 CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[0])).join();
1393 for (CompletableFuture completableFuture : completableFutureList) {
1394 try {
1395 InspectionEquipOverviewVO vo = (InspectionEquipOverviewVO) completableFuture.get();
1396 voList.add(vo);
1397 } catch (Exception e) {
1398 e.printStackTrace();
1399 }
1400 }
1401 return voList;
1295 } 1402 }
1403
1296 @Override 1404 @Override
1297 public List<InspectionAbnormalItemsTrendVO> getInspectionAbnormalItemsTrend(String startDate, String endDate) { 1405 public List<InspectionAbnormalItemsTrendVO> getInspectionAbnormalItemsTrend(String startDate, String endDate) {
1298 List<InspectionAbnormalItemsTrendVO> inspectionAbnormalItemsTrendVOList = new ArrayList<>(); 1406 List<InspectionAbnormalItemsTrendVO> inspectionAbnormalItemsTrendVOList = new ArrayList<>();
......
...@@ -29,4 +29,6 @@ public class InspectionEquipOverviewVO { ...@@ -29,4 +29,6 @@ public class InspectionEquipOverviewVO {
29 private Integer abnormalInspectionEquipCount; 29 private Integer abnormalInspectionEquipCount;
30 @ApiModelProperty(value = "异常项处理率") 30 @ApiModelProperty(value = "异常项处理率")
31 private String processedAbnormalRate; 31 private String processedAbnormalRate;
32
33 private String departName;
32 } 34 }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!