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

@@ -27,6 +27,9 @@ public class RMpBenchmarkLevelParam extends StatisticsBizBaseParam {
@ApiModelProperty(name = "monitorTags", value = "监测点标签")
private List<String> monitorTags;
@ApiModelProperty(name = "type", value = "1稳态接口返回2暂态接口返回")
private String returnType;
@ApiModelProperty("页码")
private Integer pageNum;
@ApiModelProperty("页面尺寸")

View File

@@ -51,22 +51,22 @@ public class RStatOrgBusbarVoltageVO implements Serializable {
@ApiModelProperty(value = "累计闪变超标-占比")
private Float flickerAccrued;
@ApiModelProperty(value = "日均谐波电压超标同比-")
@ApiModelProperty(value = "日均谐波电压超标同比-")
private Float averageSame;
@ApiModelProperty(value = "累计谐波电压超标同比-")
@ApiModelProperty(value = "累计谐波电压超标同比-")
private Float accruedSame;
@ApiModelProperty(value = "日均三相电压不平衡超标同比-")
@ApiModelProperty(value = "日均三相电压不平衡超标同比-")
private Float unbalanceAverageSame;
@ApiModelProperty(value = "累计三相电压不平衡超标同比-")
@ApiModelProperty(value = "累计三相电压不平衡超标同比-")
private Float unbalanceAccruedSame;
@ApiModelProperty(value = "日均闪变超标同比-")
@ApiModelProperty(value = "日均闪变超标同比-")
private Float flickerAverageSame;
@ApiModelProperty(value = "累计闪变超标同比-")
@ApiModelProperty(value = "累计闪变超标同比-")
private Float flickerAccruedSame;
}

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;
}
}

View File

@@ -2479,5 +2479,4 @@ public class DayJob {
}
return stringBuilder;
}
}

View File

@@ -0,0 +1,65 @@
package com.njcn.prepare.harmonic.controller.line;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.line.RmpPassRateService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* @author qijian
* @date 2022/10/26
* 数据是否异常
*/
@Validated
@Slf4j
@RestController
@RequestMapping("/RmpPassRate")
@Api(tags = "监测点稳态指标合格率")
@AllArgsConstructor
public class RmpPassRateController extends BaseController {
private final LineFeignClient lineFeignClient;
private final RmpPassRateService rmpPassRateService;
@OperateInfo(info = LogEnum.BUSINESS_COMMON,operateType = OperateType.ADD)
@PostMapping("/RmpPassRateD")
@ApiOperation("监测点稳态指标合格率-日计算")
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
public HttpResult<Boolean> rmpPassRateDHandler(@RequestBody @Validated LineParam lineParam) {
log.info(LocalDateTime.now()+"rmpPassRateDHandler开始执行");
String methodDescribe = getMethodDescribe("rmpPassRateDHandler");
Boolean result = true;
List<String> indexLists = new ArrayList<> ();
if(CollectionUtils.isEmpty (lineParam.getLineIds ())){
indexLists = lineFeignClient.getLineList ( ).getData ( );
}else{
indexLists = lineParam.getLineIds ();
}
rmpPassRateService.rmpPassRateDHandler (lineParam);
if (result){
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
} else {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, false, methodDescribe);
}
}
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateDMapper extends MppBaseMapper<RMpPassRateDPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateMMapper extends MppBaseMapper<RMpPassRateMPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateQMapper extends MppBaseMapper<RMpPassRateQPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.mapper.mysql.line;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateYMapper extends MppBaseMapper<RMpPassRateYPO> {
}

View File

@@ -0,0 +1,18 @@
<?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.prepare.harmonic.mapper.mysql.line.RMpPassRateDMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_d-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="effective_time" jdbcType="INTEGER" property="effectiveTime" />
<result column="freq_time" jdbcType="INTEGER" property="freqTime" />
<result column="v_dev_time" jdbcType="INTEGER" property="vDevTime" />
<result column="flicker_time" jdbcType="INTEGER" property="flickerTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, effective_time, freq_time, v_dev_time, flicker_time
</sql>
</mapper>

View File

@@ -0,0 +1,17 @@
<?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.prepare.harmonic.mapper.mysql.line.RMpPassRateMMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_m-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="freq_pass_rate" jdbcType="FLOAT" property="freqPassRate" />
<result column="v_dev_pass_rate" jdbcType="FLOAT" property="vDevPassRate" />
<result column="flicker_pass_rate" jdbcType="FLOAT" property="flickerPassRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, freq_pass_rate, v_dev_pass_rate, flicker_pass_rate
</sql>
</mapper>

View File

