1.pms bug修改

2.监测点稳态指标合格率算法开发
This commit is contained in:
huangzj
2023-03-06 10:32:03 +08:00
parent c20ef391d7
commit 779b95d6b5
43 changed files with 1735 additions and 229 deletions

View File

@@ -16,48 +16,86 @@
<result column="flicker_accrued" property="flickerAccrued" />
</resultMap>
<select id="getMstatOrgBusbarVoltageVO" resultType="com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO">
SELECT
thisOrg.org_no,
thisOrg.data_date,
thisOrg.busbar_id,
thisOrg.measurement_count,
thisOrg.v_average as average,
thisOrg.v_accrued as accrued,
thisOrg.unbalance_average,
thisOrg.unbalance_accrued,
thisOrg.flicker_average,
thisOrg.flicker_accrued,
lastOrg.v_average as averageSame,
lastOrg.v_accrued as accruedSame,
lastOrg.unbalance_average as unbalanceAverageSame,
lastOrg.unbalance_accrued as unbalanceAccruedSame,
lastOrg.flicker_average as flickerAverageSame,
lastOrg.flicker_accrued as flickerAccruedSame
FROM
r_stat_org_busbar_voltage_m thisOrg
LEFt JOIN r_stat_org_busbar_voltage_m lastOrg on thisOrg.org_no=lastOrg.org_no and thisOrg.busbar_id=lastOrg.busbar_id
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND (lastOrg.data_date >= date(
DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR )))
</if>
<if test="param!=null and param.endTime != null and param.endTime !=''">
AND (lastOrg.data_date &lt;= date(
DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR )))
</if>
<where>
<if test="param != null and param.ids != null and param.ids.size > 0">
AND thisOrg.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND thisOrg.data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND thisOrg.data_date &lt;= #{param.endTime}
</if>
</where>
SELECT aa.org_no,
aa.station_name powerStationName,
aa.scale busbarVoltageLevel,
ifnull(aa.average,0) average,
ifnull(aa.accrued,0) accrued,
ifnull(aa.unbalanceAverage,0) unbalanceAverage,
ifnull(aa.unbalanceAccrued,0) unbalanceAccrued,
ifnull(aa.flickerAverage,0) flickerAverage,
ifnull(aa.flickerAccrued,0) flickerAccrued,
ifnull(bb.averageSame,0) averageSame,
ifnull(bb.accruedSame,0) accruedSame,
ifnull(bb.unbalanceAverageSame,0) unbalanceAverageSame,
ifnull(bb.unbalanceAccruedSame,0) unbalanceAccruedSame,
ifnull(bb.flickerAverageSame,0) flickerAverageSame,
ifnull(bb.flickerAccruedSame,0) flickerAccruedSame
FROM
(
SELECT b.org_no org_no,
a.Station_Name station_name,
a.scale scale,
avg(b.v_average) AS average,
sum(b.v_accrued) AS accrued,
avg(b.unbalance_average) unbalanceAverage,
sum(b.unbalance_accrued) unbalanceAccrued,
avg(b.flicker_average) flickerAverage,
sum(b.flicker_average) flickerAccrued
FROM r_stat_org_busbar_voltage_m b,
pms_generatrix_wire a
WHERE
a.id = b.busbar_id
<if test="param != null and param.ids != null and param.ids.size > 0">
AND b.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param != null and param.startTime != null and param.startTime != ''">
AND b.data_date >= #{param.startTime}
</if>
<if test="param != null and param.endTime != null and param.endTime != ''">
AND b.data_date &lt;= #{param.endTime}
</if>
GROUP BY org_no,
station_name,
scale
) aa
LEFT JOIN (
SELECT b.org_no org_no,
a.Station_Name station_name,
a.scale scale,
avg(b.v_average) AS averageSame,
sum(b.v_accrued) AS accruedSame,
avg(b.unbalance_average) unbalanceAverageSame,
sum(b.unbalance_accrued) unbalanceAccruedSame,
avg(b.flicker_average) flickerAverageSame,
sum(b.flicker_average) flickerAccruedSame
FROM r_stat_org_busbar_voltage_m b,
pms_generatrix_wire a
WHERE
a.id = b.busbar_id
<if test="param != null and param.ids != null and param.ids.size > 0">
AND b.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param != null and param.startTime != null and param.startTime != ''">
AND (b.data_date >= date(
DATE_ADD(#{param.startTime}, INTERVAL - 1 YEAR)))
</if>
<if test="param != null and param.endTime != null and param.endTime != ''">
AND (b.data_date &lt;= date(
DATE_ADD(#{param.endTime}, INTERVAL - 1 YEAR)))
</if>
GROUP BY b.org_no,
a.Station_Name,
a.scale
) bb ON aa.org_no = bb.org_no
AND aa.station_name = bb.station_name
AND aa.scale = bb.scale
</select>
</mapper>

View File

@@ -16,49 +16,87 @@
<result column="flicker_accrued" property="flickerAccrued" />
</resultMap>
<select id="getQstatOrgBusbarVoltageVO" resultType="com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO">
SELECT
thisOrg.org_no,
thisOrg.data_date,
thisOrg.busbar_id,
thisOrg.measurement_count,
thisOrg.v_average as average,
thisOrg.v_accrued as accrued,
thisOrg.unbalance_average,
thisOrg.unbalance_accrued,
thisOrg.flicker_average,
thisOrg.flicker_accrued,
lastOrg.v_average as averageSame,
lastOrg.v_accrued as accruedSame,
lastOrg.unbalance_average as unbalanceAverageSame,
lastOrg.unbalance_accrued as unbalanceAccruedSame,
lastOrg.flicker_average as flickerAverageSame,
lastOrg.flicker_accrued as flickerAccruedSame
FROM
r_stat_org_busbar_voltage_q thisOrg
LEFt JOIN r_stat_org_busbar_voltage_q lastOrg on thisOrg.org_no=lastOrg.org_no and thisOrg.busbar_id=lastOrg.busbar_id
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND (lastOrg.data_date >= date(
DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR )))
</if>
<if test="param!=null and param.endTime != null and param.endTime !=''">
AND (lastOrg.data_date &lt;= date(
DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR )))
</if>
<where>
<if test="param != null and param.ids != null and param.ids.size > 0">
AND thisOrg.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND thisOrg.data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND thisOrg.data_date &lt;= #{param.endTime}
</if>
</where>
SELECT aa.org_no,
aa.station_name powerStationName,
aa.scale busbarVoltageLevel,
ifnull(aa.average,0) average,
ifnull(aa.accrued,0) accrued,
ifnull(aa.unbalanceAverage,0) unbalanceAverage,
ifnull(aa.unbalanceAccrued,0) unbalanceAccrued,
ifnull(aa.flickerAverage,0) flickerAverage,
ifnull(aa.flickerAccrued,0) flickerAccrued,
ifnull(bb.averageSame,0) averageSame,
ifnull(bb.accruedSame,0) accruedSame,
ifnull(bb.unbalanceAverageSame,0) unbalanceAverageSame,
ifnull(bb.unbalanceAccruedSame,0) unbalanceAccruedSame,
ifnull(bb.flickerAverageSame,0) flickerAverageSame,
ifnull(bb.flickerAccruedSame,0) flickerAccruedSame
FROM
(
SELECT b.org_no org_no,
a.Station_Name station_name,
a.scale scale,
avg(b.v_average) AS average,
sum(b.v_accrued) AS accrued,
avg(b.unbalance_average) unbalanceAverage,
sum(b.unbalance_accrued) unbalanceAccrued,
avg(b.flicker_average) flickerAverage,
sum(b.flicker_average) flickerAccrued
FROM r_stat_org_busbar_voltage_q b,
pms_generatrix_wire a
WHERE
a.id = b.busbar_id
<if test="param != null and param.ids != null and param.ids.size > 0">
AND b.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param != null and param.startTime != null and param.startTime != ''">
AND b.data_date >= #{param.startTime}
</if>
<if test="param != null and param.endTime != null and param.endTime != ''">
AND b.data_date &lt;= #{param.endTime}
</if>
GROUP BY org_no,
station_name,
scale
) aa
LEFT JOIN (
SELECT b.org_no org_no,
a.Station_Name station_name,
a.scale scale,
avg(b.v_average) AS averageSame,
sum(b.v_accrued) AS accruedSame,
avg(b.unbalance_average) unbalanceAverageSame,
sum(b.unbalance_accrued) unbalanceAccruedSame,
avg(b.flicker_average) flickerAverageSame,
sum(b.flicker_average) flickerAccruedSame
FROM r_stat_org_busbar_voltage_q b,
pms_generatrix_wire a
WHERE
a.id = b.busbar_id
<if test="param != null and param.ids != null and param.ids.size > 0">
AND b.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param != null and param.startTime != null and param.startTime != ''">
AND (b.data_date >= date(
DATE_ADD(#{param.startTime}, INTERVAL - 1 YEAR)))
</if>
<if test="param != null and param.endTime != null and param.endTime != ''">
AND (b.data_date &lt;= date(
DATE_ADD(#{param.endTime}, INTERVAL - 1 YEAR)))
</if>
GROUP BY b.org_no,
a.Station_Name,
a.scale
) bb ON aa.org_no = bb.org_no
AND aa.station_name = bb.station_name
AND aa.scale = bb.scale
</select>
</mapper>

View File

@@ -1,64 +1,99 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageYMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageY">
<id column="org_no" property="orgNo" />
<result column="data_date" property="dataDate" />
<result column="busbar_id" property="busbarId" />
<result column="measurement_count" property="measurementCount" />
<result column="v_average" property="vAverage" />
<result column="v_accrued" property="vAccrued" />
<result column="unbalance_average" property="unbalanceAverage" />
<result column="unbalance_accrued" property="unbalanceAccrued" />
<result column="flicker_average" property="flickerAverage" />
<result column="flicker_accrued" property="flickerAccrued" />
<id column="org_no" property="orgNo"/>
<result column="data_date" property="dataDate"/>
<result column="busbar_id" property="busbarId"/>
<result column="measurement_count" property="measurementCount"/>
<result column="v_average" property="vAverage"/>
<result column="v_accrued" property="vAccrued"/>
<result column="unbalance_average" property="unbalanceAverage"/>
<result column="unbalance_accrued" property="unbalanceAccrued"/>
<result column="flicker_average" property="flickerAverage"/>
<result column="flicker_accrued" property="flickerAccrued"/>
</resultMap>
<select id="getYstatOrgBusbarVoltageVO" resultType="com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO">
SELECT
thisOrg.org_no,
thisOrg.data_date,
thisOrg.busbar_id,
thisOrg.measurement_count,
thisOrg.v_average as average,
thisOrg.v_accrued as accrued,
thisOrg.unbalance_average,
thisOrg.unbalance_accrued,
thisOrg.flicker_average,
thisOrg.flicker_accrued,
lastOrg.v_average as averageSame,
lastOrg.v_accrued as accruedSame,
lastOrg.unbalance_average as unbalanceAverageSame,
lastOrg.unbalance_accrued as unbalanceAccruedSame,
lastOrg.flicker_average as flickerAverageSame,
lastOrg.flicker_accrued as flickerAccruedSame
FROM
r_stat_org_busbar_voltage_y thisOrg
LEFt JOIN r_stat_org_busbar_voltage_y lastOrg on thisOrg.org_no=lastOrg.org_no and thisOrg.busbar_id=lastOrg.busbar_id
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND (lastOrg.data_date >= date(
DATE_ADD( #{param.startTime}, INTERVAL - 1 YEAR )))
</if>
<if test="param!=null and param.endTime != null and param.endTime !=''">
AND (lastOrg.data_date &lt;= date(
DATE_ADD( #{param.endTime}, INTERVAL - 1 YEAR )))
</if>
<where>
<if test="param != null and param.ids != null and param.ids.size > 0">
AND thisOrg.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND thisOrg.data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND thisOrg.data_date &lt;= #{param.endTime}
</if>
</where>
SELECT aa.org_no,
aa.station_name powerStationName,
aa.scale busbarVoltageLevel,
ifnull(aa.average,0) average,
ifnull(aa.accrued,0) accrued,
ifnull(aa.unbalanceAverage,0) unbalanceAverage,
ifnull(aa.unbalanceAccrued,0) unbalanceAccrued,
ifnull(aa.flickerAverage,0) flickerAverage,
ifnull(aa.flickerAccrued,0) flickerAccrued,
ifnull(bb.averageSame,0) averageSame,
ifnull(bb.accruedSame,0) accruedSame,
ifnull(bb.unbalanceAverageSame,0) unbalanceAverageSame,
ifnull(bb.unbalanceAccruedSame,0) unbalanceAccruedSame,
ifnull(bb.flickerAverageSame,0) flickerAverageSame,
ifnull(bb.flickerAccruedSame,0) flickerAccruedSame
FROM
(
SELECT b.org_no org_no,
a.Station_Name station_name,
a.scale scale,
avg(b.v_average) AS average,
sum(b.v_accrued) AS accrued,
avg(b.unbalance_average) unbalanceAverage,
sum(b.unbalance_accrued) unbalanceAccrued,
avg(b.flicker_average) flickerAverage,
sum(b.flicker_average) flickerAccrued
FROM r_stat_org_busbar_voltage_y b,
pms_generatrix_wire a
WHERE
a.id = b.busbar_id
<if test="param != null and param.ids != null and param.ids.size > 0">
AND b.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param != null and param.startTime != null and param.startTime != ''">
AND b.data_date >= #{param.startTime}
</if>
<if test="param != null and param.endTime != null and param.endTime != ''">
AND b.data_date &lt;= #{param.endTime}
</if>
GROUP BY org_no,
station_name,
scale
) aa
LEFT JOIN (
SELECT b.org_no org_no,
a.Station_Name station_name,
a.scale scale,
avg(b.v_average) AS averageSame,
sum(b.v_accrued) AS accruedSame,
avg(b.unbalance_average) unbalanceAverageSame,
sum(b.unbalance_accrued) unbalanceAccruedSame,
avg(b.flicker_average) flickerAverageSame,
sum(b.flicker_average) flickerAccruedSame
FROM r_stat_org_busbar_voltage_y b,
pms_generatrix_wire a
WHERE
a.id = b.busbar_id
<if test="param != null and param.ids != null and param.ids.size > 0">
AND b.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test="param != null and param.startTime != null and param.startTime != ''">
AND (b.data_date >= date(
DATE_ADD(#{param.startTime}, INTERVAL - 1 YEAR)))
</if>
<if test="param != null and param.endTime != null and param.endTime != ''">
AND (b.data_date &lt;= date(
DATE_ADD(#{param.endTime}, INTERVAL - 1 YEAR)))
</if>
GROUP BY b.org_no,
a.Station_Name,
a.scale
) bb ON aa.org_no = bb.org_no
AND aa.station_name = bb.station_name
AND aa.scale = bb.scale
</select>
</mapper>

View File

@@ -140,19 +140,15 @@
</select>
<select id="getMonthRStatOrgIndex" resultType="com.njcn.harmonic.pojo.vo.RStatOrgIndexVO$RStatOrgIndexInfoVO">
select
rso.org_no,
rso.effective_measurement_accrued as allCount,
rso.freq_pass_rate,
ry.freq_pass_rate as freqPassRateYear,
rso.v_dev_pass_rate,
ry.v_dev_pass_rate as vDevPassRateYear,
rso.flicker_pass_rate,
ry.flicker_pass_rate as flickerPassRateYear
org_no,
effective_measurement_accrued as allCount,
freq_pass_rate,
v_dev_pass_rate,
flicker_pass_rate
from
r_stat_org_m rso
LEFT JOIN r_stat_org_y ry on rso.org_no=ry.org_no
<where>
and rso.data_Type=#{dataType} and ry.data_Type=#{dataType}
and rso.data_Type=#{dataType}
<if test="param != null and param.ids != null and param.ids.size > 0">
AND rso.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
@@ -160,10 +156,10 @@
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND rso.data_date >= #{param.startTime} AND YEAR(ry.data_Date) = YEAR(#{param.startTime})
AND rso.data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND rso.data_date &lt;= #{param.endTime} AND YEAR(ry.data_Date) = YEAR(#{param.endTime})
AND rso.data_date &lt;= #{param.endTime}
</if>
</where>
</select>

View File

@@ -140,19 +140,15 @@
</select>
<select id="getQuarterRStatOrgIndex" resultType="com.njcn.harmonic.pojo.vo.RStatOrgIndexVO$RStatOrgIndexInfoVO">
select
rso.org_no,
rso.effective_measurement_accrued as allCount,
rso.freq_pass_rate,
ry.freq_pass_rate as freqPassRateYear,
rso.v_dev_pass_rate,
ry.v_dev_pass_rate as vDevPassRateYear,
rso.flicker_pass_rate,
ry.flicker_pass_rate as flickerPassRateYear
org_no,
effective_measurement_accrued as allCount,
freq_pass_rate,
v_dev_pass_rate,
flicker_pass_rate
from
r_stat_org_q rso
LEFT JOIN r_stat_org_y ry on rso.org_no=ry.org_no
r_stat_org_q rso
<where>
and rso.data_Type=#{dataType} and ry.data_Type=#{dataType}
and rso.data_Type=#{dataType}
<if test="param != null and param.ids != null and param.ids.size > 0">
AND rso.org_no IN
<foreach collection='param.ids' item='item' index="index" open='(' separator=',' close=')'>
@@ -160,10 +156,10 @@
</foreach>
</if>
<if test="param!=null and param.startTime != null and param.startTime !=''">
AND rso.data_date >= #{param.startTime} AND YEAR(ry.data_Date) = YEAR(#{param.startTime})
AND rso.data_date >= #{param.startTime}
</if>
<if test="param!=null and param.endTime != null and param.endTime != ''">
AND rso.data_date &lt;= #{param.endTime} AND YEAR(ry.data_Date) = YEAR(#{param.endTime})
AND rso.data_date &lt;= #{param.endTime}
</if>
</where>
</select>

View File

@@ -144,11 +144,8 @@
org_no,
effective_measurement_accrued as allCount,
freq_pass_rate,
freq_pass_rate as freqPassRateYear,
v_dev_pass_rate,
v_dev_pass_rate as vDevPassRateYear,
flicker_pass_rate,
flicker_pass_rate as flickerPassRateYear
flicker_pass_rate
from
r_stat_org_y rso
<where>

View File

@@ -10,9 +10,7 @@ import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.harmonic.mapper.majornetwork.RMpBenchmarkLevelMMapper;
import com.njcn.harmonic.pojo.param.RMpBenchmarkLevelParam;
@@ -27,10 +25,8 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -48,6 +44,7 @@ implements RMpBenchmarkLevelMService {
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final MonitorClient monitorClient;
private DecimalFormat df = new DecimalFormat("#.00");
@Override
public List<RMpBenchmarkLevelVO> getRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
@@ -129,6 +126,70 @@ implements RMpBenchmarkLevelMService {
rMpBenchmarkLevelVO.setVoltageLevelName(voltageLevelMap.get(monitorMap.get(item.getMeasurementPointId()).getVoltageLevel()));
return rMpBenchmarkLevelVO;
}).collect(Collectors.toList());
/*添加type在区分接口返回值*/
if(Objects.equals (rMpBenchmarkLevelParam.getReturnType (), "1")){
Map<String, List<RMpBenchmarkLevelVO>> collect = resultList.stream ( ).collect (Collectors.groupingBy (temp -> temp.getOrgName ( ) + temp.getVoltageLevel ()));
List<RMpBenchmarkLevelVO> finalList= new ArrayList<> ();
collect.forEach ((k, v) ->{
RMpBenchmarkLevelVO rMpBenchmarkLevelVO = new RMpBenchmarkLevelVO();
rMpBenchmarkLevelVO.setOrgName (v.get (0).getOrgName ());
rMpBenchmarkLevelVO.setVoltageLevel (v.get (0).getVoltageLevel ());
rMpBenchmarkLevelVO.setVoltageLevelName (v.get (0).getVoltageLevelName ());
rMpBenchmarkLevelVO.setVoltageAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVoltageAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVoltageSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVoltageSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setUnbalanceAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getUnbalanceAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setUnbalanceSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getUnbalanceSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVthdAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVthdAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVthdSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVthdSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setFlickerAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getFlickerAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setFlickerSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getFlickerSd).
average ().
getAsDouble ())));
finalList.add (rMpBenchmarkLevelVO);
});
return finalList;
}else if(
Objects.equals (rMpBenchmarkLevelParam.getReturnType (), "2")
){
Map<String, List<RMpBenchmarkLevelVO>> collect = resultList.stream ( ).collect (Collectors.groupingBy (temp -> temp.getOrgName ( ) + temp.getMonitorTag ()));
List<RMpBenchmarkLevelVO> finalList= new ArrayList<> ();
collect.forEach ((k, v) ->{
RMpBenchmarkLevelVO rMpBenchmarkLevelVO = new RMpBenchmarkLevelVO();
rMpBenchmarkLevelVO.setOrgName (v.get (0).getOrgName ());
rMpBenchmarkLevelVO.setMonitorTag (v.get (0).getMonitorTag ());
rMpBenchmarkLevelVO.setEventAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getEventAvg).sum ());
rMpBenchmarkLevelVO.setRiseAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getRiseAvg).sum ());
rMpBenchmarkLevelVO.setInterruptAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getInterruptAvg).sum ());
finalList.add (rMpBenchmarkLevelVO);
});
return finalList;
}
return resultList;
}

View File

@@ -10,9 +10,7 @@ import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.harmonic.mapper.majornetwork.RMpBenchmarkLevelQMapper;
import com.njcn.harmonic.pojo.param.RMpBenchmarkLevelParam;
@@ -27,10 +25,8 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -48,6 +44,7 @@ implements RMpBenchmarkLevelQService {
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final MonitorClient monitorClient;
private DecimalFormat df = new DecimalFormat("#.00");
@Override
public List<RMpBenchmarkLevelVO> getRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
@@ -129,6 +126,70 @@ implements RMpBenchmarkLevelQService {
rMpBenchmarkLevelVO.setVoltageLevelName(voltageLevelMap.get(monitorMap.get(item.getMeasurementPointId()).getVoltageLevel()));
return rMpBenchmarkLevelVO;
}).collect(Collectors.toList());
/*添加type在区分接口返回值*/
if(Objects.equals (rMpBenchmarkLevelParam.getReturnType (), "1")){
Map<String, List<RMpBenchmarkLevelVO>> collect = resultList.stream ( ).collect (Collectors.groupingBy (temp -> temp.getOrgName ( ) + temp.getVoltageLevel ()));
List<RMpBenchmarkLevelVO> finalList= new ArrayList<> ();
collect.forEach ((k, v) ->{
RMpBenchmarkLevelVO rMpBenchmarkLevelVO = new RMpBenchmarkLevelVO();
rMpBenchmarkLevelVO.setOrgName (v.get (0).getOrgName ());
rMpBenchmarkLevelVO.setVoltageLevel (v.get (0).getVoltageLevel ());
rMpBenchmarkLevelVO.setVoltageLevelName (v.get (0).getVoltageLevelName ());
rMpBenchmarkLevelVO.setVoltageAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVoltageAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVoltageSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVoltageSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setUnbalanceAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getUnbalanceAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setUnbalanceSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getUnbalanceSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVthdAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVthdAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVthdSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVthdSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setFlickerAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getFlickerAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setFlickerSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getFlickerSd).
average ().
getAsDouble ())));
finalList.add (rMpBenchmarkLevelVO);
});
return finalList;
}else if(
Objects.equals (rMpBenchmarkLevelParam.getReturnType (), "2")
){
Map<String, List<RMpBenchmarkLevelVO>> collect = resultList.stream ( ).collect (Collectors.groupingBy (temp -> temp.getOrgName ( ) + temp.getMonitorTag ()));
List<RMpBenchmarkLevelVO> finalList= new ArrayList<> ();
collect.forEach ((k, v) ->{
RMpBenchmarkLevelVO rMpBenchmarkLevelVO = new RMpBenchmarkLevelVO();
rMpBenchmarkLevelVO.setOrgName (v.get (0).getOrgName ());
rMpBenchmarkLevelVO.setMonitorTag (v.get (0).getMonitorTag ());
rMpBenchmarkLevelVO.setEventAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getEventAvg).sum ());
rMpBenchmarkLevelVO.setRiseAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getRiseAvg).sum ());
rMpBenchmarkLevelVO.setInterruptAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getInterruptAvg).sum ());
finalList.add (rMpBenchmarkLevelVO);
});
return finalList;
}
return resultList;
}

