算法改造
This commit is contained in:
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -29,7 +30,7 @@ public class RMpTargetWarnDPO {
|
||||
* 生成数据的时间,每日统计一次
|
||||
*/
|
||||
@MppMultiId(value = "data_date")
|
||||
private Date dataDate;
|
||||
private LocalDate dataDate;
|
||||
|
||||
/**
|
||||
* 是否是有效接入监测点(0:否 1:是)
|
||||
|
||||
@@ -8,8 +8,10 @@ import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import net.sf.cglib.core.Local;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -53,7 +55,7 @@ public class RMpVThd implements Serializable {
|
||||
@TableField(value = "data_date")
|
||||
@ApiModelProperty(value="时间")
|
||||
@MppMultiId
|
||||
private Date dataDate;
|
||||
private LocalDate dataDate;
|
||||
|
||||
/**
|
||||
* 谐波畸变率
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
@@ -21,8 +22,8 @@ import java.util.Date;
|
||||
public class RMpTargetDiffDPO implements Serializable {
|
||||
|
||||
@MppMultiId(value = "time")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
|
||||
private Date time;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd",timezone="GMT+8")
|
||||
private LocalDate time;
|
||||
|
||||
@MppMultiId(value = "line_id")
|
||||
private String lineId;
|
||||
|
||||
@@ -83,7 +83,7 @@ public class ExecutionCenter extends BaseController {
|
||||
throw new BusinessException(PrepareResponseEnum.NO_EXECUTOR_NODE);
|
||||
}
|
||||
|
||||
if (baseParam.isRepair() && StrUtil.isAllNotEmpty(baseParam.getBeginTime(), baseParam.getEndTime())) {
|
||||
if (baseParam.isRepair() && StrUtil.isAllEmpty(baseParam.getBeginTime(), baseParam.getEndTime())) {
|
||||
throw new BusinessException(PrepareResponseEnum.NO_REPAIR_DATE);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
package com.njcn.prepare.executor;
|
||||
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.DayDataService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailDService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.RMpMonitorEvaluateDService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.area.IRMpMonitorAlarmCountMService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.area.RMpTargetWarnDService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.*;
|
||||
import com.yomahub.liteflow.annotation.LiteflowComponent;
|
||||
import com.yomahub.liteflow.annotation.LiteflowMethod;
|
||||
@@ -13,6 +11,8 @@ import com.yomahub.liteflow.enums.LiteFlowMethodEnum;
|
||||
import com.yomahub.liteflow.enums.NodeTypeEnum;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
@@ -31,12 +31,19 @@ public class MeasurementExecutor extends BaseExecutor {
|
||||
private final ROperatingMonitorService rOperatingMonitorService;
|
||||
private final ROperatingMonitorMService rOperatingMonitorMService;
|
||||
private final IntegrityService integrityService;
|
||||
|
||||
private final RMpPassRateDService rMpPassRateDService;
|
||||
|
||||
private final LimitRateService limitRateService;
|
||||
private final LimitTargetService limitTargetService;
|
||||
|
||||
private final IRMpPartHarmonicDetailDService mpPartHarmonicDetailDService;
|
||||
private final IRMpSurplusHarmonicDetailDService mpSurplusHarmonicDetailDService;
|
||||
private final IRMpPartHarmonicDetailMService mpPartHarmonicDetailMService;
|
||||
private final IRMpSurplusHarmonicDetailMService mpSurplusHarmonicDetailMService;
|
||||
private final IRMpVThdService mpVThdService;
|
||||
private final AlarmDetailService alarmDetailService;
|
||||
private final RMpTargetWarnDService rMpTargetWarnDService;
|
||||
private final IRMpMonitorAlarmCountMService rMpMonitorAlarmCountMService;
|
||||
|
||||
|
||||
/**
|
||||
* 算法名: 3.3.1.1-----监测点评价
|
||||
@@ -158,7 +165,7 @@ public class MeasurementExecutor extends BaseExecutor {
|
||||
|
||||
/********************************************算法负责人:xy***********************************************************/
|
||||
/**
|
||||
* 算法名: 3.4.1.1-----监测点报表_日表((r_stat_data_*_d))
|
||||
* 算法名: 3.4.1.1-----监测点报表_日表(r_stat_data_*_d)
|
||||
*
|
||||
* @author xuyang
|
||||
* @date 2023年11月09日 10:08
|
||||
@@ -217,7 +224,103 @@ public class MeasurementExecutor extends BaseExecutor {
|
||||
limitTargetService.limitTargetData(bindCmp.getRequestData());
|
||||
}
|
||||
|
||||
/**
|
||||
* 算法名: 3.4.1.3.1-----监测点稳态指标超标明细日表1(r_mp_part_harmonic_detail_d)
|
||||
* 3.4.1.4.1-----监测点稳态指标超标明细日表1(r_mp_part_harmonic_detail_m)
|
||||
* @author xuyang
|
||||
* @date 2023年11月13日 16:18
|
||||
*/
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "partHarmonicDetail", nodeType = NodeTypeEnum.COMMON)
|
||||
public boolean partHarmonicDetailAccess(NodeComponent bindCmp) {
|
||||
return isAccess(bindCmp);
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "partHarmonicDetail", nodeType = NodeTypeEnum.COMMON)
|
||||
public void partHarmonicDetailProcess(NodeComponent bindCmp) {
|
||||
String tag = bindCmp.getTag();
|
||||
if (Objects.equals(tag,"r_mp_part_harmonic_detail_d")){
|
||||
//日表
|
||||
mpPartHarmonicDetailDService.insertHarmonicDetailDayOne(bindCmp.getRequestData());
|
||||
} else if (Objects.equals(tag,"r_mp_part_harmonic_detail_m")) {
|
||||
//月表
|
||||
mpPartHarmonicDetailMService.insertHarmonicDetailMonthOne(bindCmp.getRequestData());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 算法名: 3.4.1.3.2-----监测点稳态指标超标明细日表2(r_mp_surplus_harmonic_detail_d)
|
||||
* 3.4.1.4.2-----监测点稳态指标超标明细日表2(r_mp_surplus_harmonic_detail_m)
|
||||
*
|
||||
* @author xuyang
|
||||
* @date 2023年11月13日 16:18
|
||||
*/
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "surplusHarmonicDetail", nodeType = NodeTypeEnum.COMMON)
|
||||
public boolean surplusHarmonicDetailAccess(NodeComponent bindCmp) {
|
||||
return isAccess(bindCmp);
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "surplusHarmonicDetail", nodeType = NodeTypeEnum.COMMON)
|
||||
public void surplusHarmonicDetailProcess(NodeComponent bindCmp) {
|
||||
String tag = bindCmp.getTag();
|
||||
if (Objects.equals(tag,"r_mp_surplus_harmonic_detail_d")){
|
||||
//日表
|
||||
mpSurplusHarmonicDetailDService.insertHarmonicDetailDayTwo(bindCmp.getRequestData());
|
||||
} else if (Objects.equals(tag,"r_mp_surplus_harmonic_detail_m")) {
|
||||
//月表
|
||||
mpSurplusHarmonicDetailMService.insertHarmonicDetailMonthTwo(bindCmp.getRequestData());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 算法名: 3.4.1.6.1-----监测点谐波畸变率_日表(r_mp_v_thd)
|
||||
*
|
||||
* @author xuyang
|
||||
* @date 2023年11月13日 19:34
|
||||
*/
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rMpVThd", nodeType = NodeTypeEnum.COMMON)
|
||||
public boolean rMpVThdAccess(NodeComponent bindCmp) {
|
||||
return isAccess(bindCmp);
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rMpVThd", nodeType = NodeTypeEnum.COMMON)
|
||||
public void rMpVThdProcess(NodeComponent bindCmp) {
|
||||
mpVThdService.insertHarmonicVThdDay(bindCmp.getRequestData());
|
||||
}
|
||||
|
||||
/**
|
||||
* 算法名: 3.4.1.7.1-----监测点稳态指标差值日统计(r_mp_target_diff_d)
|
||||
*
|
||||
* @author xuyang
|
||||
* @date 2023年11月13日 19:34
|
||||
*/
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rMpTargetDiff", nodeType = NodeTypeEnum.COMMON)
|
||||
public boolean rMpTargetDiffAccess(NodeComponent bindCmp) {
|
||||
return isAccess(bindCmp);
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rMpTargetDiff", nodeType = NodeTypeEnum.COMMON)
|
||||
public void rMpTargetDiffProcess(NodeComponent bindCmp) {
|
||||
alarmDetailService.targetDiff(bindCmp.getRequestData());
|
||||
}
|
||||
|
||||
/**
|
||||
* 算法名: 3.4.1.7.2-----监测点指标告警日统计(r_mp_target_warn_d)
|
||||
* 算法名: 3.4.1.7.3-----监测点指标告警月统计(r_mp_target_warn_m)
|
||||
*
|
||||
* @author xuyang
|
||||
* @date 2023年11月14日 08:54
|
||||
*/
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rMpTargetWarn", nodeType = NodeTypeEnum.COMMON)
|
||||
public boolean rMpTargetWarnAccess(NodeComponent bindCmp) {
|
||||
return isAccess(bindCmp);
|
||||
}
|
||||
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rMpTargetWarn", nodeType = NodeTypeEnum.COMMON)
|
||||
public void rMpTargetWarnProcess(NodeComponent bindCmp) {
|
||||
String tag = bindCmp.getTag();
|
||||
if (Objects.equals(tag,"r_mp_target_warn_d")){
|
||||
//日表
|
||||
rMpTargetWarnDService.alarmDay(bindCmp.getRequestData());
|
||||
} else if (Objects.equals(tag,"r_mp_target_warn_m")) {
|
||||
//月表
|
||||
rMpMonitorAlarmCountMService.alarmMonth(bindCmp.getRequestData());
|
||||
}
|
||||
}
|
||||
|
||||
/********************************************算法负责人:xy结束***********************************************************/
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ public class AlarmDetailController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> targetDiff(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("targetDiff");
|
||||
alarmDetailService.targetDiff(lineParam);
|
||||
// alarmDetailService.targetDiff(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ public class AlarmDetailController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> alarmDay(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("alarmDay");
|
||||
rMpTargetWarnDService.alarmDay(lineParam);
|
||||
// rMpTargetWarnDService.alarmDay(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -80,7 +80,7 @@ public class AlarmDetailController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> alarmMonth(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("alarmMonth");
|
||||
rMpMonitorAlarmCountMService.alarmMonth(lineParam);
|
||||
// rMpMonitorAlarmCountMService.alarmMonth(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,7 +51,7 @@ public class HarmonicOverLimitController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> harmonicDetailDay1(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("harmonicDetailDay1");
|
||||
mpPartHarmonicDetailDService.insertHarmonicDetailDayOne(lineParam);
|
||||
// mpPartHarmonicDetailDService.insertHarmonicDetailDayOne(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ public class HarmonicOverLimitController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> harmonicDetailDay2(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("harmonicDetailDay2");
|
||||
mpSurplusHarmonicDetailDService.insertHarmonicDetailDayTwo(lineParam);
|
||||
// mpSurplusHarmonicDetailDService.insertHarmonicDetailDayTwo(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -71,7 +71,7 @@ public class HarmonicOverLimitController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> harmonicDetailMonth1(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("harmonicDetailMonth1");
|
||||
mpPartHarmonicDetailMService.insertHarmonicDetailMonthOne(lineParam);
|
||||
// mpPartHarmonicDetailMService.insertHarmonicDetailMonthOne(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -81,7 +81,7 @@ public class HarmonicOverLimitController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> harmonicDetailMonth2(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("harmonicDetailMonth2");
|
||||
mpSurplusHarmonicDetailMService.insertHarmonicDetailMonthTwo(lineParam);
|
||||
// mpSurplusHarmonicDetailMService.insertHarmonicDetailMonthTwo(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ public class HarmonicOverLimitController extends BaseController {
|
||||
@ApiImplicitParam(name = "lineParam", value = "算法通用查询参数", required = true)
|
||||
public HttpResult<Boolean> harmonicThdDay(@RequestBody @Validated LineParam lineParam) {
|
||||
String methodDescribe = getMethodDescribe("harmonicThdDay");
|
||||
mpVThdService.insertHarmonicVThdDay(lineParam);
|
||||
// mpVThdService.insertHarmonicVThdDay(lineParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.mapper.mysql.area;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.harmonic.pojo.dto.RMpMonitorAlarmCountMDTO;
|
||||
import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO;
|
||||
@@ -21,7 +22,7 @@ import java.util.Map;
|
||||
@Mapper
|
||||
public interface RMpTargetWarnDMapper extends MppBaseMapper<RMpTargetWarnDPO> {
|
||||
|
||||
List<RMpMonitorAlarmCountMDTO> getDate(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("list") List<String> list);
|
||||
List<RMpMonitorAlarmCountMDTO> getDate(@Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime, @Param("list") List<String> list);
|
||||
|
||||
Map<String,Object> getSumDate(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lineIds") List<String> lineIds);
|
||||
|
||||
|
||||
@@ -50,14 +50,12 @@
|
||||
r_mp_target_warn_d
|
||||
where
|
||||
data_date between #{startTime} and #{endTime}
|
||||
<where>
|
||||
<if test="list != null and list.size() > 0">
|
||||
and measurement_point_id in
|
||||
<foreach collection="list" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
<if test="list != null and list.size() > 0">
|
||||
and measurement_point_id in
|
||||
<foreach collection="list" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
group by measurement_point_id
|
||||
order by harmonicTypeGradeTotal desc,eventTypeGradeTotal desc
|
||||
</select>
|
||||
|
||||
@@ -186,7 +186,7 @@
|
||||
on t0.lineId = t3.lineId
|
||||
<where>
|
||||
<if test="list != null and list.size() > 0">
|
||||
A.lineId in
|
||||
t0.lineId in
|
||||
<foreach collection="list" item="item" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.mapper.mysql.line;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -16,7 +17,7 @@ import java.util.Map;
|
||||
*/
|
||||
public interface RMpPartHarmonicDetailMMapper extends MppBaseMapper<RMpPartHarmonicDetailM> {
|
||||
|
||||
List<RMpPartHarmonicDetailM> getHarmonicDetailMonthOne(@Param("startTime") String startTime, @Param("endTime")String endTime, @Param("lineList") List<String> lineList);
|
||||
List<RMpPartHarmonicDetailM> getHarmonicDetailMonthOne(@Param("dataDate") String dataDate, @Param("startTime") DateTime startTime, @Param("endTime")DateTime endTime, @Param("lineList") List<String> lineList);
|
||||
|
||||
Map<String, Object> getPartSum(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lineIds") List<String> lineIds);
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.mapper.mysql.line;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM;
|
||||
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM;
|
||||
@@ -17,7 +18,7 @@ import java.util.Map;
|
||||
*/
|
||||
public interface RMpSurplusHarmonicDetailMMapper extends MppBaseMapper<RMpSurplusHarmonicDetailM> {
|
||||
|
||||
List<RMpSurplusHarmonicDetailM> getHarmonicDetailMonthTwo(@Param("startTime") String startTime,@Param("endTime") String endTime, @Param("lineList") List<String> lineList);
|
||||
List<RMpSurplusHarmonicDetailM> getHarmonicDetailMonthTwo(@Param("dataDate") String dataDate, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime, @Param("lineList") List<String> lineList);
|
||||
|
||||
Map<String, Object> getSurplusSum(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lineIds") List<String> lineIds);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
<select id="getHarmonicDetailMonthOne" resultType="com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM">
|
||||
select
|
||||
#{dataDate} dataDate,
|
||||
measurement_point_id measurementPointId,
|
||||
sum(is_harmonic) measurementOverDay,
|
||||
sum(is_freq) freqOverDay,
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
<select id="getHarmonicDetailMonthTwo" resultType="com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM">
|
||||
select
|
||||
#{dataDate} dataDate,
|
||||
measurement_point_id measurementPointId,
|
||||
sum(is_flicker) flickerOverDay,
|
||||
sum(is_inuharm) inuharmOverDay,
|
||||
|
||||
@@ -1,17 +1,27 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.harmonic.pojo.dto.RMpMonitorAlarmCountMDTO;
|
||||
import com.njcn.harmonic.pojo.po.RMpMonitorAlarmCountMPO;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpMonitorAlarmCountMMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper;
|
||||
import com.njcn.prepare.harmonic.service.mysql.area.IRMpMonitorAlarmCountMService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.area.RMpTargetWarnDService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -26,65 +36,137 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
@Slf4j
|
||||
public class RMpMonitorAlarmCountMServiceImpl extends MppServiceImpl<RMpMonitorAlarmCountMMapper, RMpMonitorAlarmCountMPO> implements IRMpMonitorAlarmCountMService {
|
||||
|
||||
private final RMpTargetWarnDService rMpTargetWarnDService;
|
||||
|
||||
private final RMpTargetWarnDMapper rMpTargetWarnDMapper;
|
||||
|
||||
// @Override
|
||||
// public void alarmMonth(LineParam lineParam) {
|
||||
// List<RMpMonitorAlarmCountMDTO> monthList = rMpTargetWarnDService.getDate(lineParam);
|
||||
// if (!CollectionUtils.isEmpty(monthList)){
|
||||
// List<RMpMonitorAlarmCountMPO> result = new ArrayList<>();
|
||||
// List<RMpMonitorAlarmCountMDTO> harmonicList = new ArrayList<>(),eventList = new ArrayList<>();
|
||||
// //判断稳态指标评级结果-根据稳态指标严重度之和排序(去除严重度为0的数据在作比较)
|
||||
// List<RMpMonitorAlarmCountMDTO> list1 = monthList.stream().filter(item->item.getHarmonicTypeGradeTotal()>0).collect(Collectors.toList());
|
||||
// List<RMpMonitorAlarmCountMDTO> list2 = monthList.stream().filter(item->item.getHarmonicTypeGradeTotal()<=0).collect(Collectors.toList());
|
||||
// if (!CollectionUtils.isEmpty(list1)){
|
||||
// for (int i = 0; i < list1.size(); i++) {
|
||||
// if (i < list1.size()*0.3){
|
||||
// list1.get(i).setHarmonicTypeGrade(0);
|
||||
// } else if (i >= list1.size()*0.3 && i < list1.size()*0.7){
|
||||
// list1.get(i).setHarmonicTypeGrade(1);
|
||||
// } else {
|
||||
// list1.get(i).setHarmonicTypeGrade(2);
|
||||
// }
|
||||
// harmonicList.add(list1.get(i));
|
||||
// }
|
||||
// }
|
||||
// if (!CollectionUtils.isEmpty(list2)){
|
||||
// list2.forEach(item->{
|
||||
// item.setHarmonicTypeGrade(2);
|
||||
// harmonicList.add(item);
|
||||
// });
|
||||
// }
|
||||
// //判断暂态指标评级结果-根据暂态指标严重度之和排序(去除严重度为0的数据在作比较)
|
||||
// List<RMpMonitorAlarmCountMDTO> list3 = harmonicList.stream().filter(item->item.getEventTypeGradeTotal()>0).collect(Collectors.toList());
|
||||
// List<RMpMonitorAlarmCountMDTO> list4 = harmonicList.stream().filter(item->item.getEventTypeGradeTotal()<=0).collect(Collectors.toList());
|
||||
// if (!CollectionUtils.isEmpty(list3)){
|
||||
// for (int i = 0; i < list3.size(); i++) {
|
||||
// if (i < list3.size()*0.3){
|
||||
// list3.get(i).setEventTypeGrade(0);
|
||||
// } else if (i >= list3.size()*0.3 && i < list3.size()*0.7){
|
||||
// list3.get(i).setEventTypeGrade(1);
|
||||
// } else {
|
||||
// list3.get(i).setEventTypeGrade(2);
|
||||
// }
|
||||
// eventList.add(list3.get(i));
|
||||
// }
|
||||
// }
|
||||
// if (!CollectionUtils.isEmpty(list4)){
|
||||
// list4.forEach(item->{
|
||||
// item.setEventTypeGrade(2);
|
||||
// eventList.add(item);
|
||||
// });
|
||||
// }
|
||||
// if (!CollectionUtils.isEmpty(eventList)){
|
||||
// eventList.forEach(item->{
|
||||
// RMpMonitorAlarmCountMPO rMpMonitorAlarmCountMpo = new RMpMonitorAlarmCountMPO();
|
||||
// BeanUtils.copyProperties(item,rMpMonitorAlarmCountMpo);
|
||||
// result.add(rMpMonitorAlarmCountMpo);
|
||||
// });
|
||||
// this.saveOrUpdateBatchByMultiId(result,50);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void alarmMonth(LineParam lineParam) {
|
||||
List<RMpMonitorAlarmCountMDTO> monthList = rMpTargetWarnDService.getDate(lineParam);
|
||||
if (!CollectionUtils.isEmpty(monthList)){
|
||||
List<RMpMonitorAlarmCountMPO> result = new ArrayList<>();
|
||||
List<RMpMonitorAlarmCountMDTO> harmonicList = new ArrayList<>(),eventList = new ArrayList<>();
|
||||
//判断稳态指标评级结果-根据稳态指标严重度之和排序(去除严重度为0的数据在作比较)
|
||||
List<RMpMonitorAlarmCountMDTO> list1 = monthList.stream().filter(item->item.getHarmonicTypeGradeTotal()>0).collect(Collectors.toList());
|
||||
List<RMpMonitorAlarmCountMDTO> list2 = monthList.stream().filter(item->item.getHarmonicTypeGradeTotal()<=0).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(list1)){
|
||||
for (int i = 0; i < list1.size(); i++) {
|
||||
if (i < list1.size()*0.3){
|
||||
list1.get(i).setHarmonicTypeGrade(0);
|
||||
} else if (i >= list1.size()*0.3 && i < list1.size()*0.7){
|
||||
list1.get(i).setHarmonicTypeGrade(1);
|
||||
} else {
|
||||
list1.get(i).setHarmonicTypeGrade(2);
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void alarmMonth(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点指标告警月统计算法开始");
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
DateTime beginMonth = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
DateTime endMonth = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
//以尺寸100分片,查询数据
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds,100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpMonitorAlarmCountMDTO> monthList = rMpTargetWarnDMapper.getDate(beginMonth,endMonth,pendingId);
|
||||
if (!CollectionUtils.isEmpty(monthList)){
|
||||
List<RMpMonitorAlarmCountMPO> result = new ArrayList<>();
|
||||
List<RMpMonitorAlarmCountMDTO> harmonicList = new ArrayList<>(),eventList = new ArrayList<>();
|
||||
//判断稳态指标评级结果-根据稳态指标严重度之和排序(去除严重度为0的数据在作比较)
|
||||
List<RMpMonitorAlarmCountMDTO> list1 = monthList.stream().filter(item->item.getHarmonicTypeGradeTotal()>0).collect(Collectors.toList());
|
||||
List<RMpMonitorAlarmCountMDTO> list2 = monthList.stream().filter(item->item.getHarmonicTypeGradeTotal()<=0).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(list1)){
|
||||
for (int i = 0; i < list1.size(); i++) {
|
||||
if (i < list1.size()*0.3){
|
||||
list1.get(i).setHarmonicTypeGrade(0);
|
||||
} else if (i >= list1.size()*0.3 && i < list1.size()*0.7){
|
||||
list1.get(i).setHarmonicTypeGrade(1);
|
||||
} else {
|
||||
list1.get(i).setHarmonicTypeGrade(2);
|
||||
}
|
||||
harmonicList.add(list1.get(i));
|
||||
}
|
||||
harmonicList.add(list1.get(i));
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(list2)){
|
||||
list2.forEach(item->{
|
||||
item.setHarmonicTypeGrade(2);
|
||||
harmonicList.add(item);
|
||||
});
|
||||
}
|
||||
//判断暂态指标评级结果-根据暂态指标严重度之和排序(去除严重度为0的数据在作比较)
|
||||
List<RMpMonitorAlarmCountMDTO> list3 = harmonicList.stream().filter(item->item.getEventTypeGradeTotal()>0).collect(Collectors.toList());
|
||||
List<RMpMonitorAlarmCountMDTO> list4 = harmonicList.stream().filter(item->item.getEventTypeGradeTotal()<=0).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(list3)){
|
||||
for (int i = 0; i < list3.size(); i++) {
|
||||
if (i < list3.size()*0.3){
|
||||
list3.get(i).setEventTypeGrade(0);
|
||||
} else if (i >= list3.size()*0.3 && i < list3.size()*0.7){
|
||||
list3.get(i).setEventTypeGrade(1);
|
||||
} else {
|
||||
list3.get(i).setEventTypeGrade(2);
|
||||
if (!CollectionUtils.isEmpty(list2)){
|
||||
list2.forEach(item->{
|
||||
item.setHarmonicTypeGrade(2);
|
||||
harmonicList.add(item);
|
||||
});
|
||||
}
|
||||
//判断暂态指标评级结果-根据暂态指标严重度之和排序(去除严重度为0的数据在作比较)
|
||||
List<RMpMonitorAlarmCountMDTO> list3 = harmonicList.stream().filter(item->item.getEventTypeGradeTotal()>0).collect(Collectors.toList());
|
||||
List<RMpMonitorAlarmCountMDTO> list4 = harmonicList.stream().filter(item->item.getEventTypeGradeTotal()<=0).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(list3)){
|
||||
for (int i = 0; i < list3.size(); i++) {
|
||||
if (i < list3.size()*0.3){
|
||||
list3.get(i).setEventTypeGrade(0);
|
||||
} else if (i >= list3.size()*0.3 && i < list3.size()*0.7){
|
||||
list3.get(i).setEventTypeGrade(1);
|
||||
} else {
|
||||
list3.get(i).setEventTypeGrade(2);
|
||||
}
|
||||
eventList.add(list3.get(i));
|
||||
}
|
||||
eventList.add(list3.get(i));
|
||||
}
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(list4)){
|
||||
list4.forEach(item->{
|
||||
item.setEventTypeGrade(2);
|
||||
eventList.add(item);
|
||||
});
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(eventList)){
|
||||
eventList.forEach(item->{
|
||||
RMpMonitorAlarmCountMPO rMpMonitorAlarmCountMpo = new RMpMonitorAlarmCountMPO();
|
||||
BeanUtils.copyProperties(item,rMpMonitorAlarmCountMpo);
|
||||
result.add(rMpMonitorAlarmCountMpo);
|
||||
});
|
||||
this.saveOrUpdateBatchByMultiId(result,50);
|
||||
if (!CollectionUtils.isEmpty(list4)){
|
||||
list4.forEach(item->{
|
||||
item.setEventTypeGrade(2);
|
||||
eventList.add(item);
|
||||
});
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(eventList)){
|
||||
eventList.forEach(item->{
|
||||
RMpMonitorAlarmCountMPO rMpMonitorAlarmCountMpo = new RMpMonitorAlarmCountMPO();
|
||||
BeanUtils.copyProperties(item,rMpMonitorAlarmCountMpo);
|
||||
result.add(rMpMonitorAlarmCountMpo);
|
||||
});
|
||||
this.saveOrUpdateBatchByMultiId(result);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
@@ -7,6 +8,8 @@ import com.njcn.common.utils.NjcnDateUtils;
|
||||
import com.njcn.device.pq.api.LineFeignClient;
|
||||
import com.njcn.harmonic.pojo.dto.RMpMonitorAlarmCountMDTO;
|
||||
import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO;
|
||||
import com.njcn.harmonic.pojo.po.RMpVThd;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatDataVDMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.dto.AlarmDetailDayDTO;
|
||||
@@ -17,10 +20,14 @@ import com.njcn.prepare.harmonic.service.mysql.line.AlarmDetailService;
|
||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@@ -73,33 +80,21 @@ public class RMpTargetWarnDServiceImpl extends MppServiceImpl<RMpTargetWarnDMapp
|
||||
return result;
|
||||
}
|
||||
|
||||
/*******************************************新算法***********************************************************************/
|
||||
@Override
|
||||
public void alarmDay(LineParam lineParam) {
|
||||
List<RMpTargetWarnDPO> list = new ArrayList<>();
|
||||
//月处理
|
||||
if (Objects.equals(true,lineParam.getRepairFlag())){
|
||||
|
||||
List<String> dayList = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime());
|
||||
for (String item : dayList) {
|
||||
log.info(item+"-->开始执行");
|
||||
List<RMpTargetWarnDPO> day = getData(item,lineParam.getLineIds());
|
||||
if (!CollectionUtils.isEmpty(day)){
|
||||
list.addAll(day);
|
||||
}
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void alarmDay(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点指标告警日统计算法开始");
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
//以尺寸100分片,查询数据
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds,100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpTargetWarnDPO> list = getData(calculatedParam.getDataDate(),pendingId);
|
||||
if (CollectionUtil.isNotEmpty(list)){
|
||||
this.saveOrUpdateBatchByMultiId(list);
|
||||
}
|
||||
}
|
||||
//日处理
|
||||
else {
|
||||
list = getData(lineParam.getDataDate(),lineParam.getLineIds());
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
this.saveOrUpdateBatchByMultiId(list,50);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RMpMonitorAlarmCountMDTO> getDate(LineParam lineParam) {
|
||||
return this.baseMapper.getDate(lineParam.getBeginTime(),lineParam.getEndTime(),lineParam.getLineIds());
|
||||
}
|
||||
|
||||
public List<RMpTargetWarnDPO> getData(String time, List<String> list){
|
||||
@@ -107,10 +102,10 @@ public class RMpTargetWarnDServiceImpl extends MppServiceImpl<RMpTargetWarnDMapp
|
||||
List<AlarmDetailDayDTO> rlList = new ArrayList<>(),uclList = new ArrayList<>();
|
||||
//基础数据
|
||||
String yesterday = PublicUtil.getYesterday(time);
|
||||
List<RMpTargetWarnDDTO> todayList = rStatDataVDMapper.getTargetWarnD(time + " 00:00:00",list);
|
||||
List<RMpTargetWarnDDTO> yesterdayList = rStatDataVDMapper.getTargetWarnD(yesterday + " 00:00:00",list);
|
||||
List<RMpTargetWarnDDTO> theDayBeforeYesterday = rStatDataVDMapper.getTargetWarnD(PublicUtil.getYesterday(yesterday) + " 00:00:00",list);
|
||||
List<RMpTargetWarnDDTO> threeDaysAgo = rStatDataVDMapper.getTargetWarnD(PublicUtil.getYesterday(PublicUtil.getYesterday(yesterday)) + " 00:00:00",list);
|
||||
List<RMpTargetWarnDDTO> todayList = rStatDataVDMapper.getTargetWarnD(time,list);
|
||||
List<RMpTargetWarnDDTO> yesterdayList = rStatDataVDMapper.getTargetWarnD(yesterday,list);
|
||||
List<RMpTargetWarnDDTO> theDayBeforeYesterday = rStatDataVDMapper.getTargetWarnD(PublicUtil.getYesterday(yesterday),list);
|
||||
List<RMpTargetWarnDDTO> threeDaysAgo = rStatDataVDMapper.getTargetWarnD(PublicUtil.getYesterday(PublicUtil.getYesterday(yesterday)),list);
|
||||
if (!CollectionUtils.isEmpty(todayList)){
|
||||
Map<String,List<RMpTargetWarnDDTO>> map2 = new HashMap<>(),map3 = new HashMap<>(),map4 = new HashMap<>();
|
||||
//本年的rm值
|
||||
@@ -256,4 +251,38 @@ public class RMpTargetWarnDServiceImpl extends MppServiceImpl<RMpTargetWarnDMapp
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/*******************************************新算法结束***********************************************************************/
|
||||
|
||||
|
||||
|
||||
|
||||
// @Override
|
||||
// public void alarmDay(LineParam lineParam) {
|
||||
// List<RMpTargetWarnDPO> list = new ArrayList<>();
|
||||
// //月处理
|
||||
// if (Objects.equals(true,lineParam.getRepairFlag())){
|
||||
//
|
||||
// List<String> dayList = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime());
|
||||
// for (String item : dayList) {
|
||||
// log.info(item+"-->开始执行");
|
||||
// List<RMpTargetWarnDPO> day = getData(item,lineParam.getLineIds());
|
||||
// if (!CollectionUtils.isEmpty(day)){
|
||||
// list.addAll(day);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// //日处理
|
||||
// else {
|
||||
// list = getData(lineParam.getDataDate(),lineParam.getLineIds());
|
||||
// }
|
||||
// if (!CollectionUtils.isEmpty(list)){
|
||||
// this.saveOrUpdateBatchByMultiId(list,50);
|
||||
// }
|
||||
// }
|
||||
|
||||
// @Override
|
||||
// public List<RMpMonitorAlarmCountMDTO> getDate(LineParam lineParam) {
|
||||
// return this.baseMapper.getDate(lineParam.getBeginTime(),lineParam.getEndTime(),lineParam.getLineIds());
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -1,32 +1,27 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.common.utils.NjcnDateUtils;
|
||||
import com.njcn.device.pms.api.DistributionMonitorClient;
|
||||
import com.njcn.device.pms.api.MonitorClient;
|
||||
import com.njcn.device.pms.pojo.po.DistributionMonitor;
|
||||
import com.njcn.device.pms.pojo.po.Monitor;
|
||||
import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RMpTargetWarnDMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatDataVDMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.*;
|
||||
import com.njcn.prepare.harmonic.pojo.dto.AlarmDetailDayDTO;
|
||||
import com.njcn.prepare.harmonic.pojo.mysql.po.line.RMpTargetDiffDPO;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.AlarmDetailService;
|
||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -63,96 +58,58 @@ public class AlarmDetailServiceImpl extends MppServiceImpl<AlarmMapper, RMpTarge
|
||||
|
||||
private final RStatDataVDMapper rStatDataVDMapper;
|
||||
|
||||
/**
|
||||
* 电压偏差告警日统计
|
||||
* @author qijian
|
||||
* @date 2022/12/28
|
||||
* @return
|
||||
*/
|
||||
/* @Override
|
||||
@Async("asyncExecutor")
|
||||
public void alarmDetailAlarm(LineParam lineParam) {
|
||||
//初始化
|
||||
String date = lineParam.getDataDate();
|
||||
List<String> lineIds = lineParam.getLineIds();
|
||||
Integer type = lineParam.getType();
|
||||
|
||||
//获取监测点数据,进行业务操作
|
||||
if (CollUtil.isEmpty(lineIds)){
|
||||
//先获取主网的监测点信息,再获取配网的监测点信息
|
||||
List<Monitor> monitorList = monitorClient.getMonitorList(lineIds).getData();
|
||||
for (Monitor monitor : monitorList) {
|
||||
processVoltageDeviationAlarm(date,type, monitor.getLineId());
|
||||
processFrequencyDeviationAlarm(date,type, monitor.getLineId());
|
||||
processUnbalance95Alarm(date,type, monitor.getLineId());
|
||||
processVoltageHarmonicThd95Alarm(date,type, monitor.getLineId());
|
||||
processFlashingAlarm(date,type, monitor.getLineId());
|
||||
processSagTimesAlarm(date,type, monitor.getLineId());
|
||||
processInterruptTimesAlarm(date,type, monitor.getLineId());
|
||||
}
|
||||
List<DistributionMonitor> distributionMonitorList = distributionMonitorClient.distributionMonitorList(lineIds).getData();
|
||||
for (DistributionMonitor distributionMonitor : distributionMonitorList) {
|
||||
processVoltageDeviationAlarm(date,type, distributionMonitor.getMonitorId());
|
||||
processFrequencyDeviationAlarm(date,type, distributionMonitor.getMonitorId());
|
||||
processUnbalance95Alarm(date,type, distributionMonitor.getMonitorId());
|
||||
processVoltageHarmonicThd95Alarm(date,type, distributionMonitor.getMonitorId());
|
||||
processFlashingAlarm(date,type, distributionMonitor.getMonitorId());
|
||||
processSagTimesAlarm(date,type, distributionMonitor.getMonitorId());
|
||||
processInterruptTimesAlarm(date,type, distributionMonitor.getMonitorId());
|
||||
}
|
||||
} else {
|
||||
//根据监测点类型取数据
|
||||
for (String lineId : lineIds) {
|
||||
processVoltageDeviationAlarm(date,type, lineId);
|
||||
processFrequencyDeviationAlarm(date,type, lineId);
|
||||
processUnbalance95Alarm(date,type, lineId);
|
||||
processVoltageHarmonicThd95Alarm(date,type, lineId);
|
||||
processFlashingAlarm(date,type, lineId);
|
||||
processSagTimesAlarm(date,type, lineId);
|
||||
processInterruptTimesAlarm(date,type, lineId);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
// @Override
|
||||
// @Transactional(rollbackFor = {Exception.class})
|
||||
// @Async("asyncExecutor")
|
||||
// public void targetDiff(LineParam lineParam) {
|
||||
// String startTime,endTime;
|
||||
// //月处理
|
||||
// if (Objects.equals(true,lineParam.getRepairFlag())){
|
||||
// List<String> rangeDate = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime());
|
||||
// for (String item : rangeDate) {
|
||||
// log.info(item+"-->开始执行");
|
||||
// startTime = item + " 00:00:00";
|
||||
// endTime = PublicUtil.getYesterday(item) + " 00:00:00";
|
||||
// diffData(startTime,endTime,lineParam.getLineIds());
|
||||
// }
|
||||
// }
|
||||
// //日处理
|
||||
// else {
|
||||
// startTime = lineParam.getBeginTime();
|
||||
// endTime = PublicUtil.getYesterday(lineParam.getDataDate()) + " 00:00:00";
|
||||
// diffData(startTime,endTime,lineParam.getLineIds());
|
||||
// }
|
||||
// }
|
||||
|
||||
/*******************************************新算法***********************************************************************/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void targetDiff(LineParam lineParam) {
|
||||
String startTime,endTime;
|
||||
//月处理
|
||||
if (Objects.equals(true,lineParam.getRepairFlag())){
|
||||
List<String> rangeDate = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime());
|
||||
for (String item : rangeDate) {
|
||||
log.info(item+"-->开始执行");
|
||||
startTime = item + " 00:00:00";
|
||||
endTime = PublicUtil.getYesterday(item) + " 00:00:00";
|
||||
diffData(startTime,endTime,lineParam.getLineIds());
|
||||
public void targetDiff(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点稳态指标差值日表开始执行");
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
String nowDay = calculatedParam.getDataDate();
|
||||
String yesterday = PublicUtil.getYesterday(nowDay);
|
||||
//以尺寸100分片,查询数据
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds,100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpTargetDiffDPO> intersectionList = diffData(nowDay,yesterday,pendingId);
|
||||
if (!CollectionUtils.isEmpty(intersectionList)){
|
||||
this.saveOrUpdateBatchByMultiId(intersectionList);
|
||||
}
|
||||
}
|
||||
//日处理
|
||||
else {
|
||||
startTime = lineParam.getBeginTime();
|
||||
endTime = PublicUtil.getYesterday(lineParam.getDataDate()) + " 00:00:00";
|
||||
diffData(startTime,endTime,lineParam.getLineIds());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AlarmDetailDayDTO> getAvgDiffData(String time,List<String> list) {
|
||||
String endTime = PublicUtil.getLastYearDay(time);
|
||||
//计算本年的rm值
|
||||
return this.baseMapper.getAvgDiffData(endTime,time,list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成指标差值日统计
|
||||
*/
|
||||
public void diffData(String startTime, String endTime, List<String> list) {
|
||||
public List<RMpTargetDiffDPO> diffData(String startTime, String endTime, List<String> list) {
|
||||
List<RMpTargetDiffDPO> intersectionList = new ArrayList<>();
|
||||
List<RMpTargetDiffDPO> localData = rStatDataVDMapper.getDayData(startTime,list);
|
||||
List<RMpTargetDiffDPO> yesterdayData = rStatDataVDMapper.getDayData(endTime,list);
|
||||
if (!CollectionUtils.isEmpty(localData) && !CollectionUtils.isEmpty(yesterdayData)){
|
||||
//取两个集合的交集,做算法处理取绝对值
|
||||
List<RMpTargetDiffDPO> intersectionList = localData.stream().map(map->yesterdayData.stream().filter(m->Objects.equals(m.getLineId(),map.getLineId())).findFirst().map(m->{
|
||||
intersectionList = localData.stream().map(map->yesterdayData.stream().filter(m->Objects.equals(m.getLineId(),map.getLineId())).findFirst().map(m->{
|
||||
map.setVlDev(Math.abs(map.getVlDev()-m.getVlDev()));
|
||||
map.setFreqDev(Math.abs(map.getFreqDev()-m.getFreqDev()));
|
||||
map.setVUnbalance(Math.abs(map.getVUnbalance()-m.getVUnbalance()));
|
||||
@@ -162,326 +119,333 @@ public class AlarmDetailServiceImpl extends MppServiceImpl<AlarmMapper, RMpTarge
|
||||
map.setInterruptTimes(Math.abs(map.getInterruptTimes()-m.getInterruptTimes()));
|
||||
return map;
|
||||
}).orElse(null)).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(intersectionList)){
|
||||
this.saveOrUpdateBatchByMultiId(intersectionList,50);
|
||||
}
|
||||
}
|
||||
return intersectionList;
|
||||
}
|
||||
/*******************************************新算法结束***********************************************************************/
|
||||
|
||||
|
||||
@Override
|
||||
public List<AlarmDetailDayDTO> getAvgDiffData(String time,List<String> list) {
|
||||
String endTime = PublicUtil.getLastYearDay(time);
|
||||
//计算本年的rm值
|
||||
return this.baseMapper.getAvgDiffData(endTime,time,list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据(电压偏差告警日统计)
|
||||
* @author qijian
|
||||
* @date 2022/12/28
|
||||
*/
|
||||
private void processVoltageDeviationAlarm(String date, Integer type, String lineId) {
|
||||
//日期条件(取前天、昨天、今天)
|
||||
LocalDate localDate = LocalDate.parse(date);
|
||||
LocalDate yesterday = localDate.plusDays(-1);
|
||||
LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
double localMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, localDate);
|
||||
double yesterdayMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, yesterday);
|
||||
double beforeYesterdayMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, beforeYesterday);
|
||||
// /**
|
||||
// * 处理数据(电压偏差告警日统计)
|
||||
// * @author qijian
|
||||
// * @date 2022/12/28
|
||||
// */
|
||||
// private void processVoltageDeviationAlarm(String date, Integer type, String lineId) {
|
||||
// //日期条件(取前天、昨天、今天)
|
||||
// LocalDate localDate = LocalDate.parse(date);
|
||||
// LocalDate yesterday = localDate.plusDays(-1);
|
||||
// LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
// double localMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, localDate);
|
||||
// double yesterdayMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, yesterday);
|
||||
// double beforeYesterdayMax = rMpMeasurePhaseReportDPOMapper.getMaxVDeUp(lineId, beforeYesterday);
|
||||
//
|
||||
// //计算RM和CL值
|
||||
// double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
// double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
//
|
||||
// //计算RL和UCL值
|
||||
// double rl = rm * 3.3;
|
||||
// double ucl = cl + rm * 3;
|
||||
//
|
||||
// //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
// if (localMax > ucl && localMax > yesterdayMax){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsVDevWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// //如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
// if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsVDevWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
//计算RM和CL值
|
||||
double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
// /**
|
||||
// * 处理数据(频率偏差告警日统计)
|
||||
// * @author qijian
|
||||
// * @date 2022/12/29
|
||||
// */
|
||||
// private void processFrequencyDeviationAlarm(String date, Integer type, String lineId) {
|
||||
// //日期条件(取前天、昨天、今天)
|
||||
// LocalDate localDate = LocalDate.parse(date);
|
||||
// LocalDate yesterday = localDate.plusDays(-1);
|
||||
// LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
// double localMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, localDate);
|
||||
// double yesterdayMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, yesterday);
|
||||
// double beforeYesterdayMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, beforeYesterday);
|
||||
//
|
||||
// //计算RM和CL值
|
||||
// double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
// double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
//
|
||||
// //计算RL和UCL值
|
||||
// double rl = rm * 3.3;
|
||||
// double ucl = cl + rm * 3;
|
||||
//
|
||||
// //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
// if (localMax > ucl && localMax > yesterdayMax){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsFreqWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// //如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
// if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsFreqWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
//计算RL和UCL值
|
||||
double rl = rm * 3.3;
|
||||
double ucl = cl + rm * 3;
|
||||
// /**
|
||||
// * 处理数据(三相电压不平衡告警日统计)
|
||||
// * @author qijian
|
||||
// * @date 2022/12/29
|
||||
// */
|
||||
// private void processUnbalance95Alarm(String date, Integer type, String lineId) {
|
||||
// //日期条件(取前天、昨天、今天)
|
||||
// LocalDate localDate = LocalDate.parse(date);
|
||||
// LocalDate yesterday = localDate.plusDays(-1);
|
||||
// LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
// double localMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, localDate);
|
||||
// double yesterdayMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, yesterday);
|
||||
// double beforeYesterdayMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, beforeYesterday);
|
||||
//
|
||||
// //计算RM和CL值
|
||||
// double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
// double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
//
|
||||
// //计算RL和UCL值
|
||||
// double rl = rm * 3.3;
|
||||
// double ucl = cl + rm * 3;
|
||||
//
|
||||
// //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
// if (localMax > ucl && localMax > yesterdayMax){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsUnbalanceWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// //如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
// if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsUnbalanceWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
//如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
if (localMax > ucl && localMax > yesterdayMax){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsVDevWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
// /**
|
||||
// * 处理数据(谐波电压告警日统计)
|
||||
// * @author qijian
|
||||
// * @date 2022/12/29
|
||||
// */
|
||||
// private void processVoltageHarmonicThd95Alarm(String date, Integer type, String lineId) {
|
||||
// //日期条件(取前天、昨天、今天)
|
||||
// LocalDate localDate = LocalDate.parse(date);
|
||||
// LocalDate yesterday = localDate.plusDays(-1);
|
||||
// LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
// double localMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, localDate);
|
||||
// double yesterdayMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, yesterday);
|
||||
// double beforeYesterdayMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, beforeYesterday);
|
||||
//
|
||||
// //计算RM和CL值
|
||||
// double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
// double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
//
|
||||
// //计算RL和UCL值
|
||||
// double rl = rm * 3.3;
|
||||
// double ucl = cl + rm * 3;
|
||||
//
|
||||
// //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
// if (localMax > ucl && localMax > yesterdayMax){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsVWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// //如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
// if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsVWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
//如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsVDevWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// /**
|
||||
// * 处理数据(长时电压闪变告警日统计)
|
||||
// * @author qijian
|
||||
// * @date 2022/12/30
|
||||
// */
|
||||
// private void processFlashingAlarm(String date, Integer type, String lineId) {
|
||||
// //日期条件(取前天、昨天、今天)
|
||||
// LocalDate localDate = LocalDate.parse(date);
|
||||
// LocalDate yesterday = localDate.plusDays(-1);
|
||||
// LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
// double localMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, localDate);
|
||||
// double yesterdayMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, yesterday);
|
||||
// double beforeYesterdayMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, beforeYesterday);
|
||||
//
|
||||
// //计算RM和CL值
|
||||
// double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
// double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
//
|
||||
// //计算RL和UCL值
|
||||
// double rl = rm * 3.3;
|
||||
// double ucl = cl + rm * 3;
|
||||
//
|
||||
// //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
// if (localMax > ucl && localMax > yesterdayMax){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsFlickerWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// //如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
// if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsFlickerWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 处理数据(频率偏差告警日统计)
|
||||
* @author qijian
|
||||
* @date 2022/12/29
|
||||
*/
|
||||
private void processFrequencyDeviationAlarm(String date, Integer type, String lineId) {
|
||||
//日期条件(取前天、昨天、今天)
|
||||
LocalDate localDate = LocalDate.parse(date);
|
||||
LocalDate yesterday = localDate.plusDays(-1);
|
||||
LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
double localMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, localDate);
|
||||
double yesterdayMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, yesterday);
|
||||
double beforeYesterdayMax = rMpMeasureReportDPOMapper.getMaxFrequencyDeviation(lineId, beforeYesterday);
|
||||
// /**
|
||||
// * 处理数据(电压暂降告警日统计)
|
||||
// * @author qijian
|
||||
// * @date 2022/12/29
|
||||
// */
|
||||
// private void processSagTimesAlarm(String date, Integer type, String lineId) {
|
||||
// //日期条件(取前天、昨天、今天)
|
||||
// LocalDate localDate = LocalDate.parse(date);
|
||||
// LocalDate yesterday = localDate.plusDays(-1);
|
||||
// LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
// int localMax = rMpEventDetailDMapper.getSagTimes(lineId, localDate);
|
||||
// int yesterdayMax = rMpEventDetailDMapper.getSagTimes(lineId, yesterday);
|
||||
// int beforeYesterdayMax = rMpEventDetailDMapper.getSagTimes(lineId, beforeYesterday);
|
||||
//
|
||||
// //计算RM和CL值
|
||||
// double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
// double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
//
|
||||
// //计算RL和UCL值
|
||||
// double rl = rm * 3.3;
|
||||
// double ucl = cl + rm * 3;
|
||||
//
|
||||
// //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
// if (localMax > ucl && localMax > yesterdayMax){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsSagWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// //如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
// if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsSagWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
//计算RM和CL值
|
||||
double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
// /**
|
||||
// * 处理数据(电压短时中断告警日统计)
|
||||
// * @author qijian
|
||||
// * @date 2022/12/29
|
||||
// */
|
||||
// private void processInterruptTimesAlarm(String date, Integer type, String lineId) {
|
||||
// //日期条件(取前天、昨天、今天)
|
||||
// LocalDate localDate = LocalDate.parse(date);
|
||||
// LocalDate yesterday = localDate.plusDays(-1);
|
||||
// LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
// int localMax = rMpEventDetailDMapper.getInterruptTimes(lineId, localDate);
|
||||
// int yesterdayMax = rMpEventDetailDMapper.getInterruptTimes(lineId, yesterday);
|
||||
// int beforeYesterdayMax = rMpEventDetailDMapper.getInterruptTimes(lineId, beforeYesterday);
|
||||
//
|
||||
// //计算RM和CL值
|
||||
// double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
// double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
//
|
||||
// //计算RL和UCL值
|
||||
// double rl = rm * 3.3;
|
||||
// double ucl = cl + rm * 3;
|
||||
//
|
||||
// //如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
// if (localMax > ucl && localMax > yesterdayMax){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsInterruptWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// //如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
// if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
// RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
// rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
// rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
// rMpTargetWarnD.setIsInterruptWarn(1);
|
||||
// addAlarmData(rMpTargetWarnD);
|
||||
// return;
|
||||
// }
|
||||
// }
|
||||
|
||||
//计算RL和UCL值
|
||||
double rl = rm * 3.3;
|
||||
double ucl = cl + rm * 3;
|
||||
|
||||
//如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
if (localMax > ucl && localMax > yesterdayMax){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsFreqWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
|
||||
//如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsFreqWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据(三相电压不平衡告警日统计)
|
||||
* @author qijian
|
||||
* @date 2022/12/29
|
||||
*/
|
||||
private void processUnbalance95Alarm(String date, Integer type, String lineId) {
|
||||
//日期条件(取前天、昨天、今天)
|
||||
LocalDate localDate = LocalDate.parse(date);
|
||||
LocalDate yesterday = localDate.plusDays(-1);
|
||||
LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
double localMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, localDate);
|
||||
double yesterdayMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, yesterday);
|
||||
double beforeYesterdayMax = rMpMeasureReportDPOMapper.getMaxUnbalance95(lineId, beforeYesterday);
|
||||
|
||||
//计算RM和CL值
|
||||
double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
|
||||
//计算RL和UCL值
|
||||
double rl = rm * 3.3;
|
||||
double ucl = cl + rm * 3;
|
||||
|
||||
//如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
if (localMax > ucl && localMax > yesterdayMax){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsUnbalanceWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
|
||||
//如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsUnbalanceWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据(谐波电压告警日统计)
|
||||
* @author qijian
|
||||
* @date 2022/12/29
|
||||
*/
|
||||
private void processVoltageHarmonicThd95Alarm(String date, Integer type, String lineId) {
|
||||
//日期条件(取前天、昨天、今天)
|
||||
LocalDate localDate = LocalDate.parse(date);
|
||||
LocalDate yesterday = localDate.plusDays(-1);
|
||||
LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
double localMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, localDate);
|
||||
double yesterdayMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, yesterday);
|
||||
double beforeYesterdayMax = rMpHarmonicVRateReportDPOMapper.getMaxVoltageHarmonicThd95(lineId, beforeYesterday);
|
||||
|
||||
//计算RM和CL值
|
||||
double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
|
||||
//计算RL和UCL值
|
||||
double rl = rm * 3.3;
|
||||
double ucl = cl + rm * 3;
|
||||
|
||||
//如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
if (localMax > ucl && localMax > yesterdayMax){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsVWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
|
||||
//如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsVWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据(长时电压闪变告警日统计)
|
||||
* @author qijian
|
||||
* @date 2022/12/30
|
||||
*/
|
||||
private void processFlashingAlarm(String date, Integer type, String lineId) {
|
||||
//日期条件(取前天、昨天、今天)
|
||||
LocalDate localDate = LocalDate.parse(date);
|
||||
LocalDate yesterday = localDate.plusDays(-1);
|
||||
LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
double localMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, localDate);
|
||||
double yesterdayMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, yesterday);
|
||||
double beforeYesterdayMax = rMpPltReportDPOMapper.getMaxFlashing(lineId, beforeYesterday);
|
||||
|
||||
//计算RM和CL值
|
||||
double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
|
||||
//计算RL和UCL值
|
||||
double rl = rm * 3.3;
|
||||
double ucl = cl + rm * 3;
|
||||
|
||||
//如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
if (localMax > ucl && localMax > yesterdayMax){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsFlickerWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
|
||||
//如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsFlickerWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据(电压暂降告警日统计)
|
||||
* @author qijian
|
||||
* @date 2022/12/29
|
||||
*/
|
||||
private void processSagTimesAlarm(String date, Integer type, String lineId) {
|
||||
//日期条件(取前天、昨天、今天)
|
||||
LocalDate localDate = LocalDate.parse(date);
|
||||
LocalDate yesterday = localDate.plusDays(-1);
|
||||
LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
int localMax = rMpEventDetailDMapper.getSagTimes(lineId, localDate);
|
||||
int yesterdayMax = rMpEventDetailDMapper.getSagTimes(lineId, yesterday);
|
||||
int beforeYesterdayMax = rMpEventDetailDMapper.getSagTimes(lineId, beforeYesterday);
|
||||
|
||||
//计算RM和CL值
|
||||
double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
|
||||
//计算RL和UCL值
|
||||
double rl = rm * 3.3;
|
||||
double ucl = cl + rm * 3;
|
||||
|
||||
//如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
if (localMax > ucl && localMax > yesterdayMax){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsSagWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
|
||||
//如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsSagWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理数据(电压短时中断告警日统计)
|
||||
* @author qijian
|
||||
* @date 2022/12/29
|
||||
*/
|
||||
private void processInterruptTimesAlarm(String date, Integer type, String lineId) {
|
||||
//日期条件(取前天、昨天、今天)
|
||||
LocalDate localDate = LocalDate.parse(date);
|
||||
LocalDate yesterday = localDate.plusDays(-1);
|
||||
LocalDate beforeYesterday = yesterday.plusDays(-1);
|
||||
int localMax = rMpEventDetailDMapper.getInterruptTimes(lineId, localDate);
|
||||
int yesterdayMax = rMpEventDetailDMapper.getInterruptTimes(lineId, yesterday);
|
||||
int beforeYesterdayMax = rMpEventDetailDMapper.getInterruptTimes(lineId, beforeYesterday);
|
||||
|
||||
//计算RM和CL值
|
||||
double rm = ((localMax - yesterdayMax) + (yesterdayMax - beforeYesterdayMax)) / 2;
|
||||
double cl = (localMax + yesterdayMax + beforeYesterdayMax) / 3;
|
||||
|
||||
//计算RL和UCL值
|
||||
double rl = rm * 3.3;
|
||||
double ucl = cl + rm * 3;
|
||||
|
||||
//如果本日最大值>UCL 且 本日最大值>昨日最大值,则告警
|
||||
if (localMax > ucl && localMax > yesterdayMax){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsInterruptWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
|
||||
//如果本日>昨日>前日,且前日的值超过RL值,则告警
|
||||
if (localMax > yesterdayMax && yesterdayMax > beforeYesterdayMax && beforeYesterdayMax > rl){
|
||||
RMpTargetWarnDPO rMpTargetWarnD = new RMpTargetWarnDPO();
|
||||
rMpTargetWarnD.setMeasurementPointId(lineId);
|
||||
rMpTargetWarnD.setDataDate(DateUtil.parse(date));
|
||||
rMpTargetWarnD.setIsInterruptWarn(1);
|
||||
addAlarmData(rMpTargetWarnD);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 存入数据库
|
||||
* @author qijian
|
||||
* @date 2022/12/28
|
||||
*/
|
||||
private void addAlarmData(RMpTargetWarnDPO rMpTargetWarnD) {
|
||||
LambdaQueryWrapper<RMpTargetWarnDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(RMpTargetWarnDPO::getMeasurementPointId, rMpTargetWarnD.getMeasurementPointId()).eq(RMpTargetWarnDPO::getDataDate, rMpTargetWarnD.getDataDate());
|
||||
RMpTargetWarnDPO rMpTargetWarnDOne = rMpTargetWarnDMapper.selectOne(lambdaQueryWrapper);
|
||||
if (Objects.nonNull(rMpTargetWarnDOne)) {
|
||||
rMpTargetWarnDMapper.update(rMpTargetWarnD, lambdaQueryWrapper);
|
||||
} else {
|
||||
rMpTargetWarnDMapper.insert(rMpTargetWarnD);
|
||||
}
|
||||
}
|
||||
// /**
|
||||
// * 存入数据库
|
||||
// * @author qijian
|
||||
// * @date 2022/12/28
|
||||
// */
|
||||
// private void addAlarmData(RMpTargetWarnDPO rMpTargetWarnD) {
|
||||
// LambdaQueryWrapper<RMpTargetWarnDPO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// lambdaQueryWrapper.eq(RMpTargetWarnDPO::getMeasurementPointId, rMpTargetWarnD.getMeasurementPointId()).eq(RMpTargetWarnDPO::getDataDate, rMpTargetWarnD.getDataDate());
|
||||
// RMpTargetWarnDPO rMpTargetWarnDOne = rMpTargetWarnDMapper.selectOne(lambdaQueryWrapper);
|
||||
// if (Objects.nonNull(rMpTargetWarnDOne)) {
|
||||
// rMpTargetWarnDMapper.update(rMpTargetWarnD, lambdaQueryWrapper);
|
||||
// } else {
|
||||
// rMpTargetWarnDMapper.insert(rMpTargetWarnD);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.influxdb.dto.QueryResult;
|
||||
import org.influxdb.impl.InfluxDBResultMapper;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDate;
|
||||
@@ -96,6 +97,7 @@ public class LimitTargetServiceImpl extends MppServiceImpl<RStatLimitTargetDMapp
|
||||
|
||||
/***********************************************新算法*******************************************************************/
|
||||
@Override
|
||||
@Async("asyncExecutor")
|
||||
public void limitTargetData(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"r_stat_limit_target_d开始执行=======》");
|
||||
List<RStatLimitTargetDPO> list = new ArrayList<>();
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.common.pojo.constant.PatternRegex;
|
||||
import com.njcn.common.utils.NjcnDateUtils;
|
||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService;
|
||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -30,24 +33,21 @@ import java.util.Objects;
|
||||
@Service
|
||||
public class RMpPartHarmonicDetailDServiceImpl extends MppServiceImpl<RMpPartHarmonicDetailDMapper, RMpPartHarmonicDetailD> implements IRMpPartHarmonicDetailDService {
|
||||
|
||||
/***********************************************新算法********************************************************************/
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void insertHarmonicDetailDayOne(LineParam lineParam) {
|
||||
public void insertHarmonicDetailDayOne(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点稳态指标超标明细日表1开始执行");
|
||||
List<RMpPartHarmonicDetailD> result = new ArrayList<>();
|
||||
if (Objects.equals(lineParam.getType(),5)){
|
||||
|
||||
System.out.println(lineParam.getLineIds());
|
||||
result = getData(lineParam.getBeginTime(),lineParam.getLineIds());
|
||||
} else if (Objects.equals(lineParam.getType(),3)){
|
||||
//补招
|
||||
List<String> rangeDate = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime());
|
||||
for (String item : rangeDate) {
|
||||
result.addAll(getData(item,lineParam.getLineIds()));
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
//以尺寸100分片,查询数据
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds,100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpPartHarmonicDetailD> list = getData(calculatedParam.getDataDate(),pendingId);
|
||||
if (CollectionUtil.isNotEmpty(list)){
|
||||
this.saveOrUpdateBatchByMultiId(list);
|
||||
}
|
||||
}
|
||||
this.saveOrUpdateBatchByMultiId(result,50);
|
||||
}
|
||||
|
||||
public List<RMpPartHarmonicDetailD> getData(String time,List<String> lineList) {
|
||||
@@ -63,4 +63,6 @@ public class RMpPartHarmonicDetailDServiceImpl extends MppServiceImpl<RMpPartHar
|
||||
}
|
||||
return list;
|
||||
}
|
||||
/***********************************************新算法结束********************************************************************/
|
||||
|
||||
}
|
||||
|
||||
@@ -1,20 +1,21 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||
|
||||
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailMService;
|
||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -31,17 +32,17 @@ public class RMpPartHarmonicDetailMServiceImpl extends MppServiceImpl<RMpPartHar
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void insertHarmonicDetailMonthOne(LineParam lineParam) {
|
||||
public void insertHarmonicDetailMonthOne(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点稳态指标超标明细月表1开始执行");
|
||||
|
||||
List<RMpPartHarmonicDetailM> list = this.baseMapper.getHarmonicDetailMonthOne(lineParam.getBeginTime(),lineParam.getEndTime(),lineParam.getLineIds());
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
LocalDate date = LocalDate.parse(lineParam.getBeginTime(), df);
|
||||
list.forEach(item->{
|
||||
item.setDataDate(date);
|
||||
});
|
||||
this.saveOrUpdateBatchByMultiId(list,50);
|
||||
DateTime beginMonth = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
DateTime endMonth = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds, 100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpPartHarmonicDetailM> list = this.baseMapper.getHarmonicDetailMonthOne(DateUtil.format(beginMonth, DatePattern.NORM_DATE_PATTERN),beginMonth,endMonth,pendingId);
|
||||
if (CollectionUtil.isNotEmpty(list)){
|
||||
this.saveOrUpdateBatchByMultiId(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +1,19 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.common.utils.NjcnDateUtils;
|
||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
|
||||
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.IRMpSurplusHarmonicDetailDService;
|
||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 类的介绍:
|
||||
@@ -35,17 +29,17 @@ public class RMpSurplusHarmonicDetailDServiceImpl extends MppServiceImpl<RMpSurp
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void insertHarmonicDetailDayTwo(LineParam lineParam) {
|
||||
public void insertHarmonicDetailDayTwo(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点稳态指标超标明细日表2开始执行");
|
||||
List<RMpSurplusHarmonicDetailD> result = new ArrayList<>();
|
||||
if (Objects.equals(lineParam.getType(),5)){
|
||||
result = this.baseMapper.getHarmonicDetailDayTwo(lineParam.getBeginTime(),lineParam.getLineIds());
|
||||
} else if (lineParam.getRepairFlag()){
|
||||
List<String> rangeDate = NjcnDateUtils.findEveryDay(lineParam.getBeginTime(),lineParam.getEndTime());
|
||||
for (String item : rangeDate) {
|
||||
result.addAll(this.baseMapper.getHarmonicDetailDayTwo(item,lineParam.getLineIds()));
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
//以尺寸100分片,查询数据
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds,100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpSurplusHarmonicDetailD> result = this.baseMapper.getHarmonicDetailDayTwo(calculatedParam.getDataDate(),pendingId);
|
||||
if (CollectionUtil.isNotEmpty(result)){
|
||||
this.saveOrUpdateBatchByMultiId(result);
|
||||
}
|
||||
}
|
||||
this.saveOrUpdateBatchByMultiId(result,50);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,25 +1,22 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||
|
||||
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM;
|
||||
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.IRMpSurplusHarmonicDetailMService;
|
||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 类的介绍:
|
||||
@@ -35,20 +32,17 @@ public class RMpSurplusHarmonicDetailMServiceImpl extends MppServiceImpl<RMpSurp
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void insertHarmonicDetailMonthTwo(LineParam lineParam) {
|
||||
public void insertHarmonicDetailMonthTwo(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点稳态指标超标明细月表2开始执行");
|
||||
//int year = Integer.parseInt(lineParam.getDataDate().split("-")[0]);
|
||||
//int month = Integer.parseInt(lineParam.getDataDate().split("-")[1]);
|
||||
//String startTime = PublicUtil.getFisrtDayOfMonth(year,month);
|
||||
//String endTime = PublicUtil.getLastDayOfMonth(year,month);
|
||||
List<RMpSurplusHarmonicDetailM> list = this.baseMapper.getHarmonicDetailMonthTwo(lineParam.getBeginTime(),lineParam.getEndTime(),lineParam.getLineIds());
|
||||
if (!CollectionUtils.isEmpty(list)){
|
||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
LocalDate date = LocalDate.parse(lineParam.getBeginTime(), df);
|
||||
list.forEach(item->{
|
||||
item.setDataDate(date);
|
||||
});
|
||||
this.saveOrUpdateBatchByMultiId(list,50);
|
||||
DateTime beginMonth = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
DateTime endMonth = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds, 100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpSurplusHarmonicDetailM> list = this.baseMapper.getHarmonicDetailMonthTwo(DateUtil.format(beginMonth, DatePattern.NORM_DATE_PATTERN),beginMonth,endMonth,pendingId);
|
||||
if (CollectionUtil.isNotEmpty(list)){
|
||||
this.saveOrUpdateBatchByMultiId(list);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,20 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.Impl.line;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
|
||||
import com.njcn.harmonic.pojo.po.RMpVThd;
|
||||
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpVThdMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.harmonic.service.mysql.line.IRMpVThdService;
|
||||
import com.njcn.prepare.harmonic.utils.PublicUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 类的介绍:
|
||||
@@ -33,19 +30,16 @@ public class RMpVThdServiceImpl extends MppServiceImpl<RMpVThdMapper, RMpVThd> i
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
@Async("asyncExecutor")
|
||||
public void insertHarmonicVThdDay(LineParam lineParam) {
|
||||
public void insertHarmonicVThdDay(CalculatedParam calculatedParam) {
|
||||
log.info(LocalDateTime.now()+"===>监测点谐波畸变率开始执行");
|
||||
List<RMpVThd> result = new ArrayList<>();
|
||||
if (Objects.equals(lineParam.getType(),5)){
|
||||
result = this.baseMapper.getVThdData(lineParam.getDataDate(),lineParam.getLineIds());
|
||||
} else if (Objects.equals(lineParam.getType(),3)){
|
||||
int year = Integer.parseInt(lineParam.getDataDate().split("-")[0]);
|
||||
int month = Integer.parseInt(lineParam.getDataDate().split("-")[1]);
|
||||
List<String> dayList = PublicUtil.getDayByMonth(year,month);
|
||||
for (String item : dayList) {
|
||||
result.addAll(this.baseMapper.getVThdData(item,lineParam.getLineIds()));
|
||||
List<String> lineIds = calculatedParam.getIdList();
|
||||
//以尺寸100分片,查询数据
|
||||
List<List<String>> pendingIds = ListUtils.partition(lineIds,100);
|
||||
for (List<String> pendingId : pendingIds) {
|
||||
List<RMpVThd> result = this.baseMapper.getVThdData(calculatedParam.getDataDate(),pendingId);
|
||||
if (CollectionUtil.isNotEmpty(result)){
|
||||
this.saveOrUpdateBatchByMultiId(result);
|
||||
}
|
||||
}
|
||||
this.saveOrUpdateBatchByMultiId(result,50);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.area;
|
||||
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
|
||||
/**
|
||||
@@ -12,10 +13,16 @@ import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
*/
|
||||
public interface IRMpMonitorAlarmCountMService {
|
||||
|
||||
// /**
|
||||
// * @Description: 监测点指标告警月统计
|
||||
// * @author: xuyang
|
||||
// */
|
||||
// void alarmMonth(LineParam lineParam);
|
||||
|
||||
/**
|
||||
* @Description: 监测点指标告警月统计
|
||||
* @author: xuyang
|
||||
*/
|
||||
void alarmMonth(LineParam lineParam);
|
||||
void alarmMonth(CalculatedParam calculatedParam);
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.njcn.prepare.harmonic.service.mysql.area;
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.harmonic.pojo.dto.RMpMonitorAlarmCountMDTO;
|
||||
import com.njcn.harmonic.pojo.po.RMpTargetWarnDPO;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
|
||||
import java.util.List;
|
||||
@@ -27,15 +28,21 @@ public interface RMpTargetWarnDService extends IMppService<RMpTargetWarnDPO> {
|
||||
*/
|
||||
Integer queryHarmonicMeasurementAccrued(List<String> monitorIdList, String dataDate);
|
||||
|
||||
// /**
|
||||
// * @Description: 监测点指标告警日统计
|
||||
// * @author: xuyang
|
||||
// */
|
||||
// void alarmDay(LineParam lineParam);
|
||||
|
||||
/**
|
||||
* @Description: 监测点指标告警日统计
|
||||
* @author: xuyang
|
||||
*/
|
||||
void alarmDay(LineParam lineParam);
|
||||
void alarmDay(CalculatedParam calculatedParam);
|
||||
|
||||
/**
|
||||
* @Description: 监测点指标告警月统计
|
||||
* @author: xuyang
|
||||
*/
|
||||
List<RMpMonitorAlarmCountMDTO> getDate(LineParam lineParam);
|
||||
// /**
|
||||
// * @Description: 监测点指标告警月统计
|
||||
// * @author: xuyang
|
||||
// */
|
||||
// List<RMpMonitorAlarmCountMDTO> getDate(LineParam lineParam);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
import com.njcn.prepare.harmonic.pojo.dto.AlarmDetailDayDTO;
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
|
||||
@@ -14,15 +15,17 @@ import java.util.List;
|
||||
*/
|
||||
public interface AlarmDetailService {
|
||||
|
||||
/**
|
||||
* 监测点指标告警日统计
|
||||
* @author qijian
|
||||
* @date 2022/12/28
|
||||
* @return
|
||||
*/
|
||||
//void alarmDetailAlarm(LineParam lineParam);
|
||||
|
||||
void targetDiff(LineParam lineParam);
|
||||
// void targetDiff(LineParam lineParam);
|
||||
|
||||
/**
|
||||
* 监测点指标告警日统计
|
||||
* @author xuyang
|
||||
* @date 2023/11/13
|
||||
* @return
|
||||
*/
|
||||
void targetDiff(CalculatedParam calculatedParam);
|
||||
|
||||
List<AlarmDetailDayDTO> getAvgDiffData(String time,List<String> list);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
@@ -9,9 +9,8 @@ public interface IRMpPartHarmonicDetailDService {
|
||||
|
||||
/**
|
||||
* 计算监测点稳态指标超标明细日表1数据
|
||||
* @param lineParam
|
||||
* @param calculatedParam
|
||||
*/
|
||||
void insertHarmonicDetailDayOne(LineParam lineParam);
|
||||
|
||||
void insertHarmonicDetailDayOne(CalculatedParam calculatedParam);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
|
||||
public interface IRMpPartHarmonicDetailMService {
|
||||
|
||||
/**
|
||||
* 计算监测点稳态指标超标明细月表1数据
|
||||
* @param lineParam
|
||||
* @param calculatedParam
|
||||
*/
|
||||
void insertHarmonicDetailMonthOne(LineParam lineParam);
|
||||
void insertHarmonicDetailMonthOne(CalculatedParam calculatedParam);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
@@ -9,8 +9,8 @@ public interface IRMpSurplusHarmonicDetailDService {
|
||||
|
||||
/**
|
||||
* 计算监测点稳态指标超标明细日表2数据
|
||||
* @param lineParam
|
||||
* @param calculatedParam
|
||||
*/
|
||||
void insertHarmonicDetailDayTwo(LineParam lineParam);
|
||||
void insertHarmonicDetailDayTwo(CalculatedParam calculatedParam);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
|
||||
public interface IRMpSurplusHarmonicDetailMService {
|
||||
|
||||
/**
|
||||
* 计算监测点稳态指标超标明细月表2数据
|
||||
* @param lineParam
|
||||
* @param calculatedParam
|
||||
*/
|
||||
void insertHarmonicDetailMonthTwo(LineParam lineParam);
|
||||
void insertHarmonicDetailMonthTwo(CalculatedParam calculatedParam);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.line;
|
||||
|
||||
import com.njcn.prepare.harmonic.pojo.param.LineParam;
|
||||
import com.njcn.prepare.bo.CalculatedParam;
|
||||
|
||||
public interface IRMpVThdService {
|
||||
|
||||
void insertHarmonicVThdDay(LineParam lineParam);
|
||||
/**
|
||||
* 计算谐波畸变率表
|
||||
* @param calculatedParam
|
||||
*/
|
||||
void insertHarmonicVThdDay(CalculatedParam calculatedParam);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user