c33084dc sonin

巡检分析 巡检设备指标 详情

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