Ver código fonte

生成酒店报告代码提交

lixing 3 anos atrás
pai
commit
57b89fafd9
15 arquivos alterados com 228 adições e 56 exclusões
  1. 15 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/common/service/IReportPowerInfoService.java
  2. 2 12
      src/main/java/com/persagy/apm/energy/report/monthly/detail/common/service/impl/ReportPowerInfoServiceImpl.java
  3. 22 1
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/ConvertReportHotelAreaDetailTool.java
  4. 2 5
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/dto/AddReportHotelAreaDetailDTO.java
  5. 1 1
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/vo/HotelAreaPowerConsumptionOutline.java
  6. 2 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/model/vo/HotelProjectPowerConsumptionOutline.java
  7. 14 0
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/IHotelProjectReportCostService.java
  8. 5 4
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/IHotelProjectReportPowerInfoOutlineService.java
  9. 4 2
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/IHotelProjectReportPublicPowerInfoService.java
  10. 2 11
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/HotelProjectReportCostServiceImpl.java
  11. 6 8
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/HotelProjectReportPowerInfoOutlineServiceImpl.java
  12. 5 4
      src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/HotelProjectReportPublicPowerInfoServiceImpl.java
  13. 55 0
      src/main/java/com/persagy/apm/energy/report/monthly/outline/service/builder/hotel/IHotelAreaReportBuilder.java
  14. 85 2
      src/main/java/com/persagy/apm/energy/report/monthly/outline/service/builder/hotel/impl/HotelAreaReportBuilder.java
  15. 8 6
      src/main/java/com/persagy/apm/energy/report/monthly/outline/service/builder/hotel/impl/HotelProjectReportBuilder.java

+ 15 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/common/service/IReportPowerInfoService.java

