|
|
|
|
@ -71,13 +71,6 @@ public class IReportDayDnbServiceImpl implements IReportDayDnbService {
|
|
|
|
|
// 1. 遍历监控点
|
|
|
|
|
recordMaps.forEach((monitorId, monitorMap) -> {
|
|
|
|
|
BaseMonitorInfo baseMonitorInfo = monitorInfoMap.get(monitorId);
|
|
|
|
|
BigDecimal ct = (baseMonitorInfo != null && baseMonitorInfo.getCt()!=null)
|
|
|
|
|
? BigDecimal.valueOf(baseMonitorInfo.getCt())
|
|
|
|
|
: BigDecimal.ZERO;
|
|
|
|
|
if (ct.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
|
|
ld.error("======= 监控点:{} 的CT为空,跳过电量倍率计算 ===========", monitorId);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// 2. 遍历该监控点下的每个日期
|
|
|
|
|
monitorMap.forEach((dateStr, records) -> {
|
|
|
|
|
// 3. 对同一监控点、同一天的记录列表进行业务处理
|
|
|
|
|
@ -85,8 +78,7 @@ public class IReportDayDnbServiceImpl implements IReportDayDnbService {
|
|
|
|
|
ReportDayDnb daily = EnergyTimePeriods.initDaily(monitorId, ISO_8601_EXTENDED_DATE_FORMAT.parse(dateStr));
|
|
|
|
|
records.forEach(record -> {
|
|
|
|
|
BigDecimal expend = record.getExpend() != null ? record.getExpend() : BigDecimal.ZERO;
|
|
|
|
|
BigDecimal ratio = expend.divide(ct, 2, RoundingMode.HALF_UP);
|
|
|
|
|
EnergyTimePeriods.sum(daily, record.getRecordTime(), ratio);
|
|
|
|
|
EnergyTimePeriods.sum(daily, record.getRecordTime(), expend);
|
|
|
|
|
});
|
|
|
|
|
dayDnbMapper.saveReportDayDnb(daily);
|
|
|
|
|
} catch (ParseException e) {
|
|
|
|
|
|