@@ -0,0 +1,17 @@
<?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.prepare.harmonic.mapper.mysql.line.RMpPassRateQMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_q-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="freq_pass_rate" jdbcType="FLOAT" property="freqPassRate" />
<result column="v_dev_pass_rate" jdbcType="FLOAT" property="vDevPassRate" />
<result column="flicker_pass_rate" jdbcType="FLOAT" property="flickerPassRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, freq_pass_rate, v_dev_pass_rate, flicker_pass_rate
</sql>
</mapper>

View File

@@ -0,0 +1,17 @@
<?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.prepare.harmonic.mapper.mysql.line.RMpPassRateYMapper">
<resultMap id="BaseResultMap" type="com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO">
<!--@mbg.generated-->
<!--@Table r_mp_pass_rate_y-->
<id column="measurement_point_id" jdbcType="VARCHAR" property="measurementPointId" />
<id column="data_date" jdbcType="DATE" property="dataDate" />
<result column="freq_pass_rate" jdbcType="FLOAT" property="freqPassRate" />
<result column="v_dev_pass_rate" jdbcType="FLOAT" property="vDevPassRate" />
<result column="flicker_pass_rate" jdbcType="FLOAT" property="flickerPassRate" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
measurement_point_id, data_date, freq_pass_rate, v_dev_pass_rate, flicker_pass_rate
</sql>
</mapper>

View File

@@ -157,7 +157,7 @@ public class EffectiveMinuteCountServiceImpl implements EffectiveMinuteCountServ
Integer count = calculateEffectiveMinute (fiveItems, pmsAbnormalRules, voltage);
RMpIntegrityDPO rMpIntegrityDPO = new RMpIntegrityDPO ( );
rMpIntegrityDPO.setEffectiveMinuteCount (count * statisticalInterval);
rMpIntegrityDPO.setEffectiveMinuteCount (count );
rMpIntegrityDPO.setDataDate (tempDate);
rMpIntegrityDPOS.add (rMpIntegrityDPO);
});
@@ -251,7 +251,7 @@ public class EffectiveMinuteCountServiceImpl implements EffectiveMinuteCountServ
/*统计间隔*/
Integer statisticalInterval = temp.getStatisticalInterval ( );
RMpIntegrityDPO rMpIntegrityDPO = new RMpIntegrityDPO ( );
rMpIntegrityDPO.setEffectiveMinuteCount (count * statisticalInterval);
rMpIntegrityDPO.setEffectiveMinuteCount (count );
rMpIntegrityDPO.setDataDate (tempDate);
rMpIntegrityDPOS.add (rMpIntegrityDPO);
});

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateDMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateDService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateDServiceImpl extends MppServiceImpl<RMpPassRateDMapper, RMpPassRateDPO> implements RMpPassRateDService{
}

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateMMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateMService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateMServiceImpl extends MppServiceImpl<RMpPassRateMMapper, RMpPassRateMPO> implements RMpPassRateMService{
}

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateQMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateQService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateQServiceImpl extends MppServiceImpl<RMpPassRateQMapper, RMpPassRateQPO> implements RMpPassRateQService{
}

View File

@@ -0,0 +1,20 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPassRateYMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
import com.njcn.prepare.harmonic.service.mysql.line.RMpPassRateYService;
import org.springframework.stereotype.Service;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
public class RMpPassRateYServiceImpl extends MppServiceImpl<RMpPassRateYMapper, RMpPassRateYPO> implements RMpPassRateYService{
}

View File

