|
|
|
@ -55,7 +55,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
case 0: |
|
|
|
|
// 查询冷源系统的EER
|
|
|
|
|
// 查询实时功率
|
|
|
|
|
List<CollectionParamsManage> realEleParams = queryCollectionParams("16", "0", 140, "15"); |
|
|
|
|
List<CollectionParamsManage> realEleParams = queryCollectionParams("16", "0", 140, "15", true); |
|
|
|
|
BigDecimal realEle = null; |
|
|
|
|
if (realEleParams != null && !realEleParams.isEmpty()) { |
|
|
|
|
realEle = realEleParams.stream() |
|
|
|
@ -64,7 +64,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
} |
|
|
|
|
// 查询冷源系统的产冷量
|
|
|
|
|
List<CollectionParamsManage> realColdParams = queryCollectionParams("17", "0", 140, "15"); |
|
|
|
|
List<CollectionParamsManage> realColdParams = queryCollectionParams("17", "0", 140, "15", true); |
|
|
|
|
BigDecimal realCold = null; |
|
|
|
|
if (realColdParams != null && !realColdParams.isEmpty()) { |
|
|
|
|
// realColdParams stream流得出cur_value总和
|
|
|
|
@ -91,28 +91,39 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
case 1: |
|
|
|
|
// 热泵生活热水系统
|
|
|
|
|
// 查询供回水温度
|
|
|
|
|
List<CollectionParamsManage> realInAndOutTempParams = queryCollectionParams("12", "1", 140, null); |
|
|
|
|
List<CollectionParamsManage> realInAndOutTempParams = queryCollectionParams("12", "1", 140, null, true); |
|
|
|
|
BigDecimal avgInTemp = new BigDecimal("0.00"); |
|
|
|
|
BigDecimal avgOutTemp = new BigDecimal("0.00"); |
|
|
|
|
if (null != realInAndOutTempParams && !realInAndOutTempParams.isEmpty()) { |
|
|
|
|
// 查询供水温度的平均值
|
|
|
|
|
avgOutTemp = realInAndOutTempParams.stream() |
|
|
|
|
List<BigDecimal> filteredValues = realInAndOutTempParams.stream() |
|
|
|
|
.filter(param -> param != null |
|
|
|
|
&& param.getOtherName() != null |
|
|
|
|
&& param.getOtherName().contains("供水")) |
|
|
|
|
.map(CollectionParamsManage::getCurValue) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add) |
|
|
|
|
.divide(new BigDecimal(realInAndOutTempParams.size()), 2, BigDecimal.ROUND_HALF_UP); |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
BigDecimal sum = filteredValues.stream() |
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
avgOutTemp = filteredValues.isEmpty() ? BigDecimal.ZERO : |
|
|
|
|
sum.divide(BigDecimal.valueOf(filteredValues.size()), 2, BigDecimal.ROUND_HALF_UP); |
|
|
|
|
|
|
|
|
|
// 查询回水温度的平均值
|
|
|
|
|
avgInTemp = realInAndOutTempParams.stream() |
|
|
|
|
List<BigDecimal> filteredValues1 = realInAndOutTempParams.stream() |
|
|
|
|
.filter(param -> param != null |
|
|
|
|
&& param.getOtherName() != null |
|
|
|
|
&& param.getOtherName().contains("回水")) |
|
|
|
|
.map(CollectionParamsManage::getCurValue) |
|
|
|
|
.filter(Objects::nonNull) |
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add) |
|
|
|
|
.divide(new BigDecimal(realInAndOutTempParams.size()), 2, BigDecimal.ROUND_HALF_UP); |
|
|
|
|
.toList(); |
|
|
|
|
|
|
|
|
|
BigDecimal sum1 = filteredValues1.stream() |
|
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add); |
|
|
|
|
|
|
|
|
|
avgInTemp = filteredValues1.isEmpty() ? BigDecimal.ZERO : |
|
|
|
|
sum1.divide(BigDecimal.valueOf(filteredValues1.size()), 2, BigDecimal.ROUND_HALF_UP); |
|
|
|
|
} |
|
|
|
|
ColumnFilter inTempColumn = new ColumnFilter("回水平均温度", avgInTemp.toString()); |
|
|
|
|
ColumnFilter outTempColumn = new ColumnFilter("供水平均温度", avgOutTemp.toString()); |
|
|
|
@ -124,7 +135,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
case 2: |
|
|
|
|
// 空调风柜系统
|
|
|
|
|
// 查询风柜运行状态
|
|
|
|
|
List<CollectionParamsManage> windCabinetRunParams = queryCollectionParams("1", "2", 140, null); |
|
|
|
|
List<CollectionParamsManage> windCabinetRunParams = queryCollectionParams("1", "2", 140, null, true); |
|
|
|
|
if (windCabinetRunParams != null && !windCabinetRunParams.isEmpty()) { |
|
|
|
|
// 查询风柜正在运行设备,判断cur_value=1的
|
|
|
|
|
long runCount = windCabinetRunParams.stream().filter(param -> param != null |
|
|
|
@ -144,7 +155,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
break; |
|
|
|
|
case 4: |
|
|
|
|
// 室内温度监测系统
|
|
|
|
|
List<CollectionParamsManage> tempParams = queryCollectionParams("12", "4", 140, null); |
|
|
|
|
List<CollectionParamsManage> tempParams = queryCollectionParams("12", "4", 140, null, true); |
|
|
|
|
// stream流判断时间cur_time是否是今天,如果是今天则判断在线,不是则判断离线
|
|
|
|
|
if (tempParams != null && !tempParams.isEmpty()) { |
|
|
|
|
long onlineCount = tempParams.stream() |
|
|
|
@ -189,7 +200,7 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
for (SysDictData sysDictData : sysTypeData) { |
|
|
|
|
String sysType = sysDictData.getDictValue(); |
|
|
|
|
// 查询采集参数
|
|
|
|
|
List<CollectionParamsManage> collectionParamsManages = queryCollectionParams(paramType, sysType, 40, null); |
|
|
|
|
List<CollectionParamsManage> collectionParamsManages = queryCollectionParams(paramType, sysType, 40, null, false); |
|
|
|
|
// 合并数据
|
|
|
|
|
if (collectionParamsManages != null && !collectionParamsManages.isEmpty()) { |
|
|
|
|
List<ColumnFilter> columnFilters = overviewMapper.energyAnalysis(collectionParamsManages); |
|
|
|
@ -203,11 +214,17 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
return result.isEmpty() ? List.of() : result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private List<CollectionParamsManage> queryCollectionParams(String paramType, String sysType, int grade, String terminalDeviceType) { |
|
|
|
|
private List<CollectionParamsManage> queryCollectionParams(String paramType, String sysType, int grade, String terminalDeviceType, boolean isNow) { |
|
|
|
|
QueryWrapper<CollectionParamsManage> queryWrapper = new QueryWrapper<>(); |
|
|
|
|
LocalDate today = LocalDate.now(); |
|
|
|
|
String todayStr = today.toString(); // 格式为 'YYYY-MM-DD'
|
|
|
|
|
queryWrapper.eq("param_type", paramType) |
|
|
|
|
.eq("system_type", sysType) |
|
|
|
|
.eq("grade", grade); |
|
|
|
|
if (isNow) { |
|
|
|
|
queryWrapper.apply("DATE(cur_time) = DATE({0})", todayStr); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (terminalDeviceType != null && !terminalDeviceType.isEmpty()) { |
|
|
|
|
queryWrapper.eq("terminal_device_type", terminalDeviceType); |
|
|
|
@ -225,6 +242,10 @@ public class ProOverviewServiceImpl implements IProOverviewService {
|
|
|
|
|
queryWrapper.eq("param_type", paramType) |
|
|
|
|
.eq("system_type", sysType) |
|
|
|
|
.eq("grade", grade); |
|
|
|
|
if (isNow) { |
|
|
|
|
queryWrapper.apply("DATE(cur_time) = DATE({0})", todayStr); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (terminalDeviceType != null && !terminalDeviceType.isEmpty()) { |
|
|
|
|
queryWrapper.eq("terminal_device_type", terminalDeviceType); |
|
|
|
|
} |
|
|
|
|