Browse Source

调整获取环境健康数据代码逻辑、修正数据录入对接逻辑

wangchenghong 4 years ago
parent
commit
d57794b0ac

+ 4 - 3
src/main/java/com/persagy/apm/energy/report/environment/client/EnvironmentWebClient.java

@@ -4,11 +4,11 @@ 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.environment.client.fallback.EnvironmentWebClientFallbackFactory;
-import com.persagy.apm.energy.report.environment.model.dto.QueryEnvListByParamDTO;
 import com.persagy.apm.energy.report.environment.model.vo.EnvAvgRateVO;
-import org.apache.poi.ss.formula.functions.T;
+import feign.Headers;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * 环境健康feign客户端
@@ -25,6 +25,7 @@ public interface EnvironmentWebClient {
      * @version V1.0 2021/5/19 2:27 下午
      */
     @PostMapping("/Spring/MVC/entrance/unifier/GetEnvTypeRate")
-    PoemsFeignResponse<EnvAvgRateVO> listWorkOrderByParam(QueryEnvListByParamDTO queryEnvListByParamDTO);
+    @Headers({"Content-Type: application/x-www-form-urlencoded"})
+    PoemsFeignResponse<EnvAvgRateVO> listWorkOrderByParam(@RequestParam("jsonString") String queryEnvListByParamDTO);
 
 }

+ 31 - 0
src/main/java/com/persagy/apm/energy/report/environment/service/impl/EnvironmentWebClientWrapper.java

@@ -0,0 +1,31 @@
+package com.persagy.apm.energy.report.environment.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.persagy.apm.common.response.PoemsFeignResponse;
+import com.persagy.apm.energy.report.environment.client.EnvironmentWebClient;
+import com.persagy.apm.energy.report.environment.model.dto.QueryEnvListByParamDTO;
+import com.persagy.apm.energy.report.environment.model.vo.EnvAvgRateVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * 环境健康feign客户端包装类
+ **/
+@Service
+public class EnvironmentWebClientWrapper {
+    @Autowired
+    private EnvironmentWebClient environmentWebClient;
+
+    /**
+     * 根据条件查询环境温度达标率
+     *
+     * @param queryEnvListByParamDTO 查询条件
+     * @return 平均达标率
+     * @author wch
+     * @version V1.0 2021/5/19 2:27 下午
+     */
+    public PoemsFeignResponse<EnvAvgRateVO> listWorkOrderByParam(QueryEnvListByParamDTO queryEnvListByParamDTO) {
+        return environmentWebClient.listWorkOrderByParam(JSON.toJSONString(queryEnvListByParamDTO));
+    }
+
+}

+ 2 - 3
src/main/java/com/persagy/apm/energy/report/environment/service/impl/IEnvironmentWebServiceImpl.java

@@ -6,7 +6,6 @@ import com.persagy.apm.energy.report.common.dto.QueryPjPlatformParamDTO;
 import com.persagy.apm.energy.report.common.service.CommonService;
 import com.persagy.apm.energy.report.common.utils.DataUtils;
 import com.persagy.apm.energy.report.common.utils.DateUtils;
-import com.persagy.apm.energy.report.environment.client.EnvironmentWebClient;
 import com.persagy.apm.energy.report.environment.model.dto.QueryEnvListByParamDTO;
 import com.persagy.apm.energy.report.environment.model.vo.EnvAvgRateVO;
 import com.persagy.apm.energy.report.environment.service.IEnvironmentWebService;
