Browse Source

节能工单信息代码逻辑

wangchenghong 3 years ago
parent
commit
e51596fe02
17 changed files with 289 additions and 49 deletions
  1. 2 0
      src/main/java/com/persagy/apm/energy/report/common/FeignClientNameConstants.java
  2. 10 4
      src/main/java/com/persagy/apm/energy/report/common/service/CommonService.java
  3. 88 7
      src/main/java/com/persagy/apm/energy/report/common/service/impl/CommonServiceImpl.java
  4. 1 0
      src/main/java/com/persagy/apm/energy/report/common/utils/DateUtils.java
  5. 30 0
      src/main/java/com/persagy/apm/energy/report/equiprunmanager/client/EquipRunManagerWebClient.java
  6. 14 0
      src/main/java/com/persagy/apm/energy/report/equiprunmanager/client/fallback/EquipRunManagerWebClientFallbackFactory.java
  7. 19 0
      src/main/java/com/persagy/apm/energy/report/equiprunmanager/model/dto/QueryEnergySaveWorkerParamDTO.java
  8. 14 0
      src/main/java/com/persagy/apm/energy/report/equiprunmanager/model/vo/EnergySaveWorkInfoVO.java
  9. 15 0
      src/main/java/com/persagy/apm/energy/report/equiprunmanager/service/IEquipRunManagerService.java
  10. 29 0
      src/main/java/com/persagy/apm/energy/report/equiprunmanager/service/impl/EquipRunManagerWebClientWrapper.java
  11. 41 0
      src/main/java/com/persagy/apm/energy/report/equiprunmanager/service/impl/IEquipRunManagerServiceImpl.java
  12. 2 21
      src/main/java/com/persagy/apm/energy/report/manualfilling/service/impl/IEnergyItemDataServiceImpl.java
  13. 3 1
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkOrderItem.java
  14. 1 1
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderBaseInfo.java
  15. 2 2
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderInfo.java
  16. 5 7
      src/main/java/com/persagy/apm/energy/report/workorder/service/IWorkOrderWebService.java
  17. 13 6
      src/main/java/com/persagy/apm/energy/report/workorder/service/impl/IWorkOrderWebServiceImpl.java

+ 2 - 0
src/main/java/com/persagy/apm/energy/report/common/FeignClientNameConstants.java

@@ -15,4 +15,6 @@ public class FeignClientNameConstants {
 
     public static final String CENTER_MIDDLEWARE = "center-middleware";
 
+    public static final String EQUIP_RUN_MANAGER = "equip-run-manager";
+
 }

+ 10 - 4
src/main/java/com/persagy/apm/energy/report/common/service/CommonService.java

@@ -4,10 +4,7 @@ import com.persagy.apm.energy.report.common.dto.QueryPlatformParamDTO;
 import com.persagy.apm.energy.report.monthly.config.function.model.Function;
 import com.persagy.apm.energy.report.monthly.config.statisticsitems.model.StatisticItems;
 import com.persagy.apm.energy.report.monthly.detail.business.model.Platform;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectAlarmDealInfo;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectKpiItem;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceGraph;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceInfo;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import io.swagger.annotations.Api;
 
 import java.util.Date;
@@ -74,4 +71,13 @@ public interface CommonService {
      */
     HotelProjectMaintenanceInfo getHotelProjectMaintenanceInfo(String userId, String projectId, Date reportDate, List<Function> functionList, List<String> projectIdList);
 
+    /**
+     * 获取酒店项目节能工单信息
+     *
+     * @param projectIdList 项目id列表
+     * @param reportDate    报告月
+     * @return
+     */
+    HotelProjectEnergyWorkerOrderInfo getHotelProjectEnergyWorkerOrderInfo(String projectIdList, Date reportDate);
+
 }

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

@@ -12,6 +12,7 @@ import com.persagy.apm.energy.report.common.utils.SpringContextHolder;
 import com.persagy.apm.energy.report.common.vo.PlatformAreaInfoVO;
 import com.persagy.apm.energy.report.environment.model.dto.BatchQueryEnvListByParamDTO;
 import com.persagy.apm.energy.report.environment.service.IEnvironmentWebService;
