Browse Source

1、能耗逻辑优化;

dev
mh 3 weeks ago
parent
commit
e25eae94e5
  1. 16
      mh-common/src/main/java/com/mh/common/core/domain/dto/ProProfileDTO.java
  2. 8
      mh-common/src/main/java/com/mh/common/core/domain/vo/CollectionParamsManageVO.java
  3. 4
      mh-common/src/main/java/com/mh/common/core/page/TableSupport.java
  4. 4
      mh-common/src/main/java/com/mh/common/model/request/AdvantechDatas.java
  5. 2
      mh-common/src/main/java/com/mh/common/utils/PageUtils.java
  6. 23
      mh-framework/src/main/java/com/mh/framework/dealdata/impl/DataProcessServiceImpl.java
  7. 26
      mh-quartz/src/main/java/com/mh/quartz/task/DealDataTask.java
  8. 12
      mh-system/src/main/java/com/mh/system/mapper/device/DataProcessMapper.java
  9. 7
      mh-system/src/main/java/com/mh/system/mapper/energy/EnergyAnalyzeMapper.java
  10. 6
      mh-system/src/main/java/com/mh/system/mapper/energy/EnergyMapper.java
  11. 6
      mh-system/src/main/java/com/mh/system/mapper/energy/EnergyQueryMapper.java
  12. 4
      mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java
  13. 4
      mh-system/src/main/java/com/mh/system/service/device/impl/CoolingSystemMonitorServiceImpl.java
  14. 74
      mh-system/src/main/java/com/mh/system/service/energy/impl/EnergyServiceImpl.java
  15. 131
      mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java
  16. 40
      mh-system/src/main/resources/mapper/system/EnergyMapper.xml

16
mh-common/src/main/java/com/mh/common/core/domain/dto/ProProfileDTO.java

@ -61,14 +61,14 @@ public class ProProfileDTO {
} }
public ProProfileDTO(BigDecimal totalEle, BigDecimal totalCold, BigDecimal totalWater, BigDecimal totalGas, BigDecimal yearEle, BigDecimal yearCold, BigDecimal yearWater, BigDecimal yearGas) { public ProProfileDTO(BigDecimal totalEle, BigDecimal totalCold, BigDecimal totalWater, BigDecimal totalGas, BigDecimal yearEle, BigDecimal yearCold, BigDecimal yearWater, BigDecimal yearGas) {
this.totalEle = totalEle.setScale(2, BigDecimal.ROUND_HALF_UP); this.totalEle = totalEle == null ? new BigDecimal("0") : totalEle.setScale(2, BigDecimal.ROUND_HALF_UP);
this.totalCold = totalCold.setScale(2, BigDecimal.ROUND_HALF_UP); this.totalCold = totalCold == null ? new BigDecimal("0") : totalCold.setScale(2, BigDecimal.ROUND_HALF_UP);
this.totalWater = totalWater.setScale(2, BigDecimal.ROUND_HALF_UP); this.totalWater = totalWater == null ? new BigDecimal("0") : totalWater.setScale(2, BigDecimal.ROUND_HALF_UP);
this.totalGas = totalGas.setScale(2, BigDecimal.ROUND_HALF_UP); this.totalGas = totalGas == null ? new BigDecimal("0") : totalGas.setScale(2, BigDecimal.ROUND_HALF_UP);
this.yearEle = yearEle.setScale(2, BigDecimal.ROUND_HALF_UP); this.yearEle = yearEle == null ? new BigDecimal("0") : yearEle.setScale(2, BigDecimal.ROUND_HALF_UP);
this.yearCold = yearCold.setScale(2, BigDecimal.ROUND_HALF_UP); this.yearCold = yearCold == null ? new BigDecimal("0") : yearCold.setScale(2, BigDecimal.ROUND_HALF_UP);
this.yearWater = yearWater.setScale(2, BigDecimal.ROUND_HALF_UP); this.yearWater = yearWater == null ? new BigDecimal("0") : yearWater.setScale(2, BigDecimal.ROUND_HALF_UP);
this.yearGas = yearGas.setScale(2, BigDecimal.ROUND_HALF_UP); this.yearGas = yearGas == null ? new BigDecimal("0") : yearGas.setScale(2, BigDecimal.ROUND_HALF_UP);
} }
@Override @Override

8
mh-common/src/main/java/com/mh/common/core/domain/vo/CollectionParamsManageVO.java

@ -44,6 +44,14 @@ public class CollectionParamsManageVO {
*/ */
private int cpmOrderNum; private int cpmOrderNum;
public BigDecimal getCurValue() {
return curValue;
}
public void setCurValue(BigDecimal curValue) {
this.curValue = curValue.setScale(1, BigDecimal.ROUND_HALF_UP);
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this) return new ToStringBuilder(this)

4
mh-common/src/main/java/com/mh/common/core/page/TableSupport.java

@ -41,6 +41,10 @@ public class TableSupport
public static PageDomain getPageDomain() public static PageDomain getPageDomain()
{ {
PageDomain pageDomain = new PageDomain(); PageDomain pageDomain = new PageDomain();
if ((null == Convert.toInt(ServletUtils.getParameter(PAGE_NUM)))
|| (null == Convert.toInt(ServletUtils.getParameter(PAGE_SIZE)))) {
return pageDomain;
}
pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1)); pageDomain.setPageNum(Convert.toInt(ServletUtils.getParameter(PAGE_NUM), 1));
pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10)); pageDomain.setPageSize(Convert.toInt(ServletUtils.getParameter(PAGE_SIZE), 10));
pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN)); pageDomain.setOrderByColumn(ServletUtils.getParameter(ORDER_BY_COLUMN));

4
mh-common/src/main/java/com/mh/common/model/request/AdvantechDatas.java

@ -10,7 +10,7 @@ import lombok.Data;
* @date 2025-01-22 14:47:25 * @date 2025-01-22 14:47:25
*/ */
@Data @Data
public class AdvantechDatas { public class AdvantechDatas<T extends Number> {
/** /**
* 对应研华的标签值 * 对应研华的标签值
@ -20,6 +20,6 @@ public class AdvantechDatas {
/** /**
* 上报值 * 上报值
*/ */
private Integer value; private T value;
} }

2
mh-common/src/main/java/com/mh/common/utils/PageUtils.java