View File

@@ -10,9 +10,7 @@ import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsGeneralDeviceInfoClient;
import com.njcn.device.pms.pojo.dto.PmsGeneralDeviceDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.dto.PmsMonitorInfoDTO;
import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorInfoParam;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.harmonic.mapper.majornetwork.RMpBenchmarkLevelYMapper;
import com.njcn.harmonic.pojo.param.RMpBenchmarkLevelParam;
@@ -27,10 +25,8 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -48,6 +44,8 @@ implements RMpBenchmarkLevelYService {
private final PmsGeneralDeviceInfoClient pmsGeneralDeviceInfoClient;
private final MonitorClient monitorClient;
private DecimalFormat df = new DecimalFormat("#.00");
@Override
public List<RMpBenchmarkLevelVO> getRMpBenchmarkLevelList(RMpBenchmarkLevelParam rMpBenchmarkLevelParam) {
@@ -129,6 +127,70 @@ implements RMpBenchmarkLevelYService {
rMpBenchmarkLevelVO.setVoltageLevelName(voltageLevelMap.get(monitorMap.get(item.getMeasurementPointId()).getVoltageLevel()));
return rMpBenchmarkLevelVO;
}).collect(Collectors.toList());
/*添加type在区分接口返回值*/
if(Objects.equals (rMpBenchmarkLevelParam.getReturnType (), "1")){
Map<String, List<RMpBenchmarkLevelVO>> collect = resultList.stream ( ).collect (Collectors.groupingBy (temp -> temp.getOrgName ( ) + temp.getVoltageLevel ()));
List<RMpBenchmarkLevelVO> finalList= new ArrayList<> ();
collect.forEach ((k, v) ->{
RMpBenchmarkLevelVO rMpBenchmarkLevelVO = new RMpBenchmarkLevelVO();
rMpBenchmarkLevelVO.setOrgName (v.get (0).getOrgName ());
rMpBenchmarkLevelVO.setVoltageLevel (v.get (0).getVoltageLevel ());
rMpBenchmarkLevelVO.setVoltageLevelName (v.get (0).getVoltageLevelName ());
rMpBenchmarkLevelVO.setVoltageAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVoltageAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVoltageSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVoltageSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setUnbalanceAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getUnbalanceAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setUnbalanceSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getUnbalanceSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVthdAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVthdAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setVthdSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getVthdSd).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setFlickerAvg (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getFlickerAvg).
average ().
getAsDouble ())));
rMpBenchmarkLevelVO.setFlickerSd (Double.valueOf (df.format (v.stream ().
mapToDouble (RMpBenchmarkLevelVO::getFlickerSd).
average ().
getAsDouble ())));
finalList.add (rMpBenchmarkLevelVO);
});
return finalList;
}else if(
Objects.equals (rMpBenchmarkLevelParam.getReturnType (), "2")
){
Map<String, List<RMpBenchmarkLevelVO>> collect = resultList.stream ( ).collect (Collectors.groupingBy (temp -> temp.getOrgName ( ) + temp.getMonitorTag ()));
List<RMpBenchmarkLevelVO> finalList= new ArrayList<> ();
collect.forEach ((k, v) ->{
RMpBenchmarkLevelVO rMpBenchmarkLevelVO = new RMpBenchmarkLevelVO();
rMpBenchmarkLevelVO.setOrgName (v.get (0).getOrgName ());
rMpBenchmarkLevelVO.setMonitorTag (v.get (0).getMonitorTag ());
rMpBenchmarkLevelVO.setEventAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getEventAvg).sum ());
rMpBenchmarkLevelVO.setRiseAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getRiseAvg).sum ());
rMpBenchmarkLevelVO.setInterruptAvg (v.stream ().mapToDouble (RMpBenchmarkLevelVO::getInterruptAvg).sum ());
finalList.add (rMpBenchmarkLevelVO);
});
return finalList;
}
return resultList;
}

