算法改造

This commit is contained in:
2023-11-14 10:51:33 +08:00
parent decc453006
commit e53b306464
32 changed files with 814 additions and 620 deletions

View File

@@ -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:是)

View File

@@ -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;
/**
* 谐波畸变率

View File

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

View File

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

View File

@@ -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结束***********************************************************/

View File

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

View File

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

View File

@@ -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);

View File

@@ -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>

View File

@@ -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>

View File

@@ -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);

View File

@@ -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);

View File

@@ -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,

View File

@@ -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,

View File

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

View File

@@ -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());
// }
}

View File

@@ -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);
// }
// }
}

View File

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

View File

@@ -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<>();

View File

@@ -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;
}
/***********************************************新算法结束********************************************************************/
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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