From 2de94be32b0f1a3d7dd8f02eb299910de1912eb8 Mon Sep 17 00:00:00 2001
From: cdf <857448963@qq.com>
Date: Tue, 19 Mar 2024 11:38:02 +0800
Subject: [PATCH] =?UTF-8?q?pms=E6=8A=80=E6=9C=AF=E7=9B=91=E7=9D=A3?=
=?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../biz/pojo/dto/CommMonitorInfoDTO.java | 2 +
.../impl/CommTerminalServiceImpl.java | 2 +-
.../Impl/line/ThsOverRunLogServiceImpl.java | 70 ---
.../Impl/line/ThsSuperviseServiceImpl.java | 468 ------------------
.../mysql/line/ThsOverRunLogService.java | 40 --
.../mysql/line/ThsSuperviseService.java | 99 ----
.../process/api/ThsSuperviseFeignClient.java | 30 ++
.../fallback/ThsSuperviseFallbackFactory.java | 44 ++
.../process/pojo/dto/ThsStrategyBindDTO.java | 42 ++
.../process/pojo/param/SuperviseParam.java | 3 +
.../po/RMpOnlineMonitorOverproofProblem.java | 2 +-
.../alarm/RMpAlarmDetailDController.java | 47 ++
.../service/alarm/RMpAlarmDetailDService.java | 19 +
.../impl/RMpAlarmDetailDServiceImpl.java | 82 +++
.../service/impl/ThsSuperviseServiceImpl.java | 283 ++++++-----
.../system/timer/tasks/ThsSuperviseTask.java | 46 ++
16 files changed, 456 insertions(+), 823 deletions(-)
delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsOverRunLogServiceImpl.java
delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java
delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsOverRunLogService.java
delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java
create mode 100644 pqs-process/process-api/src/main/java/com/njcn/process/api/ThsSuperviseFeignClient.java
create mode 100644 pqs-process/process-api/src/main/java/com/njcn/process/api/fallback/ThsSuperviseFallbackFactory.java
create mode 100644 pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/ThsStrategyBindDTO.java
create mode 100644 pqs-process/process-boot/src/main/java/com/njcn/process/controller/alarm/RMpAlarmDetailDController.java
create mode 100644 pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/RMpAlarmDetailDService.java
create mode 100644 pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/impl/RMpAlarmDetailDServiceImpl.java
create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/ThsSuperviseTask.java
diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/CommMonitorInfoDTO.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/CommMonitorInfoDTO.java
index c0edffd4c..a0e517d91 100644
--- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/CommMonitorInfoDTO.java
+++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/CommMonitorInfoDTO.java
@@ -23,4 +23,6 @@ public class CommMonitorInfoDTO {
private String powerStationName;
+ private String objTagId;
+
}
diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java
index 9edbb944c..84868711f 100644
--- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java
+++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java
@@ -808,7 +808,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
.eq(Monitor::getMonitorState,dictData.getId())
.in(Monitor::getMonitorTag,tagList)
.or(CollectionUtil.isNotEmpty(monitorIds),item->item.in(CollectionUtil.isNotEmpty(monitorIds),Monitor::getId,monitorIds)));
- monitorList.forEach(item->result.add(CommMonitorInfoDTO.builder().id(item.getId()).name(item.getName()).powerStationName(item.getPowerrName()).build()));
+ monitorList.forEach(item->result.add(CommMonitorInfoDTO.builder().id(item.getId()).name(item.getName()).powerStationName(item.getPowerrName()).objTagId(item.getMonitorTag()).build()));
return result;
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsOverRunLogServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsOverRunLogServiceImpl.java
deleted file mode 100644
index f205be4e0..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsOverRunLogServiceImpl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-//package com.njcn.prepare.harmonic.service.mysql.Impl.line;
-//
-//import cn.hutool.core.collection.CollectionUtil;
-//import com.baomidou.dynamic.datasource.annotation.DS;
-//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-//import com.njcn.common.pojo.enums.response.CommonResponseEnum;
-//import com.njcn.common.pojo.response.HttpResult;
-//import com.njcn.common.utils.HttpResultUtil;
-//import com.njcn.prepare.harmonic.mapper.mysql.line.ThsOverRunLogMapper;
-//import com.njcn.prepare.harmonic.mapper.mysql.line.ThsSuperviseMapper;
-//import com.njcn.process.pojo.param.SuperviseParam;
-//import com.njcn.process.pojo.po.ThsOverRunLog;
-//import com.njcn.process.pojo.po.ThsSupervise;
-//import com.njcn.prepare.harmonic.service.mysql.line.ThsOverRunLogService;
-//import lombok.extern.slf4j.Slf4j;
-//import org.springframework.beans.factory.annotation.Autowired;
-//import org.springframework.stereotype.Service;
-//import org.springframework.transaction.annotation.Transactional;
-//
-//import java.util.List;
-//import java.util.stream.Collectors;
-//
-///**
-// *
-// * 告警/预警监测点列表 服务实现类
-// *
-// *
-// * @author lxp
-// * @since 2023-03-16
-// */
-//@Service
-//@Slf4j
-//@DS("process")
-//public class ThsOverRunLogServiceImpl extends ServiceImpl implements ThsOverRunLogService {
-// @Autowired
-// private ThsOverRunLogMapper thsOverRunLogMapper;
-// @Autowired
-// private ThsSuperviseMapper thsSuperviseMapper;
-//
-// @Override
-// @Transactional(rollbackFor = Exception.class)
-// public void saveOverRunLog(SuperviseParam superviseParam) {
-// this.saveBatch(superviseParam.getOverRunLog());
-// }
-//
-// @Override
-// public SuperviceRunLogVo superviseDetail(String supIndex) {
-// ThsSupervise thsSupervise = thsSuperviseMapper.selectOne(new LambdaQueryWrapper().eq(ThsSupervise::getSupIndex, supIndex));
-// List thsOverRunLogs = thsOverRunLogMapper.selectList(new LambdaQueryWrapper().eq(ThsOverRunLog::getSupIndex, supIndex));
-// SuperviceRunLogVo superviceRunLogVo = new SuperviceRunLogVo();
-// superviceRunLogVo.setThsSupervise(thsSupervise);
-// superviceRunLogVo.setOverRunLog(thsOverRunLogs);
-// return superviceRunLogVo;
-// }
-//
-// @Override
-// public HttpResult updateSupervise(SuperviseParam superviseParam) {
-// List overRunLog = superviseParam.getOverRunLog();
-// if (CollectionUtil.isEmpty(overRunLog)) {
-// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "监测点不能为空", null);
-// }
-// List thsOverRunLogs = thsOverRunLogMapper.selectList(new LambdaQueryWrapper().eq(ThsOverRunLog::getSupIndex, superviseParam.getSupIndex()));
-// List saveIds = superviseParam.getOverRunLog().stream().map(ThsOverRunLog::getId).collect(Collectors.toList());
-// List allIds = thsOverRunLogs.stream().map(ThsOverRunLog::getId).collect(Collectors.toList());
-// allIds.removeAll(saveIds);
-// thsOverRunLogMapper.delete(new LambdaQueryWrapper().in(ThsOverRunLog::getId, allIds));
-// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, null);
-// }
-//}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java
deleted file mode 100644
index db79ea96e..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/ThsSuperviseServiceImpl.java
+++ /dev/null
@@ -1,468 +0,0 @@
-//package com.njcn.prepare.harmonic.service.mysql.Impl.line;
-//
-//import cn.hutool.core.collection.CollectionUtil;
-//import cn.hutool.core.date.DateUtil;
-//import cn.hutool.core.util.IdUtil;
-//import com.alibaba.fastjson.JSON;
-//import com.baomidou.dynamic.datasource.annotation.DS;
-//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-//import com.njcn.common.pojo.enums.response.CommonResponseEnum;
-//import com.njcn.common.pojo.response.HttpResult;
-//import com.njcn.common.utils.HttpResultUtil;
-//import com.njcn.device.pms.pojo.po.Monitor;
-//import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
-//import com.njcn.harmonic.pojo.vo.SourceSteadyIndicator;
-//import com.njcn.harmonic.pojo.vo.ThsStrategyVo;
-//import com.njcn.oss.utils.FileStorageUtil;
-//import com.njcn.prepare.enums.*;
-//import com.njcn.prepare.harmonic.mapper.mysql.line.*;
-//import com.njcn.process.pojo.param.SuperviseParam;
-//import com.njcn.process.pojo.po.ThsOverRunLog;
-//import com.njcn.process.pojo.po.ThsSupervise;
-//import com.njcn.prepare.harmonic.pojo.vo.SuperviceRunLogVo;
-//import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService;
-//import com.njcn.prepare.harmonic.service.mysql.line.ThsSuperviseService;
-//import com.njcn.process.annotaion.HarCurrent;
-//import com.njcn.process.annotaion.HarVoltage;
-//import com.njcn.process.annotaion.InterharVoltage;
-//import com.njcn.process.api.FlowableDefineFeignClient;
-//import com.njcn.process.pojo.po.ThsWarnStrategyAss;
-//import com.njcn.system.api.DicDataFeignClient;
-//import com.njcn.system.pojo.po.DictData;
-//import com.njcn.user.api.DeptFeignClient;
-//import com.njcn.user.pojo.po.Dept;
-//import com.njcn.web.utils.RequestUtil;
-//import lombok.RequiredArgsConstructor;
-//import lombok.extern.slf4j.Slf4j;
-//import org.apache.commons.collections.map.HashedMap;
-//import org.apache.commons.lang.StringUtils;
-//import org.springframework.scheduling.annotation.Async;
-//import org.springframework.stereotype.Service;
-//import org.springframework.transaction.annotation.Transactional;
-//
-//import java.lang.reflect.Field;
-//import java.time.Instant;
-//import java.time.LocalDate;
-//import java.time.LocalTime;
-//import java.time.ZoneId;
-//import java.util.*;
-//import java.util.stream.Collectors;
-//
-///**
-// *
-// * 服务实现类
-// *
-// *
-// * @author lxp
-// * @since 2023-03-16
-// */
-//@Service
-//@Slf4j
-//@RequiredArgsConstructor
-//public class ThsSuperviseServiceImpl extends ServiceImpl implements ThsSuperviseService {
-//
-//
-//
-//
-// private final ThsWarnStrategyMapper thsWarnStrategyMapper;
-//
-// private final ThsWarnStrategyAssMapper thsWarnStrategyAssMapper;
-//
-// private final PmsMonitorMapper pmsMonitorMapper;
-//
-// private final IRStatLimitRateDService rateDService;
-//
-// private final DicDataFeignClient dicDataFeignClient;
-//
-// private final ThsSuperviseMapper thsSuperviseMapper;
-//
-// private final ThsOverRunLogMapper thsOverRunLogMapper;
-//
-// private final DeptFeignClient deptFeignClient;
-//
-// private final FileStorageUtil fileStorageUtil;
-// private static final String DESCRIPTION = "description";
-//
-// private final FlowableDefineFeignClient flowableDefineFeignClient;
-//
-//
-// @Override
-// @Async("asyncExecutor")
-// public void creatSupervise(SuperviseParam superviseParam) {
-// this.initSupervise(superviseParam);
-// }
-//
-// @Override
-// public HttpResult initSupervise(SuperviseParam superviseParam) {
-// SuperviceRunLogVo superviceRunLogVo = new SuperviceRunLogVo();
-// List overRunLogList = new ArrayList<>();
-// if (InitTypeEnum.MANUAL.getCode().equals(superviseParam.getInitType()) && StringUtils.isBlank(superviseParam.getDeptId())) {
-// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.INVALID_PARAMETER, null, "");
-// }
-// List thsStrategyList = this.selectStrategyList(superviseParam);
-// //按部门进行分组
-// if (CollectionUtil.isNotEmpty(thsStrategyList)) {
-// Map> deptMap = thsStrategyList.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId));
-// for (Map.Entry> entry : deptMap.entrySet()) {
-// String depId = entry.getKey();
-// ThsSupervise thsSupervise = new ThsSupervise();
-// List deptList = entry.getValue();
-// List oneLevel = deptList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合
-// List oneSourceSteadyIndicatorList = new ArrayList<>();
-// if (CollectionUtil.isNotEmpty(oneLevel)) {
-// for (ThsStrategyVo oneStrategyVo : oneLevel) {
-// List oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
-// List oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//干扰源列表
-// List oneSteadyIndicatorAssesIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
-// //封装每一种干扰源和对应的指标
-// for (ThsWarnStrategyAss oneWarnStrategyAss : oneInterferenceSourceAsses) {
-// SourceSteadyIndicator build = SourceSteadyIndicator.builder().id(oneStrategyVo.getId()).operation(oneStrategyVo.getOperation())
-// .interferenceSource(oneWarnStrategyAss.getAssId())
-// .steadyIndicator(oneSteadyIndicatorAssesIds)
-// .deptId(oneStrategyVo.getDeptId())
-// .type(oneStrategyVo.getType())
-// .build();
-// oneSourceSteadyIndicatorList.add(build);
-// }
-// }
-// }
-// List threeLevel = deptList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合
-// if (CollectionUtil.isNotEmpty(threeLevel)) {
-// for (ThsStrategyVo threeStrategyVo : threeLevel) {
-// Iterator iterator = oneSourceSteadyIndicatorList.iterator();
-// while (iterator.hasNext()) {
-// SourceSteadyIndicator sourceSteady = iterator.next();
-// if (sourceSteady.getType().equals(threeStrategyVo.getType())) {
-// if (StringUtils.equals(threeStrategyVo.getMonitorId(), sourceSteady.getMonitorId())) {
-// List interferenceSourceAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.SOURCE_TYPE);
-// //干扰源类型id
-// List threeInterferenceSourceIds = interferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
-// List threeSteadyIndicatorAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);
-// //指标类型id
-// List steadyIndicatorIds = threeSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
-// for (String threeInterferenceSourceId : threeInterferenceSourceIds) {
-// if (OperationEnum.AND.getCode().equals(threeStrategyVo.getOperation())) {//处理三级策略的与
-// if (OperationEnum.AND.getCode().equals(sourceSteady.getOperation())) {
-// if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource()) &&
-// steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) {
-// iterator.remove();
-// }
-// }
-// } else {//处理三级策略的或
-// if (StringUtils.equals(threeInterferenceSourceId, sourceSteady.getInterferenceSource())) {
-// if (steadyIndicatorIds.containsAll(sourceSteady.getSteadyIndicator())) {
-// iterator.remove();
-// } else {
-// List steadyIndicator = sourceSteady.getSteadyIndicator();
-// steadyIndicator.removeAll(steadyIndicatorIds);
-// }
-// }
-// }
-// }
-// }
-// }
-// }
-// }
-// }
-// if (CollectionUtil.isNotEmpty(oneSourceSteadyIndicatorList)) {
-// oneSourceSteadyIndicatorList.forEach(steady -> {
-// Monitor monitor = pmsMonitorMapper.selectById(steady.getMonitorId());
-// if (monitor != null) {
-// if (StringUtils.equals(monitor.getMonitorTag(), steady.getInterferenceSource())) {//匹配该监测点属于的干扰源类型
-// //查询该监测点的检测数据
-// RStatLimitRateDPO limitRate = this.queryLimitTargetData(monitor.getId());
-// //判断指标是否超标
-// Map limitBoolMap = this.verifyLimit(limitRate, steady);
-// //构建监督数据
-// this.buildData(steady, limitBoolMap, monitor, limitRate, superviseParam.getInitType(), thsSupervise, overRunLogList);
-//
-// }
-// }
-// });
-// //生成技术监督数据
-// HttpResult deptById = deptFeignClient.getDeptById(depId);
-// Dept dept = deptById.getData();
-// if (InitTypeEnum.AUTO.getCode().equals(superviseParam.getInitType())) {
-// this.creatData(dept, thsSupervise, overRunLogList);
-// } else {
-// this.buildSuperviseName(thsSupervise, overRunLogList, dept);
-// superviceRunLogVo.setOverRunLog(overRunLogList);
-// superviceRunLogVo.setThsSupervise(thsSupervise);
-// }
-// }
-// }
-// }
-// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, JSON.toJSONString(superviceRunLogVo), "");
-// }
-//
-// /**
-// * 构建技术监督名称
-// *
-// * @param thsSupervise
-// * @param overRunLogList
-// * @param dept
-// */
-// private void buildSuperviseName(ThsSupervise thsSupervise, List overRunLogList, Dept dept) {
-// if (CollectionUtil.isNotEmpty(overRunLogList)) {
-// thsSupervise.setDescription(overRunLogList.get(0).getDescription());
-// String str = Arrays.asList(overRunLogList.get(0).getDescription().split(",")).get(0);
-// String overItem = str.substring(0, str.indexOf("次") - 1);
-// thsSupervise.setName(DateUtil.today() + dept.getName() + overRunLogList.get(0).getName() + "等" + overRunLogList.size() + "个监测点" + overItem);
-// }
-// }
-//
-// //生成技术监督数据
-// @DS("process")
-// @Transactional(rollbackFor = Exception.class)
-// @Override
-// public void creatData(Dept dept, ThsSupervise thsSupervise, List overRunLogList) {
-// if (CollectionUtil.isNotEmpty(overRunLogList)) {
-// thsSupervise.setDescription(overRunLogList.get(0).getDescription());
-// String str = Arrays.asList(overRunLogList.get(0).getDescription().split(",")).get(0);
-// String overItem = str.substring(0, str.indexOf("次") - 1);
-// thsSupervise.setName(DateUtil.today() + dept.getName() + overRunLogList.get(0).getName() + "等" + overRunLogList.size() + "个监测点" + overItem);
-// thsSuperviseMapper.insert(thsSupervise);
-//
-// //TODO 解决工作流写死问题
-// Map mapParam = new HashMap<>();
-// String proInId ="";
-// if(thsSupervise.getType() == 0){
-// proInId = "flow_yzep99kb:1:a100b48b-da75-11ed-8335-b07b253cdad9";
-// }else {
-// proInId = "flow_yzep99kb:2:6358e099-dcba-11ed-8026-b07b253cdad9";
-// }
-// flowableDefineFeignClient.start(proInId,thsSupervise.getSupIndex(),mapParam);
-//
-// for (ThsOverRunLog thsOverRunLog : overRunLogList) {
-// thsOverRunLogMapper.insert(thsOverRunLog);
-// }
-// }
-// }
-//
-//
-// /**
-// * 查询策略列表
-// *
-// * @param superviseParam
-// * @return
-// */
-// @DS("process")
-// @Override
-// public List selectStrategyList(SuperviseParam superviseParam) {
-// return thsWarnStrategyMapper.selectStrategyList(superviseParam);
-// }
-//
-// /**
-// * 查询策略绑定的干扰源列表或指标参数列表
-// *
-// * @param warnId
-// * @param typeEnum
-// * @return
-// */
-// @DS("process")
-// @Override
-// public List queryWarnStrategyAss(String warnId, TypeEnum typeEnum) {
-// return thsWarnStrategyAssMapper.selectList(new LambdaQueryWrapper()
-// .eq(ThsWarnStrategyAss::getWarnId, warnId)
-// .eq(ThsWarnStrategyAss::getType, typeEnum.getCode()));
-// }
-//
-// /**
-// * 生成监督数据
-// *
-// * @param limitBoolMap
-// */
-// @Override
-// public void buildData(SourceSteadyIndicator steady, Map limitBoolMap, Monitor monitor, RStatLimitRateDPO limitRate, Integer initType, ThsSupervise thsSupervise, List thsOverRunLogs) {
-// if (CollectionUtil.isNotEmpty(limitBoolMap)) {
-// if (OperationEnum.AND.getCode().equals(steady.getOperation())) {
-// for (Map.Entry entry : limitBoolMap.entrySet()) {
-// if (entry.getValue() instanceof Boolean && !(boolean) entry.getValue()) {
-// return;
-// }
-// }
-// //构建监督数据
-// this.buildSuperviseData(steady, monitor, limitRate, limitBoolMap, initType, thsSupervise, thsOverRunLogs);
-// //构建告警/预警监测点列表数据
-// this.buildOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap, initType, thsOverRunLogs);
-// return;
-// }
-// if (OperationEnum.OR.getCode().equals(steady.getOperation())) {
-// for (Map.Entry entry : limitBoolMap.entrySet()) {
-// if (entry.getValue() instanceof Boolean && (boolean) entry.getValue()) {
-// //生成监督数据
-// this.buildSuperviseData(steady, monitor, limitRate, limitBoolMap, initType, thsSupervise, thsOverRunLogs);
-// //生成告警/预警监测点数据
-// this.buildOverRunLog(steady, thsSupervise, monitor, limitRate, limitBoolMap, initType, thsOverRunLogs);
-// return;
-// }
-// }
-// }
-// }
-// }
-//
-//
-// @Override
-// public void buildSuperviseData(SourceSteadyIndicator steady, Monitor monitor, RStatLimitRateDPO limitRate, Map limitBoolMap, Integer initType, ThsSupervise thsSupervise, List thsOverRunLogs) {
-// if (thsSupervise != null && StringUtils.isBlank(thsSupervise.getSupIndex())) {
-// thsSupervise.setSupIndex(IdUtil.simpleUUID());
-// thsSupervise.setDeptId(steady.getDeptId());
-// thsSupervise.setCreateTime(new Date());
-// thsSupervise.setType(steady.getType());
-// thsSupervise.setCreateUser(RequestUtil.getUsername());
-// thsSupervise.setProgress(ProgressEnum.START.getCode());
-// thsSupervise.setCreateType(initType);
-// }
-// }
-//
-//
-// @Override
-// public void buildOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, RStatLimitRateDPO limitRate, Map limitBoolMap, Integer initType, List thsOverRunLogs) {
-// ThsOverRunLog thsOverRunLog = new ThsOverRunLog();
-// thsOverRunLog.setId(IdUtil.simpleUUID());
-// thsOverRunLog.setSupIndex(thsSupervise.getSupIndex());
-// thsOverRunLog.setLineIndex(monitor.getId());
-// thsOverRunLog.setName(monitor.getPowerrName() + "_" + monitor.getName() + "_" + DateUtil.today() + "_" + monitor.getId());
-// thsOverRunLog.setUpdateTime(Date.from(limitRate.getTime().atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant()));
-// thsOverRunLog.setCreateTime(new Date());
-// List descriptionList = (List) limitBoolMap.get(DESCRIPTION);
-// thsOverRunLog.setDescription(StringUtils.join(descriptionList, ","));
-// thsOverRunLogs.add(thsOverRunLog);
-// }
-//
-//
-// @Override
-// @DS("pms")
-// public RStatLimitRateDPO queryLimitTargetData(String monitorId) {
-// RStatLimitRateDPO limitRate = rateDService.getOne(new LambdaQueryWrapper().eq(RStatLimitRateDPO::getLineId, monitorId)
-// .between(RStatLimitRateDPO::getTime,
-// DateUtil.beginOfDay(DateUtil.offsetDay(new Date(), -1)),
-// DateUtil.endOfDay(DateUtil.offsetDay(new Date(), -1))).last("limit 1"));
-// return limitRate;
-// }
-//
-//
-// /**
-// * 判断监测数据是否超标
-// *
-// * @param limitRate
-// * @param steady
-// */
-// private Map verifyLimit(RStatLimitRateDPO limitRate, SourceSteadyIndicator steady) {
-// if (limitRate != null) {
-// List steadyIndicator = steady.getSteadyIndicator();
-// Map limitBoolMap = new HashedMap();
-// List descriptionList = new ArrayList<>();
-// steadyIndicator.forEach(id -> {
-// HttpResult dicDataById = dicDataFeignClient.getDicDataById(id);
-// if (CommonResponseEnum.SUCCESS.getCode().equals(dicDataById.getCode()) && dicDataById.getData() != null) {
-// SteadyIndicatorEnum steadyIndicatorEnum = SteadyIndicatorEnum.getSteadyIndicatorEnumByCode(dicDataById.getData().getCode());
-// if (null != steadyIndicatorEnum) {
-// switch (steadyIndicatorEnum) {
-// case Negative_Voltage://负序电压不平衡度
-// if (limitRate.getUbalanceOvertime() > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Negative_Voltage.getMessage().concat(limitRate.getUbalanceOvertime() + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Negative_Voltage.getCode(), false);
-// }
-// break;
-// case Interhar_Voltage://间谐波电压
-// Integer interharVoltageOvertime = this.maxOverTime(limitRate, InterharVoltage.class);
-// if (interharVoltageOvertime > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Interhar_Voltage.getMessage().concat(interharVoltageOvertime + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Interhar_Voltage.getCode(), false);
-// }
-// break;
-// case Neg_Current://负序电流
-// if (limitRate.getINegOvertime() > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Neg_Current.getMessage().concat(limitRate.getINegOvertime() + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Neg_Current.getCode(), false);
-// }
-// break;
-// case Fre_Deviation://频率偏差
-// if (limitRate.getFreqDevOvertime() > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Fre_Deviation.getMessage().concat(limitRate.getFreqDevOvertime() + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Fre_Deviation.getCode(), false);
-// }
-// break;
-// case Voltage_Dev://电压偏差
-// if (limitRate.getVoltageDevOvertime() > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Voltage_Dev.getMessage().concat(limitRate.getVoltageDevOvertime() + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Voltage_Dev.getCode(), false);
-// }
-// break;
-// case Har_Current://谐波电流
-// Integer harCurrentOvertime = this.maxOverTime(limitRate, HarCurrent.class);
-// if (harCurrentOvertime > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Har_Current.getMessage().concat(harCurrentOvertime + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Har_Current.getCode(), false);
-// }
-// break;
-// case Voltage_Fluc://电压波动与闪变
-// if (limitRate.getFlickerOvertime() > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Voltage_Fluc.getMessage().concat(limitRate.getFlickerOvertime() + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Voltage_Fluc.getCode(), false);
-// }
-// break;
-// case Har_Voltage://谐波电压
-// Integer harVoltageOvertime = this.maxOverTime(limitRate, HarVoltage.class);
-// if (harVoltageOvertime > 0) {
-// limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), true);
-// descriptionList.add(SteadyIndicatorEnum.Har_Voltage.getMessage().concat(harVoltageOvertime + "次"));
-// } else {
-// limitBoolMap.put(SteadyIndicatorEnum.Har_Voltage.getCode(), false);
-// }
-// break;
-// }
-// }
-// }
-// });
-// limitBoolMap.put(DESCRIPTION, descriptionList);
-// return limitBoolMap;
-// }
-// return null;
-// }
-//
-// /***
-// * 获取越限最大值
-// * @param object
-// * @param annotation
-// * @return
-// */
-// private Integer maxOverTime(Object object, Class annotation) {
-// Integer maxValue = 0;
-// try {
-// Class objClass = object.getClass();
-// Field[] fields = objClass.getDeclaredFields();
-// for (Field field : fields) {
-// field.setAccessible(true);
-// boolean isAnon = field.isAnnotationPresent(annotation);
-// if (isAnon) {
-// Object objValue = field.get(object);
-// if (objValue instanceof Integer) {
-// if ((Integer) objValue > maxValue) {
-// maxValue = (Integer) objValue;
-// }
-// }
-// }
-// }
-// } catch (Exception e) {
-// log.error("获取越限最大值异常:{}", e.toString());
-// }
-// return maxValue;
-// }
-//}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsOverRunLogService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsOverRunLogService.java
deleted file mode 100644
index cb3bddffe..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsOverRunLogService.java
+++ /dev/null
@@ -1,40 +0,0 @@
-//package com.njcn.prepare.harmonic.service.mysql.line;
-//
-//import com.baomidou.mybatisplus.extension.service.IService;
-//import com.njcn.common.pojo.response.HttpResult;
-//import com.njcn.process.pojo.param.SuperviseParam;
-//import com.njcn.process.pojo.po.ThsOverRunLog;
-//
-///**
-// *
-// * 告警/预警监测点列表 服务类
-// *
-// *
-// * @author lxp
-// * @since 2023-03-16
-// */
-//public interface ThsOverRunLogService extends IService {
-//
-// /**
-// * 保存技术监督监测点
-// *
-// * @param superviseParam
-// * @return
-// */
-// void saveOverRunLog(SuperviseParam superviseParam);
-//
-// /**
-// * 查询技术监督监测点集合
-// *
-// * @param supIndex
-// * @return
-// */
-// SuperviceRunLogVo superviseDetail(String supIndex);
-//
-// /**
-// * 更新技术监督
-// *
-// * @param superviseParam
-// */
-// HttpResult updateSupervise(SuperviseParam superviseParam);
-//}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java
deleted file mode 100644
index 9f707c968..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/line/ThsSuperviseService.java
+++ /dev/null
@@ -1,99 +0,0 @@
-//package com.njcn.prepare.harmonic.service.mysql.line;
-//
-//import com.baomidou.mybatisplus.extension.service.IService;
-//import com.njcn.common.pojo.response.HttpResult;
-//import com.njcn.device.pms.pojo.po.Monitor;
-//import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
-//import com.njcn.harmonic.pojo.vo.SourceSteadyIndicator;
-//import com.njcn.harmonic.pojo.vo.ThsStrategyVo;
-//import com.njcn.prepare.enums.TypeEnum;
-//import com.njcn.process.pojo.param.SuperviseParam;
-//import com.njcn.process.pojo.po.ThsOverRunLog;
-//import com.njcn.process.pojo.po.ThsSupervise;
-//import com.njcn.process.pojo.po.ThsWarnStrategyAss;
-//import com.njcn.user.pojo.po.Dept;
-//
-//import java.util.List;
-//import java.util.Map;
-//
-///**
-// *
-// * 服务类
-// *
-// *
-// * @author lxp
-// * @since 2023-03-16
-// */
-//public interface ThsSuperviseService extends IService {
-// /**
-// * 初始化技术监督
-// */
-// HttpResult initSupervise(SuperviseParam superviseParam);
-//
-// /**
-// * 查新策略集合
-// *
-// * @param superviseParam
-// * @return
-// */
-// List selectStrategyList(SuperviseParam superviseParam);
-//
-// /**
-// * 查询LimitTarget数据
-// *
-// * @param monitorId
-// */
-// RStatLimitRateDPO queryLimitTargetData(String monitorId);
-//
-// /**
-// * 生成监督数据
-// *
-// * @param limitBoolMap
-// */
-// void buildData(SourceSteadyIndicator steady, Map limitBoolMap, Monitor monitor, RStatLimitRateDPO limitRate, Integer initType, ThsSupervise thsSupervise, List thsOverRunLogs);
-//
-// /**
-// * 查询策略绑定的干扰源列表或指标参数列表
-// *
-// * @param id
-// * @param typeEnum
-// * @return
-// */
-// List queryWarnStrategyAss(String id, TypeEnum typeEnum);
-//
-// /**
-// * 生成监督数据
-// *
-// * @param steady
-// * @param monitor
-// * @return
-// */
-// void buildSuperviseData(SourceSteadyIndicator steady, Monitor monitor, RStatLimitRateDPO limitRate, Map limitBoolMap, Integer initType, ThsSupervise thsSupervise, List thsOverRunLogs);
-//
-// /**
-// * 生成 告警/预警监测点列表 数据
-// *
-// * @param steady
-// * @param thsSupervise
-// * @param monitor
-// */
-// void buildOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, RStatLimitRateDPO limitRate, Map limitBoolMap, Integer initType, List thsOverRunLogs);
-//
-//
-// /**
-// * 生成技术监督数据
-// *
-// * @param thsSupervise
-// * @param overRunLogList
-// */
-// void creatData(Dept dept, ThsSupervise thsSupervise, List overRunLogList);
-//
-// /**
-// * 创建技术监督
-// *
-// * @param superviseParam
-// * @return
-// */
-//
-// void creatSupervise(SuperviseParam superviseParam);
-//}
diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/api/ThsSuperviseFeignClient.java b/pqs-process/process-api/src/main/java/com/njcn/process/api/ThsSuperviseFeignClient.java
new file mode 100644
index 000000000..f652d3d87
--- /dev/null
+++ b/pqs-process/process-api/src/main/java/com/njcn/process/api/ThsSuperviseFeignClient.java
@@ -0,0 +1,30 @@
+package com.njcn.process.api;
+
+import com.njcn.common.pojo.constant.ServerInfo;
+import com.njcn.common.pojo.response.HttpResult;
+import com.njcn.process.api.fallback.ThsSuperviseFallbackFactory;
+import com.njcn.process.pojo.param.SuperviseParam;
+import com.njcn.process.pojo.vo.SuperviceRunLogVo;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestBody;
+
+
+/**
+ * 技术监督每日任务
+ * @author cdf
+ * @date 2023/4/13
+ */
+@FeignClient(value = ServerInfo.PROCESS,path = "/thsSupervise",fallbackFactory = ThsSuperviseFallbackFactory.class)
+public interface ThsSuperviseFeignClient {
+
+
+ /**
+ * 技术监督每日任务
+ * @author cdf
+ * @date 2024/3/18
+ */
+ HttpResult initSupervise(@RequestBody SuperviseParam superviseParam);
+
+
+
+}
diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/api/fallback/ThsSuperviseFallbackFactory.java b/pqs-process/process-api/src/main/java/com/njcn/process/api/fallback/ThsSuperviseFallbackFactory.java
new file mode 100644
index 000000000..027f0a900
--- /dev/null
+++ b/pqs-process/process-api/src/main/java/com/njcn/process/api/fallback/ThsSuperviseFallbackFactory.java
@@ -0,0 +1,44 @@
+package com.njcn.process.api.fallback;
+
+import com.njcn.common.pojo.enums.response.CommonResponseEnum;
+import com.njcn.common.pojo.exception.BusinessException;
+import com.njcn.common.pojo.response.HttpResult;
+import com.njcn.process.api.SupvStatisticReportMFeignClient;
+import com.njcn.process.api.ThsSuperviseFeignClient;
+import com.njcn.process.pojo.param.SuperviseParam;
+import com.njcn.process.pojo.vo.SuperviceRunLogVo;
+import com.njcn.process.utils.ProcessEnumUtil;
+import feign.hystrix.FallbackFactory;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * 自动生成技术监督单
+ * @author cdf
+ * @date 2023/4/13
+ */
+@Slf4j
+@Component
+public class ThsSuperviseFallbackFactory implements FallbackFactory {
+
+ @Override
+ public ThsSuperviseFeignClient create(Throwable throwable) {
+ //判断抛出异常是否为解码器抛出的业务异常
+ Enum> exceptionEnum = CommonResponseEnum.SERVICE_FALLBACK;
+ if (throwable.getCause() instanceof BusinessException) {
+ BusinessException businessException = (BusinessException) throwable.getCause();
+ exceptionEnum = ProcessEnumUtil.getExceptionEnum(businessException.getResult());
+ }
+ Enum> finalExceptionEnum = exceptionEnum;
+ return new ThsSuperviseFeignClient() {
+
+ @Override
+ public HttpResult initSupervise(@RequestBody @Validated SuperviseParam superviseParam){
+ log.error("{}异常,降级处理,异常为:{}", "自动生成技术监督单", throwable.toString());
+ throw new BusinessException(finalExceptionEnum);
+ }
+ };
+ }
+}
diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/ThsStrategyBindDTO.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/ThsStrategyBindDTO.java
new file mode 100644
index 000000000..5d696a802
--- /dev/null
+++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/dto/ThsStrategyBindDTO.java
@@ -0,0 +1,42 @@
+package com.njcn.process.pojo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * pqs
+ *
+ * @author cdf
+ * @date 2024/3/18
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ThsStrategyBindDTO {
+
+ /**
+ * 监测点标签id,监测点id
+ */
+ private String keyId;
+
+ /**
+ * 指标集合
+ */
+ private List targetIds;
+
+ /**
+ * 0.与 1.或
+ */
+ private Integer operation;
+
+
+ /**
+ * 0.监测点标签 1.监测点
+ */
+ private Integer type;
+}
diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/SuperviseParam.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/SuperviseParam.java
index 7f395e018..4a1f52ed7 100644
--- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/SuperviseParam.java
+++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/param/SuperviseParam.java
@@ -30,5 +30,8 @@ public class SuperviseParam {
@NotNull(message = "类型不可为空")
private Integer type;
+ @ApiModelProperty(name = "reDate", value = "用于补招时间")
+ private String reDate;
+
}
diff --git a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/RMpOnlineMonitorOverproofProblem.java b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/RMpOnlineMonitorOverproofProblem.java
index afbd2e90d..bd7c689e8 100644
--- a/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/RMpOnlineMonitorOverproofProblem.java
+++ b/pqs-process/process-api/src/main/java/com/njcn/process/pojo/po/RMpOnlineMonitorOverproofProblem.java
@@ -58,5 +58,5 @@ public class RMpOnlineMonitorOverproofProblem implements Serializable {
/**
* 告警持续时间
*/
- private String warnLastTime;
+ private Double warnLastTime;
}
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/controller/alarm/RMpAlarmDetailDController.java b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/alarm/RMpAlarmDetailDController.java
new file mode 100644
index 000000000..222e03621
--- /dev/null
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/controller/alarm/RMpAlarmDetailDController.java
@@ -0,0 +1,47 @@
+package com.njcn.process.controller.alarm;
+
+import com.njcn.common.pojo.annotation.OperateInfo;
+import com.njcn.common.pojo.enums.common.LogEnum;
+import com.njcn.common.pojo.enums.response.CommonResponseEnum;
+import com.njcn.common.pojo.response.HttpResult;
+import com.njcn.common.utils.HttpResultUtil;
+import com.njcn.device.pms.pojo.param.RStatPwAlarmDetailParam;
+import com.njcn.device.pms.pojo.vo.RStatAlarmDetailVO;
+import com.njcn.process.pojo.po.RMpOnlineMonitorOverproofProblem;
+import com.njcn.process.service.alarm.RMpAlarmDetailDService;
+import com.njcn.web.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * pqs
+ *
+ * @author cdf
+ * @date 2024/3/18
+ */
+@RestController
+@RequestMapping("/rMpPwAlarmDetail")
+@Api(tags = "告警明细")
+@RequiredArgsConstructor
+public class RMpAlarmDetailDController extends BaseController {
+
+ private final RMpAlarmDetailDService rMpPwAlarmDetailDService;
+
+ @PostMapping("getAllAlarmDetailList")
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON)
+ @ApiOperation("告警明细查看(主配网)")
+ public HttpResult> getAllAlarmDetailList(@RequestBody RStatPwAlarmDetailParam rStatPwAlarmDetailParam) {
+ String methodDescribe = getMethodDescribe("getAllAlarmDetailList");
+ List list = rMpPwAlarmDetailDService.getAllAlarmDetailList(rStatPwAlarmDetailParam);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
+ }
+
+
+}
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/RMpAlarmDetailDService.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/RMpAlarmDetailDService.java
new file mode 100644
index 000000000..7722af4e9
--- /dev/null
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/RMpAlarmDetailDService.java
@@ -0,0 +1,19 @@
+package com.njcn.process.service.alarm;
+
+import com.njcn.device.pms.pojo.param.RStatPwAlarmDetailParam;
+import com.njcn.device.pms.pojo.vo.RStatAlarmDetailVO;
+import com.njcn.process.pojo.po.RMpOnlineMonitorOverproofProblem;
+
+import java.util.List;
+
+/**
+ * pqs
+ *
+ * @author cdf
+ * @date 2024/3/18
+ */
+public interface RMpAlarmDetailDService {
+
+
+ List getAllAlarmDetailList(RStatPwAlarmDetailParam rStatPwAlarmDetailParam);
+}
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/impl/RMpAlarmDetailDServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/impl/RMpAlarmDetailDServiceImpl.java
new file mode 100644
index 000000000..9ebc1e903
--- /dev/null
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/alarm/impl/RMpAlarmDetailDServiceImpl.java
@@ -0,0 +1,82 @@
+package com.njcn.process.service.alarm.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.njcn.common.pojo.dto.SimpleDTO;
+import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
+import com.njcn.device.pms.pojo.param.PmsDeviceInfoParam;
+import com.njcn.device.pms.pojo.param.RStatPwAlarmDetailParam;
+import com.njcn.device.pms.pojo.po.Monitor;
+import com.njcn.device.pms.pojo.vo.RStatAlarmDetailVO;
+import com.njcn.process.service.alarm.RMpAlarmDetailDService;
+import com.njcn.process.mapper.RMpOnlineMonitorOverproofProblemMapper;
+import com.njcn.process.pojo.po.RMpOnlineMonitorOverproofProblem;
+import com.njcn.user.api.DeptFeignClient;
+import com.njcn.web.utils.RequestUtil;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * pqs
+ *
+ * @author cdf
+ * @date 2024/3/18
+ */
+@Service
+@RequiredArgsConstructor
+public class RMpAlarmDetailDServiceImpl implements RMpAlarmDetailDService {
+
+ private final CommTerminalGeneralClient commTerminalGeneralClient;
+
+ private final RMpOnlineMonitorOverproofProblemMapper rMpOnlineMonitorOverproofProblemMapper;
+
+ private final DeptFeignClient deptFeignClient;
+
+
+
+ @Override
+ public List getAllAlarmDetailList(RStatPwAlarmDetailParam rStatPwAlarmDetailParam) {
+ List resultList = new ArrayList<>();
+
+
+ //提取参数
+ String startTime = rStatPwAlarmDetailParam.getStartTime(); //开始时间
+ String endTime = rStatPwAlarmDetailParam.getEndTime(); //结束时间
+ //获取登录人当前部门
+ String deptIndex = RequestUtil.getDeptIndex();
+
+ PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam();
+ pmsDeviceInfoParam.setStatisticalType(new SimpleDTO());
+ pmsDeviceInfoParam.setDeptIndex(deptIndex);
+
+ //获取主网台账信息
+ List zwMonitorIds = commTerminalGeneralClient.getRunMonitorIds().getData();
+
+ List deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(RequestUtil.getDeptIndex()).getData();
+
+ //查询告警明细
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper
+ .ge(StringUtils.isNotBlank(startTime), RMpOnlineMonitorOverproofProblem::getDataDate, startTime)
+ .le(StringUtils.isNotBlank(endTime), RMpOnlineMonitorOverproofProblem::getDataDate, endTime);
+ List list = rMpOnlineMonitorOverproofProblemMapper.selectList(lambdaQueryWrapper);
+ if(CollUtil.isEmpty(list)){
+ return resultList;
+ }
+
+ List monitorIds = list.stream().map(RMpOnlineMonitorOverproofProblem::getMeasurementPointId).distinct().collect(Collectors.toList());
+
+ //commTerminalGeneralClient.getMonitorDetailList()
+
+
+
+
+ return resultList;
+ }
+}
diff --git a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java
index a19793d55..731a88d9a 100644
--- a/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java
+++ b/pqs-process/process-boot/src/main/java/com/njcn/process/service/impl/ThsSuperviseServiceImpl.java
@@ -27,6 +27,7 @@ import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.prepare.harmonic.pojo.dto.SuperviseDto;
import com.njcn.process.api.FlowableDefineFeignClient;
+import com.njcn.process.pojo.dto.ThsStrategyBindDTO;
import com.njcn.process.pojo.param.SuperviseParam;
import com.njcn.process.pojo.po.ThsOverRunLog;
import com.njcn.process.pojo.po.ThsSupervise;
@@ -58,6 +59,7 @@ import com.njcn.user.pojo.po.Dept;
import com.njcn.user.pojo.po.User;
import com.njcn.web.factory.PageFactory;
import com.njcn.web.utils.RequestUtil;
+import liquibase.pro.packaged.S;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.map.HashedMap;
@@ -77,6 +79,7 @@ import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
import java.util.zip.Adler32;
import java.util.zip.CheckedOutputStream;
import java.util.zip.ZipEntry;
@@ -167,15 +170,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl mapParam = new HashMap<>();
- String proInId = "";
- if (thsSupervise.getType() == 0) {
- proInId = "flow_yzep99kb:1:a100b48b-da75-11ed-8335-b07b253cdad9";
- } else {
- proInId = "flow_yzep99kb:2:6358e099-dcba-11ed-8026-b07b253cdad9";
- }
- iFlowDefinitionService.startProcessInstanceById(proInId, thsSupervise.getSupIndex(), mapParam);
-
+ flowableRun(thsSupervise);
for (ThsOverRunLog thsOverRunLog : superviceRunLogVo.getOverRunLog()) {
thsOverRunLog.setCreateTime(date);
@@ -186,8 +181,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl thsOverRunLogList = thsOverRunLogService.list(new LambdaQueryWrapper().eq(ThsOverRunLog::getSupIndex,supIndex));
+ List thsOverRunLogList = thsOverRunLogService.list(new LambdaQueryWrapper().eq(ThsOverRunLog::getSupIndex, supIndex));
if (files != null && files.length == 1) {
ThsOverRunLog thsOverRunLog = thsOverRunLogService.getById(id);
@@ -265,16 +258,31 @@ public class ThsSuperviseServiceImpl extends ServiceImpl 1) {
- if(files.length!=thsOverRunLogList.size()){
+ if (files.length != thsOverRunLogList.size()) {
throw new BusinessException("批量上传需保证报告数量与测点数量一致");
}
this.batchUploadFile(thsSupervise, thsOverRunLogList, files, ticketType);
}
- this.updateProcess(thsSupervise, ticketType, thsSuperObj.getType(),thsOverRunLogList,files.length);
+ this.updateProcess(thsSupervise, ticketType, thsSuperObj.getType(), thsOverRunLogList, files.length);
+ }
+ /**
+ * 执行流程
+ * @author cdf
+ * @date 2024/3/19
+ */
+ private void flowableRun(ThsSupervise thsSupervise){
+ Map mapParam = new HashMap<>();
+ String proInId = "";
+ if (thsSupervise.getType() == 0) {
+ proInId = "flow_yzep99kb:1:a100b48b-da75-11ed-8335-b07b253cdad9";
+ } else {
+ proInId = "flow_yzep99kb:2:6358e099-dcba-11ed-8026-b07b253cdad9";
+ }
+ iFlowDefinitionService.startProcessInstanceById(proInId, thsSupervise.getSupIndex(), mapParam);
}
/**
@@ -284,7 +292,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl thsOverRunLogList,Integer uploadCount) {
+ private void updateProcess(ThsSupervise thsSupervise, Integer ticketType, Integer type, List thsOverRunLogList, Integer uploadCount) {
TicketTypeEnum ticketTypeEnum = TicketTypeEnum.getTicketTypeEnumByCode(ticketType);
if (ticketTypeEnum == null) {
throw new BusinessException("上传单据参数类型错误!");
@@ -294,8 +302,8 @@ public class ThsSuperviseServiceImpl extends ServiceImplObjects.isNull(item.getFeedback())).count();
- if(uploadCount == count){
+ count = thsOverRunLogList.stream().filter(item -> Objects.isNull(item.getFeedback())).count();
+ if (uploadCount == count) {
thsSupervise.setProgress(ProgressEnum.TEST_REPORT.getCode());
}
break;
@@ -311,7 +319,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl userIds = querySuperviseList.stream().filter(item->Objects.nonNull(item.getModifyUser())).map(SuperviseVo::getModifyUser).distinct().collect(Collectors.toList());
+ List userIds = querySuperviseList.stream().map(SuperviseVo::getModifyUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
List userList = userFeignClient.getUserByIdList(userIds).getData();
- Map userMap = userList.stream().collect(Collectors.toMap(User::getId,Function.identity()));
+ Map userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));
List deptIds = querySuperviseList.stream().map(SuperviseVo::getDeptId).distinct().collect(Collectors.toList());
List deptList = deptFeignClient.getDeptInfoListByIds(deptIds).getData();
- Map deptMap = deptList.stream().collect(Collectors.toMap(Dept::getId,Function.identity()));
+ Map deptMap = deptList.stream().collect(Collectors.toMap(Dept::getId, Function.identity()));
for (SuperviseVo superviseVo : querySuperviseList) {
- superviseVo.setModifyUser(userMap.get(superviseVo.getModifyUser()).getName());
+ if(StrUtil.isNotBlank(superviseVo.getModifyUser())) {
+ superviseVo.setModifyUser(userMap.get(superviseVo.getModifyUser()).getName());
+ }
- superviseVo.setCompanyName(deptMap.get(superviseVo.getDeptId()).getName());
+ if(StrUtil.isNotBlank(superviseVo.getDeptId())) {
+ superviseVo.setCompanyName(deptMap.get(superviseVo.getDeptId()).getName());
+ }
//处理预警类型
Date modifyTime = superviseVo.getModifyTime();
@@ -619,13 +631,21 @@ public class ThsSuperviseServiceImpl extends ServiceImpl thsStrategyList = this.thsWarnStrategyMapper.selectStrategyList(superviseParam);
//按部门进行分组
+
+ List thsStrategyBindDTOList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(thsStrategyList)) {
+
+ List threeLevel = thsStrategyList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合
+ //获取排他策略集合
+ assBindList(threeLevel, thsStrategyBindDTOList);
+ Map deleteMap = thsStrategyBindDTOList.stream().collect(Collectors.toMap(ThsStrategyBindDTO::getKeyId, Function.identity()));
+
+
List oneLevel = thsStrategyList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合
Map> deptMap = oneLevel.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId));
for (Map.Entry> entry : deptMap.entrySet()) {
String depId = entry.getKey();
- List deptAllIds = deptFeignClient.getDepSonIdtByDeptId(depId).getData();
Dept dept = deptFeignClient.getDeptById(depId).getData();
List thsOverRunLogList = new ArrayList<>();
@@ -633,8 +653,11 @@ public class ThsSuperviseServiceImpl extends ServiceImpl deptStrategyList = entry.getValue();
if (CollectionUtil.isNotEmpty(deptStrategyList)) {
+
+
//遍历当前部门下面的所有策略
for (ThsStrategyVo oneStrategyVo : deptStrategyList) {
+ List useBindDTOList = new ArrayList<>();
List oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
List oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表
List oneMonitorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表
@@ -642,11 +665,40 @@ public class ThsSuperviseServiceImpl extends ServiceImpl tagIds = oneInterferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
List targetIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
List monitorIds = oneMonitorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
+ for (String tagId : tagIds) {
+ ThsStrategyBindDTO strategyBindDTO = ThsStrategyBindDTO.builder().keyId(tagId).targetIds(targetIds).operation(oneStrategyVo.getOperation()).type(0).build();
+ useBindDTOList.add(strategyBindDTO);
+ }
+ for (String monitorId : monitorIds) {
+ ThsStrategyBindDTO strategyBindDTO = ThsStrategyBindDTO.builder().keyId(monitorId).targetIds(targetIds).operation(oneStrategyVo.getOperation()).type(1).build();
+ useBindDTOList.add(strategyBindDTO);
+ }
+ //根据排他策略过滤12级策略
+ Iterator iterator = useBindDTOList.iterator();
+ while (iterator.hasNext()) {
+ ThsStrategyBindDTO item = iterator.next();
+ if (deleteMap.containsKey(item.getKeyId())) {
+ item.getTargetIds().removeAll(deleteMap.get(item.getKeyId()).getTargetIds());
+ if (CollectionUtil.isEmpty(item.getTargetIds())) {
+ iterator.remove();
+ }
+ }
+ }
+
+ //过滤排他策略后开始组装信息
+ List tagObj = useBindDTOList.stream().filter(item -> item.getType() == 0).collect(Collectors.toList());
+ List useTagIds = tagObj.stream().map(ThsStrategyBindDTO::getKeyId).collect(Collectors.toList());
+ Map tagMap = tagObj.stream().collect(Collectors.toMap(ThsStrategyBindDTO::getKeyId, Function.identity()));
+
+ List monitorObj = useBindDTOList.stream().filter(item -> item.getType() == 1).collect(Collectors.toList());
+ List useMonitorIds = monitorObj.stream().map(ThsStrategyBindDTO::getKeyId).collect(Collectors.toList());
+ Map monitorMap = monitorObj.stream().collect(Collectors.toMap(ThsStrategyBindDTO::getKeyId, Function.identity()));
+
MonitorGetParam monitorGetParam = new MonitorGetParam();
- monitorGetParam.setTagList(tagIds);
- monitorGetParam.setMonitorIds(monitorIds);
- monitorGetParam.setDeptIds(deptAllIds);
+ monitorGetParam.setTagList(useTagIds);
+ monitorGetParam.setMonitorIds(useMonitorIds);
+ monitorGetParam.setDeptIds(Stream.of(dept.getId()).collect(Collectors.toList()));
//TODO 需要校验
List commMonitorInfoDTOList = commTerminalGeneralClient.tagOrIdGetMonitorList(monitorGetParam).getData();
Map monitorInfoDTOMap = commMonitorInfoDTOList.stream().collect(Collectors.toMap(CommMonitorInfoDTO::getId, Function.identity()));
@@ -656,27 +708,37 @@ public class ThsSuperviseServiceImpl extends ServiceImpl rStatLimitRateDPOList = rStatLimitRateDClient.monitorIdsGetLimitInfo(RStatLimitQueryParam.builder().ids(temIds).date(yesterday).build()).getData();
//TODO 数据中心和pms这边稳态指标没用一个需要考虑兼容问题
- dictTargetList = dictTargetList.stream().filter(item -> targetIds.contains(item.getId())).collect(Collectors.toList());
//判断指标是否在策略中
if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) {
for (RStatLimitRateDPO rStatLimitRateDPO : rStatLimitRateDPOList) {
List descriptionList = new ArrayList<>();
Integer[] count = {0};
- Map limitBoolMap = verifyLimit(rStatLimitRateDPO, dictTargetList, descriptionList, count);
+ //先判断当前测点是否监测点策略
+ List dictDataList;
+ if (monitorMap.containsKey(rStatLimitRateDPO.getLineId())) {
+ List lineTargetIds = monitorMap.get(rStatLimitRateDPO.getLineId()).getTargetIds();
+ dictDataList = dictTargetList.stream().filter(item -> lineTargetIds.contains(item.getId())).collect(Collectors.toList());
+ } else {
+ //不是监测点策略则去匹配对象标签策略
+ String tagId = monitorInfoDTOMap.get(rStatLimitRateDPO.getLineId()).getObjTagId();
+ List tagTargetIds = tagMap.get(tagId).getTargetIds();
+ dictDataList = dictTargetList.stream().filter(item -> tagTargetIds.contains(item.getId())).collect(Collectors.toList());
+ }
+
+ Map limitBoolMap = verifyLimit(rStatLimitRateDPO, dictDataList, descriptionList, count);
+
+ boolean shouldContinue;
if (oneStrategyVo.getOperation().equals(OperationEnum.AND.getCode())) {
//与
- boolean res = limitBoolMap.containsValue(false);
- if (res) {
- continue;
- }
+ shouldContinue = limitBoolMap.containsValue(false);
} else {
//或
- boolean res = limitBoolMap.containsValue(true);
- if (!res) {
- continue;
- }
+ shouldContinue = !limitBoolMap.containsValue(true);
+ }
+ if (shouldContinue) {
+ continue;
}
//到这一步说明符合策略保留该条数据,开始组装实体
@@ -693,29 +755,21 @@ public class ThsSuperviseServiceImpl extends ServiceImpl mapParam = new HashMap<>();
- String proInId = "";
- if (ths.getType() == 0) {
- proInId = "flow_yzep99kb:1:a100b48b-da75-11ed-8335-b07b253cdad9";
- } else {
- proInId = "flow_yzep99kb:2:6358e099-dcba-11ed-8026-b07b253cdad9";
- }
- flowDefinitionService.startProcessInstanceById(proInId, thsSupervise.getSupIndex(), mapParam);
+ for (ThsSupervise ths : thsSuperviseListPO) {
+ flowableRun(ths);
}
this.saveBatch(thsSuperviseListPO);
thsOverRunLogService.saveBatch(allThsLogPO);
return null;
+ } else {
+ superviceRunLogVo.setOverRunLog(allThsLogPO);
+ superviceRunLogVo.setThsSupervise(thsSuperviseListPO.get(0));
+ return superviceRunLogVo;
}
- } else {
- superviceRunLogVo.setOverRunLog(allThsLogPO);
- superviceRunLogVo.setThsSupervise(thsSuperviseListPO.get(0));
- return superviceRunLogVo;
}
@@ -728,96 +782,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl thsOverRunLogList = new ArrayList<>();
- String yesterday = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
-
- List dictTargetList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData();
-
-
- if (InitTypeEnum.MANUAL.getCode().equals(superviseParam.getInitType()) && StringUtils.isBlank(superviseParam.getDeptId())) {
- throw new BusinessException(CommonResponseEnum.INVALID_PARAMETER.getMessage());
- }
- List thsStrategyList = this.thsWarnStrategyMapper.selectStrategyList(superviseParam);
- //按部门进行分组
- if (CollectionUtil.isNotEmpty(thsStrategyList)) {
- ThsSupervise thsSupervise = null;
- List oneLevel = thsStrategyList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合
- if (CollectionUtil.isNotEmpty(oneLevel)) {
- //遍历当前部门下面的所有策略
- for (ThsStrategyVo oneStrategyVo : oneLevel) {
-
- Dept dept = deptFeignClient.getDeptById(oneStrategyVo.getDeptId()).getData();
-
-
- List oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
- List oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表
- List oneMonitorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表
-
- List tagIds = oneInterferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
- List targetIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
- List monitorIds = oneMonitorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
-
- MonitorGetParam monitorGetParam = new MonitorGetParam();
- monitorGetParam.setTagList(tagIds);
- monitorGetParam.setMonitorIds(monitorIds);
-
- List deptAllIds = deptFeignClient.getDepSonIdtByDeptId(oneStrategyVo.getDeptId()).getData();
- monitorGetParam.setDeptIds(deptAllIds);
- //TODO 需要校验
- List commMonitorInfoDTOList = commTerminalGeneralClient.tagOrIdGetMonitorList(monitorGetParam).getData();
- Map monitorInfoDTOMap = commMonitorInfoDTOList.stream().collect(Collectors.toMap(CommMonitorInfoDTO::getId, Function.identity()));
-
- List temIds = commMonitorInfoDTOList.stream().map(CommMonitorInfoDTO::getId).distinct().collect(Collectors.toList());
-
- List rStatLimitRateDPOList = rStatLimitRateDClient.monitorIdsGetLimitInfo(RStatLimitQueryParam.builder().ids(temIds).date(yesterday).build()).getData();
-
- //TODO 数据中心和pms这边稳态指标没用一个需要考虑兼容问题
- dictTargetList = dictTargetList.stream().filter(item -> targetIds.contains(item.getId())).collect(Collectors.toList());
-
- //判断指标是否在策略中
- if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) {
- for (RStatLimitRateDPO rStatLimitRateDPO : rStatLimitRateDPOList) {
-
- List descriptionList = new ArrayList<>();
- Integer[] count = {0};
- Map limitBoolMap = verifyLimit(rStatLimitRateDPO, dictTargetList, descriptionList, count);
-
- if (oneStrategyVo.getOperation().equals(OperationEnum.AND.getCode())) {
- //与
- boolean res = limitBoolMap.containsValue(false);
- if (res) {
- continue;
- }
- } else {
- //或
- boolean res = limitBoolMap.containsValue(true);
- if (!res) {
- continue;
- }
- }
-
- //到这一步说明符合策略保留该条数据,开始组装实体
- if (Objects.isNull(thsSupervise)) {
- thsSupervise = new ThsSupervise();
- buildSuperviseData(yesterday, dept, superviseParam, oneStrategyVo, superviseParam.getInitType(), thsSupervise);
- }
- buildOverRunLog(thsSupervise, monitorInfoDTOMap.get(rStatLimitRateDPO.getLineId()), descriptionList, thsOverRunLogList, count);
-
- }
-
-
- }
-
- }
- }
-
- }
- superviceRunLogVo.setOverRunLog(thsOverRunLogList);
- return superviceRunLogVo;
- }*/
@Override
public Page queryPage(ThsSuperviseParam thsSuperviseParam) {
@@ -862,6 +826,37 @@ public class ThsSuperviseServiceImpl extends ServiceImpl levelList, List thsStrategyBindDTOList) {
+ if (CollectionUtil.isNotEmpty(levelList)) {
+ for (ThsStrategyVo thsStrategyVo : levelList) {
+ List tagIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
+ List targetIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表
+ List monitorIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表
+
+ List tagIds = tagIdsAss.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
+ List targetIds = targetIdsAss.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
+ List monitorIds = monitorIdsAss.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
+
+ for (String tagId : tagIds) {
+ ThsStrategyBindDTO strategyBindDTO = ThsStrategyBindDTO.builder().keyId(tagId).targetIds(targetIds).operation(thsStrategyVo.getOperation()).build();
+ thsStrategyBindDTOList.add(strategyBindDTO);
+ }
+ for (String monitorId : monitorIds) {
+ ThsStrategyBindDTO strategyBindDTO = ThsStrategyBindDTO.builder().keyId(monitorId).targetIds(targetIds).operation(thsStrategyVo.getOperation()).build();
+ thsStrategyBindDTOList.add(strategyBindDTO);
+ }
+
+ }
+ }
+ }
+
+
/**
* 批量下载.zip文件
*
diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/ThsSuperviseTask.java b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/ThsSuperviseTask.java
new file mode 100644
index 000000000..81cfa4342
--- /dev/null
+++ b/pqs-system/system-boot/src/main/java/com/njcn/system/timer/tasks/ThsSuperviseTask.java
@@ -0,0 +1,46 @@
+package com.njcn.system.timer.tasks;
+
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import com.njcn.process.api.ThsSuperviseFeignClient;
+import com.njcn.process.enums.AlarmTypeEnum;
+import com.njcn.process.enums.InitTypeEnum;
+import com.njcn.process.pojo.param.SuperviseParam;
+import com.njcn.system.timer.TimerTaskRunner;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Component;
+
+/**
+ * pqs
+ * 技术监督每日任务
+ * @author cdf
+ * @date 2024/3/18
+ */
+@Component
+@RequiredArgsConstructor
+public class ThsSuperviseTask implements TimerTaskRunner {
+
+ private final ThsSuperviseFeignClient thsSuperviseFeignClient;
+
+ @Override
+ public void action(String date) {
+
+
+ if(StrUtil.isBlank(date)){
+ date = DateUtil.yesterday().toString(DatePattern.NORM_DATE_PATTERN);
+ }
+
+ SuperviseParam superviseParam = new SuperviseParam();
+ superviseParam.setReDate(date);
+ superviseParam.setInitType(InitTypeEnum.AUTO.getCode());
+ superviseParam.setType(AlarmTypeEnum.EARLY_WARN.getCode());
+ thsSuperviseFeignClient.initSupervise(superviseParam);
+
+
+ superviseParam.setInitType(InitTypeEnum.MANUAL.getCode());
+ superviseParam.setType(AlarmTypeEnum.REPORT_WARN.getCode());
+ thsSuperviseFeignClient.initSupervise(superviseParam);
+
+ }
+}