View File

@@ -2,22 +2,18 @@ package com.njcn.harmonic.service.majornetwork.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.device.pms.api.PmsGeneratrixClient;
import com.njcn.device.pms.pojo.dto.GeneratrixAndPowerStationDTO;
import com.njcn.device.pms.pojo.param.PmsGeneratrixParam;
import com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageMMapper;
import com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageQMapper;
import com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageYMapper;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.RStatOrgBusbarVoltageM;
import com.njcn.harmonic.mapper.majornetwork.RStatOrgBusbarVoltageMMapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.vo.RStatOrgBusbarVoltageVO;
import com.njcn.harmonic.service.majornetwork.RStatOrgBusbarVoltageService;
import com.njcn.harmonic.utils.DeptUtil;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.web.utils.WebUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -48,8 +44,7 @@ public class RStatOrgBusbarVoltageServiceImpl extends ServiceImpl<RStatOrgBusbar
@Override
public List<RStatOrgBusbarVoltageVO> getRStatOrgBusbarVoltage(StatSubstationBizBaseParam param) {
//获取部门信息
List<DeptDTO> data = deptFeignClient.getDeptDescendantIndexes(param.getId(), WebUtil.filterDeptType()).getData();
//List<DeptDTO> data = DeptUtil.getDeptSubsetVOList(deptList, param.getId());
List<DeptDTO> data = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData();
Map<String, DeptDTO> deptMap = data.stream().collect(Collectors.toMap(DeptDTO::getCode, Function.identity()));
@@ -78,30 +73,12 @@ public class RStatOrgBusbarVoltageServiceImpl extends ServiceImpl<RStatOrgBusbar
break;
}
}
if (CollectionUtil.isNotEmpty(temp)) {
//获取母线集合
List<String> busbarIds = temp.stream().map(RStatOrgBusbarVoltageVO::getBusbarId).collect(Collectors.toList());
PmsGeneratrixParam generatrixParam = new PmsGeneratrixParam();
generatrixParam.setGeneratrixIds(busbarIds);
generatrixParam.setGeneratrixVoltageLevel(param.getIds());
List<GeneratrixAndPowerStationDTO> generatrixDTO = pmsGeneratrixClient.getGeneratrixAndPowerStationInfo(generatrixParam).getData();
Map<String, GeneratrixAndPowerStationDTO> generatrixMap = generatrixDTO.stream().collect(
Collectors.toMap(GeneratrixAndPowerStationDTO::getGeneratrixId, Function.identity()));
Map<String, RStatOrgBusbarVoltageVO> orgMap = temp.stream().collect(Collectors.toMap(RStatOrgBusbarVoltageVO::getOrgNo, Function.identity()));
orgMap.forEach((key, value) -> {
if (deptMap.containsKey(key)) {
DeptDTO deptDTO = deptMap.get(key);
value.setOrgName(deptDTO.getName());
if (generatrixMap.containsKey(value.getBusbarId())) {
GeneratrixAndPowerStationDTO dto = generatrixMap.get(value.getBusbarId());
value.setBusbarVoltageLevel(dto.getGeneratrixVoltageLevel());
value.setPowerStationName(dto.getPowerName());
info.add(value);
}
}
});
}
return info;
temp= temp.stream ().map (rStatOrgBusbarVoltageVO -> {
DeptDTO deptDTO = deptMap.get (rStatOrgBusbarVoltageVO.getOrgNo ( ));
rStatOrgBusbarVoltageVO.setOrgName (deptDTO.getName ());
return rStatOrgBusbarVoltageVO;
}).collect(Collectors.toList());
return temp;
}
}