+import com.persagy.apm.energy.report.equiprunmanager.service.IEquipRunManagerService;
 import com.persagy.apm.energy.report.iotdataanalysis.model.AlarmInfoVo;
 import com.persagy.apm.energy.report.iotdataanalysis.model.CountAndDayRateDataVo;
 import com.persagy.apm.energy.report.iotdataanalysis.service.IDataAnalysisWebService;
@@ -22,15 +23,13 @@ import com.persagy.apm.energy.report.monthly.config.statisticsitems.service.ISta
 import com.persagy.apm.energy.report.monthly.config.type.constant.enums.BelongTypeEnum;
 import com.persagy.apm.energy.report.monthly.detail.business.model.Platform;
 import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectAlarmDealInfo;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectKpiItem;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceGraph;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceInfo;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import com.persagy.apm.energy.report.saasweb.model.dto.QueryProjectDTO;
 import com.persagy.apm.energy.report.saasweb.model.vo.PoemsProjectVO;
 import com.persagy.apm.energy.report.saasweb.model.vo.ReportProjectVO;
 import com.persagy.apm.energy.report.saasweb.service.ISaasWebService;
 import com.persagy.apm.energy.report.saasweb.service.impl.SaasWebClientWrapper;
+import com.persagy.apm.energy.report.workorder.model.WorkOrder;
 import com.persagy.apm.energy.report.workorder.service.IWorkOrderWebService;
 import io.swagger.annotations.Api;
 import lombok.extern.slf4j.Slf4j;
