Quellcode durchsuchen

2、调整能耗类型查询逻辑,从类文件中获取改为从数据库配置表中获取;
3、在能耗分项表中录入分项数据;

james vor 4 Tagen
Ursprung
Commit
7ba68a4623

+ 0 - 45
service-ems/service-ems-biz/src/main/java/com/usky/ems/enums/EnergyTypeEnum.java

@@ -1,45 +0,0 @@
-package com.usky.ems.enums;
-
-import com.usky.common.core.exception.BusinessException;
-
-import java.util.Objects;
-
-public enum EnergyTypeEnum {
-    AMMETER("电", 1, "totalactiveenergyf"),
-    WATER("水", 2, "20000000"),
-    COOL("冷", 3, "60000000"),
-    HOT("热", 4, "50000000"),
-    HOT_WATER("热循环", 5, "90000000");
-
-    private final Integer value;
-    private final String name;
-    private final String code;
-
-    private EnergyTypeEnum(String name, Integer value, String code) {
-        this.name = name;
-        this.value = value;
-        this.code = code;
-    }
-
-    public static EnergyTypeEnum get(Integer type) {
-        for(EnergyTypeEnum typeEnum : values()) {
-            if (Objects.equals(typeEnum.getValue(), type)) {
-                return typeEnum;
-            }
-        }
-
-        throw new BusinessException("能源类型错误");
-    }
-
-    public Integer getValue() {
-        return this.value;
-    }
-
-    public String getName() {
-        return this.name;
-    }
-
-    public String getCode() {
-        return this.code;
-    }
-}

+ 18 - 6
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsModelServiceImpl.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.ems.domain.*;
-import com.usky.ems.enums.EnergyTypeEnum;
 import com.usky.ems.mapper.*;
 import com.usky.ems.service.EmsModelService;
 import com.usky.ems.service.vo.DmpGatewayDetailResponse;
@@ -72,6 +71,8 @@ public class EmsModelServiceImpl implements EmsModelService {
     private DmpDeviceStatusMapper dmpDeviceStatusMapper;
     @Autowired
     private BaseSpaceServiceImpl baseSpaceService;
+    @Autowired
+    private EmsEnergyItemCodeMapper emsEnergyItemCodeMapper;
 
     private static final int SPACE_TYPE_PROJECT = 1;
     private static final int SPACE_TYPE_REGION = 2;
@@ -191,6 +192,13 @@ public class EmsModelServiceImpl implements EmsModelService {
             return Collections.emptyList();
         }
 
+        Map<Integer, EmsEnergyItemCode> rootItemByEnergyType = emsEnergyItemCodeMapper.selectList(
+                Wrappers.<EmsEnergyItemCode>lambdaQuery()
+                        .eq(EmsEnergyItemCode::getParentCode, "0")
+        ).stream()
+                .filter(item -> item.getEnergyType() != null)
+                .collect(Collectors.toMap(EmsEnergyItemCode::getEnergyType, item -> item, (a, b) -> a));
+
         AtomicInteger sortOrder = new AtomicInteger(0);
         return energyTypeList.stream()
                 .map(EmsProductEnergyType::getEnergyType)
@@ -199,15 +207,19 @@ public class EmsModelServiceImpl implements EmsModelService {
                 .distinct()
                 .sorted()
                 .map(type -> {
-                    EnergyTypeEnum typeEnum = EnergyTypeEnum.get(type);
+                    EmsEnergyItemCode itemCode = rootItemByEnergyType.get(type);
+                    if (itemCode == null) {
+                        return null;
+                    }
                     EmsEnergyTypeVO vo = new EmsEnergyTypeVO();
-                    vo.setId(typeEnum.getValue().longValue());
-                    vo.setName(typeEnum.getName());
-                    vo.setCode(typeEnum.getCode());
-                    vo.setUnit(energyTypeUnit(type));
+                    vo.setId(type.longValue());
+                    vo.setName(itemCode.getName());
+                    vo.setCode(itemCode.getIdentifier());
+                    vo.setUnit(StringUtils.isNotBlank(itemCode.getUnit()) ? itemCode.getUnit() : energyTypeUnit(type));
                     vo.setSortOrder(sortOrder.getAndIncrement());
                     return vo;
                 })
+                .filter(Objects::nonNull)
                 .collect(Collectors.toList());
     }
 

+ 18 - 5
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsOverviewServiceImpl.java

@@ -11,7 +11,6 @@ import com.usky.demo.domain.EnergyItemTrendPointVO;
 import com.usky.demo.domain.EnergyItemTrendQueryVO;
 import com.usky.demo.domain.EnergyItemTrendResultVO;
 import com.usky.ems.domain.*;
-import com.usky.ems.enums.EnergyTypeEnum;
 import com.usky.ems.mapper.DmpProductMapper;
 import com.usky.ems.mapper.EmsDeviceMapper;
 import com.usky.ems.mapper.EmsEnergyItemCodeMapper;
@@ -834,9 +833,19 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
 
         Map<Integer, BigDecimal> map = new HashMap();
 
+        Map<Integer, EmsEnergyItemCode> rootItemByEnergyType = emsEnergyItemCodeMapper.selectList(
+                        Wrappers.<EmsEnergyItemCode>lambdaQuery()
+                                .eq(EmsEnergyItemCode::getParentCode, "0")
+                ).stream()
+                .filter(item -> item.getEnergyType() != null)
+                .collect(Collectors.toMap(EmsEnergyItemCode::getEnergyType, item -> item, (a, b) -> a));
+
         for(Integer energyType : typeIds) {
             if (energyType != 5) {
-                EnergyTypeEnum typeEnum = EnergyTypeEnum.get(energyType);
+                EmsEnergyItemCode itemCode = rootItemByEnergyType.get(energyType);
+                if (itemCode == null) {
+                    return null;
+                }
 
 
                 List<String> productCodeList = dmpProductMapper.selectProductCodesByEnergyType(
@@ -845,7 +854,7 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
                     return resultMap;
                 }
 
-                BigDecimal data = sumEnergyByProductCodes(productCodeList, typeEnum.getCode(), startTime, endTime);
+                BigDecimal data = sumEnergyByProductCodes(productCodeList, itemCode.getIdentifier(), startTime, endTime);
                 map.put(energyType, data);
             }
         }
@@ -867,9 +876,13 @@ public class EmsOverviewServiceImpl implements EmsOverviewService {
                     BigDecimal co2Amount = coalAmount.multiply(new BigDecimal("2.4589")).setScale(2, RoundingMode.UP);
                     coalTotal = coalTotal.add(coalAmount);
                     co2Total = co2Total.add(co2Amount);
-                    EnergyTypeEnum typeEnum = EnergyTypeEnum.get(energyType);
+
+                    EmsEnergyItemCode itemCode = rootItemByEnergyType.get(energyType);
+                    if (itemCode == null) {
+                        return null;
+                    }
                     Map<String, Object> ratioMap = new HashMap();
-                    ratioMap.put("name", typeEnum.getName());
+                    ratioMap.put("name", itemCode.getName());
                     ratioMap.put("consume", con.multiply(coal).setScale(2, RoundingMode.UP));
                     ratioMap.put("totalConsume", totalCon.multiply(coal).setScale(2, RoundingMode.UP));
                     ratioList.add(ratioMap);