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