@@ -24,7 +23,7 @@ import java.util.stream.Collectors;
 public class IEnvironmentWebServiceImpl implements IEnvironmentWebService {
 
     @Resource
-    private EnvironmentWebClient environmentWebClient;
+    private EnvironmentWebClientWrapper environmentWebClientWrapper;
     @Resource
     private CommonService commonService;
 
@@ -50,7 +49,7 @@ public class IEnvironmentWebServiceImpl implements IEnvironmentWebService {
             paramDTO.setEnvParentTypeId("Humiture");
             paramDTO.setStartTime(DateUtils.date2Str(reportDate, DateUtils.SDF_SECOND));
             paramDTO.setEndTime(DateUtils.date2Str(DateUtils.getMonthOff(reportDate, 1), DateUtils.SDF_SECOND));
-            PoemsFeignResponse<EnvAvgRateVO> response = environmentWebClient.listWorkOrderByParam(paramDTO);
+            PoemsFeignResponse<EnvAvgRateVO> response = environmentWebClientWrapper.listWorkOrderByParam(paramDTO);
             EnvAvgRateVO envAvgRateVO = (EnvAvgRateVO) response.getContent();
             if (null != envAvgRateVO) {
                 return envAvgRateVO.getAvgNum();

+ 3 - 5
src/main/java/com/persagy/apm/energy/report/manualfilling/controller/ManualFillingController.java

@@ -12,10 +12,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 import java.util.List;
@@ -34,7 +31,8 @@ public class ManualFillingController {
     @ApiOperation(value = "查询报告能耗分项列表")
     @PostMapping("/query")
     public CommonResult<PageList<EnergyItemInfoVo>> queryEnergyItemDataList(
-            @Valid @RequestBody QueryEnergyItemDataDTO queryEnergyItemDataDTO) {
+            @Valid @RequestBody QueryEnergyItemDataDTO queryEnergyItemDataDTO, @RequestParam(value = "userId", defaultValue = "systemId") String userId,
+            @RequestParam(value = "loginDevice", defaultValue = "PC") String loginDevice, @RequestParam(value = "pd", defaultValue = "123") String pd) {
         List<EnergyItemInfoVo> energyItemInfoVoList = iEnergyItemDataService.queryEnergyItemDataList(queryEnergyItemDataDTO);
         return ResultHelper.multi(energyItemInfoVoList);
     }

+ 1 - 4
src/main/java/com/persagy/apm/energy/report/manualfilling/model/dto/QueryEnergyItemDataDTO.java

@@ -14,7 +14,7 @@ public class QueryEnergyItemDataDTO {
     @ApiModelProperty(value = "项目id", required = true)
     private String projectId;
 
-    @ApiModelProperty(value = "集团编码", required = true)
+    @ApiModelProperty(value = "集团编码")
     private String groupCode;
 
     @NotNull(message = "energyType不能为空")
@@ -25,9 +25,6 @@ public class QueryEnergyItemDataDTO {
     @ApiModelProperty(value = "信息点类型(0-能耗,1-费用 ,2-能耗预算,3-费用预算)", required = true)
     private String functionType;
 
-    @ApiModelProperty(value = "能耗模型编码", required = true)
-    private String modelCode;
-
     @NotNull(message = "startDate不能为空")
     @ApiModelProperty(value = "开始时间", required = true)
     private String startDate;

+ 3 - 0
src/main/java/com/persagy/apm/energy/report/manualfilling/model/vo/EnergyItemInfoVo.java

@@ -16,6 +16,9 @@ public class EnergyItemInfoVo {
     @ApiModelProperty(value = "能耗分项信息id", required = true)
     private String functionId;
 
+    @ApiModelProperty(value = "能耗模型编码", required = true)
+    private String modelCode;
+
     @ApiModelProperty(value = "能据耗分项数", required = true)
     private List<EnergyItemDataVo> dataList;
 

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

@@ -35,7 +35,7 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
     @Autowired
     private IFunctionValueService functionValueService;
 
-//    @Value("${group.code}")
+    @Value("${group.code}")
     private String groupCode;
 
     @Override
@@ -53,7 +53,6 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
             queryFunctionDTO.setEnergyType(queryEnergyItemDataDTO.getEnergyType());
             queryFunctionDTO.setFunctionType(queryEnergyItemDataDTO.getFunctionType());
             queryFunctionDTO.setBuildingType(projectVO.getFunctionType());
-            queryFunctionDTO.setModelCode(queryEnergyItemDataDTO.getModelCode());
             // 查询配置的分项信息列表
             List<Function> functionList = functionService.queryFunctionList(queryFunctionDTO);
             if (CollectionUtils.isEmpty(functionList)) {
@@ -91,6 +90,8 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
             for (Function function : functionList) {
                 EnergyItemInfoVo energyItemInfoVo = new EnergyItemInfoVo();
                 energyItemInfoVo.setItemId(function.getItemId());
+                energyItemInfoVo.setFunctionId(function.getId());
+                energyItemInfoVo.setModelCode(function.getModelCode());
                 energyItemInfoVo.setDataList(funcId_dateAndDataMap.get(function.getId()) == null ? new ArrayList<>() : funcId_dateAndDataMap.get(function.getId()));
                 resultList.add(energyItemInfoVo);
             }