@@ -0,0 +1,250 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.pojo.dto.PmsMonitorDTO;
import com.njcn.device.pms.pojo.param.PmsMonitorParam;
import com.njcn.harmonic.pojo.po.RMpIntegrityDPO;
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
import com.njcn.harmonic.service.majornetwork.RMpPartHarmonicDetailDService;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
import com.njcn.prepare.harmonic.service.mysql.area.RMpIntegrityDPOService;
import com.njcn.prepare.harmonic.service.mysql.line.*;
import com.njcn.prepare.harmonic.utils.PublicUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 10:27【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class RmpPassRateServiceImpl implements RmpPassRateService {
private final MonitorClient monitorClient;
private final RMpIntegrityDPOService rMpIntegrityDPOService;
private final RMpPartHarmonicDetailDService rMpPartHarmonicDetailDService;
private final RMpSurplusHarmonicDetailDMapper rMpSurplusHarmonicDetailDMapper;
private final RMpPassRateDService rmpPassRateDService;
private final RMpPassRateMService rmpPassRateMService;
private final RMpPassRateQService rmpPassRateQService;
private final RMpPassRateYService rmpPassRateYService;
DecimalFormat df = new DecimalFormat("0.00");
/*接口重mysql中取数据不分oracle/Influxdb*/
@Override
public void rmpPassRateDHandler(LineParam lineParam) {
Integer type = lineParam.getType ( );
switch (type) {
case 1:
this.hanlderYear (lineParam);
break;
case 2:
this.hanlderQtr (lineParam);
break;
case 3:
this.hanlderMonth (lineParam);
break;
case 5:
this.hanlderDay (lineParam);
break;
default:
break;
}
}
private void hanlderYear(LineParam lineParam) {
String dataDate = lineParam.getDataDate();
Date date = DateUtil.parse(lineParam.getDataDate());
List<String> lineIds = lineParam.getLineIds();
List<RMpPassRateYPO> rMpPassRateYPOList = new ArrayList<> ();
lineIds.forEach (temp ->{
QueryWrapper<RMpPassRateMPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("measurement_point_id", temp).
eq("YEAR( data_date )",dataDate.substring (0, 4));
List<RMpPassRateMPO> list = rmpPassRateMService.list (queryWrapper);
/*求平均值*/
Double flickerPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFlickerPassRate ( )).
collect (Collectors.averagingDouble (x -> x));
Double freqPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFreqPassRate ( )).
collect (Collectors.averagingDouble (x -> x));
Double vDevPassRate =list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getvDevPassRate ( )).
collect (Collectors.averagingDouble (x -> x));
RMpPassRateYPO rMpPassRateYPO = new RMpPassRateYPO();
rMpPassRateYPO.setMeasurementPointId (temp);
rMpPassRateYPO.setDataDate (date);
rMpPassRateYPO.setFlickerPassRate (
flickerPassRate );
rMpPassRateYPO.setFreqPassRate (
freqPassRate );
rMpPassRateYPO.setvDevPassRate (
vDevPassRate );
rMpPassRateYPOList.add (rMpPassRateYPO);
});
if(!CollectionUtils.isEmpty (rMpPassRateYPOList)){
rmpPassRateYService.saveOrUpdateBatchByMultiId (rMpPassRateYPOList,500);
}
}
private void hanlderQtr(LineParam lineParam) {
String dataDate = lineParam.getDataDate();
Date date = DateUtil.parse(lineParam.getDataDate());
List<String> lineIds = lineParam.getLineIds();
List<RMpPassRateQPO> rMpPassRateQPOList = new ArrayList<> ();
lineIds.forEach (temp ->{
QueryWrapper<RMpPassRateMPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("measurement_point_id", temp).
eq("QUARTER( data_date)", PublicUtil.getNowQuarter (dataDate));
List<RMpPassRateMPO> list = rmpPassRateMService.list (queryWrapper);
/*求平均值*/
Double flickerPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFlickerPassRate ( )).
collect (Collectors.averagingDouble (x -> x));
Double freqPassRate = list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getFreqPassRate ( )).
collect (Collectors.averagingDouble (x -> x));
Double vDevPassRate =list.stream ( ).map (rMpPassRateMPO -> rMpPassRateMPO.getvDevPassRate ( )).
collect (Collectors.averagingDouble (x -> x));
RMpPassRateQPO rMpPassRateQPO = new RMpPassRateQPO();
rMpPassRateQPO.setMeasurementPointId (temp);
rMpPassRateQPO.setDataDate (date);
rMpPassRateQPO.setFlickerPassRate (
flickerPassRate );
rMpPassRateQPO.setFreqPassRate (
freqPassRate );
rMpPassRateQPO.setvDevPassRate (
vDevPassRate );
rMpPassRateQPOList.add (rMpPassRateQPO);
});
if(!CollectionUtils.isEmpty (rMpPassRateQPOList)){
rmpPassRateQService.saveOrUpdateBatchByMultiId (rMpPassRateQPOList,500);
}
}
/**
* @Description: 月表为日表累计
* @Param: [lineParam]
* @return: void
* @Author: clam
* @Date: 2023/2/28
*/
private void hanlderMonth(LineParam lineParam) {
String dataDate = lineParam.getDataDate();
Date date = DateUtil.parse(lineParam.getDataDate());
List<String> lineIds = lineParam.getLineIds();
List<RMpPassRateMPO> rMpPassRateMPOList = new ArrayList<> ();
lineIds.forEach (temp ->{
QueryWrapper<RMpPassRateDPO> queryWrapper = new QueryWrapper<> ();
queryWrapper.eq ("measurement_point_id", temp).
eq("DATE_FORMAT( data_date ,'%Y-%m')",dataDate.substring (0, 7));
List<RMpPassRateDPO> list = rmpPassRateDService.list (queryWrapper);
Integer effectiveTime = Integer.valueOf (
list.stream ( ).mapToLong (RMpPassRateDPO::getEffectiveTime).sum ( ) + ""
);
Integer flickerTime = Integer.valueOf (
list.stream ( ).mapToLong (RMpPassRateDPO::getFlickerTime).sum ( ) + ""
);
Integer freqTime = Integer.valueOf (
list.stream ( ).mapToLong (RMpPassRateDPO::getFreqTime).sum ( ) + ""
);
Integer vDevTime = Integer.valueOf (
list.stream ( ).mapToLong (RMpPassRateDPO::getvDevTime).sum ( ) + ""
);
RMpPassRateMPO rMpPassRateMPO = new RMpPassRateMPO();
rMpPassRateMPO.setMeasurementPointId (temp);
rMpPassRateMPO.setDataDate (date);
rMpPassRateMPO.setFlickerPassRate (
Double.valueOf (df.format ((float) flickerTime / effectiveTime))
);
rMpPassRateMPO.setFreqPassRate (
Double.valueOf (df.format ((float) freqTime / effectiveTime))
);
rMpPassRateMPO.setvDevPassRate (
Double.valueOf (df.format ((float) vDevTime / effectiveTime))
);
rMpPassRateMPOList.add (rMpPassRateMPO);
});
if(!CollectionUtils.isEmpty (rMpPassRateMPOList)){
rmpPassRateMService.saveOrUpdateBatchByMultiId (rMpPassRateMPOList,500);
}
}
/**
* @Description: 1. 日有效监测时长(min)表1的统计间隔*表2的有效接入分钟数量。
* 2. 频率偏差超标时长(min)表1的统计间隔*表3的频率偏差超标次数。
* 3. 电压偏差超标时长(min)表1的统计间隔*表3的电压偏差超标次数。
* 4. 闪变超标时长(min)2*60*闪变发生次数
* @Param: [lineParam]
* @return: void
* @Author: clam
* @Date: 2023/2/28
*/
private void hanlderDay(LineParam lineParam) {
Date date = DateUtil.parse(lineParam.getDataDate());
List<String> lineIds = lineParam.getLineIds();
Integer type = lineParam.getType();
Integer lineType = lineParam.getLineType();
PmsMonitorParam pmsMonitorParam = new PmsMonitorParam();
pmsMonitorParam.setMonitorIds (lineIds);
List<RMpPassRateDPO> rMpPassRateDPOList = new ArrayList<> ();
List<PmsMonitorDTO> data = monitorClient.getMonitorInfoListByCond (pmsMonitorParam).getData ( );
data.forEach (temp ->{
RMpPassRateDPO rMpPassRateDPO = new RMpPassRateDPO();
Integer statisticalInterval = temp.getStatisticalInterval ( );
String id = temp.getId ( );
QueryWrapper<RMpIntegrityDPO> rMpIntegrityDPOQueryWrapper = new QueryWrapper();
rMpIntegrityDPOQueryWrapper.eq ("measurement_point_id", id).
eq ("data_date", date);
RMpIntegrityDPO rMpIntegrityDPO = rMpIntegrityDPOService.getOne (rMpIntegrityDPOQueryWrapper);
QueryWrapper<RMpPartHarmonicDetailD> rMpPartHarmonicDetailDQueryWrapper = new QueryWrapper();
rMpPartHarmonicDetailDQueryWrapper.eq ("measurement_point_id", id).
eq ("data_date", date);
RMpPartHarmonicDetailD rMpPartHarmonicDetailD = rMpPartHarmonicDetailDService.getOne (rMpPartHarmonicDetailDQueryWrapper);
QueryWrapper<RMpSurplusHarmonicDetailD> rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper();
rMpSurplusHarmonicDetailDQueryWrapper.eq ("measurement_point_id", id).
eq ("data_date", date);
RMpSurplusHarmonicDetailD rMpSurplusHarmonicDetailD = rMpSurplusHarmonicDetailDMapper.selectOne (rMpSurplusHarmonicDetailDQueryWrapper);
rMpPassRateDPO.setMeasurementPointId (id);
rMpPassRateDPO.setDataDate (date);
rMpPassRateDPO.setEffectiveTime (rMpIntegrityDPO.getEffectiveMinuteCount ()*statisticalInterval);
rMpPassRateDPO.setFlickerTime (2*60*rMpSurplusHarmonicDetailD.getFlickerTimes ());
rMpPassRateDPO.setFreqTime (rMpPartHarmonicDetailD.getFreqTimes ()*statisticalInterval);
rMpPassRateDPO.setvDevTime (rMpPartHarmonicDetailD.getVDevTimes ()*statisticalInterval);
rMpPassRateDPOList.add (rMpPassRateDPO);
});
if(!CollectionUtils.isEmpty (rMpPassRateDPOList)){
rmpPassRateDService.saveOrUpdateBatchByMultiId (rMpPassRateDPOList,500);
}
}
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateDPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateDService extends IMppService<RMpPassRateDPO> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateMPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateMService extends IMppService<RMpPassRateMPO> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateQPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateQService extends IMppService<RMpPassRateQPO> {
}

