巡检分析 巡检设备指标 详情
正在显示
4 个修改的文件
包含
156 行增加
和
18 行删除
... | @@ -221,19 +221,19 @@ public class InspectionAnalysisController { | ... | @@ -221,19 +221,19 @@ public class InspectionAnalysisController { |
221 | @GetMapping("/getInspectionEquipIndicators") | 221 | @GetMapping("/getInspectionEquipIndicators") |
222 | public Result<InspectionEquipIndicatorsVO> getInspectionEquipIndicators(String startDate, String endDate){ | 222 | public Result<InspectionEquipIndicatorsVO> getInspectionEquipIndicators(String startDate, String endDate){ |
223 | Result<InspectionEquipIndicatorsVO> result = new Result<>(); | 223 | Result<InspectionEquipIndicatorsVO> result = new Result<>(); |
224 | InspectionEquipIndicatorsVO inspectionEquipIndicatorsVO = inspectionAnalysisService.getInspectionEquipIndicatorsNew(startDate,endDate); | 224 | InspectionEquipIndicatorsVO inspectionEquipIndicatorsVO = inspectionAnalysisService.getInspectionEquipIndicators(startDate,endDate); |
225 | result.setSuccess(true); | 225 | result.setSuccess(true); |
226 | result.setResult(inspectionEquipIndicatorsVO); | 226 | result.setResult(inspectionEquipIndicatorsVO); |
227 | return result; | 227 | return result; |
228 | } | 228 | } |
229 | @ApiOperation(value = "巡检分析-巡检设备指标-详情", notes = "巡检分析-巡检设备指标-详情") | 229 | @ApiOperation(value = "巡检分析-巡检设备指标-详情", notes = "巡检分析-巡检设备指标-详情") |
230 | @GetMapping("/getInspectionEquipIndicatorsDetail") | 230 | @GetMapping("/getInspectionEquipIndicatorsDetail") |
231 | public Result<List<InspectionEquipIndicatorsDetailVO>> getInspectionEquipIndicators(String departId,String startDate, String endDate){ | 231 | public Result<List<InspectionEquipIndicatorsVO>> getInspectionEquipIndicators(String departId,String startDate, String endDate){ |
232 | Result<List<InspectionEquipIndicatorsDetailVO>> result = new Result<>(); | 232 | Result<List<InspectionEquipIndicatorsVO>> result = new Result<>(); |
233 | if(StringUtils.isEmpty(departId)){ | 233 | if(StringUtils.isEmpty(departId)){ |
234 | departId = BaseContextHandler.getDeparts(); | 234 | departId = BaseContextHandler.getDeparts(); |
235 | } | 235 | } |
236 | List<InspectionEquipIndicatorsDetailVO> dataList = inspectionAnalysisService.getInspectionEquipIndicatorsDetail(JSUtils.quoteEach(departId,","),startDate,endDate); | 236 | List<InspectionEquipIndicatorsVO> dataList = inspectionAnalysisService.getInspectionEquipIndicatorsDetail(JSUtils.quoteEach(departId,","),startDate,endDate); |
237 | result.setSuccess(true); | 237 | result.setSuccess(true); |
238 | result.setResult(dataList); | 238 | result.setResult(dataList); |
239 | return result; | 239 | return result; | ... | ... |
... | @@ -43,7 +43,7 @@ public interface IInspectionAnalysisService { | ... | @@ -43,7 +43,7 @@ public interface IInspectionAnalysisService { |
43 | * @param endDate | 43 | * @param endDate |
44 | * @return | 44 | * @return |
45 | */ | 45 | */ |
46 | List<InspectionEquipIndicatorsDetailVO> getInspectionEquipIndicatorsDetail(String departIds,String startDate, String endDate); | 46 | List<InspectionEquipIndicatorsVO> getInspectionEquipIndicatorsDetail(String departIds,String startDate, String endDate); |
47 | 47 | ||
48 | /*** | 48 | /*** |
49 | * 巡检分析-巡检任务概况 | 49 | * 巡检分析-巡检任务概况 | ... | ... |
... | @@ -679,7 +679,6 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -679,7 +679,6 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
679 | public InspectionEquipIndicatorsVO getInspectionEquipIndicators(String startDate, String endDate) { | 679 | public InspectionEquipIndicatorsVO getInspectionEquipIndicators(String startDate, String endDate) { |
680 | InspectionEquipIndicatorsVO inspectionEquipIndicatorsVO = new InspectionEquipIndicatorsVO(); | 680 | InspectionEquipIndicatorsVO inspectionEquipIndicatorsVO = new InspectionEquipIndicatorsVO(); |
681 | //设置初始值 | 681 | //设置初始值 |
682 | inspectionEquipIndicatorsVO.setFinishRate("0"); | ||
683 | inspectionEquipIndicatorsVO.setCompletionRate("0"); | 682 | inspectionEquipIndicatorsVO.setCompletionRate("0"); |
684 | inspectionEquipIndicatorsVO.setUnCompletionRate("0"); | 683 | inspectionEquipIndicatorsVO.setUnCompletionRate("0"); |
685 | inspectionEquipIndicatorsVO.setAbnormalRate("0"); | 684 | inspectionEquipIndicatorsVO.setAbnormalRate("0"); |
... | @@ -707,15 +706,15 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -707,15 +706,15 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
707 | Integer totalInspectionEquipCount = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("equipInfoId"))).collect(Collectors.toSet()).size(); | 706 | Integer totalInspectionEquipCount = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("equipInfoId"))).collect(Collectors.toSet()).size(); |
708 | //查询已巡检设备数量 | 707 | //查询已巡检设备数量 |
709 | List<String> inspectionPointFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionPointFillGroupId"))).collect(Collectors.toList()); | 708 | List<String> inspectionPointFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionPointFillGroupId"))).collect(Collectors.toList()); |
710 | List<String> inspectionFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionFillGroupId"))).collect(Collectors.toList());//构筑物 | 709 | List<String> inspectionFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionFillGroupId"))).collect(Collectors.toList()); |
711 | int checkedInspectionEquipCount = 0; | 710 | int checkedInspectionEquipCount = 0; |
712 | int notCheckedInspectionEquipCount = 0; | 711 | int notCheckedInspectionEquipCount = 0; |
713 | int abnormalInspectionEquipCount = 0; | 712 | int abnormalInspectionEquipCount = 0; |
714 | if (inspectionPointFillGroupIdList.size() > 0) { | 713 | if (inspectionPointFillGroupIdList.size() > 0) { |
715 | QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>(); | 714 | QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>(); |
716 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_task_id", inspectionTaskIdList);//任务id集合 | 715 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_task_id", inspectionTaskIdList); |
717 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_point_fill_group_id", inspectionPointFillGroupIdList);//巡检点-填报组ID | 716 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_point_fill_group_id", inspectionPointFillGroupIdList); |
718 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_fill_group_id",inspectionFillGroupIdList);//填报组ID | 717 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_fill_group_id",inspectionFillGroupIdList); |
719 | inspectionTaskFillContentQueryWrapper.isNotNull("itpfg.equip_info_id"); | 718 | inspectionTaskFillContentQueryWrapper.isNotNull("itpfg.equip_info_id"); |
720 | inspectionTaskFillContentQueryWrapper.ne("itpfg.equip_info_id", ""); | 719 | inspectionTaskFillContentQueryWrapper.ne("itpfg.equip_info_id", ""); |
721 | inspectionTaskFillContentQueryWrapper.groupBy("itpfg.equip_info_id"); | 720 | inspectionTaskFillContentQueryWrapper.groupBy("itpfg.equip_info_id"); |
... | @@ -766,11 +765,6 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -766,11 +765,6 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
766 | if (processInstanceStateMap != null && processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED) != null) { | 765 | if (processInstanceStateMap != null && processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED) != null) { |
767 | processedAbnormalItemsCount = processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED).size(); | 766 | processedAbnormalItemsCount = processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED).size(); |
768 | } | 767 | } |
769 | //完成率 | ||
770 | String finishRate = "0"; | ||
771 | if (totalInspectionEquipCount != 0) { | ||
772 | finishRate = numberFormat.format(checkedInspectionEquipCount / (double) totalInspectionEquipCount * 100); | ||
773 | } | ||
774 | //覆盖率 | 768 | //覆盖率 |
775 | String completionRate = "0"; | 769 | String completionRate = "0"; |
776 | if (totalInspectionEquipCount != 0) { | 770 | if (totalInspectionEquipCount != 0) { |
... | @@ -791,7 +785,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -791,7 +785,7 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
791 | if (abnormalItemsCount != 0) { | 785 | if (abnormalItemsCount != 0) { |
792 | processedAbnormalRate = numberFormat.format(processedAbnormalItemsCount / (double) abnormalItemsCount * 100); | 786 | processedAbnormalRate = numberFormat.format(processedAbnormalItemsCount / (double) abnormalItemsCount * 100); |
793 | } | 787 | } |
794 | inspectionEquipIndicatorsVO.setFinishRate(finishRate); | 788 | inspectionEquipIndicatorsVO.setFinishRate(completionRate); |
795 | inspectionEquipIndicatorsVO.setCompletionRate(completionRate); | 789 | inspectionEquipIndicatorsVO.setCompletionRate(completionRate); |
796 | inspectionEquipIndicatorsVO.setUnCompletionRate(unCompletionRate); | 790 | inspectionEquipIndicatorsVO.setUnCompletionRate(unCompletionRate); |
797 | inspectionEquipIndicatorsVO.setAbnormalRate(abnormalRate); | 791 | inspectionEquipIndicatorsVO.setAbnormalRate(abnormalRate); |
... | @@ -837,8 +831,150 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService | ... | @@ -837,8 +831,150 @@ public class InspectionAnalysisServiceImpl implements IInspectionAnalysisService |
837 | * @param endDate | 831 | * @param endDate |
838 | * @return | 832 | * @return |
839 | */ | 833 | */ |
840 | public List<InspectionEquipIndicatorsDetailVO> getInspectionEquipIndicatorsDetail(String departIds, String startDate, String endDate){ | 834 | public List<InspectionEquipIndicatorsVO> getInspectionEquipIndicatorsDetail(String departIds, String startDate, String endDate){ |
841 | return inspectionAnalysisMapper.getInspectionEquipIndicatorsDetail( departIds, startDate, endDate); | 835 | List<InspectionEquipIndicatorsVO> voList = new ArrayList<>(); |
836 | //查询时间内已巡检任务信息 | ||
837 | QueryWrapper<InspectionTask> inspectionTaskQueryWrapper = new QueryWrapper(); | ||
838 | if (StringUtils.isNotBlank(startDate) && StringUtils.isNotBlank(endDate)) { | ||
839 | inspectionTaskQueryWrapper.ge("inspection_cycle_start_date", startDate + " 00:00:00"); | ||
840 | inspectionTaskQueryWrapper.le("inspection_cycle_start_date", endDate + " 23:59:59"); | ||
841 | } | ||
842 | inspectionTaskQueryWrapper.in("task_state", "2","3"); | ||
843 | List<InspectionTask> inspectionTaskList = inspectionTaskService.list(inspectionTaskQueryWrapper); | ||
844 | // 巡检任务按照departId分组 | ||
845 | Map<String, List<String>> departId2inspectionTaskIdMap = new LinkedHashMap<>(); | ||
846 | for (InspectionTask inspectionTask : inspectionTaskList) { | ||
847 | String departId = inspectionTask.getDepartId(); | ||
848 | List<String> inspectionTaskIdList = departId2inspectionTaskIdMap.computeIfAbsent(departId, k -> new ArrayList<>()); | ||
849 | inspectionTaskIdList.add(inspectionTask.getId()); | ||
850 | } | ||
851 | List<CompletableFuture> completableFutureList = new ArrayList<>(); | ||
852 | // 翻译 | ||
853 | Map<String, String> sysDepartDictMap = businessService.dictMap("sys_depart", null); | ||
854 | // 遍历departId | ||
855 | for (Map.Entry<String, List<String>> entry0: departId2inspectionTaskIdMap.entrySet()) { | ||
856 | String departId = entry0.getKey(); | ||
857 | List<String> tempInspectionTaskIdList = entry0.getValue(); | ||
858 | completableFutureList.add(CompletableFuture.supplyAsync(() -> { | ||
859 | InspectionEquipIndicatorsVO vo = new InspectionEquipIndicatorsVO(); | ||
860 | //设置初始值 | ||
861 | vo.setDepartName(StringUtils.isEmpty(departId) ? departId : sysDepartDictMap.get(departId)); | ||
862 | vo.setCompletionRate("0"); | ||
863 | vo.setUnCompletionRate("0"); | ||
864 | vo.setAbnormalRate("0"); | ||
865 | vo.setProcessedAbnormalRate("0"); | ||
866 | if (tempInspectionTaskIdList.size() > 0) { | ||
867 | //查询应检设备数量 | ||
868 | QueryWrapper<InspectionTaskPointFillGroup> inspectionTaskPointFillGroupQueryWrapper = new QueryWrapper<>(); | ||
869 | inspectionTaskPointFillGroupQueryWrapper.in("inspection_task_id", tempInspectionTaskIdList); | ||
870 | inspectionTaskPointFillGroupQueryWrapper.select("equip_info_id equipInfoId,inspection_point_fill_group_id inspectionPointFillGroupId,inspection_fill_group_id inspectionFillGroupId,inspection_task_id inspectionTaskId"); | ||
871 | inspectionTaskPointFillGroupQueryWrapper.groupBy("equip_info_id,inspection_point_fill_group_id,inspection_fill_group_id,inspection_task_id"); | ||
872 | inspectionTaskPointFillGroupQueryWrapper.isNotNull("equip_info_id"); | ||
873 | inspectionTaskPointFillGroupQueryWrapper.ne("equip_info_id", ""); | ||
874 | List<Map<String, Object>> equipInfoIdList = inspectionTaskPointFillGroupService.listMaps(inspectionTaskPointFillGroupQueryWrapper); | ||
875 | //应检设备数量 | ||
876 | Integer totalInspectionEquipCount = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("equipInfoId"))).collect(Collectors.toSet()).size(); | ||
877 | //查询已巡检设备数量 | ||
878 | List<String> inspectionPointFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionPointFillGroupId"))).collect(Collectors.toList()); | ||
879 | List<String> inspectionFillGroupIdList = equipInfoIdList.stream().map(m -> ConvertUtils.getString(m.get("inspectionFillGroupId"))).collect(Collectors.toList()); | ||
880 | int checkedInspectionEquipCount = 0; | ||
881 | int notCheckedInspectionEquipCount = 0; | ||
882 | int abnormalInspectionEquipCount = 0; | ||
883 | if (inspectionPointFillGroupIdList.size() > 0) { | ||
884 | QueryWrapper<InspectionTaskFillContent> inspectionTaskFillContentQueryWrapper = new QueryWrapper<>(); | ||
885 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_task_id", tempInspectionTaskIdList); | ||
886 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_point_fill_group_id", inspectionPointFillGroupIdList); | ||
887 | inspectionTaskFillContentQueryWrapper.in("isfc.inspection_fill_group_id",inspectionFillGroupIdList); | ||
888 | inspectionTaskFillContentQueryWrapper.isNotNull("itpfg.equip_info_id"); | ||
889 | inspectionTaskFillContentQueryWrapper.ne("itpfg.equip_info_id", ""); | ||
890 | inspectionTaskFillContentQueryWrapper.groupBy("itpfg.equip_info_id"); | ||
891 | inspectionTaskFillContentQueryWrapper.isNotNull("isfc.fill_content"); | ||
892 | inspectionTaskFillContentQueryWrapper.ne("isfc.fill_content", ""); | ||
893 | List<Map<String, Object>> inspectionTaskFillContentList = inspectionTaskFillContentService.getList(inspectionTaskFillContentQueryWrapper); | ||
894 | //已检设备数量 | ||
895 | checkedInspectionEquipCount = inspectionTaskFillContentList.size(); | ||
896 | //未检设备数量 | ||
897 | notCheckedInspectionEquipCount = totalInspectionEquipCount - checkedInspectionEquipCount; | ||
898 | //查询异常填报设备数量 | ||
899 | inspectionTaskFillContentQueryWrapper.eq("choice_state", "0"); | ||
900 | abnormalInspectionEquipCount = inspectionTaskFillContentService.getList(inspectionTaskFillContentQueryWrapper).size(); | ||
901 | } | ||
902 | //查询问题上报id集合 | ||
903 | QueryWrapper<InspectionTaskProblemReport> inspectionTaskProblemReportQueryWrapper = new QueryWrapper<>(); | ||
904 | inspectionTaskProblemReportQueryWrapper.in("inspection_task_id", tempInspectionTaskIdList); | ||
905 | List<InspectionTaskProblemReport> inspectionTaskProblemReportList = inspectionTaskProblemReportService.list(inspectionTaskProblemReportQueryWrapper); | ||
906 | List<String> problemReportIdList = inspectionTaskProblemReportList.stream().map(InspectionTaskProblemReport::getProblemReportPlanId).collect(Collectors.toList()); | ||
907 | List<ProblemReportPlan> problemReportPlanList = new ArrayList<>(); | ||
908 | if (problemReportIdList.size() > 0) { | ||
909 | QueryWrapper<ProblemReportPlan> problemReportPlanQueryWrapper = new QueryWrapper<>(); | ||
910 | problemReportPlanQueryWrapper.in("id", problemReportIdList); | ||
911 | problemReportPlanList = problemReportPlanService.list(problemReportPlanQueryWrapper); | ||
912 | } | ||
913 | //存放问题上报的实例ID | ||
914 | Set<String> processInstanceIdList = problemReportPlanList.stream().map(ProblemReportPlan::getProcessInstanceId).collect(Collectors.toSet()); | ||
915 | Map<String, Map<String, String>> processStateMap = new HashMap<>(); | ||
916 | if (processInstanceIdList.size() > 0) { | ||
917 | processStateMap = flowBusinessService.getProcessState(processInstanceIdList); | ||
918 | } | ||
919 | Map<String, List<String>> processInstanceStateMap = new HashMap<>(); | ||
920 | List<String> tempProcessInstanceIdList; | ||
921 | for (Map.Entry<String, Map<String, String>> entry : processStateMap.entrySet()) { | ||
922 | tempProcessInstanceIdList = new ArrayList<>(); | ||
923 | String processInstanceId = entry.getKey(); | ||
924 | String state = entry.getValue().get("state"); | ||
925 | if (processInstanceStateMap.get(state) != null) { | ||
926 | tempProcessInstanceIdList = processInstanceStateMap.get(state); | ||
927 | } | ||
928 | tempProcessInstanceIdList.add(processInstanceId); | ||
929 | processInstanceStateMap.put(state, tempProcessInstanceIdList); | ||
930 | } | ||
931 | //异常项数量(问题上报) | ||
932 | Integer abnormalItemsCount = problemReportPlanList.size(); | ||
933 | //已处理异常项数量(问题上报) | ||
934 | Integer processedAbnormalItemsCount = 0; | ||
935 | if (processInstanceStateMap != null && processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED) != null) { | ||
936 | processedAbnormalItemsCount = processInstanceStateMap.get(FlowEngineConstant.STATUS_FINISHED).size(); | ||
937 | } | ||
938 | //覆盖率 | ||
939 | String completionRate = "0"; | ||
940 | if (totalInspectionEquipCount != 0) { | ||
941 | completionRate = numberFormat.format(checkedInspectionEquipCount / (double) totalInspectionEquipCount * 100); | ||
942 | } | ||
943 | //未检率 | ||
944 | String unCompletionRate = "0"; | ||
945 | if (totalInspectionEquipCount != 0) { | ||
946 | unCompletionRate = numberFormat.format(notCheckedInspectionEquipCount / (double) totalInspectionEquipCount * 100); | ||
947 | } | ||
948 | //异常率 | ||
949 | String abnormalRate = "0"; | ||
950 | if (checkedInspectionEquipCount != 0) { | ||
951 | abnormalRate = numberFormat.format(abnormalInspectionEquipCount / (double) checkedInspectionEquipCount * 100); | ||
952 | } | ||
953 | //异常项处理率 | ||
954 | String processedAbnormalRate = "0"; | ||
955 | if (abnormalItemsCount != 0) { | ||
956 | processedAbnormalRate = numberFormat.format(processedAbnormalItemsCount / (double) abnormalItemsCount * 100); | ||
957 | } | ||
958 | vo.setFinishRate(completionRate); | ||
959 | vo.setCompletionRate(completionRate); | ||
960 | vo.setUnCompletionRate(unCompletionRate); | ||
961 | vo.setAbnormalRate(abnormalRate); | ||
962 | vo.setProcessedAbnormalRate(processedAbnormalRate); | ||
963 | } | ||
964 | return vo; | ||
965 | }, (Executor) SpringContextUtils.getBean("taskExecutor2"))); | ||
966 | } | ||
967 | // 等待所有子线程处理完毕 | ||
968 | CompletableFuture.allOf(completableFutureList.toArray(new CompletableFuture[0])).join(); | ||
969 | for (CompletableFuture completableFuture : completableFutureList) { | ||
970 | try { | ||
971 | InspectionEquipIndicatorsVO vo = (InspectionEquipIndicatorsVO) completableFuture.get(); | ||
972 | voList.add(vo); | ||
973 | } catch (Exception e) { | ||
974 | e.printStackTrace(); | ||
975 | } | ||
976 | } | ||
977 | return voList; | ||
842 | } | 978 | } |
843 | 979 | ||
844 | /*** | 980 | /*** | ... | ... |
... | @@ -28,4 +28,6 @@ public class InspectionEquipIndicatorsVO { | ... | @@ -28,4 +28,6 @@ public class InspectionEquipIndicatorsVO { |
28 | @ApiModelProperty(value = "异常项处理率") | 28 | @ApiModelProperty(value = "异常项处理率") |
29 | private String processedAbnormalRate; | 29 | private String processedAbnormalRate; |
30 | 30 | ||
31 | private String departName; | ||
32 | |||
31 | } | 33 | } | ... | ... |
-
请 注册 或 登录 后发表评论