@ -19,7 +19,7 @@ public class PageUtils extends PageHelper
{ {
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum(); Integer pageNum = pageDomain.getPageNum();
if (pageNum == 0) { if (null == pageNum || pageNum == 0) {
return; return;
} }
Integer pageSize = pageDomain.getPageSize(); Integer pageSize = pageDomain.getPageSize();

23
mh-framework/src/main/java/com/mh/framework/dealdata/impl/DataProcessServiceImpl.java

@ -21,10 +21,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode; import java.math.RoundingMode;
import java.time.LocalDateTime; import java.time.*;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException; import java.time.format.DateTimeParseException;
import java.util.*; import java.util.*;
@ -95,16 +92,22 @@ public class DataProcessServiceImpl implements DataProcessService {
} }
String timeString = data.getTs(); String timeString = data.getTs();
OffsetDateTime offsetDateTime; OffsetDateTime utcDateTime;
try { try {
offsetDateTime = OffsetDateTime.parse(timeString, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ")); utcDateTime = OffsetDateTime.parse(timeString, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"));
} catch (DateTimeParseException e) { } catch (DateTimeParseException e) {
log.error("时间格式解析异常", e); log.error("时间格式解析异常", e);
return; return;
} }
LocalDateTime localDateTime = offsetDateTime.toLocalDateTime(); // 2. 转换为中国时区(UTC+8)
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); OffsetDateTime chinaDateTime = utcDateTime.withOffsetSameInstant(
String formattedTime = localDateTime.format(formatter); ZoneOffset.ofHours(8)
);
// 3. 格式化为目标字符串
String formattedTime = chinaDateTime.format(
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
);
// 假设 data 是一个包含 JSON 数据的对象 // 假设 data 是一个包含 JSON 数据的对象
List<AdvantechDatas> list = JSON.parseObject(data.getD().toString(), new TypeReference<List<AdvantechDatas>>() {}); List<AdvantechDatas> list = JSON.parseObject(data.getD().toString(), new TypeReference<List<AdvantechDatas>>() {});
@ -126,7 +129,7 @@ public class DataProcessServiceImpl implements DataProcessService {
log.error("数值格式解析异常", e); log.error("数值格式解析异常", e);
continue; continue;
} }
Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); Date date = DateUtils.stringToDate(formattedTime, "yyyy-MM-dd HH:mm:ss");
collectionParamsManage.setCurTime(date); collectionParamsManage.setCurTime(date);
entities.add(collectionParamsManage); entities.add(collectionParamsManage);
break; break;

26
mh-quartz/src/main/java/com/mh/quartz/task/DealDataTask.java

