소스 검색

修正代码自测问题(排序、查工单数据)

wangchenghong 3 년 전
부모
커밋
9df2d153cc

+ 46 - 34
src/main/java/com/persagy/apm/energy/report/common/service/impl/CommonServiceImpl.java

@@ -148,13 +148,13 @@ public class CommonServiceImpl implements CommonService {
         }
         Integer workCount = null;
         Integer dealCount = null;
-        List<WorkOrder> askEndTimeList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "ask_end_time", null);
+        List<WorkOrder> askEndTimeList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "ask_end_time", null, "8");
         if (null != askEndTimeList) {
-            workCount = askEndTimeList.size();
+            dealCount = askEndTimeList.size();
         }
-        List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", null);
+        List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", null, null);
         if (null != createTimeWorkList) {
-            dealCount = createTimeWorkList.size();
+            workCount = createTimeWorkList.size();
         }
         Double completeRate = null;
         if (null != workCount && workCount != 0 && null != dealCount) {
@@ -165,8 +165,8 @@ public class CommonServiceImpl implements CommonService {
         hotelProjectAlarmDealInfo.setHandledPercent(completeRate);
         hotelProjectAlarmDealInfo.setTotalCount(workCount);
         // 获取项目信息
-        ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
-        hotelProjectAlarmDealInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
+//        ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
+//        hotelProjectAlarmDealInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
         return hotelProjectAlarmDealInfo;
     }
 
@@ -198,7 +198,9 @@ public class CommonServiceImpl implements CommonService {
                 if (!hotelProjectKpiItem.getProjectId().equals(projectId)) {
                     continue;
                 }
-                hotelProjectKpiItem.setRankWithinClimateZone(i + 1);
+                if (hotelProjectKpiItem.getControlRates() != null) {
+                    hotelProjectKpiItem.setRankWithinClimateZone(i + 1);
+                }
                 hotelProjectKpiItem.setName(function.getName());
                 return hotelProjectKpiItem;
             }
@@ -281,7 +283,10 @@ public class CommonServiceImpl implements CommonService {
             }
             hotelProjectMaintenanceInfo.setBreakCount(vo.getAlarmCount());
             hotelProjectMaintenanceInfo.setBreakLostTime(vo.getTotalDuration());
-            hotelProjectMaintenanceInfo.setRankWithinClimateZone(i + 1);
+            if (vo.getAlarmCount() != null) {
+                hotelProjectMaintenanceInfo.setRankWithinClimateZone(i + 1);
+            }
+            break;
         }
         hotelProjectMaintenanceInfo.setProjectNumWithinClimateZone(projectIdList.size());
         hotelProjectMaintenanceInfo.setGraphs(hotelProjectMaintenanceGraphList);
