|
@@ -14,6 +14,7 @@ import com.hdkj.lt.bf.entity.FhzgSeConsumerCountDaily;
|
|
|
import com.hdkj.lt.bf.entity.FhzgSeConsumerRelation;
|
|
import com.hdkj.lt.bf.entity.FhzgSeConsumerRelation;
|
|
|
import com.hdkj.lt.bf.entity.dto.TodayOutageData;
|
|
import com.hdkj.lt.bf.entity.dto.TodayOutageData;
|
|
|
import com.hdkj.lt.bf.entity.vo.SeCapacityDashboardVO;
|
|
import com.hdkj.lt.bf.entity.vo.SeCapacityDashboardVO;
|
|
|
|
|
+import com.hdkj.lt.bf.entity.vo.SeLineLossVO;
|
|
|
import com.hdkj.lt.bf.entity.vo.SeOutageDashboardVO;
|
|
import com.hdkj.lt.bf.entity.vo.SeOutageDashboardVO;
|
|
|
import com.hdkj.lt.bf.entity.vo.SeVoltageDashboardVO;
|
|
import com.hdkj.lt.bf.entity.vo.SeVoltageDashboardVO;
|
|
|
import com.hdkj.lt.bf.entity.vo.SeVoltageIndexVO;
|
|
import com.hdkj.lt.bf.entity.vo.SeVoltageIndexVO;
|
|
@@ -456,9 +457,6 @@ public class SeIndicatorServiceImpl implements SeIndicatorService {
|
|
|
vo.setOverloadRate(BigDecimal.ZERO);
|
|
vo.setOverloadRate(BigDecimal.ZERO);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 3. 线损电量:从明细表聚合(今日未刷日汇总,用明细实时算)
|
|
|
|
|
- vo.setLineLossKwh(queryLineLossKwhFromDetail(id, type, startTime, endTime));
|
|
|
|
|
-
|
|
|
|
|
return vo;
|
|
return vo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -485,7 +483,6 @@ public class SeIndicatorServiceImpl implements SeIndicatorService {
|
|
|
int histDays = 0;
|
|
int histDays = 0;
|
|
|
long sumHeavy = 0;
|
|
long sumHeavy = 0;
|
|
|
long sumOverload = 0;
|
|
long sumOverload = 0;
|
|
|
- BigDecimal histLineLossKwh = BigDecimal.ZERO;
|
|
|
|
|
|
|
|
|
|
if (!endDate.isBefore(startDate)) {
|
|
if (!endDate.isBefore(startDate)) {
|
|
|
LambdaQueryWrapper<FhzgSeCapacityDaily> wrapper = new LambdaQueryWrapper<FhzgSeCapacityDaily>()
|
|
LambdaQueryWrapper<FhzgSeCapacityDaily> wrapper = new LambdaQueryWrapper<FhzgSeCapacityDaily>()
|
|
@@ -507,17 +504,14 @@ public class SeIndicatorServiceImpl implements SeIndicatorService {
|
|
|
if (d.getHeavyCount() != null) sumHeavy += d.getHeavyCount();
|
|
if (d.getHeavyCount() != null) sumHeavy += d.getHeavyCount();
|
|
|
if (d.getOverloadCount() != null) sumOverload += d.getOverloadCount();
|
|
if (d.getOverloadCount() != null) sumOverload += d.getOverloadCount();
|
|
|
}
|
|
}
|
|
|
- // 线损电量(历史部分)
|
|
|
|
|
- histLineLossKwh = queryLineLossKwhFromDaily(id, type, startDate, endDate);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 今日部分实时聚合(断面明细 + 事件表 + 线损明细)
|
|
|
|
|
|
|
+ // 今日部分实时聚合(断面明细 + 事件表)
|
|
|
SeCapacityDashboardVO todayVo = queryCapacityToday(id, type);
|
|
SeCapacityDashboardVO todayVo = queryCapacityToday(id, type);
|
|
|
BigDecimal todayMaxLoadRate = todayVo != null ? todayVo.getMaxLoadRate() : null;
|
|
BigDecimal todayMaxLoadRate = todayVo != null ? todayVo.getMaxLoadRate() : null;
|
|
|
BigDecimal todayAvgLoadRate = todayVo != null ? todayVo.getAvgLoadRate() : null;
|
|
BigDecimal todayAvgLoadRate = todayVo != null ? todayVo.getAvgLoadRate() : null;
|
|
|
int todayHeavy = todayVo != null ? todayVo.getHeavyLoadEventCount() : 0;
|
|
int todayHeavy = todayVo != null ? todayVo.getHeavyLoadEventCount() : 0;
|
|
|
int todayOverload = todayVo != null ? todayVo.getOverloadEventCount() : 0;
|
|
int todayOverload = todayVo != null ? todayVo.getOverloadEventCount() : 0;
|
|
|
- BigDecimal todayLineLoss = todayVo != null ? todayVo.getLineLossKwh() : null;
|
|
|
|
|
|
|
|
|
|
// 合并
|
|
// 合并
|
|
|
BigDecimal maxLoadRate = histMaxLoadRate;
|
|
BigDecimal maxLoadRate = histMaxLoadRate;
|
|
@@ -541,18 +535,12 @@ public class SeIndicatorServiceImpl implements SeIndicatorService {
|
|
|
long totalOverload = sumOverload + todayOverload;
|
|
long totalOverload = sumOverload + todayOverload;
|
|
|
long totalEvents = totalHeavy + totalOverload;
|
|
long totalEvents = totalHeavy + totalOverload;
|
|
|
|
|
|
|
|
- BigDecimal lineLossKwh = histLineLossKwh;
|
|
|
|
|
- if (todayLineLoss != null) {
|
|
|
|
|
- lineLossKwh = lineLossKwh.add(todayLineLoss);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
SeCapacityDashboardVO vo = SeCapacityDashboardVO.builder()
|
|
SeCapacityDashboardVO vo = SeCapacityDashboardVO.builder()
|
|
|
.maxLoadRate(maxLoadRate)
|
|
.maxLoadRate(maxLoadRate)
|
|
|
.avgLoadRate(avgLoadRate)
|
|
.avgLoadRate(avgLoadRate)
|
|
|
.heavyLoadEventCount((int) totalHeavy)
|
|
.heavyLoadEventCount((int) totalHeavy)
|
|
|
.overloadEventCount((int) totalOverload)
|
|
.overloadEventCount((int) totalOverload)
|
|
|
.totalEventCount((int) totalEvents)
|
|
.totalEventCount((int) totalEvents)
|
|
|
- .lineLossKwh(lineLossKwh)
|
|
|
|
|
.build();
|
|
.build();
|
|
|
if (totalEvents > 0) {
|
|
if (totalEvents > 0) {
|
|
|
vo.setHeavyLoadRate(new BigDecimal(totalHeavy * 100)
|
|
vo.setHeavyLoadRate(new BigDecimal(totalHeavy * 100)
|
|
@@ -567,6 +555,45 @@ public class SeIndicatorServiceImpl implements SeIndicatorService {
|
|
|
return vo;
|
|
return vo;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 线损电量(独立接口,从供电能力拆出):
|
|
|
|
|
+ * today → 明细表实时 SUM;
|
|
|
|
|
+ * month/year → 历史查日汇总表 [startDate, yesterday] + 今日明细实时补。
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public SeLineLossVO queryLineLoss(String id, Integer type, String timeScope) {
|
|
|
|
|
+ if (StringUtils.isBlank(id) || type == null || StringUtils.isBlank(timeScope)) {
|
|
|
|
|
+ return null;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ BigDecimal lineLossKwh;
|
|
|
|
|
+ if ("today".equalsIgnoreCase(timeScope)) {
|
|
|
|
|
+ lineLossKwh = queryLineLossKwhFromDetail(id, type,
|
|
|
|
|
+ LocalDate.now().atStartOfDay(), LocalDateTime.now());
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // month/year:历史(日汇总 T+1,只到昨天)+ 今日(明细实时)
|
|
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
|
|
+ LocalDate startDate;
|
|
|
|
|
+ LocalDate endDate = today.minusDays(1);
|
|
|
|
|
+ if ("month".equalsIgnoreCase(timeScope)) {
|
|
|
|
|
+ startDate = today.withDayOfMonth(1);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ startDate = LocalDate.of(today.getYear(), 1, 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal histKwh = BigDecimal.ZERO;
|
|
|
|
|
+ if (!endDate.isBefore(startDate)) {
|
|
|
|
|
+ histKwh = queryLineLossKwhFromDaily(id, type, startDate, endDate);
|
|
|
|
|
+ }
|
|
|
|
|
+ BigDecimal todayKwh = queryLineLossKwhFromDetail(id, type,
|
|
|
|
|
+ today.atStartOfDay(), LocalDateTime.now());
|
|
|
|
|
+ lineLossKwh = histKwh.add(todayKwh);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return SeLineLossVO.builder()
|
|
|
|
|
+ .lineLossKwh(lineLossKwh.setScale(2, RoundingMode.HALF_UP))
|
|
|
|
|
+ .build();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 构建馈线今日96点时序(负载率+电流+电压+有功+无功)
|
|
* 构建馈线今日96点时序(负载率+电流+电压+有功+无功)
|
|
|
*/
|
|
*/
|