View File

@@ -0,0 +1,17 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpPassRateYPO;
/**
*
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RMpPassRateYService extends IMppService<RMpPassRateYPO> {
}

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.service.mysql.line;
import com.njcn.prepare.harmonic.pojo.param.LineParam;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 10:03【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RmpPassRateService {
void rmpPassRateDHandler(LineParam lineParam);
}

View File

@@ -0,0 +1,162 @@
package com.njcn.prepare.harmonic.pojo.mysql.po.line;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_d")
public class RMpPassRateDPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每日统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 有效监测时长
*/
@TableField(value = "effective_time")
private Integer effectiveTime;
/**
* 频率偏差超标时长
*/
@TableField(value = "freq_time")
private Integer freqTime;
/**
* 电压偏差超标时长
*/
@TableField(value = "v_dev_time")
private Integer vDevTime;
/**
* 闪变超标时长
*/
@TableField(value = "flicker_time")
private Integer flickerTime;
/**
* 获取监测点ID
*
* @return measurement_point_id - 监测点ID
*/
public String getMeasurementPointId() {
return measurementPointId;
}
/**
* 设置监测点ID
*
* @param measurementPointId 监测点ID
*/
public void setMeasurementPointId(String measurementPointId) {
this.measurementPointId = measurementPointId;
}
/**
* 获取生成数据的时间,每日统计一次
*
* @return data_date - 生成数据的时间,每日统计一次
*/
public Date getDataDate() {
return dataDate;
}
/**
* 设置生成数据的时间,每日统计一次
*
* @param dataDate 生成数据的时间,每日统计一次
*/
public void setDataDate(Date dataDate) {
this.dataDate = dataDate;
}
/**
* 获取有效监测时长
*
* @return effective_time - 有效监测时长
*/
public Integer getEffectiveTime() {
return effectiveTime;
}
/**
* 设置有效监测时长
*
* @param effectiveTime 有效监测时长
*/
public void setEffectiveTime(Integer effectiveTime) {
this.effectiveTime = effectiveTime;
}
/**
* 获取频率偏差超标时长
*
* @return freq_time - 频率偏差超标时长
*/
public Integer getFreqTime() {
return freqTime;
}
/**
* 设置频率偏差超标时长
*
* @param freqTime 频率偏差超标时长
*/
public void setFreqTime(Integer freqTime) {
this.freqTime = freqTime;
}
/**
* 获取电压偏差超标时长
*
* @return v_dev_time - 电压偏差超标时长
*/
public Integer getvDevTime() {
return vDevTime;
}
/**
* 设置电压偏差超标时长
*
* @param vDevTime 电压偏差超标时长
*/
public void setvDevTime(Integer vDevTime) {
this.vDevTime = vDevTime;
}
/**
* 获取闪变超标时长
*
* @return flicker_time - 闪变超标时长
*/
public Integer getFlickerTime() {
return flickerTime;
}
/**
* 设置闪变超标时长
*
* @param flickerTime 闪变超标时长
*/
public void setFlickerTime(Integer flickerTime) {
this.flickerTime = flickerTime;
}
}

