Merge remote-tracking branch 'origin/main'

This commit is contained in:
wr
2025-11-11 15:12:33 +08:00
162 changed files with 1447 additions and 1287 deletions

View File

@@ -23,6 +23,11 @@
<artifactId>harmonic-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>harmonic-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.njcn</groupId>
<artifactId>common-web</artifactId>
@@ -90,7 +95,7 @@
<version>3.0.10</version>
</dependency>
<dependency>
<groupId>org.joda.time</groupId>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.9</version>
</dependency>

View File

@@ -12,12 +12,10 @@ import com.njcn.harmonic.pojo.param.HistoryHarmParam;
import com.njcn.harmonic.pojo.param.HistoryParam;
import com.njcn.harmonic.pojo.param.NormHistoryParam;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.AssessEvaluation;
import com.njcn.harmonic.pojo.vo.HistoryDataResultVO;
import com.njcn.harmonic.pojo.vo.StatHarmonicOrgVO;
import com.njcn.harmonic.service.HistoryResultService;
import com.njcn.harmonic.service.IRStatLimitRateDService;
import com.njcn.harmonic.service.IRStatLimitTargetDService;
import com.njcn.harmonic.service.OracleResultService;
import com.njcn.influx.pojo.dto.HarmHistoryDataDTO;
@@ -51,7 +49,6 @@ public class HistoryResultController extends BaseController {
private final HistoryResultService historyResultService;
private final IRStatLimitTargetDService limitTargetDService;
private final IRStatLimitRateDService limitRateDService;
private final OracleResultService oracleResultService;
@Value("${History.DataSource:0}")
@@ -64,6 +61,7 @@ public class HistoryResultController extends BaseController {
public HttpResult<List<HistoryDataResultVO>> getHistoryResult(@RequestBody @Validated HistoryParam historyParam) {
String methodDescribe = getMethodDescribe("getHistoryResult");
List<HistoryDataResultVO> list;
//针对河北现场特殊处理pmswifi_开头监测点为无线装置需要查询influxdb,其他测点查询oracle
if (HistoryDataSource == 1 && !historyParam.getLineId()[0].contains("pmswifi_")) {
list = oracleResultService.getHistoryResult(historyParam);
} else {
@@ -113,21 +111,6 @@ public class HistoryResultController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, linesTarget, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getLinesRate")
@ApiOperation("获取越线监测点越线次数")
@ApiImplicitParam(name = "param", value = "获取越线监测点越线次数请求参数", required = true)
public HttpResult<List<RStatLimitRateDPO>> getLinesRate(@RequestBody StatSubstationBizBaseParam param) {
String methodDescribe = getMethodDescribe("getLinesTarget");
List<RStatLimitRateDPO> list = limitRateDService.list(new LambdaQueryWrapper<RStatLimitRateDPO>()
.in(RStatLimitRateDPO::getLineId, param.getIds())
.eq(RStatLimitRateDPO::getPhasicType, "T")
.ge(StrUtil.isNotBlank(param.getStartTime()), RStatLimitRateDPO::getTime, param.getStartTime())
.le(StrUtil.isNotBlank(param.getEndTime()), RStatLimitRateDPO::getTime, param.getEndTime())
);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getHarmIAndHarmVData")
@ApiOperation("评估结果获取谐波电压和谐波电流含有率、三项不平横度和负序电流")

View File

@@ -8,7 +8,6 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pms.pojo.param.pwUser.PwUserMonitorParam;
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.vo.MonitorLimitRateVO;
import com.njcn.harmonic.pojo.vo.PwLimitDataVO;
@@ -16,8 +15,6 @@ import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
@@ -40,16 +37,6 @@ public class RStatLimitController extends BaseController {
private final RStatLimitService rStatLimitService;
@PostMapping("/monitorIdsGetLimitRateInfo")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("获取指定日期超标监测点详细信息")
public HttpResult<List<RStatLimitRateDPO>> monitorIdsGetLimitRateInfo(@RequestBody RStatLimitQueryParam rStatLimitQueryParam) {
String methodDescribe = getMethodDescribe("monitorIdsGetLimitRateInfo");
List<RStatLimitRateDPO> result = rStatLimitService.monitorIdsGetLimitRateInfo(rStatLimitQueryParam.getDate(),rStatLimitQueryParam.getIds());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@PostMapping("/monitorIdsGetLimitTargetInfo")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("获取指定日期超标监测点详细信息")
@@ -68,20 +55,7 @@ public class RStatLimitController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@PostMapping("/getOverData")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@ApiOperation("查询单监测点超标数据")
@ApiImplicitParams({
@ApiImplicitParam(name = "lineId", value = "监测点id"),
@ApiImplicitParam(name = "startTime", value = "开始时间"),
@ApiImplicitParam(name = "endTime", value = "结束时间"),
@ApiImplicitParam(name = "type", value = "指标"),
})
public HttpResult<List<RStatLimitRateDPO>> getOverData(@RequestParam("lineId") String lineId, @RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime, @RequestParam("type") Integer type) {
String methodDescribe = getMethodDescribe("getOverData");
List<RStatLimitRateDPO> result = rStatLimitService.getOverData(lineId,startTime,endTime,type);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@PostMapping("/pwMonitorLimitData")
@OperateInfo(info = LogEnum.BUSINESS_COMMON)

View File

@@ -1,76 +0,0 @@
package com.njcn.harmonic.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 合格率统计日表(越限次数) Mapper 接口
* </p>
*
* @author wr
* @since 2023-04-03
*/
public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {
List<RStatLimitRateDVO> getSumPassRate(
@Param("ids") List<String> lineIndexes,
@Param("statTime") String searchBeginTime,
@Param("endTime") String searchEndTime);
List<MonitorOverLimitVO> getSumLimitRateByLineIndexes(
@Param("ids") List<String> lineIndexes,
@Param("statTime") String searchBeginTime,
@Param("endTime") String searchEndTime);
Page<MonitorOverLimitVO> getSumLimitRatePage(Page<RStatLimitRateDPO> p,
@Param("ids") List<String> lineIndexes,
@Param("statTime") String searchBeginTime,
@Param("endTime") String searchEndTime);
List<MonitorOverLimitVO.DataVO> getPercentages(
@Param("ids") List<String> lineIndexes,
@Param("statTime") String searchBeginTime,
@Param("endTime") String searchEndTime);
/**
* 数据查询
* @param list
* @param startTime
* @param endTime
* @return
*/
List<RStatLimitRateDPO> getSumPassRateList( @Param("ids") List<String> list,
@Param("statTime") String startTime,
@Param("endTime") String endTime);
/**
* 获取综合评估下的指标完整率
* @param list
* @param startTime
* @param endTime
* @return
*/
List<RStatLimitRateDPO> getAssessTargetRate( @Param("ids") List<String> list,
@Param("statTime") String startTime,
@Param("endTime") String endTime);
/**
* 获取监测点的超标次数
* @param list
* @param startTime
* @param endTime
* @return
*/
List<RStatLimitRateDPO> getAllOverTimes( @Param("ids") List<String> list,
@Param("statTime") String startTime,
@Param("endTime") String endTime);
}

View File

@@ -1,475 +0,0 @@
<?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.RStatLimitRateDMapper">
<select id="getSumPassRate" resultType="com.njcn.harmonic.pojo.vo.RStatLimitRateDVO">
SELECT
SUM( all_time ) AS alltime,
SUM( freq_dev_overtime ) AS frequency,
SUM( ubalance_overtime ) AS uBalance,
SUM( i_neg_overtime ) AS iNeg,
SUM( iharm_13_overtime ) AS harmElec,
SUM( uharm_4_overtime ) AS harmVoltage,
SUM( flicker_overtime ) AS flicker,
SUM( flicker_all_time ) AS allFlicker,
SUM( voltage_dev_overtime ) AS voltageDeviation,
SUM( inuharm_9_overtime ) AS inUharm
FROM
r_stat_limit_rate_d
<where>
<if test=" ids != null and ids.size > 0">
AND my_index IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test=" statTime != null and statTime !=''">
AND time_id >= #{statTime}
</if>
<if test="endTime != null and endTime != ''">
AND time_id &lt;= #{endTime}
</if>
</where>
</select>
<select id="getSumLimitRateByLineIndexes" resultType="com.njcn.harmonic.pojo.vo.MonitorOverLimitVO">
SELECT
my_index AS id,
SUM(all_time) AS overDay,
SUM(freq_dev_overtime) AS freqOverDay,
SUM(voltage_dev_overtime ) AS volDevOverDay,
SUM(flicker_overtime) AS flickerOverDay,
SUM(i_neg_overtime) AS negativeOverDay,
SUM(ubalance_overtime) AS threeUnbalance,
SUM(uaberrance_overtime) AS volDisOverDay,
SUM(uharm_3_overtime) AS overVolThreeTimes,
SUM(uharm_5_overtime) AS overVolFiveTimes,
SUM(uharm_7_overtime) AS overVolSevenTimes,
SUM(uharm_11_overtime) AS overVolElevenTimes,
SUM(uharm_13_overtime) AS overVolThirteenTimes,
SUM(uharm_23_overtime) AS overVolTwentyThreeTimes,
SUM(uharm_25_overtime) AS overVolTwentyFiveTimes,
SUM(uharm_2_overtime)
+ SUM(uharm_4_overtime)
+ SUM(uharm_6_overtime)
+ SUM(uharm_8_overtime)
+ SUM(uharm_9_overtime)
+ SUM(uharm_10_overtime)
+ SUM(uharm_12_overtime)
+ SUM(uharm_14_overtime)
+ SUM(uharm_15_overtime)
+ SUM(uharm_16_overtime)
+ SUM(uharm_17_overtime)
+ SUM(uharm_18_overtime)
+ SUM(uharm_19_overtime)
+ SUM(uharm_20_overtime)
+ SUM(uharm_21_overtime)
+ SUM(uharm_22_overtime)
+ SUM(uharm_24_overtime) AS overVolOtherTimes,
SUM(iharm_3_overtime) AS overCurThreeTimes,
SUM(iharm_5_overtime) AS overCurFiveTimes,
SUM(iharm_7_overtime) AS overCurSevenTimes,
SUM(iharm_11_overtime) AS overCurElevenTimes,
SUM(iharm_13_overtime) AS overCurThirteenTimes,
SUM(iharm_23_overtime) AS overCurTwentyThreeTimes,
SUM(iharm_25_overtime) AS overCurTwentyFiveTimes,
SUM(iharm_2_overtime)
+ SUM(iharm_4_overtime)
+ SUM(iharm_6_overtime)
+ SUM(iharm_8_overtime)
+ SUM(iharm_9_overtime)
+ SUM(iharm_10_overtime)
+ SUM(iharm_12_overtime)
+ SUM(iharm_14_overtime)
+ SUM(iharm_15_overtime)
+ SUM(iharm_16_overtime)
+ SUM(iharm_17_overtime)
+ SUM(iharm_18_overtime)
+ SUM(iharm_19_overtime)
+ SUM(iharm_20_overtime)
+ SUM(iharm_21_overtime)
+ SUM(iharm_22_overtime)
+ SUM(iharm_24_overtime) AS overCurOtherTimes
FROM
r_stat_limit_rate_d
<where>
<if test=" ids != null and ids.size > 0">
AND my_index IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test=" statTime != null and statTime !=''">
AND time_id >= #{statTime}
</if>
<if test="endTime != null and endTime != ''">
AND time_id &lt;= #{endTime}
</if>
</where>
GROUP BY my_index
</select>
<select id="getSumLimitRatePage" resultType="com.njcn.harmonic.pojo.vo.MonitorOverLimitVO">
SELECT
my_index AS id,
SUM(all_time) AS overDay,
SUM(freq_dev_overtime) AS freqOverDay,
SUM(voltage_dev_overtime ) AS volDevOverDay,
SUM(flicker_overtime) AS flickerOverDay,
SUM(i_neg_overtime) AS negativeOverDay,
SUM(ubalance_overtime) AS threeUnbalance,
SUM(uaberrance_overtime) AS volDisOverDay,
SUM(uharm_3_overtime) AS overVolThreeTimes,
SUM(uharm_5_overtime) AS overVolFiveTimes,
SUM(uharm_7_overtime) AS overVolSevenTimes,
SUM(uharm_11_overtime) AS overVolElevenTimes,
SUM(uharm_13_overtime) AS overVolThirteenTimes,
SUM(uharm_23_overtime) AS overVolTwentyThreeTimes,
SUM(uharm_25_overtime) AS overVolTwentyFiveTimes,
SUM(uharm_2_overtime)
+ SUM(uharm_4_overtime)
+ SUM(uharm_6_overtime)
+ SUM(uharm_8_overtime)
+ SUM(uharm_9_overtime)
+ SUM(uharm_10_overtime)
+ SUM(uharm_12_overtime)
+ SUM(uharm_14_overtime)
+ SUM(uharm_15_overtime)
+ SUM(uharm_16_overtime)
+ SUM(uharm_17_overtime)
+ SUM(uharm_18_overtime)
+ SUM(uharm_19_overtime)
+ SUM(uharm_20_overtime)
+ SUM(uharm_21_overtime)
+ SUM(uharm_22_overtime)
+ SUM(uharm_24_overtime) AS overVolOtherTimes,
SUM(iharm_3_overtime) AS overCurThreeTimes,
SUM(iharm_5_overtime) AS overCurFiveTimes,
SUM(iharm_7_overtime) AS overCurSevenTimes,
SUM(iharm_11_overtime) AS overCurElevenTimes,
SUM(iharm_13_overtime) AS overCurThirteenTimes,
SUM(iharm_23_overtime) AS overCurTwentyThreeTimes,
SUM(iharm_25_overtime) AS overCurTwentyFiveTimes,
SUM(iharm_2_overtime)
+ SUM(iharm_4_overtime)
+ SUM(iharm_6_overtime)
+ SUM(iharm_8_overtime)
+ SUM(iharm_9_overtime)
+ SUM(iharm_10_overtime)
+ SUM(iharm_12_overtime)
+ SUM(iharm_14_overtime)
+ SUM(iharm_15_overtime)
+ SUM(iharm_16_overtime)
+ SUM(iharm_17_overtime)
+ SUM(iharm_18_overtime)
+ SUM(iharm_19_overtime)
+ SUM(iharm_20_overtime)
+ SUM(iharm_21_overtime)
+ SUM(iharm_22_overtime)
+ SUM(iharm_24_overtime) AS overCurOtherTimes
FROM
r_stat_limit_target_d
<where>
<if test=" ids != null and ids.size > 0">
AND my_index IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test=" statTime != null and statTime !=''">
AND time_id >= #{statTime}
</if>
<if test="endTime != null and endTime != ''">
AND time_id &lt;= #{endTime}
</if>
</where>
GROUP BY my_index
</select>
<select id="getPercentages" resultType="com.njcn.harmonic.pojo.vo.MonitorOverLimitVO$DataVO">
SELECT
<choose>
<when test="_databaseId == 'mysql'">
DATE_FORMAT(time_id, '%Y-%m-%d')
</when>
<otherwise>
TO_CHAR(time_id, 'YYYY-MM-DD')
</otherwise>
</choose> AS time,
<choose>
<when test="_databaseId == 'mysql'">
IFNULL(ROUND(
</when>
<otherwise>
NVL(TRUNC(
</otherwise>
</choose>
CASE
WHEN SUM(all_time) = 0 THEN 0
ELSE (1 - (
-- 各类指标求和(保持原有逻辑不变)
SUM(flicker_overtime) + SUM(flicker_all_time) + SUM(freq_dev_overtime) +
SUM(voltage_dev_overtime) + SUM(ubalance_overtime) + SUM(uaberrance_overtime) +
SUM(i_neg_overtime) +
-- 电压谐波 (2-25)
SUM(uharm_2_overtime) + SUM(uharm_3_overtime) + SUM(uharm_4_overtime) + SUM(uharm_5_overtime) +
SUM(uharm_6_overtime) + SUM(uharm_7_overtime) + SUM(uharm_8_overtime) + SUM(uharm_9_overtime) +
SUM(uharm_10_overtime) + SUM(uharm_11_overtime) + SUM(uharm_12_overtime) + SUM(uharm_13_overtime) +
SUM(uharm_14_overtime) + SUM(uharm_15_overtime) + SUM(uharm_16_overtime) + SUM(uharm_17_overtime) +
SUM(uharm_18_overtime) + SUM(uharm_19_overtime) + SUM(uharm_20_overtime) + SUM(uharm_21_overtime) +
SUM(uharm_22_overtime) + SUM(uharm_23_overtime) + SUM(uharm_24_overtime) + SUM(uharm_25_overtime) +
-- 电流谐波 (2-25)
SUM(iharm_2_overtime) + SUM(iharm_3_overtime) + SUM(iharm_4_overtime) + SUM(iharm_5_overtime) +
SUM(iharm_6_overtime) + SUM(iharm_7_overtime) + SUM(iharm_8_overtime) + SUM(iharm_9_overtime) +
SUM(iharm_10_overtime) + SUM(iharm_11_overtime) + SUM(iharm_12_overtime) + SUM(iharm_13_overtime) +
SUM(iharm_14_overtime) + SUM(iharm_15_overtime) + SUM(iharm_16_overtime) + SUM(iharm_17_overtime) +
SUM(iharm_18_overtime) + SUM(iharm_19_overtime) + SUM(iharm_20_overtime) + SUM(iharm_21_overtime) +
SUM(iharm_22_overtime) + SUM(iharm_23_overtime) + SUM(iharm_24_overtime) + SUM(iharm_25_overtime) +
-- 间谐波 (1-16)
SUM(inuharm_1_overtime) + SUM(inuharm_2_overtime) + SUM(inuharm_3_overtime) + SUM(inuharm_4_overtime) +
SUM(inuharm_5_overtime) + SUM(inuharm_6_overtime) + SUM(inuharm_7_overtime) + SUM(inuharm_8_overtime) +
SUM(inuharm_9_overtime) + SUM(inuharm_10_overtime) + SUM(inuharm_11_overtime) + SUM(inuharm_12_overtime) +
SUM(inuharm_13_overtime) + SUM(inuharm_14_overtime) + SUM(inuharm_15_overtime) + SUM(inuharm_16_overtime)
) / NULLIF(SUM(all_time) * 71, 0)) * 100
END, 2), 0) AS data
FROM
r_stat_limit_rate_d
<where>
phasic_type = 'T'
<if test="ids != null and ids.size > 0">
AND my_index IN
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="statTime != null and statTime != ''">
AND time_id >= #{statTime}
</if>
<if test="endTime != null and endTime != ''">
AND time_id &lt;= #{endTime}
</if>
</where>
GROUP BY
<choose>
<when test="_databaseId == 'mysql'">
DATE_FORMAT(time_id, '%Y-%m-%d')
</when>
<otherwise>
TO_CHAR(time_id, 'YYYY-MM-DD')
</otherwise>
</choose>
ORDER BY time
</select>
<select id="getSumPassRateList" resultType="com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO">
SELECT
my_index as lineId ,
sum(all_time) as all_time,
sum(flicker_all_time) as flicker_all_time,
sum(freq_dev_overtime) as freq_dev_overtime,
sum(voltage_dev_overtime) as voltage_dev_overtime,
sum(ubalance_overtime) as ubalance_overtime,
sum(flicker_overtime) as flicker_overtime,
sum(uaberrance_overtime) as uaberrance_overtime,
sum(uharm_2_overtime) as uharm_2_overtime,
sum(uharm_3_overtime) as uharm_3_overtime,
sum(uharm_4_overtime) as uharm_4_overtime,
sum(uharm_5_overtime) as uharm_5_overtime,
sum(uharm_6_overtime) as uharm_6_overtime,
sum(uharm_7_overtime) as uharm_7_overtime,
sum(uharm_8_overtime) as uharm_8_overtime,
sum(uharm_9_overtime) as uharm_9_overtime,
sum(uharm_10_overtime) as uharm_10_overtime,
sum(uharm_11_overtime) as uharm_11_overtime,
sum(uharm_12_overtime) as uharm_12_overtime,
sum(uharm_13_overtime) as uharm_13_overtime,
sum(uharm_14_overtime) as uharm_14_overtime,
sum(uharm_15_overtime) as uharm_15_overtime,
sum(uharm_16_overtime) as uharm_16_overtime,
sum(uharm_17_overtime) as uharm_17_overtime,
sum(uharm_18_overtime) as uharm_18_overtime,
sum(uharm_19_overtime) as uharm_19_overtime,
sum(uharm_20_overtime) as uharm_20_overtime,
sum(uharm_21_overtime) as uharm_21_overtime,
sum(uharm_22_overtime) as uharm_22_overtime,
sum(uharm_23_overtime) as uharm_23_overtime,
sum(uharm_24_overtime) as uharm_24_overtime,
sum(uharm_25_overtime) as uharm_25_overtime,
sum(iharm_2_overtime) as iharm_2_overtime,
sum(iharm_3_overtime) as iharm_3_overtime,
sum(iharm_4_overtime) as iharm_4_overtime,
sum(iharm_5_overtime) as iharm_5_overtime,
sum(iharm_6_overtime) as iharm_6_overtime,
sum(iharm_7_overtime) as iharm_7_overtime,
sum(iharm_8_overtime) as iharm_8_overtime,
sum(iharm_9_overtime) as iharm_9_overtime,
sum(iharm_10_overtime) as iharm_10_overtime,
sum(iharm_11_overtime) as iharm_11_overtime,
sum(iharm_12_overtime) as iharm_12_overtime,
sum(iharm_13_overtime) as iharm_13_overtime,
sum(iharm_14_overtime) as iharm_14_overtime,
sum(iharm_15_overtime) as iharm_15_overtime,
sum(iharm_16_overtime) as iharm_16_overtime,
sum(iharm_17_overtime) as iharm_17_overtime,
sum(iharm_18_overtime) as iharm_18_overtime,
sum(iharm_19_overtime) as iharm_19_overtime,
sum(iharm_20_overtime) as iharm_20_overtime,
sum(iharm_21_overtime) as iharm_21_overtime,
sum(iharm_22_overtime) as iharm_22_overtime,
sum(iharm_23_overtime) as iharm_23_overtime,
sum(iharm_24_overtime) as iharm_24_overtime,
sum(iharm_25_overtime) as iharm_25_overtime,
sum(inuharm_1_overtime) as inuharm_1_overtime,
sum(inuharm_2_overtime) as inuharm_2_overtime,
sum(inuharm_3_overtime) as inuharm_3_overtime,
sum(inuharm_4_overtime) as inuharm_4_overtime,
sum(inuharm_5_overtime) as inuharm_5_overtime,
sum(inuharm_6_overtime) as inuharm_6_overtime,
sum(inuharm_7_overtime) as inuharm_7_overtime,
sum(inuharm_8_overtime) as inuharm_8_overtime,
sum(inuharm_9_overtime) as inuharm_9_overtime,
sum(inuharm_10_overtime) as inuharm_10_overtime,
sum(inuharm_11_overtime) as inuharm_11_overtime,
sum(inuharm_12_overtime) as inuharm_12_overtime,
sum(inuharm_13_overtime) as inuharm_13_overtime,
sum(inuharm_14_overtime) as inuharm_14_overtime,
sum(inuharm_15_overtime) as inuharm_15_overtime,
sum(inuharm_16_overtime) as inuharm_16_overtime,
sum(i_neg_overtime) as i_neg_overtime
from
r_stat_limit_rate_d
<where>
phasic_type = 'T'
<if test=" ids != null and ids.size > 0">
AND my_index IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
<if test=" statTime != null and statTime !=''">
AND time_id >= #{statTime}
</if>
<if test="endTime != null and endTime != ''">
AND time_id &lt;= #{endTime}
</if>
</where>
GROUP BY
my_index
</select>
<select id="getAssessTargetRate" resultType="com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO">
select
my_index as lineId,
SUM(all_time) as allTime,
SUM(flicker_all_time) as flickerAllTime,
SUM(freq_dev_overtime) as freqDevOvertime,
SUM(voltage_dev_overtime) as voltageDevOvertime,
SUM(flicker_overtime) as flickerOvertime,
SUM(ubalance_overtime) as ubalanceOvertime,
SUM(uaberrance_overtime) as uaberranceOvertime,
sum(uharm_2_overtime) uharm2Overtime,
sum(uharm_3_overtime) uharm3Overtime,
sum(uharm_4_overtime) uharm4Overtime,
sum(uharm_5_overtime) uharm5Overtime,
sum(uharm_6_overtime) uharm6Overtime,
sum(uharm_7_overtime) uharm7Overtime,
sum(uharm_8_overtime) uharm8Overtime,
sum(uharm_9_overtime) uharm9Overtime,
sum(uharm_10_overtime) uharm10Overtime,
sum(uharm_11_overtime) uharm11Overtime,
sum(uharm_12_overtime) uharm12Overtime,
sum(uharm_13_overtime) uharm13Overtime,
sum(uharm_14_overtime) uharm14Overtime,
sum(uharm_15_overtime) uharm15Overtime,
sum(uharm_16_overtime) uharm16Overtime,
sum(uharm_17_overtime) uharm17Overtime,
sum(uharm_18_overtime) uharm18Overtime,
sum(uharm_19_overtime) uharm19Overtime,
sum(uharm_20_overtime) uharm20Overtime,
sum(uharm_21_overtime) uharm21Overtime,
sum(uharm_22_overtime) uharm22Overtime,
sum(uharm_23_overtime) uharm23Overtime,
sum(uharm_24_overtime) uharm24Overtime,
sum(uharm_25_overtime) uharm25Overtime,
sum(iharm_2_overtime) iharm2Overtime,
sum(iharm_3_overtime) iharm3Overtime,
sum(iharm_4_overtime) iharm4Overtime,
sum(iharm_5_overtime) iharm5Overtime,
sum(iharm_6_overtime) iharm6Overtime,
sum(iharm_7_overtime) iharm7Overtime,
sum(iharm_8_overtime) iharm8Overtime,
sum(iharm_9_overtime) iharm9Overtime,
sum(iharm_10_overtime) iharm10Overtime,
sum(iharm_11_overtime) iharm11Overtime,
sum(iharm_12_overtime) iharm12Overtime,
sum(iharm_13_overtime) iharm13Overtime,
sum(iharm_14_overtime) iharm14Overtime,
sum(iharm_15_overtime) iharm15Overtime,
sum(iharm_16_overtime) iharm16Overtime,
sum(iharm_17_overtime) iharm17Overtime,
sum(iharm_18_overtime) iharm18Overtime,
sum(iharm_19_overtime) iharm19Overtime,
sum(iharm_20_overtime) iharm20Overtime,
sum(iharm_21_overtime) iharm21Overtime,
sum(iharm_22_overtime) iharm22Overtime,
sum(iharm_23_overtime) iharm23Overtime,
sum(iharm_24_overtime) iharm24Overtime,
sum(iharm_25_overtime) iharm25Overtime,
sum(inuharm_1_overtime) inuharm1Overtime,
sum(inuharm_2_overtime) inuharm2Overtime,
sum(inuharm_3_overtime) inuharm3Overtime,
sum(inuharm_4_overtime) inuharm4Overtime,
sum(inuharm_5_overtime) inuharm5Overtime,
sum(inuharm_6_overtime) inuharm6Overtime,
sum(inuharm_7_overtime) inuharm7Overtime,
sum(inuharm_8_overtime) inuharm8Overtime,
sum(inuharm_9_overtime) inuharm9Overtime,
sum(inuharm_10_overtime) inuharm10Overtime,
sum(inuharm_11_overtime) inuharm11Overtime,
sum(inuharm_12_overtime) inuharm12Overtime,
sum(inuharm_13_overtime) inuharm13Overtime,
sum(inuharm_14_overtime) inuharm14Overtime,
sum(inuharm_15_overtime) inuharm15Overtime,
sum(inuharm_16_overtime) inuharm16Overtime,
sum(i_neg_overtime) iNegOvertime
from
r_stat_limit_rate_d
where
time_id between #{statTime} and #{endTime}
<if test=" ids != null and ids.size > 0">
AND my_index IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
group by
my_index
</select>
<select id="getAllOverTimes" resultType="com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO">
select
my_index as lineId,
SUM(freq_dev_overtime
+ flicker_overtime
+ voltage_dev_overtime
+ ubalance_overtime
+ uaberrance_overtime
+ i_neg_overtime
+ uharm_2_overtime + uharm_3_overtime + uharm_4_overtime + uharm_5_overtime + uharm_6_overtime + uharm_7_overtime + uharm_8_overtime + uharm_9_overtime + uharm_10_overtime + uharm_11_overtime + uharm_12_overtime + uharm_13_overtime + uharm_14_overtime + uharm_15_overtime + uharm_16_overtime + uharm_17_overtime + uharm_18_overtime + uharm_19_overtime + uharm_20_overtime + uharm_21_overtime + uharm_22_overtime + uharm_23_overtime + uharm_24_overtime + uharm_25_overtime
+ iharm_2_overtime + iharm_3_overtime + iharm_4_overtime + iharm_5_overtime + iharm_6_overtime + iharm_7_overtime + iharm_8_overtime + iharm_9_overtime + iharm_10_overtime + iharm_11_overtime + iharm_12_overtime + iharm_13_overtime + iharm_14_overtime + iharm_15_overtime + iharm_16_overtime + iharm_17_overtime + iharm_18_overtime + iharm_19_overtime + iharm_20_overtime + iharm_21_overtime + iharm_22_overtime + iharm_23_overtime + iharm_24_overtime + iharm_25_overtime
+ inuharm_1_overtime + inuharm_2_overtime + inuharm_3_overtime + inuharm_4_overtime + inuharm_5_overtime + inuharm_6_overtime + inuharm_7_overtime + inuharm_8_overtime + inuharm_9_overtime + inuharm_10_overtime + inuharm_11_overtime + inuharm_12_overtime + inuharm_13_overtime + inuharm_14_overtime + inuharm_15_overtime + inuharm_16_overtime
) as allTime
from
r_stat_limit_rate_d
<where>
and time_id between #{statTime} and #{endTime}
<if test=" ids != null and ids.size > 0">
AND my_index IN
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
#{item}
</foreach>
</if>
</where>
group by
my_index
</select>
</mapper>

View File

@@ -1,16 +0,0 @@
package com.njcn.harmonic.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
/**
* <p>
* 合格率统计日表(越限次数) 服务类
* </p>
*
* @author wr
* @since 2023-04-03
*/
public interface IRStatLimitRateDService extends IService<RStatLimitRateDPO> {
}

View File

@@ -20,7 +20,6 @@ import com.njcn.device.pq.pojo.dto.WarningSubstationDTO;
import com.njcn.event.api.EventDetailFeignClient;
import com.njcn.event.pojo.vo.GeneralVO;
import com.njcn.harmonic.constant.Param;
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.mapper.RStatLimitTargetMapper;
import com.njcn.harmonic.pojo.excel.area.AreaExcel;
import com.njcn.harmonic.pojo.excel.monitor.ITimes;
@@ -28,13 +27,13 @@ import com.njcn.harmonic.pojo.excel.monitor.MonitorExcel;
import com.njcn.harmonic.pojo.excel.monitor.OverLimitDays;
import com.njcn.harmonic.pojo.excel.monitor.UTimes;
import com.njcn.harmonic.pojo.excel.substation.SubstationExcel;
import com.njcn.harmonic.pojo.po.LimitTarget;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
import com.njcn.harmonic.pojo.vo.OverAreaLimitVO;
import com.njcn.harmonic.pojo.vo.OverAreaVO;
import com.njcn.harmonic.pojo.vo.WarningSubstationVO;
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.service.IAnalyzeService;
import com.njcn.poi.excel.ExcelUtil;
import com.njcn.supervision.api.UserLedgerFeignClient;
@@ -47,15 +46,12 @@ import com.njcn.system.pojo.po.DictData;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.influxdb.dto.QueryResult;
import org.influxdb.impl.InfluxDBResultMapper;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.io.File;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.Instant;
import java.time.LocalDate;
import java.util.*;
import java.util.function.Function;

View File

@@ -22,6 +22,7 @@ import com.njcn.harmonic.pojo.vo.hebeinorth.AssessDetailVo;
import com.njcn.harmonic.pojo.vo.hebeinorth.AssessVo;
import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationLevelVo;
import com.njcn.harmonic.pojo.vo.hebeinorth.EvaluationVo;
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.service.hebeinorth.IGridService;
import com.njcn.harmonic.util.ComAssesUtil;
import com.njcn.harmonic.util.TimeUtil;
@@ -34,7 +35,6 @@ import org.springframework.stereotype.Service;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.time.LocalDate;
import java.time.Year;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.*;

View File

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.njcn.common.pojo.constant.BizParamConstant;
@@ -54,6 +55,9 @@ import lombok.AllArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@@ -62,8 +66,11 @@ import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -102,16 +109,24 @@ public class HistoryResultServiceImpl implements HistoryResultService {
private final RStatDataVDMapper dataVDMapper;
private final RStatDataHarmRateVDMapper dataHarmRateVDMapper;
private final RStatDataHarmRateIDMapper dataHarmRateIDMapper;
@Autowired
@Qualifier("asyncExecutor")
private Executor asyncExecutor;
@Override
public List<HistoryDataResultVO> getHistoryResult(HistoryParam historyParam) {
System.out.println("begin============================="+ LocalDateTime.now());
TimeInterval timeInterval = new TimeInterval();
List<HistoryDataResultVO> historyDataResultVOList = new ArrayList<>();
//获取监测点
String[] points = historyParam.getLineId();
Integer number = 0;
for (int i = 0; i < points.length; i++) {
HistoryDataResultVO historyDataResultVO;
long a = timeInterval.intervalMs();
List<EventDetail> eventDetailList = eventDetailFeignClient.getEventDetailData(points[i], historyParam.getSearchBeginTime(), historyParam.getSearchEndTime()).getData();
List<EventDetailVO> eventDetailVOList = new ArrayList<>();
if (!eventDetailList.isEmpty()) {
for (EventDetail eventdetail : eventDetailList) {
@@ -122,9 +137,21 @@ public class HistoryResultServiceImpl implements HistoryResultService {
eventDetailVOList.add(eventDetailVO);
}
}
//获取监测点的数据单位kV还是v kW还是w
PqsDeviceUnit pqsDeviceUnit = commTerminalGeneralClient.lineUnitDetail(points[i]).getData();
//获取监测点信息
LineDevGetDTO lineDetailDataVO = commTerminalGeneralClient.getMonitorDetail(points[i]).getData();
//获取限值
Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(points[i]).getData();
long b = timeInterval.intervalMs();
System.out.println("feign调用"+(b-a));
//获取指标
String[] contions = historyParam.getCondition();
List<CompletableFuture<Void>> futures = new ArrayList<>();
for (int j = 0; j < contions.length; j++) {
Integer number = 0;
if ("40".equals(contions[j]) || "41".equals(contions[j]) || "42".equals(contions[j]) || "43".equals(contions[j])
|| "44".equals(contions[j]) || "45".equals(contions[j]) || "50".equals(contions[j]) || "51".equals(contions[j])
|| "52".equals(contions[j])) {
@@ -133,20 +160,33 @@ public class HistoryResultServiceImpl implements HistoryResultService {
if ("46".equals(contions[j]) || "47".equals(contions[j]) || "48".equals(contions[j]) || "49".equals(contions[j])) {
number = historyParam.getInHarmonic();
}
historyDataResultVO = getCondition(historyParam.getSearchBeginTime(), historyParam.getSearchEndTime(), points[i], contions[j], number, historyParam.getValueType(), historyParam.getPtType());
/* if (points.length == 1 && j == 0) {
historyDataResultVO.setEventDetail(eventDetailVOList);
} else if (points.length > 1) {
historyDataResultVO.setEventDetail(eventDetailVOList);
}*/
historyDataResultVO.setEventDetail(eventDetailVOList);
historyDataResultVOList.add(historyDataResultVO);
//每个指标独立一个线程去查库,针对现场网络环境比较复杂的场景,正常场景看不太出来效果
asyncMethodWithCustomExecutor(contions[j],number,historyParam,eventDetailVOList,points[i],pqsDeviceUnit,lineDetailDataVO,overlimit,historyDataResultVOList,futures);
}
// 等待所有任务完成
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
}
System.out.println("end============================="+LocalDateTime.now());
System.out.println("共计耗时:"+timeInterval.intervalMs()/1000.0);
return historyDataResultVOList;
}
//处理指标查询
public void asyncMethodWithCustomExecutor(String target,Integer number,HistoryParam historyParam,List<EventDetailVO> eventDetailVOList,String point,PqsDeviceUnit pqsDeviceUnit,LineDevGetDTO lineDetailDataVO,Overlimit overlimit,List<HistoryDataResultVO> historyDataResultVOList,List<CompletableFuture<Void>> futures) {
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
HistoryDataResultVO historyDataResultVO = getCondition(historyParam.getSearchBeginTime(), historyParam.getSearchEndTime(), point, target, number, historyParam.getValueType(), historyParam.getPtType(),pqsDeviceUnit,lineDetailDataVO,overlimit);
historyDataResultVO.setEventDetail(eventDetailVOList);
synchronized (historyDataResultVOList) { // 同步块保证线程安全
historyDataResultVOList.add(historyDataResultVO);
}
System.out.println("执行异步任务,线程名:" + Thread.currentThread().getName());
}, asyncExecutor);
futures.add(future);
}
@Override
public List<HistoryDataResultVO> getHistoryLineData(NormHistoryParam normHistoryParam) {
List<HistoryDataResultVO> historyDataResultVOList = new ArrayList<>();
@@ -160,9 +200,9 @@ public class HistoryResultServiceImpl implements HistoryResultService {
* 查询稳态数据分析
*/
@SneakyThrows
private HistoryDataResultVO getCondition(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType) {
public HistoryDataResultVO getCondition(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType,PqsDeviceUnit pqsDeviceUnit,LineDevGetDTO lineDetailDataVO,Overlimit overlimit) {
HistoryDataResultVO historyDataResultVO = new HistoryDataResultVO();
QueryResultLimitVO queryResultLimitVO = getQueryResult(startTime, endTime, lineId, contion, number, valueType, ptType);
QueryResultLimitVO queryResultLimitVO = getQueryResult(startTime, endTime, lineId, contion, number, valueType, ptType,pqsDeviceUnit,lineDetailDataVO,overlimit);
List<HarmonicHistoryData> harmonicHistoryDataList = queryResultLimitVO.getHarmonicHistoryDataList();
BeanUtil.copyProperties(queryResultLimitVO, historyDataResultVO);
//时间轴
@@ -207,7 +247,6 @@ public class HistoryResultServiceImpl implements HistoryResultService {
} else {
//按时间分组
Map<Instant, List<HarmonicHistoryData>> map = harmonicHistoryDataList.stream().collect(Collectors.groupingBy(HarmonicHistoryData::getTime, TreeMap::new, Collectors.toList()));
Float maxI = null;
Float minI = null;
for (Map.Entry<Instant, List<HarmonicHistoryData>> entry : map.entrySet()) {
@@ -241,13 +280,10 @@ public class HistoryResultServiceImpl implements HistoryResultService {
objects[3] = c;
maxI = max(maxI, c.floatValue());
minI = min(minI, c.floatValue());
}
}
List<Object> list = new ArrayList<>(Arrays.asList(objects));
objectListData.add(list);
}
historyDataResultVO.setMaxValue(maxI);
@@ -256,7 +292,6 @@ public class HistoryResultServiceImpl implements HistoryResultService {
historyDataResultVO.setLowerLimit(queryResultLimitVO.getLowerLimit());
historyDataResultVO.setValue(objectListData);
}
} else {
return historyDataResultVO;
}
@@ -284,19 +319,12 @@ public class HistoryResultServiceImpl implements HistoryResultService {
return ding;
}
private QueryResultLimitVO getQueryResult(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType) {
PqsDeviceUnit pqsDeviceUnit = commTerminalGeneralClient.lineUnitDetail(lineId).getData();
private QueryResultLimitVO getQueryResult(String startTime, String endTime, String lineId, String contion, Integer number, Integer valueType, Integer ptType,PqsDeviceUnit pqsDeviceUnit,LineDevGetDTO lineDetailDataVO,Overlimit overlimit) {
QueryResultLimitVO queryResultLimitVO = new QueryResultLimitVO();
if (!lineId.isEmpty()) {
Float topLimit = 0f;
Float lowerLimit = 0f;
//获取监测点信息
LineDevGetDTO lineDetailDataVO = commTerminalGeneralClient.getMonitorDetail(lineId).getData();
//获取限值
Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(lineId).getData();
if (Objects.isNull(overlimit)) {
//对配网没有限值的统一处理
DictData dictData = dicDataFeignClient.getDicDataById(lineDetailDataVO.getVoltageLevel()).getData();
@@ -305,7 +333,6 @@ public class HistoryResultServiceImpl implements HistoryResultService {
overlimit = COverlimitUtil.globalAssemble(voltageLevel, 10f, 10f, shortVal, 1, 1);
}
//组装sql语句
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(InfluxDBTableConstant.TIME + " >= '").append(startTime).append(InfluxDBTableConstant.START_TIME).append("' and ").append(InfluxDBTableConstant.TIME).append(" <= '").append(endTime).append(InfluxDBTableConstant.END_TIME).append("' and (");

View File

@@ -55,6 +55,7 @@ import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.PollutionSubstationVO;
import com.njcn.harmonic.pojo.vo.PollutionVO;
import com.njcn.harmonic.pojo.vo.SubstationVo;
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.service.PollutionSubstationService;
import com.njcn.poi.excel.ExcelUtil;
import com.njcn.supervision.api.UserLedgerFeignClient;

View File

@@ -1,20 +0,0 @@
package com.njcn.harmonic.service.impl;
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.service.IRStatLimitRateDService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* <p>
* 合格率统计日表(越限次数) 服务实现类
* </p>
*
* @author wr
* @since 2023-04-03
*/
@Service
public class RStatLimitRateDServiceImpl extends ServiceImpl<RStatLimitRateDMapper, RStatLimitRateDPO> implements IRStatLimitRateDService {
}

View File

@@ -14,14 +14,14 @@ import com.njcn.device.pq.enums.PowerFlagEnum;
import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.utils.PublicDateUtil;
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.mapper.SteadyExceedRateMapper;
import com.njcn.harmonic.pojo.po.LimitRatePO;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
import com.njcn.harmonic.pojo.vo.SteadyExceedRateCensusVO;
import com.njcn.harmonic.pojo.vo.SteadyExceedRateVO;
import com.njcn.harmonic.service.IRStatLimitRateDService;
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
import com.njcn.harmonic.service.SteadyExceedRateService;
import com.njcn.harmonic.utils.PubUtils;
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;

View File

@@ -15,7 +15,7 @@ import com.njcn.harmonic.mapper.SteadyQualifyMapper;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyCensusVO;
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
import com.njcn.harmonic.service.IRStatLimitRateDService;
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
import com.njcn.harmonic.service.SteadyQualifyService;
import com.njcn.harmonic.utils.PubUtils;
import com.njcn.supervision.api.UserLedgerFeignClient;

View File

@@ -4,13 +4,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pms.pojo.param.pwUser.PwUserMonitorParam;
import com.njcn.device.pq.pojo.param.DeviceInfoParam;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.vo.MonitorLimitRateVO;
import com.njcn.harmonic.pojo.vo.PwLimitDataVO;
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@@ -22,13 +19,6 @@ import java.util.List;
*/
public interface RStatLimitService {
/**
* 获取指定日期的监测点超标详情
* @author cdf
* @date 2024/2/28
*/
List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds);
List<RStatLimitTargetDPO> monitorIdsGetLimitTargetInfo(String date, List<String> monitorIds);
@@ -50,8 +40,6 @@ public interface RStatLimitService {
*/
List<GridDiagramVO.RunData> getGridDiagramRunData(DeviceInfoParam.BusinessParam param);
List<RStatLimitRateDPO> getOverData(String lineId, String startTime, String endTime, Integer type);
Page<MonitorLimitRateVO> pwMonitorLimitData(PwUserMonitorParam pwUserMonitorParam);

View File

@@ -16,7 +16,7 @@ import com.njcn.harmonic.pojo.param.RMpPartHarmonicDetailQueryParam;
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.vo.RMpPartHarmonicDetailIconVO;
import com.njcn.harmonic.service.IRStatLimitRateDService;
import com.njcn.harmonic.rstatlimitrate.service.IRStatLimitRateDService;
import com.njcn.harmonic.service.majornetwork.RMpPartHarmonicDetailDService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;

View File

@@ -26,7 +26,6 @@ import com.njcn.device.pq.pojo.param.OnlineRateParam;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.device.pq.pojo.vo.GridDiagramVO;
import com.njcn.device.pq.pojo.vo.RStatOnlinerateVO;
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
@@ -34,6 +33,7 @@ import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.vo.MonitorLimitRateVO;
import com.njcn.harmonic.pojo.vo.PwLimitDataVO;
import com.njcn.harmonic.pojo.vo.RStatLimitTargetVO;
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.service.IRStatLimitTargetDService;
import com.njcn.harmonic.service.majornetwork.RStatLimitService;
import com.njcn.system.pojo.enums.StatisticsEnum;
@@ -68,15 +68,9 @@ public class RStatLimitServiceImpl implements RStatLimitService {
private final LineIntegrityClient lineIntegrityClient;
private final IRStatLimitTargetDService targetDService;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private final DistributionMonitorClient distributionMonitorClient;
@Override
public List<RStatLimitRateDPO> monitorIdsGetLimitRateInfo(String date, List<String> monitorIds) {
return rStatLimitRateDMapper.selectList(new LambdaQueryWrapper<RStatLimitRateDPO>()
.in(RStatLimitRateDPO::getLineId,monitorIds).eq(RStatLimitRateDPO::getTime,date).eq(RStatLimitRateDPO::getPhasicType,"T"));
}
@Override
public List<RStatLimitTargetDPO> monitorIdsGetLimitTargetInfo(String date, List<String> monitorIds) {
@@ -324,93 +318,6 @@ public class RStatLimitServiceImpl implements RStatLimitService {
return info;
}
@Override
public List<RStatLimitRateDPO> getOverData(String lineId, String startTime, String endTime, Integer type) {
QueryWrapper<RStatLimitRateDPO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda()
.eq(RStatLimitRateDPO::getLineId,lineId)
.between(RStatLimitRateDPO::getTime,startTime,endTime)
.groupBy(RStatLimitRateDPO::getTime);
//频率偏差
if (type == 1) {
queryWrapper.select("time_id time,max(freq_dev_overtime) freq_dev_overtime");
queryWrapper.lambda().gt(RStatLimitRateDPO::getFreqDevOvertime,0);
}
//电压偏差
else if (type == 2) {
queryWrapper.select("time_id time,max(voltage_dev_overtime) voltage_dev_overtime");
queryWrapper.lambda().gt(RStatLimitRateDPO::getVoltageDevOvertime,0);
}
//长时闪变
else if (type == 3) {
queryWrapper.select("time_id time,max(flicker_overtime) flicker_overtime");
queryWrapper.lambda().gt(RStatLimitRateDPO::getFlickerOvertime,0);
}
//电压总谐波畸变率
else if (type == 4) {
queryWrapper.select("time_id time,max(uaberrance_overtime) uaberrance_overtime");
queryWrapper.lambda().gt(RStatLimitRateDPO::getUaberranceOvertime,0);
}
//负序电压不平衡度
else if (type == 5) {
queryWrapper.select("time_id time,max(ubalance_overtime) ubalance_overtime");
queryWrapper.lambda().gt(RStatLimitRateDPO::getUbalanceOvertime,0);
}
//负序电流
else if (type == 6) {
queryWrapper.select("time_id time,max(i_neg_overtime) i_neg_overtime");
queryWrapper.lambda().gt(RStatLimitRateDPO::getINegOvertime,0);
}
//谐波电压含有率
else if (type == 7) {
StringBuilder selectSql = new StringBuilder();
StringBuilder havingSql = new StringBuilder();
for (int i = 2; i <=25 ; i++) {
selectSql.append("max(uharm_").append(i).append("_overtime) uharm_").append(i).append("_overtime,");
if (i == 25) {
havingSql.append("uharm_").append(i).append("_overtime");
} else {
havingSql.append("uharm_").append(i).append("_overtime + ");
}
}
selectSql.append("time_id time");
havingSql = new StringBuilder("sum(" + havingSql + ")");
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
}
//谐波电流
else if (type == 8) {
StringBuilder selectSql = new StringBuilder();
StringBuilder havingSql = new StringBuilder();
for (int i = 2; i <=25 ; i++) {
selectSql.append("max(iharm_").append(i).append("_overtime) iharm_").append(i).append("_overtime,");
if (i == 25) {
havingSql.append("iharm_").append(i).append("_overtime");
} else {
havingSql.append("iharm_").append(i).append("_overtime + ");
}
}
selectSql.append("time_id time");
havingSql = new StringBuilder("sum(" + havingSql + ")");
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
}
//间谐波电压
else if (type == 9) {
StringBuilder selectSql = new StringBuilder();
StringBuilder havingSql = new StringBuilder();
for (int i = 1; i <=16 ; i++) {
selectSql.append("max(inuharm_").append(i).append("_overtime) inuharm_").append(i).append("_overtime,");
if (i == 16) {
havingSql.append("inuharm_").append(i).append("_overtime");
} else {
havingSql.append("inuharm_").append(i).append("_overtime + ");
}
}
selectSql.append("time_id time");
havingSql = new StringBuilder("sum(" + havingSql + ")");
queryWrapper.select(selectSql.toString()).having(havingSql.toString(),0);
}
return rStatLimitRateDMapper.selectList(queryWrapper);
}
@Override
public Page<MonitorLimitRateVO> pwMonitorLimitData(PwUserMonitorParam pwUserMonitorParam) {

View File

@@ -21,12 +21,9 @@ import com.njcn.device.pms.api.LineIntegrityDataClient;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.api.PmsMidLedgerClient;
import com.njcn.device.pms.pojo.param.DataQualityDetailsParam;
import com.njcn.device.pms.pojo.param.TerminalQueryParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.harmonic.mapper.RStatDataVDMapper;
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.mapper.upload.*;
import com.njcn.harmonic.pojo.dto.upload.PqEvaluationCreateDTO;
import com.njcn.harmonic.pojo.dto.upload.RDimUpDTO;
@@ -34,11 +31,11 @@ import com.njcn.harmonic.pojo.param.UploadDataParam;
import com.njcn.harmonic.pojo.param.UploadParam;
import com.njcn.harmonic.pojo.param.upload.DimBusBarParam;
import com.njcn.harmonic.pojo.po.RStatDataVD;
import com.njcn.harmonic.pojo.po.day.RStatDataVDPO;
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
import com.njcn.harmonic.pojo.po.upload.*;
import com.njcn.harmonic.pojo.vo.upload.DimBusBarVO;
import com.njcn.harmonic.pojo.vo.upload.UploadEvaluationDataVo;
import com.njcn.harmonic.rstatlimitrate.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.service.upload.IEvaluationDataService;
import com.njcn.harmonic.service.upload.IRUploadDataLogService;
import com.njcn.system.api.DicDataFeignClient;
@@ -99,8 +96,6 @@ public class REvaluationDataServiceImpl extends ServiceImpl<RUploadEvaluationDat
private final MonitorClient monitorClient;
private final PmsMidLedgerClient pmsMidLedgerClient;
private final IRUploadDataLogService irUploadDataLogService;
private final LineIntegrityDataClient lineIntegrityDataClient;

View File

@@ -5,20 +5,17 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.device.pms.api.LineIntegrityDataClient;
import com.njcn.device.pms.api.MonitorClient;
import com.njcn.device.pms.pojo.param.DataQualityDetailsParam;
import com.njcn.device.pms.pojo.param.gw.TypicalSourceParam;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.vo.gw.TypicalOverIndex;
import com.njcn.device.pms.pojo.vo.gw.TypicalOverStation;
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceEffectiveLine;
import com.njcn.device.pms.pojo.vo.gw.TypicalSourceOnLine;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
import com.njcn.harmonic.mapper.RStatLimitTargetDMapper;
import com.njcn.harmonic.mapper.upload.PmsRunStatisticDMapper;
import com.njcn.harmonic.mapper.upload.PmsRunStatisticMMapper;
@@ -44,7 +41,6 @@ public class TypicalSourceLoadDownServiceImpl implements TypicalSourceLoadDownSe
private final MonitorClient monitorClient;
private final RStatLimitTargetDMapper rStatLimitTargetDMapper;
private final RStatLimitRateDMapper rStatLimitRateDMapper;
private final LineIntegrityDataClient integrityDataClient;
private final PmsRunStatisticDMapper pmsRunStatisticDMapper;
private final PmsRunStatisticMMapper pmsRunStatisticMMapper;