|
@@ -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;
|
|
|
+ }
|
|
|
+
|
|
|
}
|