View File

@@ -0,0 +1,138 @@
package com.njcn.prepare.harmonic.pojo.mysql.po.line;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:39【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_m")
public class RMpPassRateMPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每月统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 频率偏差合格率
*/
@TableField(value = "freq_pass_rate")
private Double freqPassRate;
/**
* 电压偏差合格率
*/
@TableField(value = "v_dev_pass_rate")
private Double vDevPassRate;
/**
* 闪变合格率
*/
@TableField(value = "flicker_pass_rate")
private Double flickerPassRate;
/**
* 获取监测点ID
*
* @return measurement_point_id - 监测点ID
*/
public String getMeasurementPointId() {
return measurementPointId;
}
/**
* 设置监测点ID
*
* @param measurementPointId 监测点ID
*/
public void setMeasurementPointId(String measurementPointId) {
this.measurementPointId = measurementPointId;
}
/**
* 获取生成数据的时间,每月统计一次
*
* @return data_date - 生成数据的时间,每月统计一次
*/
public Date getDataDate() {
return dataDate;
}
/**
* 设置生成数据的时间,每月统计一次
*
* @param dataDate 生成数据的时间,每月统计一次
*/
public void setDataDate(Date dataDate) {
this.dataDate = dataDate;
}
/**
* 获取频率偏差合格率
*
* @return freq_pass_rate - 频率偏差合格率
*/
public Double getFreqPassRate() {
return freqPassRate;
}
/**
* 设置频率偏差合格率
*
* @param freqPassRate 频率偏差合格率
*/
public void setFreqPassRate(Double freqPassRate) {
this.freqPassRate = freqPassRate;
}
/**
* 获取电压偏差合格率
*
* @return v_dev_pass_rate - 电压偏差合格率
*/
public Double getvDevPassRate() {
return vDevPassRate;
}
/**
* 设置电压偏差合格率
*
* @param vDevPassRate 电压偏差合格率
*/
public void setvDevPassRate(Double vDevPassRate) {
this.vDevPassRate = vDevPassRate;
}
/**
* 获取闪变合格率
*
* @return flicker_pass_rate - 闪变合格率
*/
public Double getFlickerPassRate() {
return flickerPassRate;
}
/**
* 设置闪变合格率
*
* @param flickerPassRate 闪变合格率
*/
public void setFlickerPassRate(Double flickerPassRate) {
this.flickerPassRate = flickerPassRate;
}
}

