|
|
@@ -5,6 +5,7 @@ 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;
|
|
|
@@ -28,6 +29,7 @@ import java.util.Map;
|
|
|
import java.util.Objects;
|
|
|
import java.util.Set;
|
|
|
import java.util.UUID;
|
|
|
+import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -37,6 +39,9 @@ import java.util.stream.Collectors;
|
|
|
@Service
|
|
|
public class EmsModelServiceImpl implements EmsModelService {
|
|
|
|
|
|
+ /** 热循环,建模与概览页均不展示 */
|
|
|
+ private static final int EXCLUDED_ENERGY_TYPE = 5;
|
|
|
+
|
|
|
@Autowired
|
|
|
private BaseSpaceMapper baseSpaceMapper;
|
|
|
@Autowired
|
|
|
@@ -60,6 +65,8 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
@Autowired
|
|
|
private DmpProductMapper dmpProductMapper;
|
|
|
@Autowired
|
|
|
+ private EmsProductEnergyTypeMapper emsProductEnergyTypeMapper;
|
|
|
+ @Autowired
|
|
|
private DmpDeviceMapper dmpDeviceMapper;
|
|
|
@Autowired
|
|
|
private DmpDeviceStatusMapper dmpDeviceStatusMapper;
|
|
|
@@ -158,20 +165,67 @@ public class EmsModelServiceImpl implements EmsModelService {
|
|
|
|
|
|
@Override
|
|
|
public List<EmsEnergyTypeVO> getEnergyTypeList() {
|
|
|
- String[] names = {"", "电", "水", "气"};
|
|
|
- String[] codes = {"", "electric", "water", "gas"};
|
|
|
- String[] units = {"", "kWh", "m³", "m³"};
|
|
|
- List<EmsEnergyTypeVO> result = new ArrayList<>();
|
|
|
- for (int i = 1; i <= 3; i++) {
|
|
|
- EmsEnergyTypeVO vo = new EmsEnergyTypeVO();
|
|
|
- vo.setId((long) i);
|
|
|
- vo.setName(names[i]);
|
|
|
- vo.setCode(codes[i]);
|
|
|
- vo.setUnit(units[i]);
|
|
|
- vo.setSortOrder(i - 1);
|
|
|
- result.add(vo);
|
|
|
+ List<DmpProduct> products = dmpProductMapper.selectList(
|
|
|
+ Wrappers.<DmpProduct>lambdaQuery()
|
|
|
+ .eq(DmpProduct::getTenantId, SecurityUtils.getTenantId())
|
|
|
+ .eq(DmpProduct::getDeleteFlag, 0)
|
|
|
+ );
|
|
|
+ if (products.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Long> productIds = products.stream()
|
|
|
+ .map(DmpProduct::getId)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .map(Integer::longValue)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (productIds.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<EmsProductEnergyType> energyTypeList = emsProductEnergyTypeMapper.selectList(
|
|
|
+ Wrappers.<EmsProductEnergyType>lambdaQuery()
|
|
|
+ .in(EmsProductEnergyType::getProductId, productIds)
|
|
|
+ );
|
|
|
+ if (energyTypeList.isEmpty()) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+
|
|
|
+ AtomicInteger sortOrder = new AtomicInteger(0);
|
|
|
+ return energyTypeList.stream()
|
|
|
+ .map(EmsProductEnergyType::getEnergyType)
|
|
|
+ .filter(Objects::nonNull)
|
|
|
+ .filter(type -> type != EXCLUDED_ENERGY_TYPE)
|
|
|
+ .distinct()
|
|
|
+ .sorted()
|
|
|
+ .map(type -> {
|
|
|
+ EnergyTypeEnum typeEnum = EnergyTypeEnum.get(type);
|
|
|
+ EmsEnergyTypeVO vo = new EmsEnergyTypeVO();
|
|
|
+ vo.setId(typeEnum.getValue().longValue());
|
|
|
+ vo.setName(typeEnum.getName());
|
|
|
+ vo.setCode(typeEnum.getCode());
|
|
|
+ vo.setUnit(energyTypeUnit(type));
|
|
|
+ vo.setSortOrder(sortOrder.getAndIncrement());
|
|
|
+ return vo;
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ private static String energyTypeUnit(Integer energyType) {
|
|
|
+ if (energyType == null) {
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+ switch (energyType) {
|
|
|
+ case 1:
|
|
|
+ return "kWh";
|
|
|
+ case 2:
|
|
|
+ return "m³";
|
|
|
+ case 3:
|
|
|
+ case 4:
|
|
|
+ return "kWh";
|
|
|
+ default:
|
|
|
+ return "";
|
|
|
}
|
|
|
- return result;
|
|
|
}
|
|
|
|
|
|
@Override
|