This commit is contained in:
xy
2024-06-20 11:34:01 +08:00
parent b91970d5be
commit b501b91bc4

View File

@@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pq.api.DeptLineFeignClient;
import com.njcn.device.pq.pojo.po.DeptLine;
import com.njcn.harmonic.api.RStatLimitRateDClient;
import com.njcn.harmonic.pojo.param.RStatLimitQueryParam;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
@@ -52,6 +54,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
private final RStatLimitRateDClient limitRateDClient;
private final CommTerminalGeneralClient commTerminalGeneralClient;
private final IWarningLeafletService warningLeafletService;
private final DeptLineFeignClient deptLineFeignClient;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -68,7 +71,8 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
List<String> lineList = commTerminalGeneralClient.getRunMonitorIds().getData();
RStatLimitQueryParam param = new RStatLimitQueryParam();
String date = DateUtil.format(LocalDateTime.now().minusDays(1), DatePattern.NORM_DATE_PATTERN);
param.setDate(date);
// param.setDate(date);
param.setDate("2024-01-23");
param.setIds(lineList);
//获取监测点越限信息
List<RStatLimitTargetDPO> limitTarget = limitRateDClient.monitorIdsGetLimitTargetInfo(param).getData();
@@ -76,8 +80,10 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
for (RStatLimitTargetDPO item : limitTarget) {
List<LineWarning> lineWarnings = lineWarningMap.get(item.getLineId());
DeptLine deptLine = deptLineFeignClient.getLineByLineIds(item.getLineId()).getData();
String deptId = Objects.isNull(deptLine)?null:deptLine.getId();
if (CollUtil.isEmpty(lineWarnings)) {
addList.addAll(getTargetInfo(item.getLineId(),targetMap,limitMap));
addList.addAll(getTargetInfo(item.getLineId(),targetMap,limitMap,deptId));
} else {
//1.查询各指标越限时间不超过10天超标则每天递增不超标则清零
//2.越限时间超过10天未超过15天超标则每天递增不超标保存当前记录新增一条记录
@@ -85,25 +91,25 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
//4.发过告警单,则重新生成一条数据
RStatLimitTargetDPO dpo = limitMap.get(item.getLineId());
//频率偏差
targetInfo(lineWarnings,targetMap,DicDataEnum.FREQUENCY_DEV.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.FREQUENCY_DEV.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//电压偏差
targetInfo(lineWarnings,targetMap,DicDataEnum.VOLTAGE_DEV.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.VOLTAGE_DEV.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//长时闪变
targetInfo(lineWarnings,targetMap,DicDataEnum.FLICKER.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.FLICKER.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//谐波电压
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//谐波电流
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.HARMONIC_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//间谐波电压
targetInfo(lineWarnings,targetMap,DicDataEnum.INTERHARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.INTERHARMONIC_VOLTAGE.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//负序电压不平衡度
targetInfo(lineWarnings,targetMap,DicDataEnum.phase_Voltage.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.phase_Voltage.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//负序电流
targetInfo(lineWarnings,targetMap,DicDataEnum.NEG_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.NEG_CURRENT.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//电压总谐波畸变率
targetInfo(lineWarnings,targetMap,DicDataEnum.THD_V.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.THD_V.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
//总稳态指标
targetInfo(lineWarnings,targetMap,DicDataEnum.TOTAL_INDICATOR.getCode(),dpo,item.getLineId(),addList,updateList);
targetInfo(lineWarnings,targetMap,DicDataEnum.TOTAL_INDICATOR.getCode(),dpo,item.getLineId(),addList,updateList,deptId);
}
}
this.saveBatch(addList);
@@ -155,11 +161,12 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
/**
* 获取监测点各指标的超标天数
*/
public List<LineWarning> getTargetInfo(String lineId, Map<String, DictData> map, Map<String, RStatLimitTargetDPO> limitMap) {
public List<LineWarning> getTargetInfo(String lineId, Map<String, DictData> map, Map<String, RStatLimitTargetDPO> limitMap,String deptId) {
List<LineWarning> result = new ArrayList<>();
map.forEach((k,v)->{
LineWarning lineWarning = new LineWarning();
lineWarning.setAlarmTime(LocalDate.now().minusDays(1));
lineWarning.setDeptId(deptId);
lineWarning.setLineId(lineId);
lineWarning.setTargetType(v.getId());
lineWarning.setOverLimitDay(overDay(k,limitMap.get(lineId)));
@@ -273,7 +280,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
/**
* 各指标计算 系统默认阈值:预警单10天 告警单15天
*/
public void targetInfo(List<LineWarning> lineWarnings, Map<String, DictData> targetMap, String target, RStatLimitTargetDPO dpo, String item, List<LineWarning> addList, List<LineWarning> updateList) {
public void targetInfo(List<LineWarning> lineWarnings, Map<String, DictData> targetMap, String target, RStatLimitTargetDPO dpo, String item, List<LineWarning> addList, List<LineWarning> updateList, String deptId) {
List<LineWarning> l1 = lineWarnings.stream().filter(o->Objects.equals(o.getTargetType(),targetMap.get(target).getId())).collect(Collectors.toList());
//获取最新的一条记录
LineWarning line = l1.stream().max(Comparator.comparing(LineWarning::getAlarmTime)).orElse(null);
@@ -288,6 +295,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
} else {
LineWarning lineWarning = new LineWarning();
lineWarning.setAlarmTime(LocalDate.now().minusDays(1));
lineWarning.setDeptId(deptId);
lineWarning.setLineId(item);
lineWarning.setTargetType(targetMap.get(target).getId());
lineWarning.setOverLimitDay(0);
@@ -309,6 +317,7 @@ public class LineWarningServiceImpl extends MppServiceImpl<LineWarningMapper, Li
if (line.getInitiateWarningFlag() == 1 && line.getStep() == 2) {
LineWarning lineWarning = new LineWarning();
lineWarning.setAlarmTime(LocalDate.now().minusDays(1));
lineWarning.setDeptId(deptId);
lineWarning.setLineId(item);
lineWarning.setTargetType(targetMap.get(target).getId());
lineWarning.setOverLimitDay(result);