View File

@@ -0,0 +1,138 @@
package com.njcn.prepare.harmonic.pojo.mysql.po.line;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:38【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_q")
public class RMpPassRateQPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每季统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 频率偏差合格率
*/
@TableField(value = "freq_pass_rate")
private Double freqPassRate;
/**
* 电压偏差合格率
*/
@TableField(value = "v_dev_pass_rate")
private Double vDevPassRate;
/**
* 闪变合格率
*/
@TableField(value = "flicker_pass_rate")
private Double flickerPassRate;
/**
* 获取监测点ID
*
* @return measurement_point_id - 监测点ID
*/
public String getMeasurementPointId() {
return measurementPointId;
}
/**
* 设置监测点ID
*
* @param measurementPointId 监测点ID
*/
public void setMeasurementPointId(String measurementPointId) {
this.measurementPointId = measurementPointId;
}
/**
* 获取生成数据的时间,每季统计一次
*
* @return data_date - 生成数据的时间,每季统计一次
*/
public Date getDataDate() {
return dataDate;
}
/**
* 设置生成数据的时间,每季统计一次
*
* @param dataDate 生成数据的时间,每季统计一次
*/
public void setDataDate(Date dataDate) {
this.dataDate = dataDate;
}
/**
* 获取频率偏差合格率
*
* @return freq_pass_rate - 频率偏差合格率
*/
public Double getFreqPassRate() {
return freqPassRate;
}
/**
* 设置频率偏差合格率
*
* @param freqPassRate 频率偏差合格率
*/
public void setFreqPassRate(Double freqPassRate) {
this.freqPassRate = freqPassRate;
}
/**
* 获取电压偏差合格率
*
* @return v_dev_pass_rate - 电压偏差合格率
*/
public Double getvDevPassRate() {
return vDevPassRate;
}
/**
* 设置电压偏差合格率
*
* @param vDevPassRate 电压偏差合格率
*/
public void setvDevPassRate(Double vDevPassRate) {
this.vDevPassRate = vDevPassRate;
}
/**
* 获取闪变合格率
*
* @return flicker_pass_rate - 闪变合格率
*/
public Double getFlickerPassRate() {
return flickerPassRate;
}
/**
* 设置闪变合格率
*
* @param flickerPassRate 闪变合格率
*/
public void setFlickerPassRate(Double flickerPassRate) {
this.flickerPassRate = flickerPassRate;
}
}

View File