@@ -63,7 +62,7 @@ public class CommonServiceImpl implements CommonService {
     IDataAnalysisWebService iDataAnalysisWebService;
 
     @Value("${group.code}")
-    private String groupCode;
+    String groupCode;
 
     @Autowired
     IStatisticItemsService iStatisticItemsService;
@@ -71,6 +70,15 @@ public class CommonServiceImpl implements CommonService {
     @Autowired
     ISaasWebService saasWebService;
 
+    @Value("${work.order.type}")
+    String workOrderType;
+
+    @Value("${energy.save.work.order.type}")
+    String energySaveWorkOrderType;
+
+    @Autowired
+    IEquipRunManagerService iEquipRunManagerService;
+
     @Override
     public List<String> getPjNameByPjId(List<String> pjIdList) {
         if (CollectionUtils.isEmpty(pjIdList)) {
@@ -125,8 +133,16 @@ public class CommonServiceImpl implements CommonService {
 
     @Override
     public HotelProjectAlarmDealInfo getHotelProjectAlarmDealInfo(String projectId, Date reportDate) {
-        Integer workCount = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "ask_end_time");
-        Integer dealCount = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time");
+        Integer workCount = null;
+        Integer dealCount = null;
+        List<WorkOrder> askEndTimeList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "ask_end_time", null);
+        if (null != askEndTimeList) {
+            workCount = askEndTimeList.size();
+        }
+        List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", null);
+        if (null != createTimeWorkList) {
+            dealCount = createTimeWorkList.size();
+        }
         Double completeRate = null;
         if (null != workCount && workCount != 0 && null != dealCount) {
             completeRate = DataUtils.parseDouble(dealCount) / workCount * 100;
@@ -253,4 +269,69 @@ public class CommonServiceImpl implements CommonService {
         return hotelProjectMaintenanceInfo;
     }
 
+    @Override
+    public HotelProjectEnergyWorkerOrderInfo getHotelProjectEnergyWorkerOrderInfo(String projectId, Date reportDate) {
+        if (StringUtils.isEmpty(projectId) || null == reportDate) {
+            return new HotelProjectEnergyWorkerOrderInfo();
+        }
+        HotelProjectEnergyWorkerOrderInfo hotelProjectEnergyWorkerOrderInfo = new HotelProjectEnergyWorkerOrderInfo();
+        try {
+            List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", workOrderType);
+            Integer totalCount = null;
+            if (null != createTimeWorkList) {
+                totalCount = createTimeWorkList.size();
+            }
+            List<WorkOrder> realFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", workOrderType);
+            Integer executeCount = null;
+            if (null != realFinishTimeWorkList) {
+                executeCount = realFinishTimeWorkList.size();
+            }
+            hotelProjectEnergyWorkerOrderInfo.setTotalCount(totalCount);
+            hotelProjectEnergyWorkerOrderInfo.setExecuteCount(executeCount);
+            Double executePercent = null;
+            if (null != totalCount && totalCount != 0 && null != executeCount) {
+                executePercent = DataUtils.parseDouble(executeCount) / totalCount * 100;
+            }
+            hotelProjectEnergyWorkerOrderInfo.setExecutePercent(executePercent);
+            List<WorkOrder> energySaveRealFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", energySaveWorkOrderType);
+            Integer initiativeCount = null;
+            if (null != energySaveRealFinishTimeWorkList) {
+                initiativeCount = energySaveRealFinishTimeWorkList.size();
+            }
+            hotelProjectEnergyWorkerOrderInfo.setInitiativeCount(initiativeCount);
+            List<String> workOrderIdList = new ArrayList<>();
+            for (WorkOrder workOrder : energySaveRealFinishTimeWorkList) {
+                workOrderIdList.add(workOrder.getOrderId());
+            }
+            // {工单id:工单节能量}
+            Map<String, Double> workId_energyMap = iEquipRunManagerService.getEnergySaveWorderMap(workOrderIdList);
+            Map<String, Integer> sortMap = new HashMap<>();
+            sortMap.put("realFinishTime", -1);
+            DataUtils.sort(energySaveRealFinishTimeWorkList, sortMap);
+            List<HotelProjectEnergyWorkOrderItem> hotelProjectEnergyWorkOrderItemList = new ArrayList<>();
+            Double totalEnergySave = null;
+            for (WorkOrder workOrder : energySaveRealFinishTimeWorkList) {
+                HotelProjectEnergyWorkOrderItem hotelProjectEnergyWorkOrderItem = new HotelProjectEnergyWorkOrderItem();
+                hotelProjectEnergyWorkOrderItem.setWorkName(workOrder.getWoName());
+                String completeTimeStr = "";
+                if (!StringUtils.isEmpty(workOrder.getRealFinishTime())) {
+                    Date completeTime = DateUtils.str2Date(workOrder.getRealFinishTime(), DateUtils.SDFSECOND);
+                    completeTimeStr = DateUtils.date2Str(completeTime, DateUtils.SDF_DOT_DAY);
+                }
+                hotelProjectEnergyWorkOrderItem.setCompletedTime(completeTimeStr);
+                hotelProjectEnergyWorkOrderItem.setEnergySaved(workId_energyMap.get(workOrder.getOrderId()));
+                hotelProjectEnergyWorkOrderItemList.add(hotelProjectEnergyWorkOrderItem);
+            }
+            hotelProjectEnergyWorkerOrderInfo.setDetailInfo(hotelProjectEnergyWorkOrderItemList);
+            hotelProjectEnergyWorkerOrderInfo.setTotalEnergySave(totalEnergySave);
+            // 获取项目信息
+            ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
+            hotelProjectEnergyWorkerOrderInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
+
+        } catch (Exception e) {
+
+        }
+        return hotelProjectEnergyWorkerOrderInfo;
+    }
+
 }

+ 1 - 0
src/main/java/com/persagy/apm/energy/report/common/utils/DateUtils.java

@@ -17,6 +17,7 @@ public class DateUtils {
     public static final String SDFSECOND = "yyyyMMddHHmmss";
     public static final String SDFDAY = "yyyyMMdd";
     public static final String SDF_SECOND = "yyyy-MM-dd HH:mm:ss";
+    public static final String SDF_DOT_DAY = "yyyy.MM.dd";
 
     /**
      * 将pattern格式的字符串日期转换为Date类型日期

+ 30 - 0
src/main/java/com/persagy/apm/energy/report/equiprunmanager/client/EquipRunManagerWebClient.java

@@ -0,0 +1,30 @@
+package com.persagy.apm.energy.report.equiprunmanager.client;
+
+import com.persagy.apm.common.response.PoemsFeignResponse;
+import com.persagy.apm.energy.report.common.FeignClientNameConstants;
+import com.persagy.apm.energy.report.common.FeignConfig;
+import com.persagy.apm.energy.report.equiprunmanager.client.fallback.EquipRunManagerWebClientFallbackFactory;
+import com.persagy.apm.energy.report.equiprunmanager.model.vo.EnergySaveWorkInfoVO;
+import feign.Headers;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * 高效运行feign客户端(暂时只用服务中的节能工单服务接口)
+ **/
+@FeignClient(name = FeignClientNameConstants.EQUIP_RUN_MANAGER, fallbackFactory = EquipRunManagerWebClientFallbackFactory.class,
+        configuration = FeignConfig.class)
+public interface EquipRunManagerWebClient {
+    /**
+     * 根据条件查询节能工单的能耗数据
+     *
+     * @param queryParamDTO 查询条件
+     * @return 节能工单数据
+     */
+    @PostMapping("/Spring/MVC/entrance/unifier/getEnergyWorkDataList")
+    @Headers({"Content-Type: application/x-www-form-urlencoded"})
+    PoemsFeignResponse<EnergySaveWorkInfoVO> listEnergySaveWorkByParam(@RequestParam("jsonString") String queryParamDTO);
+
+
+}

+ 14 - 0
src/main/java/com/persagy/apm/energy/report/equiprunmanager/client/fallback/EquipRunManagerWebClientFallbackFactory.java

@@ -0,0 +1,14 @@
+package com.persagy.apm.energy.report.equiprunmanager.client.fallback;
+
+import com.persagy.apm.energy.report.environment.client.EnvironmentWebClient;
+import com.persagy.apm.energy.report.equiprunmanager.client.EquipRunManagerWebClient;
+import feign.hystrix.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+@Component
+public class EquipRunManagerWebClientFallbackFactory implements FallbackFactory<EquipRunManagerWebClient> {
+    @Override
+    public EquipRunManagerWebClient create(Throwable throwable) {
+        return null;
+    }
+}

+ 19 - 0
src/main/java/com/persagy/apm/energy/report/equiprunmanager/model/dto/QueryEnergySaveWorkerParamDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.energy.report.equiprunmanager.model.dto;
+
+import com.persagy.apm.common.model.dto.PoemsFeignBaseDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel
+public class QueryEnergySaveWorkerParamDTO extends PoemsFeignBaseDTO {
+
+    @ApiModelProperty("工单id列表")
+    private List<String> workIds;
+
+}

+ 14 - 0
src/main/java/com/persagy/apm/energy/report/equiprunmanager/model/vo/EnergySaveWorkInfoVO.java

@@ -0,0 +1,14 @@
+package com.persagy.apm.energy.report.equiprunmanager.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class EnergySaveWorkInfoVO {
+    @ApiModelProperty(value = "工单id")
+    private String workId;
+    @ApiModelProperty(value = "工单节能量")
+    private Double energyData;
+}

+ 15 - 0
src/main/java/com/persagy/apm/energy/report/equiprunmanager/service/IEquipRunManagerService.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.energy.report.equiprunmanager.service;
+
+import java.util.List;
+import java.util.Map;
+
+public interface IEquipRunManagerService {
+
+    /**
+     * 获取工单对应节能量信息
+     *
+     * @param workOrderIdList 工单id列表
+     * @return
+     */
+    Map<String, Double> getEnergySaveWorderMap(List<String> workOrderIdList);
+}

+ 29 - 0
src/main/java/com/persagy/apm/energy/report/equiprunmanager/service/impl/EquipRunManagerWebClientWrapper.java

@@ -0,0 +1,29 @@
+package com.persagy.apm.energy.report.equiprunmanager.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.persagy.apm.common.response.PoemsFeignResponse;
+import com.persagy.apm.energy.report.equiprunmanager.client.EquipRunManagerWebClient;
+import com.persagy.apm.energy.report.equiprunmanager.model.dto.QueryEnergySaveWorkerParamDTO;
+import com.persagy.apm.energy.report.equiprunmanager.model.vo.EnergySaveWorkInfoVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 高效运行feign客户端包装类
+ **/
+@Service
+public class EquipRunManagerWebClientWrapper {
+    @Autowired
+    private EquipRunManagerWebClient equipRunManagerWebClient;
+
+    /**
+     * 根据工单id列表查询对应工单的节能量信息
+     *
+     * @param queryEnergySaveWorkerParamDTO 查询条件
+     * @return
+     */
+    public PoemsFeignResponse<EnergySaveWorkInfoVO> listEnergySaveWorkByParam(QueryEnergySaveWorkerParamDTO queryEnergySaveWorkerParamDTO) {
+        return equipRunManagerWebClient.listEnergySaveWorkByParam(JSON.toJSONString(queryEnergySaveWorkerParamDTO));
+    }
+
+}

+ 41 - 0
src/main/java/com/persagy/apm/energy/report/equiprunmanager/service/impl/IEquipRunManagerServiceImpl.java

@@ -0,0 +1,41 @@
+package com.persagy.apm.energy.report.equiprunmanager.service.impl;
+
+import com.persagy.apm.common.response.PoemsFeignResponse;
+import com.persagy.apm.energy.report.equiprunmanager.model.dto.QueryEnergySaveWorkerParamDTO;
+import com.persagy.apm.energy.report.equiprunmanager.model.vo.EnergySaveWorkInfoVO;
+import com.persagy.apm.energy.report.equiprunmanager.service.IEquipRunManagerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class IEquipRunManagerServiceImpl implements IEquipRunManagerService {
+
+    @Autowired
+    EquipRunManagerWebClientWrapper equipRunManagerWebClientWrapper;
+
+    @Override
+    public Map<String, Double> getEnergySaveWorderMap(List<String> workOrderIdList) {
+        Map<String, Double> resultMap = new HashMap<>();
+        try {
+            QueryEnergySaveWorkerParamDTO queryEnergySaveWorkerParamDTO = new QueryEnergySaveWorkerParamDTO();
+            queryEnergySaveWorkerParamDTO.setWorkIds(workOrderIdList);
+            PoemsFeignResponse<EnergySaveWorkInfoVO> response = equipRunManagerWebClientWrapper.listEnergySaveWorkByParam(queryEnergySaveWorkerParamDTO);
+            List<EnergySaveWorkInfoVO> energySaveWorkInfoVOList = response.getContent();
+            if (!CollectionUtils.isEmpty(energySaveWorkInfoVOList)) {
+                for (EnergySaveWorkInfoVO vo : energySaveWorkInfoVOList) {
+                    resultMap.put(vo.getWorkId(), vo.getEnergyData());
+                }
+            }
+        } catch (Exception e) {
+            log.error("获取高效运行服务节能工单节能量异常", e);
+        }
+        return resultMap;
+    }
+}

+ 2 - 21
src/main/java/com/persagy/apm/energy/report/manualfilling/service/impl/IEnergyItemDataServiceImpl.java

@@ -2,7 +2,6 @@ package com.persagy.apm.energy.report.manualfilling.service.impl;
 
 import com.persagy.apm.common.context.poems.PoemsContext;
 import com.persagy.apm.energy.report.common.DataConstants;
-import com.persagy.apm.energy.report.common.service.CommonService;
 import com.persagy.apm.energy.report.common.utils.DateUtils;
 import com.persagy.apm.energy.report.manualfilling.model.dto.QueryEnergyItemDataDTO;
 import com.persagy.apm.energy.report.manualfilling.model.dto.SaveEnergyItemDataDTO;
@@ -13,8 +12,6 @@ import com.persagy.apm.energy.report.monthly.config.function.model.Function;
 import com.persagy.apm.energy.report.monthly.config.function.model.dto.QueryFunctionDTO;
 import com.persagy.apm.energy.report.monthly.config.function.service.IFunctionService;
 import com.persagy.apm.energy.report.monthly.config.type.constant.enums.BuildingTypeEnum;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceGraph;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceInfo;
 import com.persagy.apm.energy.report.monthly.functionvalue.model.FunctionValue;
 import com.persagy.apm.energy.report.monthly.functionvalue.model.dto.BatchDeleteFunctionValueDTO;
 import com.persagy.apm.energy.report.monthly.functionvalue.model.dto.QueryFunctionValueDTO;
@@ -47,25 +44,9 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
     @Value("${group.code}")
     private String groupCode;
 
-    @Autowired
-    CommonService commonService;
-
     @Override
     public List<EnergyItemInfoVo> queryEnergyItemDataList(QueryEnergyItemDataDTO queryEnergyItemDataDTO) {
         try {
-            Function f = new Function();
-            f.setItemId("bianSun_bianSunRate");
-            f.setName("变损");
-            Function ff = new Function();
-            ff.setItemId("zongZhi_zongZhiRate");
-            ff.setName("总支不平衡率");
-            List<Function> list = new ArrayList<>();
-            list.add(f);
-            list.add(ff);
-            List<String> pjList = new ArrayList<>();
-            pjList.add("Pj4403050002");
-            pjList.add("Pj1101080259");
-            HotelProjectMaintenanceInfo into =commonService.getHotelProjectMaintenanceInfo("4510f509ed0746afbe26ab5377ce7e91","Pj4403050002",DateUtils.str2Date("2021-06-01 00:00:00",DateUtils.SDF_SECOND),list,pjList);
             PoemsContext.setContext(DataConstants.USER_ID, DataConstants.LOGIN_DEVICE, DataConstants.PD);
             ReportProjectVO projectVO = iSaasWebService.getReportProjectInfo(queryEnergyItemDataDTO.getProjectId());
             if (null == projectVO || StringUtils.isEmpty(projectVO.getFunctionType())) {
@@ -127,7 +108,7 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
             }
             return resultList;
         } catch (Exception e) {
-            log.error("查询分项数据异常",e);
+            log.error("查询分项数据异常", e);
         }
         return Lists.newArrayList();
     }
@@ -170,7 +151,7 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
                 functionValueService.batchCreateFunctionValue(functionValues);
             }
         } catch (Exception e) {
-            log.error("保存分项录入数据异常",e);
+            log.error("保存分项录入数据异常", e);
         }
     }
 

+ 3 - 1
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkOrderItem.java

@@ -13,8 +13,10 @@ import lombok.Data;
 @ApiModel(value = "酒店项目节能工单条目信息")
 @JsonInclude(JsonInclude.Include.NON_NULL)
 public class HotelProjectEnergyWorkOrderItem {
+    @ApiModelProperty(value = "工单名称")
+    private String workName;
     @ApiModelProperty(value = "工单完成时间")
-    private Double completedTime;
+    private String completedTime;
     @ApiModelProperty(value = "节能量")
     private Double energySaved;
 }

+ 1 - 1
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderBaseInfo.java

@@ -18,7 +18,7 @@ public class HotelProjectEnergyWorkerOrderBaseInfo {
     @ApiModelProperty(value = "项目名称")
     private String projectName;
     @ApiModelProperty(value = "工单总条数")
-    private Double totalCount;
+    private Integer totalCount;
     @ApiModelProperty(value = "工单总节能量")
     private Double totalEnergySave;
 }

+ 2 - 2
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectEnergyWorkerOrderInfo.java

@@ -19,11 +19,11 @@ import java.util.List;
 public class HotelProjectEnergyWorkerOrderInfo extends HotelProjectEnergyWorkerOrderBaseInfo {
 
     @ApiModelProperty(value = "执行采纳条数")
-    private Double executeCount;
+    private Integer executeCount;
     @ApiModelProperty(value = "采纳率")
     private Double executePercent;
     @ApiModelProperty(value = "自行发现并采取措施的工单条数")
-    private Double initiativeCount;
+    private Integer initiativeCount;
     @ApiModelProperty(value = "节能工单信息")
     private List<HotelProjectEnergyWorkOrderItem> detailInfo;
 }

+ 5 - 7
src/main/java/com/persagy/apm/energy/report/workorder/service/IWorkOrderWebService.java

@@ -1,8 +1,6 @@
 package com.persagy.apm.energy.report.workorder.service;
 
-import com.persagy.apm.energy.report.common.dto.QueryAreaPlatformParamDTO;
-import com.persagy.apm.energy.report.common.dto.QueryPjPlatformParamDTO;
-import com.persagy.apm.energy.report.monthly.detail.business.model.Platform;
+import com.persagy.apm.energy.report.workorder.model.WorkOrder;
 import io.swagger.annotations.Api;
 
 import java.util.Date;
@@ -12,13 +10,13 @@ import java.util.List;
 public interface IWorkOrderWebService {
 
     /**
-     * 根据查询类型获取工单数据信息
+     * 根据查询类型获取工单数据信息
      *
-     * @param projectId 项目id
+     * @param projectId  项目id
      * @param reportDate 报告日期
-     * @param timeType 查询类型
+     * @param timeType   查询类型
      * @author wch
      * @version V1.0 2021/5/19 4:04 下午
      */
-    Integer getWorkOrderNumByParam(String projectId, Date reportDate, String timeType);
+    List<WorkOrder> getWorkOrderNumByParam(String projectId, Date reportDate, String timeType, String orderType);
 }

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

@@ -1,5 +1,6 @@
 package com.persagy.apm.energy.report.workorder.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.persagy.apm.energy.report.common.utils.DateUtils;
 import com.persagy.apm.energy.report.workorder.model.WorkOrder;
 import com.persagy.apm.energy.report.workorder.repository.WorkOrderRepository;
@@ -13,7 +14,9 @@ import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
 import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 
 @Service
@@ -23,25 +26,25 @@ public class IWorkOrderWebServiceImpl implements IWorkOrderWebService {
     private WorkOrderRepository workOrderRepository;
 
     @Override
-    public Integer getWorkOrderNumByParam(String projectId, Date reportDate, String timeType) {
+    public List<WorkOrder> getWorkOrderNumByParam(String projectId, Date reportDate, String timeType, String orderType) {
         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);
+            BoolQueryBuilder queryOrderNumBuilder = createQueryParam(projectId, timeType, startTime, endTime, orderType);
             NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
             nativeSearchQueryBuilder.withQuery(queryOrderNumBuilder);
             NativeSearchQuery query = nativeSearchQueryBuilder.build();
             Page<WorkOrder> resultList = workOrderRepository.search(query);
-            if (null != resultList) {
-                return resultList.getSize();
+            if (null != resultList && resultList.getSize() != 0) {
+                return (List<WorkOrder>) resultList;
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
-        return null;
+        return new ArrayList<>();
     }
 
-    private BoolQueryBuilder createQueryParam(String pjId, String timeType, String startTime, String endTime) {
+    private BoolQueryBuilder createQueryParam(String pjId, String timeType, String startTime, String endTime, String orderType) {
         BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
         queryBuilder.must(QueryBuilders.matchQuery("project_id", pjId));
         //时间查询
@@ -61,6 +64,10 @@ public class IWorkOrderWebServiceImpl implements IWorkOrderWebService {
                 }
             }
         }
+        if (StringUtils.isNotEmpty(orderType)) {
+            List<String> orderTypeList = JSONObject.parseArray(orderType, String.class);
+            queryBuilder.must(QueryBuilders.termsQuery("order_type", orderTypeList));
+        }
         return queryBuilder;
     }