@@ -43,6 +43,21 @@ public interface IReportPowerInfoService {
     PowerVO getComparePowerInfo(ReportOutline reportOutline, List<String> groupIdList, List<String> functionIdList);
 
     /**
+     * 根据项目id获取用电信息
+     *
+     * @param groupIdList    费用信息点分组列表
+     * @param functionIdList 费用信息点列表
+     * @param reportMonth    报告月份
+     * @param projectIds     项目id列表
+     * @return 用电信息
+     * @author lixing
+     * @version V1.0 2021/5/30 11:41 下午
+     */
+    PowerVO getPowerInfoByProjectIds(
+            List<String> groupIdList, List<String> functionIdList,
+            Date reportMonth, List<String> projectIds);
+
+    /**
      * 获取用电量条目信息
      *
      * @param functionIdList 用电量条目列表

+ 2 - 12
src/main/java/com/persagy/apm/energy/report/monthly/detail/common/service/impl/ReportPowerInfoServiceImpl.java

@@ -64,18 +64,8 @@ public abstract class ReportPowerInfoServiceImpl implements IReportPowerInfoServ
         return getPowerInfoByProjectIds(groupIdList, functionIdList, reportMonth, comparableProjects);
     }
 
-    /**
-     * 根据项目id获取用电信息
-     *
-     * @param groupIdList    费用信息点分组列表
-     * @param functionIdList 费用信息点列表
-     * @param reportMonth    报告月份
-     * @param projectIds     项目id列表
-     * @return 用电信息
-     * @author lixing
-     * @version V1.0 2021/5/30 11:41 下午
-     */
-    private PowerVO getPowerInfoByProjectIds(
+    @Override
+    public PowerVO getPowerInfoByProjectIds(
             List<String> groupIdList, List<String> functionIdList,
             Date reportMonth, List<String> projectIds) {
         PowerVO powerVO = new PowerVO();

+ 22 - 1
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/ConvertReportHotelAreaDetailTool.java

@@ -1,5 +1,7 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.area.model;
 
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPowerConsumptionOutline;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPublicPowerConsumption;
 import org.mapstruct.*;
 import org.mapstruct.MappingTarget;
 import org.mapstruct.factory.Mappers;
@@ -69,6 +71,25 @@ public interface ConvertReportHotelAreaDetailTool {
      * @author lixing
      * @version V1.0 2021-06-07 09:42:08
      */
-    ReportHotelAreaDetail convertUpdateDto2Entity(@MappingTarget ReportHotelAreaDetail reportHotelAreaDetail, UpdateReportHotelAreaDetailDTO updateReportHotelAreaDetailDTO);
+    ReportHotelAreaDetail convertUpdateDto2Entity(
+            @MappingTarget ReportHotelAreaDetail reportHotelAreaDetail, UpdateReportHotelAreaDetailDTO updateReportHotelAreaDetailDTO);
+
+    /**
+     * HotelProjectPowerConsumptionOutline 和 HotelProjectPublicPowerConsumption 转换为 HotelAreaPowerConsumptionOutline
+     *
+     * @param consumptionOutline HotelProjectPowerConsumptionOutline
+     * @param publicConsumption HotelProjectPublicPowerConsumption
+     * @return HotelAreaPowerConsumptionOutline
+     * @author lixing
+     * @version V1.0 2021/6/10 8:47 下午
+     */
+    @Mapping(source = "consumptionOutline.projectName", target = "projectName")
+    @Mapping(source = "consumptionOutline.consumptionCurrentMonth", target = "consumptionCurrentMonth")
+    @Mapping(source = "consumptionOutline.consumptionPerSqm", target = "consumptionPerSqm")
+    @Mapping(source = "consumptionOutline.consumptionSameTimeRange", target = "consumptionSameTimeRange")
+    @Mapping(source = "consumptionOutline.consumptionChainRange", target = "consumptionChainRange")
+    @Mapping(source = "publicConsumption.consumptionCurrentMonth", target = "publicConsumptionCurrentMonth")
+    HotelAreaPowerConsumptionOutline convert2HotelAreaPowerConsumptionOutline(
+            HotelProjectPowerConsumptionOutline consumptionOutline, HotelProjectPublicPowerConsumption publicConsumption);
 }
 

+ 2 - 5
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/area/model/dto/AddReportHotelAreaDetailDTO.java

@@ -1,5 +1,6 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.area.model.dto;
 
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaPowerConsumptionOutline;
 import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaRemainProblem;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
 import io.swagger.annotations.ApiModel;
@@ -26,15 +27,11 @@ public class AddReportHotelAreaDetailDTO {
     private List<HotelProjectCostInfo> costInfo;
 
     @ApiModelProperty(value = "用电量概述")
-    private List<HotelProjectPowerConsumptionOutline> powerUsageOutline;
+    private List<HotelAreaPowerConsumptionOutline> powerUsageOutline;
 
     @ApiModelProperty(value = "节能工单信息")
     private List<HotelProjectEnergyWorkerOrderBaseInfo> energyWorkOrderInfo;
 
     @ApiModelProperty(value = "报警处理信息")
     private List<HotelProjectAlarmDealInfo> alarmDealInfo;
-
-    @ApiModelProperty(value = "遗留问题处理信息")
-    private List<HotelAreaRemainProblem> remainProblemsDealInfo;
-
 }

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

@@ -23,7 +23,7 @@ public class HotelAreaPowerConsumptionOutline {
     @ApiModelProperty(value = "公区本月总耗电量")
     private Double publicConsumptionCurrentMonth;
     @ApiModelProperty(value = "单位建筑面积能耗")
-    private Double consumptionPerSquareMetre;
+    private Double consumptionPerSqm;
     @ApiModelProperty(value = "同比涨幅")
     private Double consumptionSameTimeRange;
     @ApiModelProperty(value = "环比涨幅")

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

@@ -29,6 +29,8 @@ public class HotelProjectPowerConsumptionOutline {
     private Double overallFloorage;
     @ApiModelProperty(value = "去年同期耗电量")
     private Double consumptionLastYear;
+    @ApiModelProperty(value = "环比涨幅")
+    private Double consumptionChainRange;
     @ApiModelProperty(value = "月同比涨幅")
     private Double consumptionSameTimeRange;
     @ApiModelProperty(value = "条目信息")

+ 14 - 0
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/IHotelProjectReportCostService.java

@@ -4,6 +4,7 @@ import com.persagy.apm.energy.report.monthly.detail.common.service.IReportCostIn
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectCostInfo;
 import com.persagy.apm.energy.report.monthly.outline.model.ReportOutline;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -23,4 +24,17 @@ public interface IHotelProjectReportCostService extends IReportCostInfoService {
      * @version V1.0 2021/5/24 4:14 下午
      */
     HotelProjectCostInfo getCost(ReportOutline reportOutline, List<String> functionIdList);
+
+    /**
+     * 根据项目id获取费用信息
+     *
+     * @param functionIdList 费用信息点列表
+     * @param reportMonth    报告月份
+     * @param projectId      项目id
+     * @return 费用信息
+     * @author lixing
+     * @version V1.0 2021/5/30 11:41 下午
+     */
+    HotelProjectCostInfo getCostInfoByProjectId(
+            List<String> functionIdList, Date reportMonth, String projectId);
 }

+ 5 - 4
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/IHotelProjectReportPowerInfoOutlineService.java

@@ -2,9 +2,8 @@ package com.persagy.apm.energy.report.monthly.detail.hotel.project.service;
 
 import com.persagy.apm.energy.report.monthly.detail.common.service.IReportPowerInfoService;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPowerConsumptionOutline;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPublicPowerConsumption;
-import com.persagy.apm.energy.report.monthly.outline.model.ReportOutline;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -17,11 +16,13 @@ public interface IHotelProjectReportPowerInfoOutlineService extends IReportPower
     /**
      * 获取用电量信息概要
      *
-     * @param reportOutline 报告概要
+     * @param projectId      项目id
+     * @param reportMonth    报告月份
      * @param functionIdList 概要功能点列表
      * @return 用电量信息概要
      * @author lixing
      * @version V1.0 2021/6/10 2:35 下午
      */
-    HotelProjectPowerConsumptionOutline getConsumptionOutline(ReportOutline reportOutline, List<String> functionIdList);
+    HotelProjectPowerConsumptionOutline getConsumptionOutline(
+            String projectId, Date reportMonth, List<String> functionIdList);
 }

+ 4 - 2
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/IHotelProjectReportPublicPowerInfoService.java

@@ -5,6 +5,7 @@ import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.Hotel
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPublicPowerConsumption;
 import com.persagy.apm.energy.report.monthly.outline.model.ReportOutline;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -18,12 +19,13 @@ public interface IHotelProjectReportPublicPowerInfoService extends IReportPowerI
     /**
      * 获取公区用电量信息
      *
-     * @param reportOutline 报告概要
+     * @param projectId 项目id
+     * @param reportMonth 报告月份
      * @param functionIdList 公区功能点列表
      * @return 公区用电量信息
      * @author lixing
      * @version V1.0 2021/6/10 2:35 下午
      */
-    HotelProjectPublicPowerConsumption getPublicConsumption(ReportOutline reportOutline, List<String> functionIdList);
+    HotelProjectPublicPowerConsumption getPublicConsumption(String projectId, Date reportMonth, List<String> functionIdList);
 
 }

+ 2 - 11
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/HotelProjectReportCostServiceImpl.java

@@ -52,17 +52,8 @@ public class HotelProjectReportCostServiceImpl extends ReportCostInfoServiceImpl
         return getCostInfoByProjectId(functionIdList, reportMonth, projectIds.get(0));
     }
 
-    /**
-     * 根据项目id获取费用信息
-     *
-     * @param functionIdList 费用信息点列表
-     * @param reportMonth    报告月份
-     * @param projectId      项目id
-     * @return 费用信息
-     * @author lixing
-     * @version V1.0 2021/5/30 11:41 下午
-     */
-    private HotelProjectCostInfo getCostInfoByProjectId(
+    @Override
+    public HotelProjectCostInfo getCostInfoByProjectId(
             List<String> functionIdList, Date reportMonth, String projectId) {
         HotelProjectCostInfo hotelProjectCostInfo = new HotelProjectCostInfo();
         // 获取项目信息

+ 6 - 8
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/HotelProjectReportPowerInfoOutlineServiceImpl.java

@@ -2,16 +2,12 @@ package com.persagy.apm.energy.report.monthly.detail.hotel.project.service.impl;
 
 import com.persagy.apm.energy.report.common.utils.DataUtils;
 import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelPowerConsumptionItem;
-import com.persagy.apm.energy.report.monthly.detail.common.model.vo.HotelPowerPublicConsumptionItem;
 import com.persagy.apm.energy.report.monthly.detail.common.model.vo.PowerItemVO;
 import com.persagy.apm.energy.report.monthly.detail.common.model.vo.PowerVO;
 import com.persagy.apm.energy.report.monthly.detail.common.service.impl.ReportPowerInfoServiceImpl;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.ConvertReportHotelProjectDetailTool;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPowerConsumptionOutline;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPublicPowerConsumption;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.service.IHotelProjectReportPowerInfoOutlineService;
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.service.IHotelProjectReportPublicPowerInfoService;
-import com.persagy.apm.energy.report.monthly.outline.model.ReportOutline;
 import com.persagy.apm.energy.report.saasweb.model.vo.SimpleProjectVO;
 import com.persagy.apm.energy.report.saasweb.service.ISaasWebService;
 import org.assertj.core.util.Lists;
@@ -19,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -41,10 +38,9 @@ public class HotelProjectReportPowerInfoOutlineServiceImpl extends ReportPowerIn
 
     @Override
     public HotelProjectPowerConsumptionOutline getConsumptionOutline(
-            ReportOutline reportOutline, List<String> functionIdList) {
-        PowerVO powerInfo = getPowerInfo(reportOutline, null, functionIdList);
+            String projectId, Date reportMonth, List<String> functionIdList) {
+        PowerVO powerInfo = getPowerInfoByProjectIds(null, functionIdList, reportMonth, Lists.newArrayList(projectId));
         HotelProjectPowerConsumptionOutline hotelProjectPowerConsumptionOutline = new HotelProjectPowerConsumptionOutline();
-        String projectId = reportOutline.getBelong();
         // 获取项目信息
         SimpleProjectVO simpleProjectInfo = saasWebService.getSimpleProjectInfo(projectId);
         if (simpleProjectInfo == null) {
@@ -67,6 +63,8 @@ public class HotelProjectReportPowerInfoOutlineServiceImpl extends ReportPowerIn
                     getProjectBuildingArea(Lists.newArrayList(projectId)));
             // 去年同期耗电量
             hotelProjectPowerConsumptionOutline.setConsumptionLastYear(summary.getLastYearSameTime());
+            // 环比涨幅
+            hotelProjectPowerConsumptionOutline.setConsumptionChainRange(summary.getLinkRange());
             // 月同比涨幅
             hotelProjectPowerConsumptionOutline.setConsumptionSameTimeRange(summary.getSameTimeRange());
         }
@@ -75,7 +73,7 @@ public class HotelProjectReportPowerInfoOutlineServiceImpl extends ReportPowerIn
         if (!CollectionUtils.isEmpty(items)) {
             List<HotelPowerConsumptionItem> consumptions = items.stream().map(
                     ConvertReportHotelProjectDetailTool.INSTANCE::convert2HotelPowerConsumptionItem
-                ).collect(Collectors.toList());
+            ).collect(Collectors.toList());
             hotelProjectPowerConsumptionOutline.setDetailInfo(consumptions);
         }
         return hotelProjectPowerConsumptionOutline;

+ 5 - 4
src/main/java/com/persagy/apm/energy/report/monthly/detail/hotel/project/service/impl/HotelProjectReportPublicPowerInfoServiceImpl.java

@@ -8,13 +8,14 @@ import com.persagy.apm.energy.report.monthly.detail.common.service.impl.ReportPo
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.ConvertReportHotelProjectDetailTool;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectPublicPowerConsumption;
 import com.persagy.apm.energy.report.monthly.detail.hotel.project.service.IHotelProjectReportPublicPowerInfoService;
-import com.persagy.apm.energy.report.monthly.outline.model.ReportOutline;
 import com.persagy.apm.energy.report.saasweb.model.vo.SimpleProjectVO;
 import com.persagy.apm.energy.report.saasweb.service.ISaasWebService;
+import org.assertj.core.util.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ConcurrentMap;
 import java.util.stream.Collectors;
@@ -38,12 +39,12 @@ public class HotelProjectReportPublicPowerInfoServiceImpl extends ReportPowerInf
 
     @Override
     public HotelProjectPublicPowerConsumption getPublicConsumption(
-            ReportOutline reportOutline, List<String> functionIdList) {
+            String projectId, Date reportMonth, List<String> functionIdList) {
         // 获取用电量信息
-        PowerVO powerInfo = getPowerInfo(reportOutline, null, functionIdList);
+        PowerVO powerInfo = getPowerInfoByProjectIds(
+                null, functionIdList, reportMonth, Lists.newArrayList(projectId));
         HotelProjectPublicPowerConsumption hotelProjectPublicPowerConsumption = new HotelProjectPublicPowerConsumption();
 
-        String projectId = reportOutline.getBelong();
         PowerItemVO summary = powerInfo.getSummary();
         if (summary != null) {
             // 本月总耗电量

+ 55 - 0
src/main/java/com/persagy/apm/energy/report/monthly/outline/service/builder/hotel/IHotelAreaReportBuilder.java

@@ -1,7 +1,13 @@
 package com.persagy.apm.energy.report.monthly.outline.service.builder.hotel;
 
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaPowerConsumptionOutline;
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaRemainProblem;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
+import com.persagy.apm.energy.report.monthly.outline.model.ReportOutline;
 import com.persagy.apm.energy.report.monthly.outline.service.builder.common.IReportBuilder;
 
+import java.util.List;
+
 /**
  * 生成酒店区域报告建造者接口
  *
@@ -9,4 +15,53 @@ import com.persagy.apm.energy.report.monthly.outline.service.builder.common.IRep
  * @version V1.0 2021/5/30 10:26 下午
  **/
 public interface IHotelAreaReportBuilder extends IReportBuilder {
+    /**
+     * 报警处理信息
+     *
+     * @param reportOutline 报告outline对象
+     * @return 报警处理信息
+     * @author lixing
+     * @version V1.0 2021/6/9 10:04 上午
+     */
+    List<HotelProjectAlarmDealInfo> getAlarmDealInfo(ReportOutline reportOutline);
+
+    /**
+     * 节能工单信息
+     *
+     * @param reportOutline 报告outline对象
+     * @return 节能工单信息
+     * @author lixing
+     * @version V1.0 2021/6/9 10:04 上午
+     */
+    List<HotelProjectEnergyWorkerOrderBaseInfo> getEnergyWorkOrderInfo(ReportOutline reportOutline);
+
+    /**
+     * 用电量概述
+     *
+     * @param reportOutline 报告outline对象
+     * @return 用电量概述
+     * @author lixing
+     * @version V1.0 2021/6/9 10:04 上午
+     */
+    List<HotelAreaPowerConsumptionOutline> getPowerUsageOutline(ReportOutline reportOutline);
+
+    /**
+     * 费用信息
+     *
+     * @param reportOutline 报告outline对象
+     * @return 费用信息
+     * @author lixing
+     * @version V1.0 2021/6/9 10:04 上午
+     */
+    List<HotelProjectCostInfo> getCostInfo(ReportOutline reportOutline);
+
+    /**
+     * 平台运行信息
+     *
+     * @param reportOutline 报告outline对象
+     * @return 平台运行信息
+     * @author lixing
+     * @version V1.0 2021/6/9 10:04 上午
+     */
+    List<HotelProjectMaintenanceBaseInfo> getPlatformRuntimeInfo(ReportOutline reportOutline);
 }

+ 85 - 2
src/main/java/com/persagy/apm/energy/report/monthly/outline/service/builder/hotel/impl/HotelAreaReportBuilder.java

@@ -1,9 +1,17 @@
 package com.persagy.apm.energy.report.monthly.outline.service.builder.hotel.impl;
 
-import com.persagy.apm.energy.report.monthly.detail.common.service.IReportDetailService;
+import com.persagy.apm.energy.report.common.service.CommonService;
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.ConvertReportHotelAreaDetailTool;
 import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.dto.AddReportHotelAreaDetailDTO;
+import com.persagy.apm.energy.report.monthly.detail.hotel.area.model.vo.HotelAreaPowerConsumptionOutline;
 import com.persagy.apm.energy.report.monthly.detail.hotel.area.service.IReportHotelAreaDetailService;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.service.IHotelProjectReportCostService;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.service.IHotelProjectReportPowerInfoOutlineService;
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.service.IHotelProjectReportPublicPowerInfoService;
+import com.persagy.apm.energy.report.monthly.outline.constants.HotelReportParagraphs;
 import com.persagy.apm.energy.report.monthly.outline.model.ReportOutline;
+import com.persagy.apm.energy.report.monthly.outline.service.IReportOutlineService;
 import com.persagy.apm.energy.report.monthly.outline.service.builder.common.impl.ReportBuilder;
 import com.persagy.apm.energy.report.monthly.outline.service.builder.hotel.IHotelAreaReportBuilder;
 import lombok.extern.slf4j.Slf4j;
@@ -11,7 +19,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -25,18 +35,32 @@ import java.util.List;
 public class HotelAreaReportBuilder extends ReportBuilder implements IHotelAreaReportBuilder {
     @Autowired
     private IReportHotelAreaDetailService reportHotelAreaDetailService;
+    @Autowired
+    private IHotelProjectReportCostService hotelProjectReportCostService;
+    @Autowired
+    private IReportOutlineService reportOutlineService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private IHotelProjectReportPowerInfoOutlineService hotelProjectReportPowerInfoOutlineService;
+    @Autowired
+    private IHotelProjectReportPublicPowerInfoService hotelProjectReportPublicPowerInfoService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean generateNewReportDetail(ReportOutline reportOutline) {
         try {
             AddReportHotelAreaDetailDTO addReportHotelAreaDetailDTO = new AddReportHotelAreaDetailDTO();
+            // 平台运行信息
             addReportHotelAreaDetailDTO.setPlatformRuntimeInfo(getPlatformRuntimeInfo(reportOutline));
+            // 费用信息
             addReportHotelAreaDetailDTO.setCostInfo(getCostInfo(reportOutline));
+            // 用电量概述
             addReportHotelAreaDetailDTO.setPowerUsageOutline(getPowerUsageOutline(reportOutline));
+            // 节能工单信息
             addReportHotelAreaDetailDTO.setEnergyWorkOrderInfo(getEnergyWorkOrderInfo(reportOutline));
+            // 报警处理信息
             addReportHotelAreaDetailDTO.setAlarmDealInfo(getAlarmDealInfo(reportOutline));
-            addReportHotelAreaDetailDTO.setRemainProblemsDealInfo(getRemainProblemsDealInfo(reportOutline));
             String detailId = reportHotelAreaDetailService.createReportHotelAreaDetail(addReportHotelAreaDetailDTO);
             reportOutline.setDetailId(detailId);
             return true;
@@ -46,4 +70,63 @@ public class HotelAreaReportBuilder extends ReportBuilder implements IHotelAreaR
             return false;
         }
     }
+
+    @Override
+    public List<HotelProjectAlarmDealInfo> getAlarmDealInfo(ReportOutline reportOutline) {
+        return null;
+    }
+
+    @Override
+    public List<HotelProjectEnergyWorkerOrderBaseInfo> getEnergyWorkOrderInfo(ReportOutline reportOutline) {
+        return null;
+    }
+
+    @Override
+    public List<HotelAreaPowerConsumptionOutline> getPowerUsageOutline(ReportOutline reportOutline) {
+        List<String> functionIdList = getFunctionsByParagraph(
+                reportOutline.getReportTypeId(), HotelReportParagraphs.POWER_CONSUMPTION_OUTLINE);
+
+        List<String> projectIds = reportOutlineService.queryRelatedProjectIds(reportOutline);
+        if (CollectionUtils.isEmpty(projectIds)) {
+            return null;
+        }
+
+        List<HotelAreaPowerConsumptionOutline> result = new ArrayList<>();
+        for (String projectId : projectIds) {
+            HotelProjectPowerConsumptionOutline consumptionOutline = hotelProjectReportPowerInfoOutlineService.
+                    getConsumptionOutline(projectId, reportOutline.getReportMonth(), functionIdList);
+            HotelProjectPublicPowerConsumption publicConsumption = hotelProjectReportPublicPowerInfoService.
+                    getPublicConsumption(projectId, reportOutline.getReportMonth(), functionIdList);
+            HotelAreaPowerConsumptionOutline hotelAreaPowerConsumptionOutline = ConvertReportHotelAreaDetailTool.
+                    INSTANCE.convert2HotelAreaPowerConsumptionOutline(consumptionOutline, publicConsumption);
+
+            result.add(hotelAreaPowerConsumptionOutline);
+        }
+
+        return result;
+    }
+
+    @Override
+    public List<HotelProjectCostInfo> getCostInfo(ReportOutline reportOutline) {
+        List<String> functionIdList = getFunctionsByParagraph(
+                reportOutline.getReportTypeId(), HotelReportParagraphs.COST);
+
+        List<HotelProjectCostInfo> resultList = new ArrayList<>();
+        List<String> projectIds = reportOutlineService.queryRelatedProjectIds(reportOutline);
+        if (CollectionUtils.isEmpty(projectIds)) {
+            return null;
+        }
+        for (String projectId : projectIds) {
+            HotelProjectCostInfo projectCostInfo = hotelProjectReportCostService.getCostInfoByProjectId(
+                    functionIdList, reportOutline.getReportMonth(), projectId);
+            resultList.add(projectCostInfo);
+        }
+        return resultList;
+    }
+
+    @Override
+    public List<HotelProjectMaintenanceBaseInfo> getPlatformRuntimeInfo(ReportOutline reportOutline) {
+        return null;
+    }
+
 }

+ 8 - 6
src/main/java/com/persagy/apm/energy/report/monthly/outline/service/builder/hotel/impl/HotelProjectReportBuilder.java

@@ -112,14 +112,14 @@ public class HotelProjectReportBuilder extends ReportBuilder implements IHotelPr
         return commonService.getHotelProjectMaintenanceInfo(
                 PoemsContext.getContext().getUserId(), reportOutline.getBelong(),
                 reportOutline.getReportMonth(), functions, projectIdsInSameClimateZone
-                );
+        );
 
     }
 
     @Override
     public HotelProjectEnergyWorkerOrderInfo getEnergyWorkOrderInfo(ReportOutline reportOutline) {
-        // TODO: 2021/6/9
-        return null;
+        return commonService.getHotelProjectEnergyWorkerOrderInfo(
+                reportOutline.getBelong(), reportOutline.getReportMonth());
     }
 
     @Override
@@ -151,7 +151,7 @@ public class HotelProjectReportBuilder extends ReportBuilder implements IHotelPr
     /**
      * 获取同气候区,同业态的项目id列表
      *
-     * @param projectId 项目id
+     * @param projectId    项目id
      * @param buildingType 业态类型
      * @return 项目id列表
      * @author lixing
@@ -181,14 +181,16 @@ public class HotelProjectReportBuilder extends ReportBuilder implements IHotelPr
     public HotelProjectPublicPowerConsumption getPublicPowerConsumption(ReportOutline reportOutline) {
         List<String> functionIdList = getFunctionsByParagraph(
                 reportOutline.getReportTypeId(), HotelReportParagraphs.PUBLIC_POWER_CONSUMPTION);
-        return publicPowerInfoService.getPublicConsumption(reportOutline, functionIdList);
+        return publicPowerInfoService.getPublicConsumption(
+                reportOutline.getBelong(), reportOutline.getReportMonth(), functionIdList);
     }
 
     @Override
     public HotelProjectPowerConsumptionOutline getPowerConsumptionOutline(ReportOutline reportOutline) {
         List<String> functionIdList = getFunctionsByParagraph(
                 reportOutline.getReportTypeId(), HotelReportParagraphs.POWER_CONSUMPTION_OUTLINE);
-        return powerInfoOutlineService.getConsumptionOutline(reportOutline, functionIdList);
+        return powerInfoOutlineService.getConsumptionOutline(
+                reportOutline.getBelong(), reportOutline.getReportMonth(), functionIdList);
     }
 
     @Override