@@ -0,0 +1,138 @@
package com.njcn.prepare.harmonic.pojo.mysql.po.line;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import java.util.Date;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2023/2/28 15:36【需求编号】
*
* @author clam
* @version V1.0.0
*/
@TableName(value = "r_mp_pass_rate_y")
public class RMpPassRateYPO {
/**
* 监测点ID
*/
@MppMultiId(value = "measurement_point_id")
private String measurementPointId;
/**
* 生成数据的时间,每年统计一次
*/
@MppMultiId(value = "data_date")
private Date dataDate;
/**
* 频率偏差合格率
*/
@TableField(value = "freq_pass_rate")
private Double freqPassRate;
/**
* 电压偏差合格率
*/
@TableField(value = "v_dev_pass_rate")
private Double vDevPassRate;
/**
* 闪变合格率
*/
@TableField(value = "flicker_pass_rate")
private Double flickerPassRate;
/**
* 获取监测点ID
*
* @return measurement_point_id - 监测点ID
*/
public String getMeasurementPointId() {
return measurementPointId;
}
/**
* 设置监测点ID
*
* @param measurementPointId 监测点ID
*/
public void setMeasurementPointId(String measurementPointId) {
this.measurementPointId = measurementPointId;
}
/**
* 获取生成数据的时间,每年统计一次
*
* @return data_date - 生成数据的时间,每年统计一次
*/
public Date getDataDate() {
return dataDate;
}
/**
* 设置生成数据的时间,每年统计一次
*
* @param dataDate 生成数据的时间,每年统计一次
*/
public void setDataDate(Date dataDate) {
this.dataDate = dataDate;
}
/**
* 获取频率偏差合格率
*
* @return freq_pass_rate - 频率偏差合格率
*/
public Double getFreqPassRate() {
return freqPassRate;
}
/**
* 设置频率偏差合格率
*
* @param freqPassRate 频率偏差合格率
*/
public void setFreqPassRate(Double freqPassRate) {
this.freqPassRate = freqPassRate;
}
/**
* 获取电压偏差合格率
*
* @return v_dev_pass_rate - 电压偏差合格率
*/
public Double getvDevPassRate() {
return vDevPassRate;
}
/**
* 设置电压偏差合格率
*
* @param vDevPassRate 电压偏差合格率
*/
public void setvDevPassRate(Double vDevPassRate) {
this.vDevPassRate = vDevPassRate;
}
/**
* 获取闪变合格率
*
* @return flicker_pass_rate - 闪变合格率
*/
public Double getFlickerPassRate() {
return flickerPassRate;
}
/**
* 设置闪变合格率
*
* @param flickerPassRate 闪变合格率
*/
public void setFlickerPassRate(Double flickerPassRate) {
this.flickerPassRate = flickerPassRate;
}
}

View File

@@ -177,4 +177,12 @@ public class RStatElectricQualityProblemLogVO {
public void setType(String type) {
this.type = type;
}
public String getOrgName() {
return orgName;
}
public void setOrgName(String orgName) {
this.orgName = orgName;
}
}

View File

@@ -2,6 +2,11 @@ package com.njcn.process.mapper;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.process.pojo.po.RStatElectricQualityProblemLogPO;
import com.njcn.process.pojo.vo.RStatElectricQualityProblemLogVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
*
@@ -13,4 +18,20 @@ import com.njcn.process.pojo.po.RStatElectricQualityProblemLogPO;
* @version V1.0.0
*/
public interface RStatElectricQualityProblemLogMapper extends MppBaseMapper<RStatElectricQualityProblemLogPO> {
@Select ("SELECT\n" +
"\tb.power_quality_problem_no,\n" +
"\ta.org_no org_name,\n" +
"b.data_date,\n" +
"b.checker,\n" +
"b.description,\n" +
"b.report_process,\n" +
"b.report_process_content,\n" +
"b.type\n" +
"FROM\n" +
"\tr_stat_electric_quality_problem_flow a,\n" +
"\tr_stat_electric_quality_problem_log b\n" +
"WHERE\n" +
"\ta.power_quality_problem_no = b.power_quality_problem_no\n" +
"AND b.power_quality_problem_no = #{powerQualityProblemNo}")
List<RStatElectricQualityProblemLogVO> selectByProblemNo(@Param ("powerQualityProblemNo") String powerQualityProblemNo);
}

View File