@@ -296,12 +301,12 @@ public class CommonServiceImpl implements CommonService {
         }
         HotelProjectEnergyWorkerOrderInfo hotelProjectEnergyWorkerOrderInfo = new HotelProjectEnergyWorkerOrderInfo();
         try {
-            List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", workOrderType);
+            List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", workOrderType, null);
             Integer totalCount = null;
             if (null != createTimeWorkList) {
                 totalCount = createTimeWorkList.size();
             }
-            List<WorkOrder> realFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", workOrderType);
+            List<WorkOrder> realFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", workOrderType, null);
             Integer executeCount = null;
             if (null != realFinishTimeWorkList) {
                 executeCount = realFinishTimeWorkList.size();
@@ -313,7 +318,7 @@ public class CommonServiceImpl implements CommonService {
                 executePercent = DataUtils.parseDouble(executeCount) / totalCount * 100;
             }
             hotelProjectEnergyWorkerOrderInfo.setExecutePercent(executePercent);
-            List<WorkOrder> energySaveRealFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", energySaveWorkOrderType);
+            List<WorkOrder> energySaveRealFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", energySaveWorkOrderType, null);
             Integer initiativeCount = null;
             if (null != energySaveRealFinishTimeWorkList) {
                 initiativeCount = energySaveRealFinishTimeWorkList.size();
@@ -345,8 +350,8 @@ public class CommonServiceImpl implements CommonService {
             hotelProjectEnergyWorkerOrderInfo.setDetailInfo(hotelProjectEnergyWorkOrderItemList);
             hotelProjectEnergyWorkerOrderInfo.setTotalEnergySave(totalEnergySave);
             // 获取项目信息
-            ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
-            hotelProjectEnergyWorkerOrderInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
+//            ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
+//            hotelProjectEnergyWorkerOrderInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
 
         } catch (Exception e) {
 
@@ -366,8 +371,8 @@ public class CommonServiceImpl implements CommonService {
         }
         HotelProjectMaintenanceBaseInfo hotelProjectMaintenanceBaseInfo = iDataAnalysisWebService.getHotelProjectMaintenanceBaseInfo(userCode, groupCode, projectId, reportDate);
         // 获取项目信息
-        ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
-        hotelProjectMaintenanceBaseInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
+//        ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
+//        hotelProjectMaintenanceBaseInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
         return hotelProjectMaintenanceBaseInfo;
     }
 
@@ -402,34 +407,41 @@ public class CommonServiceImpl implements CommonService {
             hotelProjectChillerPlantEfficiency.setMinEerTime(vo.getMinEerTimeList());
             hotelProjectChillerPlantEfficiency.setCoolingCapacityCurrentMonth(vo.getCoolingCapacityCurrentMonth());
             hotelProjectChillerPlantEfficiency.setEerDetailInfo(vo.getEerDetailInfo());
-            hotelProjectChillerPlantEfficiency.setRankWithinClimateZone(i + 1);
+            if (vo.getEer() != null) {
+                hotelProjectChillerPlantEfficiency.setRankWithinClimateZone(i + 1);
+            }
+            break;
         }
         hotelProjectChillerPlantEfficiency.setProjectNumWithinClimateZone(pjIdList.size());
         List<String> currentProjectIdList = new ArrayList<>();
         currentProjectIdList.add(projectId);
         List<ProjectEERDataVo> currentPjLastYearEERDataVoList = iCenterMiddlewareWebService.getProjectEERDataList(currentProjectIdList, groupCode, DateUtils.getYearOff(reportDate, -1));
-        ProjectEERDataVo currentPjLastYearEERDataVo = currentPjLastYearEERDataVoList.get(0);
-        if (currentPjLastYearEERDataVo != null) {
-            hotelProjectChillerPlantEfficiency.setCoolingCapacityLastYearSameTime(currentPjLastYearEERDataVo.getCoolingCapacityCurrentMonth());
-            Double currentMonth = hotelProjectChillerPlantEfficiency.getCoolingCapacityCurrentMonth();
-            Double lastYearSameMonth = currentPjLastYearEERDataVo.getCoolingCapacityCurrentMonth();
-            Double coolingCapacityRange = null;
-            if (lastYearSameMonth != null && lastYearSameMonth != 0.0 && currentMonth != null) {
-                coolingCapacityRange = (currentMonth - lastYearSameMonth) / lastYearSameMonth * 100;
+        if (!CollectionUtils.isEmpty(currentPjLastYearEERDataVoList)) {
+            ProjectEERDataVo currentPjLastYearEERDataVo = currentPjLastYearEERDataVoList.get(0);
+            if (currentPjLastYearEERDataVo != null) {
+                hotelProjectChillerPlantEfficiency.setCoolingCapacityLastYearSameTime(currentPjLastYearEERDataVo.getCoolingCapacityCurrentMonth());
+                Double currentMonth = hotelProjectChillerPlantEfficiency.getCoolingCapacityCurrentMonth();
+                Double lastYearSameMonth = currentPjLastYearEERDataVo.getCoolingCapacityCurrentMonth();
+                Double coolingCapacityRange = null;
+                if (lastYearSameMonth != null && lastYearSameMonth != 0.0 && currentMonth != null) {
+                    coolingCapacityRange = (currentMonth - lastYearSameMonth) / lastYearSameMonth * 100;
+                }
+                hotelProjectChillerPlantEfficiency.setCoolingCapacityRange(coolingCapacityRange);
             }
-            hotelProjectChillerPlantEfficiency.setCoolingCapacityRange(coolingCapacityRange);
         }
         List<ProjectEERDataVo> currentPjLastMonthEERDataVoList = iCenterMiddlewareWebService.getProjectEERDataList(currentProjectIdList, groupCode, DateUtils.getYearOff(reportDate, -1));
-        ProjectEERDataVo currentPjLastMonthEERDataVo = currentPjLastMonthEERDataVoList.get(0);
-        if (currentPjLastMonthEERDataVo != null) {
-            hotelProjectChillerPlantEfficiency.setEerLastMonth(currentPjLastMonthEERDataVo.getEer());
-            Double currentMonth = hotelProjectChillerPlantEfficiency.getEer();
-            Double lastMonth = currentPjLastMonthEERDataVo.getEer();
-            Double eerMonthRange = null;
-            if (lastMonth != null && lastMonth != 0.0 && currentMonth != null) {
-                eerMonthRange = (currentMonth - lastMonth) / lastMonth * 100;
+        if (!CollectionUtils.isEmpty(currentPjLastMonthEERDataVoList)) {
+            ProjectEERDataVo currentPjLastMonthEERDataVo = currentPjLastMonthEERDataVoList.get(0);
+            if (currentPjLastMonthEERDataVo != null) {
+                hotelProjectChillerPlantEfficiency.setEerLastMonth(currentPjLastMonthEERDataVo.getEer());
+                Double currentMonth = hotelProjectChillerPlantEfficiency.getEer();
+                Double lastMonth = currentPjLastMonthEERDataVo.getEer();
+                Double eerMonthRange = null;
+                if (lastMonth != null && lastMonth != 0.0 && currentMonth != null) {
+                    eerMonthRange = (currentMonth - lastMonth) / lastMonth * 100;
+                }
+                hotelProjectChillerPlantEfficiency.setEerMonthRange(eerMonthRange);
             }
-            hotelProjectChillerPlantEfficiency.setEerMonthRange(eerMonthRange);
         }
         return hotelProjectChillerPlantEfficiency;
     }

+ 14 - 2
src/main/java/com/persagy/apm/energy/report/common/utils/DataUtils.java

@@ -178,7 +178,13 @@ public class DataUtils {
                             v2 = (Comparable) pd2.getReadMethod().invoke(o2);
                         }
                         if (entry.getValue() == 1) {
-                            if (v1 instanceof String) {
+                            if (v1 == null && v2 != null) {
+                                sort = -1;
+                            } else if (v1 != null && v2 == null) {
+                                sort = 1;
+                            } else if (v1 == null && v2 == null) {
+                                sort = 1;
+                            } else if (v1 instanceof String) {
                                 sort = CHINA_COLLATOR.compare(v1, v2);
                             } else {
                                 if (v1.compareTo(v2) > 0) {
@@ -188,7 +194,13 @@ public class DataUtils {
                                 }
                             }
                         } else {
-                            if (v1 instanceof String) {
+                            if (v1 == null && v2 != null) {
+                                sort = 1;
+                            } else if (v1 != null && v2 == null) {
+                                sort = -1;
+                            } else if (v1 == null && v2 == null) {
+                                sort = -1;
+                            } else if (v1 instanceof String) {
                                 sort = CHINA_COLLATOR.compare(v2, v1);
                             } else {
                                 if (v1.compareTo(v2) > 0) {

+ 2 - 1
src/main/java/com/persagy/apm/energy/report/workorder/service/IWorkOrderWebService.java

@@ -15,8 +15,9 @@ public interface IWorkOrderWebService {
      * @param projectId  项目id
      * @param reportDate 报告日期
      * @param timeType   查询类型
+     * @param orderState 工单状态
      * @author wch
      * @version V1.0 2021/5/19 4:04 下午
      */
-    List<WorkOrder> getWorkOrderNumByParam(String projectId, Date reportDate, String timeType, String orderType);
+    List<WorkOrder> getWorkOrderNumByParam(String projectId, Date reportDate, String timeType, String orderType, String orderState);
 }

+ 13 - 4
src/main/java/com/persagy/apm/energy/report/workorder/service/impl/IWorkOrderWebServiceImpl.java

@@ -26,17 +26,17 @@ public class IWorkOrderWebServiceImpl implements IWorkOrderWebService {
     private WorkOrderRepository workOrderRepository;
 
     @Override
-    public List<WorkOrder> getWorkOrderNumByParam(String projectId, Date reportDate, String timeType, String orderType) {
+    public List<WorkOrder> getWorkOrderNumByParam(String projectId, Date reportDate, String timeType, String orderType, String orderState) {
         try {
             String startTime = DateUtils.date2Str(reportDate, DateUtils.SDFSECOND);
             String endTime = DateUtils.date2Str(DateUtils.getMonthOff(reportDate, 1), DateUtils.SDFSECOND);
-            BoolQueryBuilder queryOrderNumBuilder = createQueryParam(projectId, timeType, startTime, endTime, orderType);
+            BoolQueryBuilder queryOrderNumBuilder = createQueryParam(projectId, timeType, startTime, endTime, orderType, orderState);
             NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
             nativeSearchQueryBuilder.withQuery(queryOrderNumBuilder);
             NativeSearchQuery query = nativeSearchQueryBuilder.build();
             Page<WorkOrder> resultList = workOrderRepository.search(query);
             if (null != resultList && resultList.getSize() != 0) {
-                return (List<WorkOrder>) resultList;
+                return  resultList.getContent();
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -44,7 +44,7 @@ public class IWorkOrderWebServiceImpl implements IWorkOrderWebService {
         return new ArrayList<>();
     }
 
-    private BoolQueryBuilder createQueryParam(String pjId, String timeType, String startTime, String endTime, String orderType) {
+    private BoolQueryBuilder createQueryParam(String pjId, String timeType, String startTime, String endTime, String orderType, String orderState) {
         BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
         queryBuilder.must(QueryBuilders.matchQuery("project_id", pjId));
         //时间查询
@@ -54,6 +54,8 @@ public class IWorkOrderWebServiceImpl implements IWorkOrderWebService {
                     queryBuilder.must(QueryBuilders.rangeQuery("create_time").gte(startTime));
                 } else if ("ask_end_time".equals(timeType)) {
                     queryBuilder.must(QueryBuilders.rangeQuery("ask_end_time").gte(startTime));
+                } else if ("real_finish_time".equals(timeType)) {
+                    queryBuilder.must(QueryBuilders.rangeQuery("real_finish_time").gte(startTime));
                 }
             }
             if (StringUtils.isNotBlank(endTime)) {
@@ -61,6 +63,8 @@ public class IWorkOrderWebServiceImpl implements IWorkOrderWebService {
                     queryBuilder.must(QueryBuilders.rangeQuery("create_time").lt(endTime));
                 } else if ("ask_end_time".equals(timeType)) {
                     queryBuilder.must(QueryBuilders.rangeQuery("ask_end_time").lt(endTime));
+                } else if ("real_finish_time".equals(timeType)) {
+                    queryBuilder.must(QueryBuilders.rangeQuery("real_finish_time").lt(endTime));
                 }
             }
         }
@@ -68,6 +72,11 @@ public class IWorkOrderWebServiceImpl implements IWorkOrderWebService {
             List<String> orderTypeList = JSONObject.parseArray(orderType, String.class);
             queryBuilder.must(QueryBuilders.termsQuery("order_type", orderTypeList));
         }
+
+        if (StringUtils.isNotEmpty(orderState)) {
+            queryBuilder.must(QueryBuilders.matchQuery("order_state", orderState));
+        }
+
         return queryBuilder;
     }