Browse Source

酒店大区报告数据质量数据代码逻辑

wangchenghong 3 năm trước cách đây
mục cha
commit
e362498197

+ 12 - 2
src/main/java/com/persagy/apm/energy/report/common/service/CommonService.java

@@ -74,10 +74,20 @@ public interface CommonService {
     /**
      * 获取酒店项目节能工单信息
      *
-     * @param projectId 项目id
-     * @param reportDate    报告月
+     * @param projectId  项目id
+     * @param reportDate 报告月
      * @return
      */
     HotelProjectEnergyWorkerOrderInfo getHotelProjectEnergyWorkerOrderInfo(String projectId, Date reportDate);
 
+    /**
+     * 获取项目变损和总支不平衡率信息
+     *
+     * @param projectId  项目id
+     * @param reportDate 报告月
+     * @param userId     用户id
+     * @return
+     */
+    HotelProjectMaintenanceBaseInfo getHotelProjectMaintenanceBaseInfo(String projectId, Date reportDate, String userId);
+
 }

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

@@ -345,4 +345,21 @@ public class CommonServiceImpl implements CommonService {
         return hotelProjectEnergyWorkerOrderInfo;
     }
 
+    @Override
+    public HotelProjectMaintenanceBaseInfo getHotelProjectMaintenanceBaseInfo(String projectId, Date reportDate, String userId) {
+        if (StringUtils.isEmpty(projectId) || null == reportDate) {
+            log.info("获取HotelProjectMaintenanceBaseInfo信息时传入参为空,故不进行查询");
+            return new HotelProjectMaintenanceBaseInfo();
+        }
+        String userCode = DataConstants.USER_ID;
+        if (!StringUtils.isEmpty(userId)) {
+            userCode = userId;
+        }
+        HotelProjectMaintenanceBaseInfo hotelProjectMaintenanceBaseInfo = iDataAnalysisWebService.getHotelProjectMaintenanceBaseInfo(userCode, groupCode, projectId, reportDate);
+        // 获取项目信息
+        ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
+        hotelProjectMaintenanceBaseInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
+        return hotelProjectMaintenanceBaseInfo;
+    }
+
 }

+ 12 - 0
src/main/java/com/persagy/apm/energy/report/iotdataanalysis/service/IDataAnalysisWebService.java

@@ -2,6 +2,7 @@ package com.persagy.apm.energy.report.iotdataanalysis.service;
 
 import com.persagy.apm.energy.report.iotdataanalysis.model.AlarmInfoVo;
 import com.persagy.apm.energy.report.iotdataanalysis.model.CountAndDayRateDataVo;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceBaseInfo;
 import io.swagger.annotations.Api;
 
 import java.util.Date;
@@ -42,4 +43,15 @@ public interface IDataAnalysisWebService {
      */
     List<AlarmInfoVo> getAlarmInfoVo(String groupCode, List<String> projectIdList, Date reportDate);
 
+    /**
+     * 获取项目变损和总支不平衡率
+     *
+     * @param userId     用户id
+     * @param groupCode  集团编码
+     * @param projectId  项目id
+     * @param reportDate 报告月
+     * @return
+     */
+    HotelProjectMaintenanceBaseInfo getHotelProjectMaintenanceBaseInfo(String userId, String groupCode, String projectId, Date reportDate);
+
 }

+ 46 - 10
src/main/java/com/persagy/apm/energy/report/iotdataanalysis/service/impl/IDataAnalysisWebServiceImpl.java

@@ -8,6 +8,7 @@ import com.persagy.apm.energy.report.common.utils.HttpUtils;
 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;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceBaseInfo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.factory.annotation.Value;
@@ -70,18 +71,20 @@ public class IDataAnalysisWebServiceImpl implements IDataAnalysisWebService {
             JSONObject responseObject = JSONObject.parseObject(response);
             if (DataConstants.SUCCESS.equals(responseObject.getString("respMsg"))) {
                 Map data = (Map) responseObject.get("content");
-                vo.setCountRate(DataUtils.parseDouble(data.get("rate")));
-                List<Map> dataList = (List<Map>) data.get("list");
-                TreeMap<Date, Double> dataMap = new TreeMap<>();
-                if (CollectionUtils.isNotEmpty(dataList)) {
-                    for (Map map : dataList) {
-                        Double rate = DataUtils.parseDouble(map.get("rate"));
-                        long dataLong = (long) map.get("dataTime");
-                        Date date = new Date(dataLong);
-                        dataMap.put(date, rate);
+                if (null != data) {
+                    vo.setCountRate(DataUtils.parseDouble(data.get("rate")));
+                    List<Map> dataList = (List<Map>) data.get("list");
+                    TreeMap<Date, Double> dataMap = new TreeMap<>();
+                    if (CollectionUtils.isNotEmpty(dataList)) {
+                        for (Map map : dataList) {
+                            Double rate = DataUtils.parseDouble(map.get("rate"));
+                            long dataLong = (long) map.get("dataTime");
+                            Date date = new Date(dataLong);
+                            dataMap.put(date, rate);
+                        }
                     }
+                    vo.setDataMap(dataMap);
                 }
-                vo.setDataMap(dataMap);
             }
         } catch (Exception e) {
             log.error("获取数据质量看板信息异常:", e);
@@ -152,5 +155,38 @@ public class IDataAnalysisWebServiceImpl implements IDataAnalysisWebService {
         return resultList;
     }
 
+    @Override
+    public HotelProjectMaintenanceBaseInfo getHotelProjectMaintenanceBaseInfo(String userId, String groupCode, String projectId, Date reportDate) {
+        HotelProjectMaintenanceBaseInfo hotelProjectMaintenanceBaseInfo = new HotelProjectMaintenanceBaseInfo();
+        try {
+            JSONObject paramObject = new JSONObject();
+            paramObject.put("userId", userId);
+            paramObject.put("groupCode", groupCode);
+            List<String> pjIdList = new ArrayList<>();
+            pjIdList.add(projectId);
+            paramObject.put("projectIdList", pjIdList);
+            Date startTime = DateUtils.getStartTimeOfDay(reportDate);
+            Date endTime = DateUtils.getMonthOff(startTime, 1);
+            paramObject.put("alarmStartTime", startTime);
+            paramObject.put("alarmEndTime", endTime);
+            String url = iotDataAnalysisUrl + "/alarm/show/view/queryList";
+            String response = HttpUtils.postJson(url, paramObject.toString());
+            JSONObject responseObject = JSONObject.parseObject(response);
+            if (DataConstants.SUCCESS.equals(responseObject.getString("respMsg"))) {
+                List<Map> content = (List<Map>) responseObject.get("content");
+                if (CollectionUtils.isNotEmpty(content)) {
+                    Map data = content.get(0);
+                    if (null != data) {
+                        hotelProjectMaintenanceBaseInfo.setImbalanceRate(DataUtils.parseDouble(data.get("zongZhiRate")));
+                        hotelProjectMaintenanceBaseInfo.setChangeLossRate(DataUtils.parseDouble(data.get("bianSunRate")));
+                    }
+                }
+            }
+        } catch (Exception e) {
+            log.error("获取数据质量服务变损数据异常", e);
+        }
+        return hotelProjectMaintenanceBaseInfo;
+    }
+
 
 }