From 6ab679caf2426f92fbd9c0f5183e59b8e19d46e3 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Fri, 23 Feb 2024 13:23:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapping/PwRStatOrgClassifiedMapper.xml | 12 ++- .../mapping/RStatEventOrgMapper.xml | 12 ++- .../pojo/vo/RStatSubstationOrg2VO.java | 72 +++++++-------- .../pojo/vo/RStatSubstationOrgVO.java | 11 +-- .../majornetwork/mapping/RStatOrgMMapper.xml | 91 ++----------------- .../majornetwork/mapping/RStatOrgQMapper.xml | 88 +----------------- .../majornetwork/mapping/RStatOrgYMapper.xml | 90 ++---------------- .../impl/PwRStatOrgServiceImpl.java | 53 +++++++++++ .../impl/RStatOrgYServiceImpl.java | 59 +++++++++++- 9 files changed, 183 insertions(+), 305 deletions(-) diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/mapping/PwRStatOrgClassifiedMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/mapping/PwRStatOrgClassifiedMapper.xml index 90520fba7..aa3778945 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/mapping/PwRStatOrgClassifiedMapper.xml +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/distribution/mapping/PwRStatOrgClassifiedMapper.xml @@ -43,7 +43,9 @@ FROM r_stat_org_y AS rso - LEFT JOIN r_stat_event_org_y AS rseo ON rso.org_no = rseo.org_no and rso.data_date = rseo.data_date + LEFT JOIN r_stat_event_y AS rseo ON rso.org_no = rseo.org_no + and rso.data_date = rseo.data_date + and rso.measurement_type_class = rseo.measurement_type_class WHERE @@ -54,7 +56,9 @@ FROM r_stat_org_q AS rso - LEFT JOIN r_stat_event_org_q AS rseo ON rso.org_no = rseo.org_no and rso.data_date = rseo.data_date + LEFT JOIN r_stat_event_q AS rseo ON rso.org_no = rseo.org_no + and rso.data_date = rseo.data_date + and rso.measurement_type_class = rseo.measurement_type_class WHERE @@ -65,7 +69,9 @@ FROM r_stat_org_m AS rso - LEFT JOIN r_stat_event_org_m AS rseo ON rso.org_no = rseo.org_no and rso.data_date = rseo.data_date + LEFT JOIN r_stat_event_m AS rseo ON rso.org_no = rseo.org_no + and rso.data_date = rseo.data_date + and rso.measurement_type_class = rseo.measurement_type_class WHERE diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/RStatEventOrgMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/RStatEventOrgMapper.xml index 223faeeff..0f684ef91 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/RStatEventOrgMapper.xml +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/RStatEventOrgMapper.xml @@ -47,7 +47,9 @@ FROM r_stat_org_y AS rso - LEFT JOIN r_stat_event_org_y AS rseo ON rso.org_no = rseo.org_no and rso.data_date = rseo.data_date + LEFT JOIN r_stat_event_y AS rseo ON rso.org_no = rseo.org_no + and rso.data_date = rseo.data_date + and rso.measurement_type_class = rseo.measurement_type_class WHERE @@ -59,7 +61,9 @@ FROM r_stat_org_q AS rso - LEFT JOIN r_stat_event_org_q AS rseo ON rso.org_no = rseo.org_no and rso.data_date = rseo.data_date + LEFT JOIN r_stat_event_q AS rseo ON rso.org_no = rseo.org_no + and rso.data_date = rseo.data_date + and rso.measurement_type_class = rseo.measurement_type_class WHERE @@ -71,7 +75,9 @@ FROM r_stat_org_m AS rso - LEFT JOIN r_stat_event_org_m AS rseo ON rso.org_no = rseo.org_no and rso.data_date = rseo.data_date + LEFT JOIN r_stat_event_m AS rseo ON rso.org_no = rseo.org_no + and rso.data_date = rseo.data_date + and rso.measurement_type_class = rseo.measurement_type_class WHERE diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrg2VO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrg2VO.java index 313c82f85..a54377289 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrg2VO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrg2VO.java @@ -91,10 +91,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued; private Float oAverage; private Float oAccrued; - private Integer chainAverage; - private Integer chainAccrued; - private Integer sameAverage; - private Integer sameAccrued; + private Float chainAverage; + private Float chainAccrued; + private Float sameAverage; + private Float sameAccrued; private Float averageOverDay; /** @@ -104,10 +104,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued1; private Float oAverage1; private Float oAccrued1; - private Integer chainAverage1; - private Integer chainAccrued1; - private Integer sameAverage1; - private Integer sameAccrued1; + private Float chainAverage1; + private Float chainAccrued1; + private Float sameAverage1; + private Float sameAccrued1; private Float averageOverDay1; /** @@ -117,10 +117,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued2; private Float oAverage2; private Float oAccrued2; - private Integer chainAverage2; - private Integer chainAccrued2; - private Integer sameAverage2; - private Integer sameAccrued2; + private Float chainAverage2; + private Float chainAccrued2; + private Float sameAverage2; + private Float sameAccrued2; private Float averageOverDay2; /** @@ -130,10 +130,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued3; private Float oAverage3; private Float oAccrued3; - private Integer chainAverage3; - private Integer chainAccrued3; - private Integer sameAverage3; - private Integer sameAccrued3; + private Float chainAverage3; + private Float chainAccrued3; + private Float sameAverage3; + private Float sameAccrued3; private Float averageOverDay3; /** @@ -143,10 +143,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued4; private Float oAverage4; private Float oAccrued4; - private Integer chainAverage4; - private Integer chainAccrued4; - private Integer sameAverage4; - private Integer sameAccrued4; + private Float chainAverage4; + private Float chainAccrued4; + private Float sameAverage4; + private Float sameAccrued4; private Float averageOverDay4; @@ -157,10 +157,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued5; private Float oAverage5; private Float oAccrued5; - private Integer chainAverage5; - private Integer chainAccrued5; - private Integer sameAverage5; - private Integer sameAccrued5; + private Float chainAverage5; + private Float chainAccrued5; + private Float sameAverage5; + private Float sameAccrued5; private Float averageOverDay5; @@ -171,10 +171,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued6; private Float oAverage6; private Float oAccrued6; - private Integer chainAverage6; - private Integer chainAccrued6; - private Integer sameAverage6; - private Integer sameAccrued6; + private Float chainAverage6; + private Float chainAccrued6; + private Float sameAverage6; + private Float sameAccrued6; private Float averageOverDay6; /** @@ -184,10 +184,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued7; private Float oAverage7; private Float oAccrued7; - private Integer chainAverage7; - private Integer chainAccrued7; - private Integer sameAverage7; - private Integer sameAccrued7; + private Float chainAverage7; + private Float chainAccrued7; + private Float sameAverage7; + private Float sameAccrued7; private Float averageOverDay7; /** @@ -197,10 +197,10 @@ public class RStatSubstationOrg2VO implements Serializable { private Integer tAccrued8; private Float oAverage8; private Float oAccrued8; - private Integer chainAverage8; - private Integer chainAccrued8; - private Integer sameAverage8; - private Integer sameAccrued8; + private Float chainAverage8; + private Float chainAccrued8; + private Float sameAverage8; + private Float sameAccrued8; private Float averageOverDay8; @Data diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrgVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrgVO.java index 6f73f430e..0c8d3aa06 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrgVO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/RStatSubstationOrgVO.java @@ -116,16 +116,13 @@ public class RStatSubstationOrgVO implements Serializable { private Float overLimitMeasurementRatioAccrued; //同比日均 - private Integer chainAverage; + private Float chainAverage; //同比累计 - private Integer chainAccrued; - + private Float chainAccrued; //环比日均 - private Integer sameAverage; + private Float sameAverage; //环比累计 - private Integer sameAccrued; - - + private Float sameAccrued; //平均天数 private Float averageOverDay; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgMMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgMMapper.xml index fab4e18a8..eded5c2ef 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgMMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgMMapper.xml @@ -38,93 +38,14 @@ rso.harmonic_measurement_ratio_average as harmonicMeasurementRatioAverage, TRUNCATE(rso.harmonic_measurement_accrued/rso.effective_measurement_accrued ,2)as harmonicMeasurementRatioAccrued, c.harmonic_type, - c.over_limit_measurement_average, + TRUNCATE(c.over_limit_measurement_average,2) as overLimitMeasurementAverage, c.over_limit_measurement_accrued, - c.over_limit_measurement_ratio_average, - c.over_limit_measurement_ratio_accrued, - ( - SELECT - over_limit_measurement_average - FROM - r_stat_harmonic_org_m a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - - ) chainAverage , - ( - SELECT - over_limit_measurement_accrued - FROM - r_stat_harmonic_org_m a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - ) chainAccrued , - ( - SELECT - over_limit_measurement_average - FROM - r_stat_harmonic_org_m a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 MONTH ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 MONTH ))) - - ) sameAverage, - ( - SELECT - over_limit_measurement_accrued - FROM - r_stat_harmonic_org_m a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 MONTH ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 MONTH ))) - - - ) sameAccrued , - TRUNCATE( c.over_day / c.over_limit_measurement_accrued, 2)as averageOverDay + TRUNCATE(c.over_limit_measurement_ratio_average,2) as overLimitMeasurementRatioAverage, + TRUNCATE(c.over_limit_measurement_ratio_accrued,2) as overLimitMeasurementRatioAccrued, + TRUNCATE( c.over_day / c.over_limit_measurement_accrued, 2)as averageOverDay FROM - r_stat_harmonic_org_m c - RIGHT JOIN r_stat_org_m AS rso ON rso.org_no = c.org_no + r_stat_harmonic_m c + RIGHT JOIN r_stat_org_m AS rso ON rso.org_no = c.org_no and c.measurement_type_class = rso.measurement_type_class c.data_Type=#{dataType} and rso.data_Type=#{dataType} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgQMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgQMapper.xml index cc5e8787d..0eb1157da 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgQMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgQMapper.xml @@ -38,91 +38,13 @@ rso.harmonic_measurement_ratio_average as harmonicMeasurementRatioAverage, TRUNCATE(rso.harmonic_measurement_accrued/rso.effective_measurement_accrued ,2)as harmonicMeasurementRatioAccrued, c.harmonic_type, - c.over_limit_measurement_average, + TRUNCATE(c.over_limit_measurement_average,2) as overLimitMeasurementAverage, c.over_limit_measurement_accrued, - c.over_limit_measurement_ratio_average, - c.over_limit_measurement_ratio_accrued, - ( - SELECT - over_limit_measurement_average - FROM - r_stat_harmonic_org_q a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - - ) chainAverage , - ( - SELECT - over_limit_measurement_accrued - FROM - r_stat_harmonic_org_q a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - ) chainAccrued , - ( - SELECT - over_limit_measurement_average - FROM - r_stat_harmonic_org_q a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 3 MONTH ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 3 MONTH ))) - - ) sameAverage, - ( - SELECT - over_limit_measurement_accrued - FROM - r_stat_harmonic_org_q a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 3 MONTH ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 3 MONTH ))) - - - ) sameAccrued, - c.average_over_day + TRUNCATE(c.over_limit_measurement_ratio_average,2) as overLimitMeasurementRatioAverage, + TRUNCATE(c.over_limit_measurement_ratio_accrued,2) as overLimitMeasurementRatioAccrued, + TRUNCATE( c.average_over_day, 2)as averageOverDay FROM - r_stat_harmonic_org_q c + r_stat_harmonic_q c RIGHT JOIN r_stat_org_q AS rso ON rso.org_no = c.org_no c.data_Type=#{dataType} and rso.data_Type=#{dataType} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgYMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgYMapper.xml index 0793ad2f7..72888d141 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgYMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/majornetwork/mapping/RStatOrgYMapper.xml @@ -36,93 +36,15 @@ rso.over_limit_measurement_average AS harmonicMeasurementAverage, rso.over_limit_measurement_accrued AS harmonicMeasurementAccrued, rso.harmonic_measurement_ratio_average as harmonicMeasurementRatioAverage, - TRUNCATE(rso.harmonic_measurement_accrued/rso.effective_measurement_accrued ,2)as harmonicMeasurementRatioAccrued, + TRUNCATE(rso.over_limit_measurement_accrued/rso.effective_measurement_accrued ,2)as harmonicMeasurementRatioAccrued, c.harmonic_type, - c.over_limit_measurement_average, + TRUNCATE(c.over_limit_measurement_average,2) as overLimitMeasurementAverage, c.over_limit_measurement_accrued, - c.over_limit_measurement_ratio_average, - c.over_limit_measurement_ratio_accrued, - ( - SELECT - over_limit_measurement_average - FROM - r_stat_harmonic_org_y a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - - ) chainAverage , - ( - SELECT - over_limit_measurement_accrued - FROM - r_stat_harmonic_org_y a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - ) chainAccrued , - ( - SELECT - over_limit_measurement_average - FROM - r_stat_harmonic_org_y a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - ) sameAverage, - ( - SELECT - over_limit_measurement_accrued - FROM - r_stat_harmonic_org_y a - WHERE - a.org_no=c.org_no - and a.data_Type = #{dataType} - and - a.harmonic_type=c.harmonic_type - - AND (data_date >= date( - DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR ))) - - - AND (data_date <= date( - DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR ))) - - - ) sameAccrued, - c.average_over_day + TRUNCATE(c.over_limit_measurement_ratio_average,2) as overLimitMeasurementRatioAverage, + TRUNCATE(c.over_limit_measurement_ratio_accrued,2) as overLimitMeasurementRatioAccrued, + c.average_over_day FROM - r_stat_harmonic_org_y c + r_stat_harmonic_y c RIGHT JOIN r_stat_org_y AS rso ON rso.org_no = c.org_no c.data_Type=#{dataType} and rso.data_Type=#{dataType} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/impl/PwRStatOrgServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/impl/PwRStatOrgServiceImpl.java index 76bd085ae..85b038804 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/impl/PwRStatOrgServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/distribution/impl/PwRStatOrgServiceImpl.java @@ -3,6 +3,8 @@ package com.njcn.harmonic.service.distribution.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.common.pojo.constant.BizParamConstant; @@ -262,6 +264,16 @@ public class PwRStatOrgServiceImpl extends ServiceImpl steadyStatis = dicDataFeignClient.getDicDataByTypeCode( DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); List temp = new ArrayList<>(); + List tb; + List hb; + String startTime = param.getStartTime(); + String endTime = param.getEndTime(); + //同比(上一年) + String tStarTime = DateUtil.offset(DateUtil.parse(startTime), DateField.YEAR, -1).toString(); + String tEndTime = DateUtil.offset(DateUtil.parse(endTime), DateField.YEAR, -1).toString(); + //环比(上个月) + String hStarTime = DateUtil.offset(DateUtil.parse(startTime), DateField.MONTH, -1).toString(); + String hEndTime = DateUtil.offset(DateUtil.parse(endTime), DateField.MONTH, -1).toString(); //获取配网信息 DictData distributionData = dicDataFeignClient.getDicDataByCode(DicDataEnum.DISTRIBUTION_POINT.getCode()).getData(); //选择数据时间范围 @@ -269,14 +281,35 @@ public class PwRStatOrgServiceImpl extends ServiceImpl(); } + private List assemble(List temp,List hb,List tb){ + Map map = temp.stream().collect(Collectors.toMap(x -> x.getOrgNo() + ";" + x.getMeasurementTypeClass() + ";" + x.getHarmonicType(), Function.identity())); + Map tbMap = hb.stream().collect(Collectors.toMap(x -> x.getOrgNo() + ";" + x.getMeasurementTypeClass() + ";" + x.getHarmonicType(), Function.identity())); + Map hbMap = tb.stream().collect(Collectors.toMap(x -> x.getOrgNo() + ";" + x.getMeasurementTypeClass() + ";" + x.getHarmonicType(), Function.identity())); + map.forEach((key,value)->{ + RStatSubstationOrgVO rStatSubstationOrgVO; + if(tbMap.containsKey(key)){ + rStatSubstationOrgVO = tbMap.get(key); + value.setChainAverage(rStatSubstationOrgVO.getOverLimitMeasurementAverage()); + value.setChainAccrued(rStatSubstationOrgVO.getOverLimitMeasurementRatioAccrued()); + } + if(hbMap.containsKey(key)){ + rStatSubstationOrgVO = hbMap.get(key); + value.setSameAverage(rStatSubstationOrgVO.getOverLimitMeasurementAverage()); + value.setSameAccrued(rStatSubstationOrgVO.getOverLimitMeasurementRatioAccrued()); + } + + }); + return temp; + } } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgYServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgYServiceImpl.java index 464dc9881..87317bd3e 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgYServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatOrgYServiceImpl.java @@ -3,6 +3,8 @@ package com.njcn.harmonic.service.majornetwork.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.njcn.common.pojo.constant.BizParamConstant; @@ -38,10 +40,7 @@ import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -138,24 +137,56 @@ public class RStatOrgYServiceImpl extends ServiceImpl eventStatis = dicDataFeignClient.getDicDataByTypeCode( DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); List temp = new ArrayList<>(); + List tb; + List hb; // 过滤出部门id List deptIds = data.stream().map(DeptDTO::getCode).collect(Collectors.toList()); //获取主网id信息 DictData mainnetData = dicDataFeignClient.getDicDataByCode(DicDataEnum.MAINNET_POINT.getCode()).getData(); + String startTime = param.getStartTime(); + String endTime = param.getEndTime(); + //同比(上一年) + String tStarTime = DateUtil.offset(DateUtil.parse(startTime), DateField.YEAR, -1).toString(); + String tEndTime = DateUtil.offset(DateUtil.parse(endTime), DateField.YEAR, -1).toString(); + //环比(上个月) + String hStarTime = DateUtil.offset(DateUtil.parse(startTime), DateField.MONTH, -1).toString(); + String hEndTime = DateUtil.offset(DateUtil.parse(endTime), DateField.MONTH, -1).toString(); + param.getStartTime(); // 类型(1年 2季度 3月份 4日 switch (param.getType().toString()) { case BizParamConstant.STAT_BIZ_YEAR: // 获取年区域暂态指标分类统计表 temp = rStatOrgYMapper.getYearRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + param.setStartTime(tStarTime); + param.setEndTime(tEndTime); + tb = rStatOrgYMapper.getYearRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + param.setStartTime(hStarTime); + param.setEndTime(hEndTime); + hb = rStatOrgYMapper.getYearRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + assemble(temp,tb,hb); break; case BizParamConstant.STAT_BIZ_QUARTER: // 获取季区域暂态指标分类统计表 temp = rStatOrgQMapper.getQuarterRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + param.setStartTime(tStarTime); + param.setEndTime(tEndTime); + tb = rStatOrgQMapper.getQuarterRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + param.setStartTime(hStarTime); + param.setEndTime(hEndTime); + hb = rStatOrgQMapper.getQuarterRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + assemble(temp,tb,hb); break; case BizParamConstant.STAT_BIZ_MONTH: // 获取月区域暂态指标分类统计表 temp = rStatOrgMMapper.getMonthRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + param.setStartTime(tStarTime); + param.setEndTime(tEndTime); + tb = rStatOrgMMapper.getMonthRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + param.setStartTime(hStarTime); + param.setEndTime(hEndTime); + hb = rStatOrgMMapper.getMonthRStatHarmonicOrgInfo(param, deptIds, mainnetData.getId()); + assemble(temp,tb,hb); break; default: break; @@ -422,5 +453,25 @@ public class RStatOrgYServiceImpl extends ServiceImpl assemble(List temp,List hb,List tb){ + Map map = temp.stream().collect(Collectors.toMap(x -> x.getOrgNo() + ";" + x.getMeasurementTypeClass() + ";" + x.getHarmonicType(), Function.identity())); + Map tbMap = hb.stream().collect(Collectors.toMap(x -> x.getOrgNo() + ";" + x.getMeasurementTypeClass() + ";" + x.getHarmonicType(), Function.identity())); + Map hbMap = tb.stream().collect(Collectors.toMap(x -> x.getOrgNo() + ";" + x.getMeasurementTypeClass() + ";" + x.getHarmonicType(), Function.identity())); + map.forEach((key,value)->{ + RStatSubstationOrgVO rStatSubstationOrgVO; + if(tbMap.containsKey(key)){ + rStatSubstationOrgVO = tbMap.get(key); + value.setChainAverage(rStatSubstationOrgVO.getOverLimitMeasurementAverage()); + value.setChainAccrued(rStatSubstationOrgVO.getOverLimitMeasurementRatioAccrued()); + } + if(hbMap.containsKey(key)){ + rStatSubstationOrgVO = hbMap.get(key); + value.setSameAverage(rStatSubstationOrgVO.getOverLimitMeasurementAverage()); + value.setSameAccrued(rStatSubstationOrgVO.getOverLimitMeasurementRatioAccrued()); + } + + }); + return temp; + } }