@ -70,11 +70,19 @@ public class DealDataTask {
for (Map.Entry<String, List<CollectionParamsManage>> entry : groupMap.entrySet()) { for (Map.Entry<String, List<CollectionParamsManage>> entry : groupMap.entrySet()) {
String mtType = entry.getKey(); String mtType = entry.getKey();
List<CollectionParamsManage> dataList = entry.getValue(); List<CollectionParamsManage> dataList = entry.getValue();
// 进行数据处理入库操作等 // 再根据mtNum分组
try { Map<String, List<CollectionParamsManage>> groupMap1 = dataList
dealAndInsert(dataList, mtType); .stream()
} catch (Exception e) { .collect(Collectors.groupingBy(CollectionParamsManage::getMtNum));
throw new RuntimeException(e); // 开始进行数据遍历
for (Map.Entry<String, List<CollectionParamsManage>> entry1 : groupMap1.entrySet()) {
List<CollectionParamsManage> dataList1 = entry1.getValue();
// 进行数据处理入库操作等
try {
dealAndInsert(dataList1, mtType);
} catch (Exception e) {
log.error("处理主机参数异常:{}", e);
}
} }
} }
} }
@ -101,7 +109,8 @@ public class DealDataTask {
int deviceGrade = entity.getGrade(); int deviceGrade = entity.getGrade();
//从数据库取值,当前的年表,当前年表没有,查询上一次年表 //从数据库取值,当前的年表,当前年表没有,查询上一次年表
DeviceReport lastData = dataProcessService.queryLastValue(entity.getMtNum(), "min"); DeviceReport lastData = dataProcessService.queryLastValue(entity.getMtNum(), "min");
int ratio = dataProcessService.queryRatio(entity.getMtNum()) == null ? 1 : dataProcessService.queryRatio(entity.getMtNum()); // int ratio = dataProcessService.queryRatio(entity.getMtNum()) == null ? 1 : dataProcessService.queryRatio(entity.getMtNum());
int ratio = entity.getMtRatio();
if (ObjectUtils.isEmpty(lastData) || ObjectUtils.isEmpty(lastData.getLastValue())) { if (ObjectUtils.isEmpty(lastData) || ObjectUtils.isEmpty(lastData.getLastValue())) {
//从device_manage取出初始值 //从device_manage取出初始值
String initValue = dataProcessService.queryInitValue(entity.getMtNum()); String initValue = dataProcessService.queryInitValue(entity.getMtNum());
@ -270,11 +279,12 @@ public class DealDataTask {
return; return;
} }
dataProcessService.batchInsertOrUpdate(hourList, "hour"); dataProcessService.batchInsertOrUpdate(hourList, "hour");
//TODO 修改分钟表的状态,grade=1
dataProcessService.batchUpdateGrade(idMap, "min");
} catch (Exception e) { } catch (Exception e) {
log.error("小时数据表处理异常:" + e); log.error("小时数据表处理异常:" + e);
} }
//TODO 修改分钟表的状态,grade=1
dataProcessService.batchUpdateGrade(idMap, "min");
} }
/** /**

12
mh-system/src/main/java/com/mh/system/mapper/device/DataProcessMapper.java

@ -131,19 +131,19 @@ public interface DataProcessMapper {
" 0)") " 0)")
void insertTable(@Param("data") DeviceReport data, @Param("tableName") String tableName); void insertTable(@Param("data") DeviceReport data, @Param("tableName") String tableName);
@Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue},calc_value = (#{data.curValue} - last_value)*ratio,used_value = #{data.curValue} - last_value " + @Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue}::numeric,calc_value = (#{data.curValue}::numeric - last_value)*ratio,used_value = #{data.curValue}::numeric - last_value " +
"where device_num = #{data.deviceNum} and EXTRACT(MONTH FROM AGE(cur_time, #{data.curTime})) = 0 ") "where device_num = #{data.deviceNum} and EXTRACT(MONTH FROM AGE(cur_time, #{data.curTime})) = 0 ")
void updateTableMM(@Param("data") DeviceReport data, @Param("tableName") String tableName); void updateTableMM(@Param("data") DeviceReport data, @Param("tableName") String tableName);
@Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue},calc_value = (#{data.curValue} - last_value)*ratio,used_value = #{data.curValue} - last_value " + @Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue}::numeric,calc_value = (#{data.curValue}::numeric - last_value)*ratio,used_value = #{data.curValue}::numeric - last_value " +
"where device_num = #{data.deviceNum} and EXTRACT(YEAR FROM AGE(cur_time, #{data.curTime})) = 0 ") "where device_num = #{data.deviceNum} and EXTRACT(YEAR FROM AGE(cur_time, #{data.curTime})) = 0 ")
void updateTableYY(@Param("data") DeviceReport data, @Param("tableName") String tableName); void updateTableYY(@Param("data") DeviceReport data, @Param("tableName") String tableName);
@Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue},calc_value = (#{data.curValue} - last_value)*ratio,used_value = #{data.curValue} - last_value " + @Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue}::numeric,calc_value = (#{data.curValue}::numeric - last_value)*ratio,used_value = #{data.curValue}::numeric - last_value " +
"where device_num = #{data.deviceNum} and EXTRACT(DAY FROM AGE(cur_time, #{data.curTime})) = 0 ") "where device_num = #{data.deviceNum} and EXTRACT(DAY FROM AGE(cur_time, #{data.curTime})) = 0 ")
void updateTableDD(@Param("data") DeviceReport data, @Param("tableName") String tableName); void updateTableDD(@Param("data") DeviceReport data, @Param("tableName") String tableName);
@Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue},calc_value = (#{data.curValue} - last_value)*ratio,used_value = #{data.curValue} - last_value " + @Update("update ${tableName} set cur_time = #{data.curTime},cur_value = #{data.curValue}::numeric,calc_value = (#{data.curValue}::numeric - last_value)*ratio,used_value = #{data.curValue}::numeric - last_value " +
"where device_num = #{data.deviceNum} and EXTRACT(HOUR FROM AGE(cur_time, #{data.curTime})) = 0 ") "where device_num = #{data.deviceNum} and EXTRACT(HOUR FROM AGE(cur_time, #{data.curTime})) = 0 ")
void updateTableHH(@Param("data") DeviceReport data, @Param("tableName") String tableName); void updateTableHH(@Param("data") DeviceReport data, @Param("tableName") String tableName);
@ -169,8 +169,8 @@ public interface DataProcessMapper {
* @param deviceNum * @param deviceNum
* @return * @return
*/ */
@Select("select mt_init_value from collection_params_manage where mt_num = #{deviceNum}") @Select("select mt_init_value from collection_params_manage where mt_num = #{deviceNum} and is_use = '0'")
String queryInitValue(String deviceNum); String queryInitValue(@Param("deviceNum") String deviceNum);
@Select("select * from ${tableName} where register_id = #{registerId} and cur_time >= CURRENT_TIMESTAMP - INTERVAL '24 hours' ") @Select("select * from ${tableName} where register_id = #{registerId} and cur_time >= CURRENT_TIMESTAMP - INTERVAL '24 hours' ")
List<ChillersEntity> selectLineDataByCodeAndRegisterAddr(@Param("tableName") String tableName, List<ChillersEntity> selectLineDataByCodeAndRegisterAddr(@Param("tableName") String tableName,

7
mh-system/src/main/java/com/mh/system/mapper/energy/EnergyAnalyzeMapper.java

@ -108,7 +108,6 @@ public interface EnergyAnalyzeMapper {
" on " + " on " +
" cpm.mt_num = dm.device_num " + " cpm.mt_num = dm.device_num " +
" and cpm.mt_code = dm.device_code " + " and cpm.mt_code = dm.device_code " +
" and cpm.register_addr = dm.register_addr " +
"join device_ledger dl " + "join device_ledger dl " +
" on " + " on " +
" cpm.device_ledger_id = dl.id " + " cpm.device_ledger_id = dl.id " +
@ -153,7 +152,7 @@ public interface EnergyAnalyzeMapper {
"WHERE " + "WHERE " +
" dh.cur_time &gt;= #{startTime}::timestamp " + " dh.cur_time &gt;= #{startTime}::timestamp " +
" AND dh.cur_time &lt;= #{endTime}::timestamp " + " AND dh.cur_time &lt;= #{endTime}::timestamp " +
" AND dh.device_num IN " + " AND dm.id IN " +
" <foreach collection='params' item='item' open='(' separator=',' close=')'>" + " <foreach collection='params' item='item' open='(' separator=',' close=')'>" +
" #{item} " + " #{item} " +
" </foreach> " + " </foreach> " +
@ -203,7 +202,7 @@ public interface EnergyAnalyzeMapper {
"WHERE " + "WHERE " +
" dh.cur_time &gt;= #{startTime}::timestamp " + " dh.cur_time &gt;= #{startTime}::timestamp " +
" AND dh.cur_time &lt;= #{endTime}::timestamp " + " AND dh.cur_time &lt;= #{endTime}::timestamp " +
" AND dh.device_num IN " + " AND dm.id IN " +
" <foreach collection='params' item='item' open='(' separator=',' close=')'>" + " <foreach collection='params' item='item' open='(' separator=',' close=')'>" +
" #{item} " + " #{item} " +
" </foreach> " + " </foreach> " +
@ -244,7 +243,7 @@ public interface EnergyAnalyzeMapper {
"WHERE " + "WHERE " +
" dh.cur_time &gt;= #{startTime}::timestamp " + " dh.cur_time &gt;= #{startTime}::timestamp " +
" AND dh.cur_time &lt;= #{endTime}::timestamp " + " AND dh.cur_time &lt;= #{endTime}::timestamp " +
" AND dh.device_num IN " + " AND dm.id IN " +
" <foreach collection='params' item='item' open='(' separator=',' close=')'>" + " <foreach collection='params' item='item' open='(' separator=',' close=')'>" +
" #{item} " + " #{item} " +
" </foreach> " + " </foreach> " +

6
mh-system/src/main/java/com/mh/system/mapper/energy/EnergyMapper.java

@ -30,7 +30,7 @@ public interface EnergyMapper {
" sum(dm.calc_value) as curValue, " + " sum(dm.calc_value) as curValue, " +
" CASE dm.device_type " + " CASE dm.device_type " +
" WHEN '5' THEN 'meter' " + " WHEN '5' THEN 'meter' " +
" WHEN '6' THEN 'cloud' " + " WHEN '2' THEN 'cloud' " +
" ELSE 'Unknown' " + " ELSE 'Unknown' " +
" END as deviceType," + " END as deviceType," +
" TO_CHAR(dm.cur_time, " + " TO_CHAR(dm.cur_time, " +
@ -81,7 +81,7 @@ public interface EnergyMapper {
" sum(dm.calc_value) as curValue, " + " sum(dm.calc_value) as curValue, " +
" CASE dm.device_type " + " CASE dm.device_type " +
" WHEN '5' THEN 'meter' " + " WHEN '5' THEN 'meter' " +
" WHEN '6' THEN 'cloud' " + " WHEN '2' THEN 'cloud' " +
" ELSE 'Unknown' " + " ELSE 'Unknown' " +
" END as deviceType," + " END as deviceType," +
" TO_CHAR(dm.cur_time, " + " TO_CHAR(dm.cur_time, " +
@ -149,7 +149,7 @@ public interface EnergyMapper {
" sum(dm.calc_value) as curValue, " + " sum(dm.calc_value) as curValue, " +
" CASE dm.device_type " + " CASE dm.device_type " +
" WHEN '5' THEN 'meter' " + " WHEN '5' THEN 'meter' " +
" WHEN '6' THEN 'cloud' " + " WHEN '2' THEN 'cloud' " +
" ELSE 'Unknown' " + " ELSE 'Unknown' " +
" END as deviceType," + " END as deviceType," +
" TO_CHAR(dm.cur_time, " + " TO_CHAR(dm.cur_time, " +

6
mh-system/src/main/java/com/mh/system/mapper/energy/EnergyQueryMapper.java

@ -30,7 +30,7 @@ public interface EnergyQueryMapper {
" sum(dm.calc_value) as curValue, " + " sum(dm.calc_value) as curValue, " +
" CASE dm.device_type " + " CASE dm.device_type " +
" WHEN '5' THEN 'meter' " + " WHEN '5' THEN 'meter' " +
" WHEN '6' THEN 'cloud' " + " WHEN '2' THEN 'cloud' " +
" ELSE 'Unknown' " + " ELSE 'Unknown' " +
" END as deviceType," + " END as deviceType," +
" TO_CHAR(dm.cur_time, " + " TO_CHAR(dm.cur_time, " +
@ -81,7 +81,7 @@ public interface EnergyQueryMapper {
" sum(dm.calc_value) as curValue, " + " sum(dm.calc_value) as curValue, " +
" CASE dm.device_type " + " CASE dm.device_type " +
" WHEN '5' THEN 'meter' " + " WHEN '5' THEN 'meter' " +
" WHEN '6' THEN 'cloud' " + " WHEN '2' THEN 'cloud' " +
" ELSE 'Unknown' " + " ELSE 'Unknown' " +
" END as deviceType," + " END as deviceType," +
" TO_CHAR(dm.cur_time, " + " TO_CHAR(dm.cur_time, " +
@ -151,7 +151,7 @@ public interface EnergyQueryMapper {
" sum(dm.calc_value) as curValue, " + " sum(dm.calc_value) as curValue, " +
" CASE dm.device_type " + " CASE dm.device_type " +
" WHEN '5' THEN 'meter' " + " WHEN '5' THEN 'meter' " +
" WHEN '6' THEN 'cloud' " + " WHEN '2' THEN 'cloud' " +
" ELSE 'Unknown' " + " ELSE 'Unknown' " +
" END as deviceType," + " END as deviceType," +
" TO_CHAR(dm.cur_time, " + " TO_CHAR(dm.cur_time, " +

4
mh-system/src/main/java/com/mh/system/service/device/impl/CollectionParamsManageServiceImpl.java

@ -58,6 +58,10 @@ public class CollectionParamsManageServiceImpl implements ICollectionParamsManag
return List.of(); return List.of();
} }
QueryWrapper<CollectionParamsManage> queryWrapper = new QueryWrapper<>(); QueryWrapper<CollectionParamsManage> queryWrapper = new QueryWrapper<>();
// 是否启用
if (communicationParams.getIsUse() != null) {
queryWrapper.eq("is_use", communicationParams.getIsUse());
}
// 仪表类型 // 仪表类型
if (communicationParams.getMtType() != null) { if (communicationParams.getMtType() != null) {
queryWrapper.eq("mt_type", communicationParams.getMtType()); queryWrapper.eq("mt_type", communicationParams.getMtType());

4
mh-system/src/main/java/com/mh/system/service/device/impl/CoolingSystemMonitorServiceImpl.java

@ -68,7 +68,7 @@ public class CoolingSystemMonitorServiceImpl implements ICoolingSystemMonitorSer
// 如果是当天值,判断grade,40:累计值,140:瞬时值 // 如果是当天值,判断grade,40:累计值,140:瞬时值
if (value.getGrade() == 40) { if (value.getGrade() == 40) {
// 累计值 // 累计值
sysPerformanceDTO.setYearPower(value.getCurValue()); sysPerformanceDTO.setYearPower(value.getCurValue().subtract(value.getMtInitValue()));
} else if (value.getGrade() == 140) { } else if (value.getGrade() == 140) {
// 瞬时值 // 瞬时值
sysPerformanceDTO.setRealPower(value.getCurValue()); sysPerformanceDTO.setRealPower(value.getCurValue());
@ -91,7 +91,7 @@ public class CoolingSystemMonitorServiceImpl implements ICoolingSystemMonitorSer
// 如果是当天值,判断grade,40:累计值,140:瞬时值 // 如果是当天值,判断grade,40:累计值,140:瞬时值
if (value.getGrade() == 40) { if (value.getGrade() == 40) {
// 累计值 // 累计值
sysPerformanceDTO.setYearCold(value.getCurValue()); sysPerformanceDTO.setYearCold(value.getCurValue().subtract(value.getMtInitValue()));
} else if (value.getGrade() == 140) { } else if (value.getGrade() == 140) {
// 瞬时值 // 瞬时值
sysPerformanceDTO.setRealCold(value.getCurValue()); sysPerformanceDTO.setRealCold(value.getCurValue());

74
mh-system/src/main/java/com/mh/system/service/energy/impl/EnergyServiceImpl.java

@ -7,6 +7,7 @@ import com.mh.common.core.domain.vo.EnergyConsumptionVO;
import com.mh.common.utils.DateUtils; import com.mh.common.utils.DateUtils;
import com.mh.common.utils.EnergyThreadPoolService; import com.mh.common.utils.EnergyThreadPoolService;
import com.mh.common.utils.StringUtils; import com.mh.common.utils.StringUtils;
import com.mh.common.utils.bean.BeanUtils;
import com.mh.system.mapper.energy.EnergyMapper; import com.mh.system.mapper.energy.EnergyMapper;
import com.mh.system.service.energy.IEnergyService; import com.mh.system.service.energy.IEnergyService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -351,7 +352,7 @@ public class EnergyServiceImpl implements IEnergyService {
String deviceType = vo.getParamType(); String deviceType = vo.getParamType();
if ("meter".equals(deviceType)) { if ("meter".equals(deviceType)) {
deviceType = "5"; deviceType = "5";
} else if ("cold".equals(deviceType)){ } else if ("cloud".equals(deviceType)) {
deviceType = "6"; deviceType = "6";
} }
if ("cop".equalsIgnoreCase(vo.getParamType())) { if ("cop".equalsIgnoreCase(vo.getParamType())) {
@ -391,7 +392,7 @@ public class EnergyServiceImpl implements IEnergyService {
consumptionAnalyzeEntities = energyMapper.queryOneTableYoy(vo.getStartTime(), vo.getEndTime(), lastTableName, curTableName, consumptionAnalyzeEntities = energyMapper.queryOneTableYoy(vo.getStartTime(), vo.getEndTime(), lastTableName, curTableName,
startTime, endTime, getTimeLen(vo.getTimeType()), deviceType, vo.getTimeType(), vo.getSystemType()); startTime, endTime, getTimeLen(vo.getTimeType()), deviceType, vo.getTimeType(), vo.getSystemType());
} }
return getConsumptionDTOHttpResult(consumptionAnalyzeEntities, "yoy"); return getConsumptionDTOHttpResult(consumptionAnalyzeEntities, "yoy", getTimeLen(vo.getTimeType()));
} }
private AjaxResult calcCopYoyData(EnergyConsumptionVO vo) { private AjaxResult calcCopYoyData(EnergyConsumptionVO vo) {
@ -410,46 +411,48 @@ public class EnergyServiceImpl implements IEnergyService {
return AjaxResult.error(); return AjaxResult.error();
} }
// 计算COP值 // 计算COP值
return getEnergyConsumptionDTOHttpResult(meterEnergyData, cloudEnergyData); return getEnergyConsumptionDTOHttpResult(meterEnergyData, cloudEnergyData, "yoy");
} }
private static AjaxResult getEnergyConsumptionDTOHttpResult(EnergyConsumptionDTO meterEnergyData, EnergyConsumptionDTO cloudEnergyData) { private static AjaxResult getEnergyConsumptionDTOHttpResult(EnergyConsumptionDTO meterEnergyData, EnergyConsumptionDTO cloudEnergyData, String type) {
// 计算COP值 // 计算COP值
EnergyConsumptionDTO energyConsumptionDTO = new EnergyConsumptionDTO(); EnergyConsumptionDTO energyConsumptionDTO = new EnergyConsumptionDTO();
// //
// 获取冷量数据 // 获取冷量数据
List<Map<String, Object>> cloudListData = cloudEnergyData.getData(); List<Map<String, Object>> cloudListData = cloudEnergyData.getData();
String[] cloudCurData = new String[cloudListData.size()]; String[] curStr = (String[]) cloudListData.getFirst().get("curValue");
String[] cloudLastData = new String[cloudListData.size()]; String[] cloudCurData = new String[curStr.length];
String[] cloudLastData = new String[curStr.length];
for (Map<String, Object> cloudListDatum : cloudListData) { for (Map<String, Object> cloudListDatum : cloudListData) {
if (cloudListDatum.get("curValue") != null) { if (cloudListDatum.get("curValue") != null) {
cloudCurData = (String[]) cloudListDatum.get("curValue"); cloudCurData = (String[]) cloudListDatum.get("curValue");
if (cloudCurData == null) { if (cloudCurData == null) {
cloudCurData = new String[cloudListData.size()]; cloudCurData = new String[curStr.length];
} }
} }
if (cloudListDatum.get("lastValue") != null) { if (cloudListDatum.get("lastValue") != null) {
cloudLastData = (String[]) cloudListDatum.get("curValue"); cloudLastData = (String[]) cloudListDatum.get("curValue");
if (cloudLastData == null) { if (cloudLastData == null) {
cloudLastData = new String[cloudListData.size()]; cloudLastData = new String[curStr.length];
} }
} }
} }
// 获取电量数据 // 获取电量数据
List<Map<String, Object>> meterListData = meterEnergyData.getData(); List<Map<String, Object>> meterListData = meterEnergyData.getData();
String[] meterCurData = new String[meterListData.size()]; String[] meterCurStr = (String[]) meterListData.getFirst().get("curValue");
String[] meterLastData = new String[meterListData.size()]; String[] meterCurData = new String[meterCurStr.length];
String[] meterLastData = new String[meterCurStr.length];
for (Map<String, Object> meterListDatum : meterListData) { for (Map<String, Object> meterListDatum : meterListData) {
if (meterListDatum.get("curValue") != null) { if (meterListDatum.get("curValue") != null) {
meterCurData = (String[]) meterListDatum.get("curValue"); meterCurData = (String[]) meterListDatum.get("curValue");
if (meterCurData == null) { if (meterCurData == null) {
meterCurData = new String[meterListData.size()]; meterCurData = new String[meterCurStr.length];
} }
} }
if (meterListDatum.get("lastValue") != null) { if (meterListDatum.get("lastValue") != null) {
meterLastData = (String[]) meterListDatum.get("curValue"); meterLastData = (String[]) meterListDatum.get("curValue");
if (meterLastData == null) { if (meterLastData == null) {
meterLastData = new String[meterListData.size()]; meterLastData = new String[meterCurStr.length];
} }
} }
} }
@ -523,13 +526,24 @@ public class EnergyServiceImpl implements IEnergyService {
copLastMap[i] = lastCop; copLastMap[i] = lastCop;
yoyMap[i] = yoy; yoyMap[i] = yoy;
} }
energyConsumptionDTO.setData(Arrays.asList( // energyConsumptionDTO.setData(Arrays.asList(
new HashMap<String, Object>() {{ // new HashMap<String, Object>() {{
put("curValue", copMap); // put("curValue", copMap);
put("lastValue", copLastMap); // put("lastValue", copLastMap);
put("yoy", yoyMap); // put("yoy", yoyMap);
}} // }}
)); // ));
List<Map<String, Object>> listData = new ArrayList<>();
Map<String, Object> cur = new HashMap<>();
cur.put("curValue",copMap);
listData.add(cur);
Map<String, Object> last = new HashMap<>();
last.put("lastValue",copLastMap);
listData.add(last);
Map<String, Object> yoy = new HashMap<>();
yoy.put(type,yoyMap);
listData.add(yoy);
energyConsumptionDTO.setData(listData);
} }
return AjaxResult.success(energyConsumptionDTO); return AjaxResult.success(energyConsumptionDTO);
} }
@ -543,7 +557,7 @@ public class EnergyServiceImpl implements IEnergyService {
String deviceType = vo.getParamType(); String deviceType = vo.getParamType();
if ("meter".equals(deviceType)) { if ("meter".equals(deviceType)) {
deviceType = "5"; deviceType = "5";
} else if ("cold".equals(deviceType)){ } else if ("cloud".equals(deviceType)){
deviceType = "6"; deviceType = "6";
} }
// 判断查询时间类型是month,year // 判断查询时间类型是month,year
@ -575,26 +589,26 @@ public class EnergyServiceImpl implements IEnergyService {
consumptionAnalyzeEntities = energyMapper.queryManyTableMom(vo.getStartTime(), vo.getEndTime(), startTime, endTime, tableName1, tableName2, getTimeLen(vo.getTimeType()), deviceType, vo.getTimeType(), vo.getSystemType()); consumptionAnalyzeEntities = energyMapper.queryManyTableMom(vo.getStartTime(), vo.getEndTime(), startTime, endTime, tableName1, tableName2, getTimeLen(vo.getTimeType()), deviceType, vo.getTimeType(), vo.getSystemType());
} }
} }
return getConsumptionDTOHttpResult(consumptionAnalyzeEntities, "mom"); return getConsumptionDTOHttpResult(consumptionAnalyzeEntities, "mom", getTimeLen(vo.getTimeType()));
} }
private AjaxResult calcCopMomData(EnergyConsumptionVO vo) { private AjaxResult calcCopMomData(EnergyConsumptionVO vo) {
// 获取冷量读数 // 获取冷量读数
vo.setParamType("cloud"); vo.setParamType("6");
AjaxResult cloudData = mom(vo); AjaxResult cloudData = mom(vo);
EnergyConsumptionDTO cloudEnergyData = (EnergyConsumptionDTO) cloudData.get("data"); EnergyConsumptionDTO cloudEnergyData = (EnergyConsumptionDTO) cloudData.get("data");
if (cloudEnergyData == null) { if (cloudEnergyData == null) {
return AjaxResult.error(); return AjaxResult.error();
} }
// 获取电量读数 // 获取电量读数
vo.setParamType("meter"); vo.setParamType("5");
AjaxResult meterData = mom(vo); AjaxResult meterData = mom(vo);
EnergyConsumptionDTO meterEnergyData = (EnergyConsumptionDTO) meterData.get("data"); EnergyConsumptionDTO meterEnergyData = (EnergyConsumptionDTO) meterData.get("data");
if (meterEnergyData == null) { if (meterEnergyData == null) {
return AjaxResult.error(); return AjaxResult.error();
} }
return getEnergyConsumptionDTOHttpResult(meterEnergyData, cloudEnergyData); return getEnergyConsumptionDTOHttpResult(meterEnergyData, cloudEnergyData, "mom");
} }
@Override @Override
@ -605,13 +619,17 @@ public class EnergyServiceImpl implements IEnergyService {
List<Future<Map<String, Object>>> futures = new ArrayList<>(); List<Future<Map<String, Object>>> futures = new ArrayList<>();
futures.add(executor.submit(() -> { futures.add(executor.submit(() -> {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("yoy", yoy(vo)); EnergyConsumptionVO vo1 = new EnergyConsumptionVO();
BeanUtils.copyProperties(vo, vo1);
map.put("yoy", yoy(vo1));
latch.countDown(); latch.countDown();
return map; return map;
})); }));
futures.add(executor.submit(() -> { futures.add(executor.submit(() -> {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("mom", mom(vo)); EnergyConsumptionVO vo1 = new EnergyConsumptionVO();
BeanUtils.copyProperties(vo, vo1);
map.put("mom", mom(vo1));
latch.countDown(); latch.countDown();
return map; return map;
})); }));
@ -681,7 +699,7 @@ public class EnergyServiceImpl implements IEnergyService {
return AjaxResult.success(null); return AjaxResult.success(null);
} }
private static AjaxResult getConsumptionDTOHttpResult(List<ConsumptionAnalyze> consumptionAnalyzeEntities, String compareType) { private static AjaxResult getConsumptionDTOHttpResult(List<ConsumptionAnalyze> consumptionAnalyzeEntities, String compareType, String len) {
EnergyConsumptionDTO energyConsumptionDTO = new EnergyConsumptionDTO(); EnergyConsumptionDTO energyConsumptionDTO = new EnergyConsumptionDTO();
if (null == consumptionAnalyzeEntities || consumptionAnalyzeEntities.size() == 0) { if (null == consumptionAnalyzeEntities || consumptionAnalyzeEntities.size() == 0) {
return AjaxResult.success(energyConsumptionDTO); return AjaxResult.success(energyConsumptionDTO);
@ -701,7 +719,7 @@ public class EnergyServiceImpl implements IEnergyService {
if ("mom".equalsIgnoreCase(compareType)) { if ("mom".equalsIgnoreCase(compareType)) {
yoyValue[i] = entity.getMom(); yoyValue[i] = entity.getMom();
} }
timeStrArr[i] = entity.getTimeStr(); timeStrArr[i] = entity.getTimeStr().substring(0, Integer.parseInt(len));
} }
energyConsumptionDTO.setTitles(titleArr); energyConsumptionDTO.setTitles(titleArr);
energyConsumptionDTO.setTimes(timeStrArr); energyConsumptionDTO.setTimes(timeStrArr);

131
mh-system/src/main/java/com/mh/system/service/overview/impl/ProOverviewServiceImpl.java

@ -55,7 +55,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
case 0: case 0:
// 查询冷源系统的EER // 查询冷源系统的EER
// 查询实时功率 // 查询实时功率
List<CollectionParamsManage> realEleParams = queryCollectionParams("16", "0", 140); List<CollectionParamsManage> realEleParams = queryCollectionParams("16", "0", 140, "15");
BigDecimal realEle = null; BigDecimal realEle = null;
if (realEleParams != null && !realEleParams.isEmpty()) { if (realEleParams != null && !realEleParams.isEmpty()) {
realEle = realEleParams.stream() realEle = realEleParams.stream()
@ -64,7 +64,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
.reduce(BigDecimal.ZERO, BigDecimal::add); .reduce(BigDecimal.ZERO, BigDecimal::add);
} }
// 查询冷源系统的产冷量 // 查询冷源系统的产冷量
List<CollectionParamsManage> realColdParams = queryCollectionParams("17", "0", 140); List<CollectionParamsManage> realColdParams = queryCollectionParams("17", "0", 140, "15");
BigDecimal realCold = null; BigDecimal realCold = null;
if (realColdParams != null && !realColdParams.isEmpty()) { if (realColdParams != null && !realColdParams.isEmpty()) {
// realColdParams stream流得出cur_value总和 // realColdParams stream流得出cur_value总和
@ -91,7 +91,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
case 1: case 1:
// 热泵生活热水系统 // 热泵生活热水系统
// 查询供回水温度 // 查询供回水温度
List<CollectionParamsManage> realInAndOutTempParams = queryCollectionParams("12", "1", 140); List<CollectionParamsManage> realInAndOutTempParams = queryCollectionParams("12", "1", 140, null);
BigDecimal avgInTemp = new BigDecimal("0.00"); BigDecimal avgInTemp = new BigDecimal("0.00");
BigDecimal avgOutTemp = new BigDecimal("0.00"); BigDecimal avgOutTemp = new BigDecimal("0.00");
if (null != realInAndOutTempParams && !realInAndOutTempParams.isEmpty()) { if (null != realInAndOutTempParams && !realInAndOutTempParams.isEmpty()) {
@ -124,7 +124,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
case 2: case 2:
// 空调风柜系统 // 空调风柜系统
// 查询风柜运行状态 // 查询风柜运行状态
List<CollectionParamsManage> windCabinetRunParams = queryCollectionParams("1", "2", 140); List<CollectionParamsManage> windCabinetRunParams = queryCollectionParams("1", "2", 140, null);
if (windCabinetRunParams != null && !windCabinetRunParams.isEmpty()) { if (windCabinetRunParams != null && !windCabinetRunParams.isEmpty()) {
// 查询风柜正在运行设备,判断cur_value=1的 // 查询风柜正在运行设备,判断cur_value=1的
long runCount = windCabinetRunParams.stream().filter(param -> param != null long runCount = windCabinetRunParams.stream().filter(param -> param != null
@ -144,7 +144,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
break; break;
case 4: case 4:
// 室内温度监测系统 // 室内温度监测系统
List<CollectionParamsManage> tempParams = queryCollectionParams("12", "4", 140); List<CollectionParamsManage> tempParams = queryCollectionParams("12", "4", 140, null);
// stream流判断时间cur_time是否是今天,如果是今天则判断在线,不是则判断离线 // stream流判断时间cur_time是否是今天,如果是今天则判断在线,不是则判断离线
if (tempParams != null && !tempParams.isEmpty()) { if (tempParams != null && !tempParams.isEmpty()) {
long onlineCount = tempParams.stream() long onlineCount = tempParams.stream()
@ -189,7 +189,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
for (SysDictData sysDictData : sysTypeData) { for (SysDictData sysDictData : sysTypeData) {
String sysType = sysDictData.getDictValue(); String sysType = sysDictData.getDictValue();
// 查询采集参数 // 查询采集参数
List<CollectionParamsManage> collectionParamsManages = queryCollectionParams(paramType, sysType, 40); List<CollectionParamsManage> collectionParamsManages = queryCollectionParams(paramType, sysType, 40, null);
// 合并数据 // 合并数据
if (collectionParamsManages != null && !collectionParamsManages.isEmpty()) { if (collectionParamsManages != null && !collectionParamsManages.isEmpty()) {
List<ColumnFilter> columnFilters = overviewMapper.energyAnalysis(collectionParamsManages); List<ColumnFilter> columnFilters = overviewMapper.energyAnalysis(collectionParamsManages);
@ -203,12 +203,16 @@ public class ProOverviewServiceImpl implements IProOverviewService {
return result.isEmpty() ? List.of() : result; return result.isEmpty() ? List.of() : result;
} }
private List<CollectionParamsManage> queryCollectionParams(String paramType, String sysType, int grade) { private List<CollectionParamsManage> queryCollectionParams(String paramType, String sysType, int grade, String terminalDeviceType) {
QueryWrapper<CollectionParamsManage> queryWrapper = new QueryWrapper<>(); QueryWrapper<CollectionParamsManage> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("param_type", paramType) queryWrapper.eq("param_type", paramType)
.eq("system_type", sysType) .eq("system_type", sysType)
.eq("grade", grade); .eq("grade", grade);
if (terminalDeviceType != null && !terminalDeviceType.isEmpty()) {
queryWrapper.eq("terminal_device_type", terminalDeviceType);
}
// 先查询总表 // 先查询总表
queryWrapper.eq("mt_is_sum", 0); queryWrapper.eq("mt_is_sum", 0);
Long count = collectionParamsManageMapper.selectCount(queryWrapper); Long count = collectionParamsManageMapper.selectCount(queryWrapper);
@ -220,8 +224,10 @@ public class ProOverviewServiceImpl implements IProOverviewService {
queryWrapper = new QueryWrapper<>(); queryWrapper = new QueryWrapper<>();
queryWrapper.eq("param_type", paramType) queryWrapper.eq("param_type", paramType)
.eq("system_type", sysType) .eq("system_type", sysType)
.eq("grade", grade) .eq("grade", grade);
.eq("mt_is_sum", 1); if (terminalDeviceType != null && !terminalDeviceType.isEmpty()) {
queryWrapper.eq("terminal_device_type", terminalDeviceType);
}
return collectionParamsManageMapper.selectList(queryWrapper); return collectionParamsManageMapper.selectList(queryWrapper);
} }
@ -317,16 +323,10 @@ public class ProOverviewServiceImpl implements IProOverviewService {
queryWrapper.eq("grade", 40); queryWrapper.eq("grade", 40);
queryWrapper.eq("mt_is_sum", 0); queryWrapper.eq("mt_is_sum", 0);
Long count = collectionParamsManageMapper.selectCount(queryWrapper); Long count = collectionParamsManageMapper.selectCount(queryWrapper);
HashMap<String, BigDecimal> totalData = new HashMap<>();
if (count > 0) { if (count > 0) {
// 查询总表 // 查询总表
getTotalData(paramType, queryWrapper, totalEle, totalData = getTotalData(paramType, queryWrapper);
totalCold,
totalWater,
totalGas,
yearEle,
yearCold,
yearWater,
yearGas);
} else { } else {
// 查询分表综合 // 查询分表综合
queryWrapper = new QueryWrapper<>(); queryWrapper = new QueryWrapper<>();
@ -335,15 +335,29 @@ public class ProOverviewServiceImpl implements IProOverviewService {
queryWrapper.eq("grade", 40); queryWrapper.eq("grade", 40);
queryWrapper.eq("mt_is_sum", 1); queryWrapper.eq("mt_is_sum", 1);
// 查询分表总和 // 查询分表总和
getTotalData(paramType, queryWrapper, totalData = getTotalData(paramType, queryWrapper);
totalEle, }
totalCold, BigDecimal totalValue = totalData.get("totalValue")==null ? BigDecimal.ZERO : totalData.get("totalValue");
totalWater, BigDecimal yearValue = totalData.get("yearValue")==null ? BigDecimal.ZERO : totalData.get("yearValue");
totalGas, switch (Integer.parseInt(paramType)) {
yearEle, case 16:
yearCold, totalEle = totalEle.add(totalValue);
yearWater, yearEle = yearEle.add(yearValue);
yearGas); break;
case 17:
totalCold = totalCold.add(totalValue);
yearCold = yearCold.add(yearValue);
break;
case 18:
totalWater = totalWater.add(totalValue);
yearWater = yearWater.add(yearValue);
break;
case 19:
totalGas = totalGas.add(totalValue);
yearGas = yearGas.add(yearValue);
break;
default:
break;
} }
} }
@ -354,17 +368,10 @@ public class ProOverviewServiceImpl implements IProOverviewService {
return proProfileDTOS; return proProfileDTOS;
} }
private void getTotalData(String paramType, private HashMap<String, BigDecimal> getTotalData(String paramType,
QueryWrapper<CollectionParamsManage> queryWrapper, QueryWrapper<CollectionParamsManage> queryWrapper) {
BigDecimal totalEle,
BigDecimal totalCold,
BigDecimal totalWater,
BigDecimal totalGas,
BigDecimal yearEle,
BigDecimal yearCold,
BigDecimal yearWater,
BigDecimal yearGas) {
List<CollectionParamsManage> collectionParamsManages = collectionParamsManageMapper.selectList(queryWrapper); List<CollectionParamsManage> collectionParamsManages = collectionParamsManageMapper.selectList(queryWrapper);
HashMap<String, BigDecimal> result = new HashMap<>();
// 遍历计算得出总用电量 // 遍历计算得出总用电量
collectionParamsManages.forEach(collectionParamsManage -> { collectionParamsManages.forEach(collectionParamsManage -> {
BigDecimal curValue = collectionParamsManage.getCurValue() == null ? BigDecimal.ZERO : collectionParamsManage.getCurValue(); BigDecimal curValue = collectionParamsManage.getCurValue() == null ? BigDecimal.ZERO : collectionParamsManage.getCurValue();
@ -372,42 +379,28 @@ public class ProOverviewServiceImpl implements IProOverviewService {
BigDecimal mtRatio = collectionParamsManage.getMtRatio() == null ? BigDecimal.ZERO : BigDecimal.valueOf(collectionParamsManage.getMtRatio()); BigDecimal mtRatio = collectionParamsManage.getMtRatio() == null ? BigDecimal.ZERO : BigDecimal.valueOf(collectionParamsManage.getMtRatio());
BigDecimal multiply = (curValue.subtract(mtInitValue)).multiply(mtRatio); BigDecimal multiply = (curValue.subtract(mtInitValue)).multiply(mtRatio);
// TODO // TODO
switch (Integer.parseInt(paramType)) { result.put("totalValue", multiply);
case 16:
totalEle.add(multiply);
break;
case 17:
totalCold.add(multiply);
break;
case 18:
totalWater.add(multiply);
break;
case 19:
totalGas.add(multiply);
break;
default:
break;
}
}); });
// 计算得出今年的各个参数用量 // 计算得出今年的各个参数用量
BigDecimal yearValue = overviewMapper.queryByDeviceNum(collectionParamsManages); BigDecimal yearValue = overviewMapper.queryByDeviceNum(collectionParamsManages);
switch (Integer.parseInt(paramType)) { result.put("yearValue", yearValue == null ? BigDecimal.ZERO : yearValue);
case 16: // switch (Integer.parseInt(paramType)) {
yearEle = yearValue; // case 16:
break; // yearEle = yearValue;
case 17: // break;
yearCold = yearValue; // case 17:
break; // yearCold = yearValue;
case 18: // break;
yearWater = yearValue; // case 18:
break; // yearWater = yearValue;
case 19: // break;
yearGas = yearValue; // case 19:
break; // yearGas = yearValue;
default: // break;
break; // default:
} // break;
// }
return result;
} }

40
mh-system/src/main/resources/mapper/system/EnergyMapper.xml

@ -701,9 +701,9 @@
where where
dm.cur_time >= #{startTime}::timestamp dm.cur_time >= #{startTime}::timestamp
and dm.cur_time &lt;= #{endTime}::timestamp and dm.cur_time &lt;= #{endTime}::timestamp
and dm.device_type in( and dm.device_num in(
select select
cpm.mt_type cpm.mt_num
from from
collection_params_manage cpm collection_params_manage cpm
join join
@ -713,8 +713,10 @@
where where
dl.device_type = '5' dl.device_type = '5'
and cpm.terminal_device_type = #{deviceType} and cpm.terminal_device_type = #{deviceType}
and cpm.is_use = '0'
and cpm.grade = 40
group by group by
cpm.mt_type cpm.mt_num
) )
group by group by
TO_CHAR(dm.cur_time, TO_CHAR(dm.cur_time,
@ -748,9 +750,9 @@
where where
dm.cur_time >= #{startTime}::timestamp dm.cur_time >= #{startTime}::timestamp
and dm.cur_time &lt;= #{endTime}::timestamp and dm.cur_time &lt;= #{endTime}::timestamp
and dm.device_type in( and dm.device_num in(
select select
cpm.mt_type cpm.mt_num
from from
collection_params_manage cpm collection_params_manage cpm
join join
@ -763,8 +765,10 @@
<if test="systemType != null and systemType != ''"> <if test="systemType != null and systemType != ''">
and cpm.system_type = #{systemType} and cpm.system_type = #{systemType}
</if> </if>
and cpm.is_use = '0'
and cpm.grade = 40
group by group by
cpm.mt_type cpm.mt_num
) )
group by group by
TO_CHAR(dm.cur_time, TO_CHAR(dm.cur_time,
@ -796,9 +800,9 @@
where where
dm.cur_time >= #{startTime}::timestamp dm.cur_time >= #{startTime}::timestamp
and dm.cur_time &lt;= #{endTime}::timestamp and dm.cur_time &lt;= #{endTime}::timestamp
and dm.device_type in( and dm.device_num in(
select select
cpm.mt_type cpm.mt_num
from from
collection_params_manage cpm collection_params_manage cpm
join join
@ -811,8 +815,10 @@
<if test="systemType != null and systemType != ''"> <if test="systemType != null and systemType != ''">
and cpm.system_type = #{systemType} and cpm.system_type = #{systemType}
</if> </if>
and cpm.is_use = '0'
and cpm.grade = 40
group by group by
cpm.mt_type cpm.mt_num
) )
group by group by
TO_CHAR(dm.cur_time, TO_CHAR(dm.cur_time,
@ -997,9 +1003,9 @@
where where
dm.cur_time >= #{startTime}::timestamp dm.cur_time >= #{startTime}::timestamp
and dm.cur_time &lt;= #{endTime}::timestamp and dm.cur_time &lt;= #{endTime}::timestamp
and dm.device_type in( and dm.device_num in(
select select
cpm.mt_type cpm.mt_num
from from
collection_params_manage cpm collection_params_manage cpm
join join
@ -1012,8 +1018,10 @@
<if test="systemType != null and systemType != ''"> <if test="systemType != null and systemType != ''">
and cpm.system_type = #{systemType} and cpm.system_type = #{systemType}
</if> </if>
and cpm.is_use = '0'
and cpm.grade = 40
group by group by
cpm.mt_type cpm.mt_num
) )
group by group by
dm.cur_time dm.cur_time
@ -1027,9 +1035,9 @@
where where
dm.cur_time >= #{startTime}::timestamp dm.cur_time >= #{startTime}::timestamp
and dm.cur_time &lt;= #{endTime}::timestamp and dm.cur_time &lt;= #{endTime}::timestamp
and dm.device_type in( and dm.device_num in(
select select
cpm.mt_type cpm.mt_num
from from
collection_params_manage cpm collection_params_manage cpm
join join
@ -1042,8 +1050,10 @@
<if test="systemType != null and systemType != ''"> <if test="systemType != null and systemType != ''">
and cpm.system_type = #{systemType} and cpm.system_type = #{systemType}
</if> </if>
and cpm.is_use = '0'
and cpm.grade = 40
group by group by
cpm.mt_type cpm.mt_num
) )
group by group by
dm.cur_time dm.cur_time

Loading…
Cancel
Save