Bläddra i källkod

节能工单条数返回值修改

lixing 3 år sedan
förälder
incheckning
bd3453d7d4

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

@@ -153,16 +153,18 @@ public abstract class ReportPowerInfoServiceImpl implements IReportPowerInfoServ
             powerItemVO.setLastYearSameTimePerSqm(lastYearSameTimePerSqm);
         }
 
-        if (lastYearSameTime != null && currentMonth != null && buildingAreaIsValid(buildingArea)) {
+        if (lastYearSameTime != null && currentMonth != null) {
             Double sameTimeGrowth = DataUtils.doubleSubtract(currentMonth, lastYearSameTime);
             powerItemVO.setSameTimeGrowth(sameTimeGrowth);
             Double sameTimeRange = DataUtils.doubleDivide(sameTimeGrowth, lastYearSameTime);
             powerItemVO.setSameTimeRange(sameTimeRange);
-            Double sameTimeGrowthPerSqm = DataUtils.doubleDivide(sameTimeGrowth, buildingArea);
-            powerItemVO.setSameTimeGrowthPerSqm(sameTimeGrowthPerSqm);
-            if (lastYearSameTimePerSqm != null) {
-                Double sameTimeRangePerSqm = DataUtils.doubleDivide(sameTimeGrowthPerSqm, lastYearSameTimePerSqm);
-                powerItemVO.setSameTimeRangePerSqm(sameTimeRangePerSqm);
+            if (buildingAreaIsValid(buildingArea)) {
+                Double sameTimeGrowthPerSqm = DataUtils.doubleDivide(sameTimeGrowth, buildingArea);
+                powerItemVO.setSameTimeGrowthPerSqm(sameTimeGrowthPerSqm);
+                if (lastYearSameTimePerSqm != null) {
+                    Double sameTimeRangePerSqm = DataUtils.doubleDivide(sameTimeGrowthPerSqm, lastYearSameTimePerSqm);
+                    powerItemVO.setSameTimeRangePerSqm(sameTimeRangePerSqm);
+                }
             }
         }
 

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

@@ -93,6 +93,7 @@ public interface ConvertReportHotelProjectDetailTool {
      * @author lixing
      * @version V1.0 2021/6/10 3:28 下午
      */
+    @Mapping(target = "range", source = "sameTimeRange")
     HotelPowerPublicConsumptionItem convert2HotelPowerPublicConsumptionItem(PowerItemVO powerItemVO);
 }
 

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

@@ -17,8 +17,8 @@ import java.util.List;
 public class HotelProjectEnergyWorkerOrderBaseInfo {
     @ApiModelProperty(value = "项目名称")
     private String projectName;
-    @ApiModelProperty(value = "工单条数")
-    private Integer totalCount;
+    @ApiModelProperty(value = "节能工单条数")
+    private Integer initiativeCount;
     @ApiModelProperty(value = "工单总节能量")
     private Double totalEnergySave;
 }

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

@@ -1,6 +1,7 @@
 package com.persagy.apm.energy.report.monthly.detail.hotel.project.service.impl;
 
 import com.google.common.collect.Maps;
+import com.persagy.apm.energy.report.monthly.config.type.constant.enums.BuildingTypeEnum;
 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;
@@ -8,6 +9,7 @@ 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.saasweb.model.vo.PoemsProjectVO;
 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;
@@ -15,6 +17,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.Date;
 import java.util.List;
 import java.util.concurrent.ConcurrentMap;
@@ -40,10 +44,11 @@ public class HotelProjectReportPublicPowerInfoServiceImpl extends ReportPowerInf
     @Override
     public HotelProjectPublicPowerConsumption getPublicConsumption(
             String projectId, Date reportMonth, List<String> functionIdList) {
+        HotelProjectPublicPowerConsumption hotelProjectPublicPowerConsumption = new HotelProjectPublicPowerConsumption();
+
         // 获取用电量信息
         PowerVO powerInfo = getPowerInfoByProjectIds(
                 null, functionIdList, reportMonth, Lists.newArrayList(projectId));
-        HotelProjectPublicPowerConsumption hotelProjectPublicPowerConsumption = new HotelProjectPublicPowerConsumption();
 
         PowerItemVO summary = powerInfo.getSummary();
         if (summary != null) {
@@ -59,6 +64,27 @@ public class HotelProjectReportPublicPowerInfoServiceImpl extends ReportPowerInf
             hotelProjectPublicPowerConsumption.setConsumptionYearRange(summary.getSameRange());
             // 国标引导值
             hotelProjectPublicPowerConsumption.setGuideValue(getGuideValue(projectId));
+
+            // 获取同气候区项目
+            List<PoemsProjectVO> projectsInSameClimate = saasWebService.getProjectsByClimateAndBuildingType(
+                    saasWebService.getProjectClimateZone(projectId), BuildingTypeEnum.HOTEL.getType());
+            if (!CollectionUtils.isEmpty(projectsInSameClimate)) {
+                // 同气候区项目数量
+                hotelProjectPublicPowerConsumption.setProjectNumWithinClimateZone(projectsInSameClimate.size());
+                List<String> projectIdsInSameClimate = projectsInSameClimate.stream().map(
+                        PoemsProjectVO::getProjectId).collect(Collectors.toList());
+                // 获取同气候区项目本年累计单方用电量
+                List<Double> consumptionPerSqmCurrentYear = getConsumptionPerSqmCurrentYear(
+                        projectIdsInSameClimate, functionIdList, reportMonth);
+                // 获取当前气候区排名
+                if (!CollectionUtils.isEmpty(consumptionPerSqmCurrentYear) && summary.getYearPerCount() != null) {
+                    consumptionPerSqmCurrentYear = consumptionPerSqmCurrentYear.stream().
+                            sorted(Comparator.reverseOrder()).collect(Collectors.toList());
+
+                    hotelProjectPublicPowerConsumption.setRankWithinClimateZone(
+                            consumptionPerSqmCurrentYear.indexOf(summary.getYearPerCount()) + 1);
+                }
+            }
         }
 
         // 设置条目信息
@@ -74,6 +100,35 @@ public class HotelProjectReportPublicPowerInfoServiceImpl extends ReportPowerInf
     }
 
     /**
+     * 获取一组项目本年累计单方用电量
+     *
+     * @param projectIds     项目id列表
+     * @param functionIdList 用电量分项列表
+     * @param reportMonth    报告月份
+     * @return 这组项目本年累计单方用电量
+     * @author lixing
+     * @version V1.0 2021/6/16 10:36 上午
+     */
+    private List<Double> getConsumptionPerSqmCurrentYear(
+            List<String> projectIds, List<String> functionIdList, Date reportMonth) {
+        if (CollectionUtils.isEmpty(projectIds) || CollectionUtils.isEmpty(functionIdList)) {
+            return Lists.newArrayList();
+        }
+
+        List<Double> resultList = new ArrayList<>();
+        for (String projectId : projectIds) {
+            // 获取用电量信息
+            PowerVO powerInfo = getPowerInfoByProjectIds(
+                    null, functionIdList, reportMonth, Lists.newArrayList(projectId));
+            PowerItemVO summary = powerInfo.getSummary();
+            if (summary.getYearPerCount() != null) {
+                resultList.add(summary.getYearPerCount());
+            }
+        }
+        return resultList;
+    }
+
+    /**
      * 获取项目公区能耗国标引导值
      *
      * @param projectId 项目id

+ 2 - 1
src/main/java/com/persagy/apm/energy/report/monthly/outline/controller/ReportOutlineController.java

@@ -78,11 +78,12 @@ public class ReportOutlineController {
         return ResultHelper.success();
     }
 
-
     @ApiOperation(value = "报告概要列表, 分页查询")
     @PostMapping("/query")
     public CommonResult<PageList<ResponseReportOutlineListItemVO>> queryReportOutline(
             @Valid @RequestBody PageQueryReportOutlineDTO pageQueryReportOutlineDTO) {
+        // 查询当前人员的项目权限
+
         IPage<ReportOutline> pagedList = reportOutlineService.pageQueryReportOutline(pageQueryReportOutlineDTO);
         IPage<ResponseReportOutlineListItemVO> pagedResultList = pagedList.convert(item -> {
             try {

+ 0 - 7
src/main/java/com/persagy/apm/energy/report/monthly/outline/service/impl/ReportOutlineServiceImpl.java

@@ -311,13 +311,6 @@ public class ReportOutlineServiceImpl extends ServiceImpl<ReportOutlineMapper, R
         return list(queryWrapper);
     }
 
-    /**
-     * 分页查询报告概要
-     *
-     * @return IPage<ReportOutline>
-     * @author lixing
-     * @version V1.0 2021-05-17 11:09:37
-     */
     @Override
     public IPage<ReportOutline> pageQueryReportOutline(PageQueryReportOutlineDTO pageQueryReportOutlineDTO) {
         QueryWrapper<ReportOutline> queryWrapper = new QueryWrapper<>();