@@ -27,9 +27,11 @@ import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
import com.njcn.system.pojo.po.DictData;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
@@ -37,7 +39,9 @@ import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 电能质量问题实现类
@@ -385,6 +389,7 @@ public class IssuesServiceImpl implements IssuesService {
* 原因分析
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public void reasonAnalysis(ProcessParam processParam) {
LocalDateTime local = LocalDateTimeUtil.now();
RMpElectricQualityProblemFlowDetails details = new RMpElectricQualityProblemFlowDetails();
@@ -420,6 +425,7 @@ public class IssuesServiceImpl implements IssuesService {
* 计划整改措施、实际采取措施、成效分析
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public void process(ProcessParam processParam, String code) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> issuesQuery = new LambdaQueryWrapper<>();
issuesQuery.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,processParam.getPowerQualityProblemNo());
@@ -460,6 +466,7 @@ public class IssuesServiceImpl implements IssuesService {
* 问题归档
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public void archive(String powerQualityProblemNo) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> query = new LambdaQueryWrapper<>();
query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
@@ -510,6 +517,7 @@ public class IssuesServiceImpl implements IssuesService {
* 删除问题
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public void deleteIssues(String powerQualityProblemNo) {
LambdaQueryWrapper<RStatElectricQualityProblemFlow> query = new LambdaQueryWrapper<>();
query.eq(RStatElectricQualityProblemFlow::getPowerQualityProblemNo,powerQualityProblemNo);
@@ -574,6 +582,7 @@ public class IssuesServiceImpl implements IssuesService {
* @Date: 2023/2/22
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean checkPowerQuality(ElectricityQualityCheckParam electricityQualityCheckParam) {
boolean result = true;
RStatElectricQualityProblemLogPO rStatElectricQualityProblemLogPO = new RStatElectricQualityProblemLogPO();
@@ -646,7 +655,17 @@ public class IssuesServiceImpl implements IssuesService {
*/
@Override
public List<RStatElectricQualityProblemLogVO> queryCheckTrack(String powerQualityProblemNo) {
return null;
//部门处理根据部门code取名称
List<PvTerminalTreeVO> dept = deptFeignClient.allDeptList().getData();
Map<String, String> pvTerminalTreeVOMap = dept.stream().
collect(Collectors.
toMap(PvTerminalTreeVO::getId,
PvTerminalTreeVO::getName));
List<RStatElectricQualityProblemLogVO> rStatElectricQualityProblemLogVOList = rStatElectricQualityProblemLogMapper.selectByProblemNo(powerQualityProblemNo);
rStatElectricQualityProblemLogVOList.stream ().forEach (temp->temp.setOrgName (pvTerminalTreeVOMap.get (temp.getOrgName ())));
return rStatElectricQualityProblemLogVOList;
}
}

View File

@@ -28,6 +28,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
@@ -134,6 +135,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
* @return
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public boolean uploadLoadTypeUserI(LoadTypeUserIUploadParam loadTypeUserIUploadParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
@@ -166,6 +168,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
* @return
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public boolean linkUser(LoadTypeUserAssociateParam loadTypeUserAssociateParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
//填入数据修改
@@ -221,6 +224,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
* @return
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public boolean uploadLoadTypeUserA(LoadTypeUserAUploadParam loadTypeUserAUploadParam) {
RLoadTypeUserManage rLoadTypeUserManage = new RLoadTypeUserManage();
@@ -353,6 +357,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
* @Date: 2023/2/22
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean checkLoadTypeUserI(LoadTypeUserCheckParam loadTypeUserCheckParam) {
boolean result = true;
UpdateWrapper<RLoadTypeUserManage> updateWrapper = new UpdateWrapper ();
@@ -378,6 +383,7 @@ public class LoadTypeUserManageServiceImpl implements LoadTypeUserManageService
* @Date: 2023/2/22
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean checkLoadTypeUserA(LoadTypeUserCheckParam loadTypeUserCheckParam) {
boolean result = true;
UpdateWrapper<RLoadTypeUserManage> updateWrapper = new UpdateWrapper ();

View File

@@ -196,6 +196,7 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl<RGeneralSurv
* @Date: 2022/11/18
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public boolean surveyResultUpload(SurveyResultUploadParam surveyResultUploadParam) {
boolean result = true;
RGeneralSurveyPlanPO rGeneralSurveyPlanPO = new RGeneralSurveyPlanPO();
@@ -340,6 +341,7 @@ public class RGeneralSurveyPlanPOServiceImpl extends MppServiceImpl<RGeneralSurv
* @Date: 2023/2/22
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean checkPlanAudit(RGeneralSurveyPlanChcekParm rGeneralSurveyPlanChcekParm) {
boolean result = true;
UpdateWrapper<RGeneralSurveyPlanPO> updateWrapper = new UpdateWrapper();

View File

@@ -24,6 +24,7 @@ import com.njcn.user.api.DeptFeignClient;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.time.ZoneId;
@@ -116,6 +117,7 @@ public class RStatDistributionProblemServiceImpl extends MppServiceImpl<RStatDis
* @Date: 2023/2/15
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean createProblem(List<OverLimitFlagDTO> overLimitFlagDTOList) {
List<RStatDistributionProblemPO> rStatDistributionProblemPOList = new ArrayList<> ( );
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMdd");
@@ -185,6 +187,7 @@ public class RStatDistributionProblemServiceImpl extends MppServiceImpl<RStatDis
* @Date: 2023/2/17
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean checkProblem(RStatDistributionProblemVO rStatDistributionProblemVO) {
Boolean flag = true;
RStatDistributionProblemPO rStatDistributionProblemPO = new RStatDistributionProblemPO();
@@ -262,6 +265,7 @@ public class RStatDistributionProblemServiceImpl extends MppServiceImpl<RStatDis
* @Date: 2023/2/17
*/
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean updateWorkOrderStatus(RStatWorkOrderDetailVO rStatWorkOrderDetailVO) {
Boolean flag= true;
RStatWorkOrderDetailPO rStatWorkOrderDetailPO = new RStatWorkOrderDetailPO();