pms技术监督调整
This commit is contained in:
@@ -23,4 +23,6 @@ public class CommMonitorInfoDTO {
|
||||
|
||||
private String powerStationName;
|
||||
|
||||
private String objTagId;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
//
|
||||
///**
|
||||
// * <p>
|
||||
// * 告警/预警监测点列表 服务实现类
|
||||
// * </p>
|
||||
// *
|
||||
// * @author lxp
|
||||
// * @since 2023-03-16
|
||||
// */
|
||||
//@Service
|
||||
//@Slf4j
|
||||
//@DS("process")
|
||||
//public class ThsOverRunLogServiceImpl extends ServiceImpl<ThsOverRunLogMapper, ThsOverRunLog> 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<ThsSupervise>().eq(ThsSupervise::getSupIndex, supIndex));
|
||||
// List<ThsOverRunLog> thsOverRunLogs = thsOverRunLogMapper.selectList(new LambdaQueryWrapper<ThsOverRunLog>().eq(ThsOverRunLog::getSupIndex, supIndex));
|
||||
// SuperviceRunLogVo superviceRunLogVo = new SuperviceRunLogVo();
|
||||
// superviceRunLogVo.setThsSupervise(thsSupervise);
|
||||
// superviceRunLogVo.setOverRunLog(thsOverRunLogs);
|
||||
// return superviceRunLogVo;
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public HttpResult updateSupervise(SuperviseParam superviseParam) {
|
||||
// List<ThsOverRunLog> overRunLog = superviseParam.getOverRunLog();
|
||||
// if (CollectionUtil.isEmpty(overRunLog)) {
|
||||
// HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "监测点不能为空", null);
|
||||
// }
|
||||
// List<ThsOverRunLog> thsOverRunLogs = thsOverRunLogMapper.selectList(new LambdaQueryWrapper<ThsOverRunLog>().eq(ThsOverRunLog::getSupIndex, superviseParam.getSupIndex()));
|
||||
// List<String> saveIds = superviseParam.getOverRunLog().stream().map(ThsOverRunLog::getId).collect(Collectors.toList());
|
||||
// List<String> allIds = thsOverRunLogs.stream().map(ThsOverRunLog::getId).collect(Collectors.toList());
|
||||
// allIds.removeAll(saveIds);
|
||||
// thsOverRunLogMapper.delete(new LambdaQueryWrapper<ThsOverRunLog>().in(ThsOverRunLog::getId, allIds));
|
||||
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, 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;
|
||||
//
|
||||
///**
|
||||
// * <p>
|
||||
// * 服务实现类
|
||||
// * </p>
|
||||
// *
|
||||
// * @author lxp
|
||||
// * @since 2023-03-16
|
||||
// */
|
||||
//@Service
|
||||
//@Slf4j
|
||||
//@RequiredArgsConstructor
|
||||
//public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, ThsSupervise> 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<String> initSupervise(SuperviseParam superviseParam) {
|
||||
// SuperviceRunLogVo superviceRunLogVo = new SuperviceRunLogVo();
|
||||
// List<ThsOverRunLog> overRunLogList = new ArrayList<>();
|
||||
// if (InitTypeEnum.MANUAL.getCode().equals(superviseParam.getInitType()) && StringUtils.isBlank(superviseParam.getDeptId())) {
|
||||
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.INVALID_PARAMETER, null, "");
|
||||
// }
|
||||
// List<ThsStrategyVo> thsStrategyList = this.selectStrategyList(superviseParam);
|
||||
// //按部门进行分组
|
||||
// if (CollectionUtil.isNotEmpty(thsStrategyList)) {
|
||||
// Map<String, List<ThsStrategyVo>> deptMap = thsStrategyList.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId));
|
||||
// for (Map.Entry<String, List<ThsStrategyVo>> entry : deptMap.entrySet()) {
|
||||
// String depId = entry.getKey();
|
||||
// ThsSupervise thsSupervise = new ThsSupervise();
|
||||
// List<ThsStrategyVo> deptList = entry.getValue();
|
||||
// List<ThsStrategyVo> oneLevel = deptList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合
|
||||
// List<SourceSteadyIndicator> oneSourceSteadyIndicatorList = new ArrayList<>();
|
||||
// if (CollectionUtil.isNotEmpty(oneLevel)) {
|
||||
// for (ThsStrategyVo oneStrategyVo : oneLevel) {
|
||||
// List<ThsWarnStrategyAss> oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
|
||||
// List<ThsWarnStrategyAss> oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//干扰源列表
|
||||
// List<String> 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<ThsStrategyVo> threeLevel = deptList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合
|
||||
// if (CollectionUtil.isNotEmpty(threeLevel)) {
|
||||
// for (ThsStrategyVo threeStrategyVo : threeLevel) {
|
||||
// Iterator<SourceSteadyIndicator> iterator = oneSourceSteadyIndicatorList.iterator();
|
||||
// while (iterator.hasNext()) {
|
||||
// SourceSteadyIndicator sourceSteady = iterator.next();
|
||||
// if (sourceSteady.getType().equals(threeStrategyVo.getType())) {
|
||||
// if (StringUtils.equals(threeStrategyVo.getMonitorId(), sourceSteady.getMonitorId())) {
|
||||
// List<ThsWarnStrategyAss> interferenceSourceAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.SOURCE_TYPE);
|
||||
// //干扰源类型id
|
||||
// List<String> threeInterferenceSourceIds = interferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
|
||||
// List<ThsWarnStrategyAss> threeSteadyIndicatorAsses = this.queryWarnStrategyAss(threeStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);
|
||||
// //指标类型id
|
||||
// List<String> 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<String> 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<String, Object> limitBoolMap = this.verifyLimit(limitRate, steady);
|
||||
// //构建监督数据
|
||||
// this.buildData(steady, limitBoolMap, monitor, limitRate, superviseParam.getInitType(), thsSupervise, overRunLogList);
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// //生成技术监督数据
|
||||
// HttpResult<Dept> 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<ThsOverRunLog> 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<ThsOverRunLog> 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<String, Object> 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<ThsStrategyVo> selectStrategyList(SuperviseParam superviseParam) {
|
||||
// return thsWarnStrategyMapper.selectStrategyList(superviseParam);
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 查询策略绑定的干扰源列表或指标参数列表
|
||||
// *
|
||||
// * @param warnId
|
||||
// * @param typeEnum
|
||||
// * @return
|
||||
// */
|
||||
// @DS("process")
|
||||
// @Override
|
||||
// public List<ThsWarnStrategyAss> queryWarnStrategyAss(String warnId, TypeEnum typeEnum) {
|
||||
// return thsWarnStrategyAssMapper.selectList(new LambdaQueryWrapper<ThsWarnStrategyAss>()
|
||||
// .eq(ThsWarnStrategyAss::getWarnId, warnId)
|
||||
// .eq(ThsWarnStrategyAss::getType, typeEnum.getCode()));
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 生成监督数据
|
||||
// *
|
||||
// * @param limitBoolMap
|
||||
// */
|
||||
// @Override
|
||||
// public void buildData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, RStatLimitRateDPO limitRate, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> thsOverRunLogs) {
|
||||
// if (CollectionUtil.isNotEmpty(limitBoolMap)) {
|
||||
// if (OperationEnum.AND.getCode().equals(steady.getOperation())) {
|
||||
// for (Map.Entry<String, Object> 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<String, Object> 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<String, Object> limitBoolMap, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> 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<String, Object> limitBoolMap, Integer initType, List<ThsOverRunLog> 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<String> 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<RStatLimitRateDPO>().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<String, Object> verifyLimit(RStatLimitRateDPO limitRate, SourceSteadyIndicator steady) {
|
||||
// if (limitRate != null) {
|
||||
// List<String> steadyIndicator = steady.getSteadyIndicator();
|
||||
// Map<String, Object> limitBoolMap = new HashedMap();
|
||||
// List<String> descriptionList = new ArrayList<>();
|
||||
// steadyIndicator.forEach(id -> {
|
||||
// HttpResult<DictData> 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;
|
||||
// }
|
||||
//}
|
||||
@@ -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;
|
||||
//
|
||||
///**
|
||||
// * <p>
|
||||
// * 告警/预警监测点列表 服务类
|
||||
// * </p>
|
||||
// *
|
||||
// * @author lxp
|
||||
// * @since 2023-03-16
|
||||
// */
|
||||
//public interface ThsOverRunLogService extends IService<ThsOverRunLog> {
|
||||
//
|
||||
// /**
|
||||
// * 保存技术监督监测点
|
||||
// *
|
||||
// * @param superviseParam
|
||||
// * @return
|
||||
// */
|
||||
// void saveOverRunLog(SuperviseParam superviseParam);
|
||||
//
|
||||
// /**
|
||||
// * 查询技术监督监测点集合
|
||||
// *
|
||||
// * @param supIndex
|
||||
// * @return
|
||||
// */
|
||||
// SuperviceRunLogVo superviseDetail(String supIndex);
|
||||
//
|
||||
// /**
|
||||
// * 更新技术监督
|
||||
// *
|
||||
// * @param superviseParam
|
||||
// */
|
||||
// HttpResult updateSupervise(SuperviseParam superviseParam);
|
||||
//}
|
||||
@@ -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;
|
||||
//
|
||||
///**
|
||||
// * <p>
|
||||
// * 服务类
|
||||
// * </p>
|
||||
// *
|
||||
// * @author lxp
|
||||
// * @since 2023-03-16
|
||||
// */
|
||||
//public interface ThsSuperviseService extends IService<ThsSupervise> {
|
||||
// /**
|
||||
// * 初始化技术监督
|
||||
// */
|
||||
// HttpResult<String> initSupervise(SuperviseParam superviseParam);
|
||||
//
|
||||
// /**
|
||||
// * 查新策略集合
|
||||
// *
|
||||
// * @param superviseParam
|
||||
// * @return
|
||||
// */
|
||||
// List<ThsStrategyVo> selectStrategyList(SuperviseParam superviseParam);
|
||||
//
|
||||
// /**
|
||||
// * 查询LimitTarget数据
|
||||
// *
|
||||
// * @param monitorId
|
||||
// */
|
||||
// RStatLimitRateDPO queryLimitTargetData(String monitorId);
|
||||
//
|
||||
// /**
|
||||
// * 生成监督数据
|
||||
// *
|
||||
// * @param limitBoolMap
|
||||
// */
|
||||
// void buildData(SourceSteadyIndicator steady, Map<String, Object> limitBoolMap, Monitor monitor, RStatLimitRateDPO limitRate, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> thsOverRunLogs);
|
||||
//
|
||||
// /**
|
||||
// * 查询策略绑定的干扰源列表或指标参数列表
|
||||
// *
|
||||
// * @param id
|
||||
// * @param typeEnum
|
||||
// * @return
|
||||
// */
|
||||
// List<ThsWarnStrategyAss> queryWarnStrategyAss(String id, TypeEnum typeEnum);
|
||||
//
|
||||
// /**
|
||||
// * 生成监督数据
|
||||
// *
|
||||
// * @param steady
|
||||
// * @param monitor
|
||||
// * @return
|
||||
// */
|
||||
// void buildSuperviseData(SourceSteadyIndicator steady, Monitor monitor, RStatLimitRateDPO limitRate, Map<String, Object> limitBoolMap, Integer initType, ThsSupervise thsSupervise, List<ThsOverRunLog> thsOverRunLogs);
|
||||
//
|
||||
// /**
|
||||
// * 生成 告警/预警监测点列表 数据
|
||||
// *
|
||||
// * @param steady
|
||||
// * @param thsSupervise
|
||||
// * @param monitor
|
||||
// */
|
||||
// void buildOverRunLog(SourceSteadyIndicator steady, ThsSupervise thsSupervise, Monitor monitor, RStatLimitRateDPO limitRate, Map<String, Object> limitBoolMap, Integer initType, List<ThsOverRunLog> thsOverRunLogs);
|
||||
//
|
||||
//
|
||||
// /**
|
||||
// * 生成技术监督数据
|
||||
// *
|
||||
// * @param thsSupervise
|
||||
// * @param overRunLogList
|
||||
// */
|
||||
// void creatData(Dept dept, ThsSupervise thsSupervise, List<ThsOverRunLog> overRunLogList);
|
||||
//
|
||||
// /**
|
||||
// * 创建技术监督
|
||||
// *
|
||||
// * @param superviseParam
|
||||
// * @return
|
||||
// */
|
||||
//
|
||||
// void creatSupervise(SuperviseParam superviseParam);
|
||||
//}
|
||||
@@ -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<SuperviceRunLogVo> initSupervise(@RequestBody SuperviseParam superviseParam);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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<ThsSuperviseFeignClient> {
|
||||
|
||||
@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<SuperviceRunLogVo> initSupervise(@RequestBody @Validated SuperviseParam superviseParam){
|
||||
log.error("{}异常,降级处理,异常为:{}", "自动生成技术监督单", throwable.toString());
|
||||
throw new BusinessException(finalExceptionEnum);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -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<String> targetIds;
|
||||
|
||||
/**
|
||||
* 0.与 1.或
|
||||
*/
|
||||
private Integer operation;
|
||||
|
||||
|
||||
/**
|
||||
* 0.监测点标签 1.监测点
|
||||
*/
|
||||
private Integer type;
|
||||
}
|
||||
@@ -30,5 +30,8 @@ public class SuperviseParam {
|
||||
@NotNull(message = "类型不可为空")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(name = "reDate", value = "用于补招时间")
|
||||
private String reDate;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -58,5 +58,5 @@ public class RMpOnlineMonitorOverproofProblem implements Serializable {
|
||||
/**
|
||||
* 告警持续时间
|
||||
*/
|
||||
private String warnLastTime;
|
||||
private Double warnLastTime;
|
||||
}
|
||||
|
||||
@@ -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<List<RMpOnlineMonitorOverproofProblem>> getAllAlarmDetailList(@RequestBody RStatPwAlarmDetailParam rStatPwAlarmDetailParam) {
|
||||
String methodDescribe = getMethodDescribe("getAllAlarmDetailList");
|
||||
List<RMpOnlineMonitorOverproofProblem> list = rMpPwAlarmDetailDService.getAllAlarmDetailList(rStatPwAlarmDetailParam);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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<RMpOnlineMonitorOverproofProblem> getAllAlarmDetailList(RStatPwAlarmDetailParam rStatPwAlarmDetailParam);
|
||||
}
|
||||
@@ -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<RMpOnlineMonitorOverproofProblem> getAllAlarmDetailList(RStatPwAlarmDetailParam rStatPwAlarmDetailParam) {
|
||||
List<RMpOnlineMonitorOverproofProblem> 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<String> zwMonitorIds = commTerminalGeneralClient.getRunMonitorIds().getData();
|
||||
|
||||
List<String> deptIds = deptFeignClient.getDepSonSelfCodetByDeptId(RequestUtil.getDeptIndex()).getData();
|
||||
|
||||
//查询告警明细
|
||||
LambdaQueryWrapper<RMpOnlineMonitorOverproofProblem> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper
|
||||
.ge(StringUtils.isNotBlank(startTime), RMpOnlineMonitorOverproofProblem::getDataDate, startTime)
|
||||
.le(StringUtils.isNotBlank(endTime), RMpOnlineMonitorOverproofProblem::getDataDate, endTime);
|
||||
List<RMpOnlineMonitorOverproofProblem> list = rMpOnlineMonitorOverproofProblemMapper.selectList(lambdaQueryWrapper);
|
||||
if(CollUtil.isEmpty(list)){
|
||||
return resultList;
|
||||
}
|
||||
|
||||
List<String> monitorIds = list.stream().map(RMpOnlineMonitorOverproofProblem::getMeasurementPointId).distinct().collect(Collectors.toList());
|
||||
|
||||
//commTerminalGeneralClient.getMonitorDetailList()
|
||||
|
||||
|
||||
|
||||
|
||||
return resultList;
|
||||
}
|
||||
}
|
||||
@@ -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<ThsSuperviseMapper, Ths
|
||||
this.buildSuperviseName(thsSupervise, superviceRunLogVo.getOverRunLog(), dept);
|
||||
this.save(thsSupervise);
|
||||
//TODO 解决工作流写死问题
|
||||
Map<String, Object> 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<ThsSuperviseMapper, Ths
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public HttpResult deleteSupervise(SuperviseDto superviseDto) {
|
||||
@@ -256,7 +249,7 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
thsSupervise.setSupIndex(supIndex);
|
||||
ThsSupervise thsSuperObj = thsSuperviseMapper.selectById(supIndex);
|
||||
|
||||
List<ThsOverRunLog> thsOverRunLogList = thsOverRunLogService.list(new LambdaQueryWrapper<ThsOverRunLog>().eq(ThsOverRunLog::getSupIndex,supIndex));
|
||||
List<ThsOverRunLog> thsOverRunLogList = thsOverRunLogService.list(new LambdaQueryWrapper<ThsOverRunLog>().eq(ThsOverRunLog::getSupIndex, supIndex));
|
||||
|
||||
if (files != null && files.length == 1) {
|
||||
ThsOverRunLog thsOverRunLog = thsOverRunLogService.getById(id);
|
||||
@@ -265,16 +258,31 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
this.updateSuperviesData(path, thsOverRunLog, ticketType, thsSupervise);
|
||||
}
|
||||
if (files != null && files.length > 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<String, Object> 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<ThsSuperviseMapper, Ths
|
||||
* @param ticketType
|
||||
* @param type
|
||||
*/
|
||||
private void updateProcess(ThsSupervise thsSupervise, Integer ticketType, Integer type,List<ThsOverRunLog> thsOverRunLogList,Integer uploadCount) {
|
||||
private void updateProcess(ThsSupervise thsSupervise, Integer ticketType, Integer type, List<ThsOverRunLog> thsOverRunLogList, Integer uploadCount) {
|
||||
TicketTypeEnum ticketTypeEnum = TicketTypeEnum.getTicketTypeEnumByCode(ticketType);
|
||||
if (ticketTypeEnum == null) {
|
||||
throw new BusinessException("上传单据参数类型错误!");
|
||||
@@ -294,8 +302,8 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
switch (ticketTypeEnum) {
|
||||
|
||||
case FEEDBACK:
|
||||
count = thsOverRunLogList.stream().filter(item->Objects.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<ThsSuperviseMapper, Ths
|
||||
break;
|
||||
}
|
||||
|
||||
if(uploadCount == count){
|
||||
if (uploadCount == count) {
|
||||
//默认上传报告后当前流程结束
|
||||
FlowableAss flowableAss = flowableAssMapper.selectById(thsSupervise.getSupIndex());
|
||||
Task task = iFlowTaskService.getTask(flowableAss.getExecIndex());
|
||||
@@ -480,21 +488,25 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
ThsSuperviseVo thsSuperviseVo = new ThsSuperviseVo();
|
||||
if (CollectionUtil.isNotEmpty(querySuperviseList)) {
|
||||
|
||||
List<String> userIds = querySuperviseList.stream().filter(item->Objects.nonNull(item.getModifyUser())).map(SuperviseVo::getModifyUser).distinct().collect(Collectors.toList());
|
||||
List<String> userIds = querySuperviseList.stream().map(SuperviseVo::getModifyUser).filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
||||
|
||||
List<User> userList = userFeignClient.getUserByIdList(userIds).getData();
|
||||
Map<String,User> userMap = userList.stream().collect(Collectors.toMap(User::getId,Function.identity()));
|
||||
Map<String, User> userMap = userList.stream().collect(Collectors.toMap(User::getId, Function.identity()));
|
||||
|
||||
List<String> deptIds = querySuperviseList.stream().map(SuperviseVo::getDeptId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<Dept> deptList = deptFeignClient.getDeptInfoListByIds(deptIds).getData();
|
||||
Map<String,Dept> deptMap = deptList.stream().collect(Collectors.toMap(Dept::getId,Function.identity()));
|
||||
Map<String, Dept> 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<ThsSuperviseMapper, Ths
|
||||
|
||||
List<ThsStrategyVo> thsStrategyList = this.thsWarnStrategyMapper.selectStrategyList(superviseParam);
|
||||
//按部门进行分组
|
||||
|
||||
List<ThsStrategyBindDTO> thsStrategyBindDTOList = new ArrayList<>();
|
||||
if (CollectionUtil.isNotEmpty(thsStrategyList)) {
|
||||
|
||||
List<ThsStrategyVo> threeLevel = thsStrategyList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合
|
||||
//获取排他策略集合
|
||||
assBindList(threeLevel, thsStrategyBindDTOList);
|
||||
Map<String, ThsStrategyBindDTO> deleteMap = thsStrategyBindDTOList.stream().collect(Collectors.toMap(ThsStrategyBindDTO::getKeyId, Function.identity()));
|
||||
|
||||
|
||||
List<ThsStrategyVo> oneLevel = thsStrategyList.stream().filter(r -> !GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//一级或二级策略集合
|
||||
|
||||
Map<String, List<ThsStrategyVo>> deptMap = oneLevel.stream().collect(Collectors.groupingBy(ThsStrategyVo::getDeptId));
|
||||
for (Map.Entry<String, List<ThsStrategyVo>> entry : deptMap.entrySet()) {
|
||||
String depId = entry.getKey();
|
||||
List<String> deptAllIds = deptFeignClient.getDepSonIdtByDeptId(depId).getData();
|
||||
Dept dept = deptFeignClient.getDeptById(depId).getData();
|
||||
|
||||
List<ThsOverRunLog> thsOverRunLogList = new ArrayList<>();
|
||||
@@ -633,8 +653,11 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
ThsSupervise thsSupervise = null;
|
||||
List<ThsStrategyVo> deptStrategyList = entry.getValue();
|
||||
if (CollectionUtil.isNotEmpty(deptStrategyList)) {
|
||||
|
||||
|
||||
//遍历当前部门下面的所有策略
|
||||
for (ThsStrategyVo oneStrategyVo : deptStrategyList) {
|
||||
List<ThsStrategyBindDTO> useBindDTOList = new ArrayList<>();
|
||||
List<ThsWarnStrategyAss> oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
|
||||
List<ThsWarnStrategyAss> oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表
|
||||
List<ThsWarnStrategyAss> oneMonitorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表
|
||||
@@ -642,11 +665,40 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
List<String> tagIds = oneInterferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
|
||||
List<String> targetIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
|
||||
List<String> 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<ThsStrategyBindDTO> 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<ThsStrategyBindDTO> tagObj = useBindDTOList.stream().filter(item -> item.getType() == 0).collect(Collectors.toList());
|
||||
List<String> useTagIds = tagObj.stream().map(ThsStrategyBindDTO::getKeyId).collect(Collectors.toList());
|
||||
Map<String, ThsStrategyBindDTO> tagMap = tagObj.stream().collect(Collectors.toMap(ThsStrategyBindDTO::getKeyId, Function.identity()));
|
||||
|
||||
List<ThsStrategyBindDTO> monitorObj = useBindDTOList.stream().filter(item -> item.getType() == 1).collect(Collectors.toList());
|
||||
List<String> useMonitorIds = monitorObj.stream().map(ThsStrategyBindDTO::getKeyId).collect(Collectors.toList());
|
||||
Map<String, ThsStrategyBindDTO> 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<CommMonitorInfoDTO> commMonitorInfoDTOList = commTerminalGeneralClient.tagOrIdGetMonitorList(monitorGetParam).getData();
|
||||
Map<String, CommMonitorInfoDTO> monitorInfoDTOMap = commMonitorInfoDTOList.stream().collect(Collectors.toMap(CommMonitorInfoDTO::getId, Function.identity()));
|
||||
@@ -656,27 +708,37 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
List<RStatLimitRateDPO> 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<String> descriptionList = new ArrayList<>();
|
||||
Integer[] count = {0};
|
||||
Map<String, Boolean> limitBoolMap = verifyLimit(rStatLimitRateDPO, dictTargetList, descriptionList, count);
|
||||
|
||||
//先判断当前测点是否监测点策略
|
||||
List<DictData> dictDataList;
|
||||
if (monitorMap.containsKey(rStatLimitRateDPO.getLineId())) {
|
||||
List<String> 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<String> tagTargetIds = tagMap.get(tagId).getTargetIds();
|
||||
dictDataList = dictTargetList.stream().filter(item -> tagTargetIds.contains(item.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
Map<String, Boolean> 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<ThsSuperviseMapper, Ths
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (superviseParam.getInitType().equals(InitTypeEnum.AUTO.getCode())) {
|
||||
if (CollectionUtil.isNotEmpty(thsSuperviseListPO)) {
|
||||
|
||||
//返回体处理
|
||||
if (CollectionUtil.isNotEmpty(thsSuperviseListPO)) {
|
||||
if (superviseParam.getInitType().equals(InitTypeEnum.AUTO.getCode())) {
|
||||
//处理flowable
|
||||
for(ThsSupervise ths:thsSuperviseListPO){
|
||||
Map<String, Object> 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<ThsSuperviseMapper, Ths
|
||||
return superviceRunLogVo;
|
||||
}
|
||||
|
||||
/*@Override
|
||||
public SuperviceRunLogVo initSuperviseHand(SuperviseParam superviseParam) {
|
||||
SuperviceRunLogVo superviceRunLogVo = new SuperviceRunLogVo();
|
||||
List<ThsOverRunLog> thsOverRunLogList = new ArrayList<>();
|
||||
String yesterday = LocalDate.now().minusDays(1).format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN));
|
||||
|
||||
List<DictData> 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<ThsStrategyVo> thsStrategyList = this.thsWarnStrategyMapper.selectStrategyList(superviseParam);
|
||||
//按部门进行分组
|
||||
if (CollectionUtil.isNotEmpty(thsStrategyList)) {
|
||||
ThsSupervise thsSupervise = null;
|
||||
List<ThsStrategyVo> 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<ThsWarnStrategyAss> oneInterferenceSourceAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
|
||||
List<ThsWarnStrategyAss> oneSteadyIndicatorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表
|
||||
List<ThsWarnStrategyAss> oneMonitorAsses = this.queryWarnStrategyAss(oneStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表
|
||||
|
||||
List<String> tagIds = oneInterferenceSourceAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
|
||||
List<String> targetIds = oneSteadyIndicatorAsses.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
|
||||
List<String> monitorIds = oneMonitorAsses.stream().map(ThsWarnStrategyAss::getAssId).collect(Collectors.toList());
|
||||
|
||||
MonitorGetParam monitorGetParam = new MonitorGetParam();
|
||||
monitorGetParam.setTagList(tagIds);
|
||||
monitorGetParam.setMonitorIds(monitorIds);
|
||||
|
||||
List<String> deptAllIds = deptFeignClient.getDepSonIdtByDeptId(oneStrategyVo.getDeptId()).getData();
|
||||
monitorGetParam.setDeptIds(deptAllIds);
|
||||
//TODO 需要校验
|
||||
List<CommMonitorInfoDTO> commMonitorInfoDTOList = commTerminalGeneralClient.tagOrIdGetMonitorList(monitorGetParam).getData();
|
||||
Map<String, CommMonitorInfoDTO> monitorInfoDTOMap = commMonitorInfoDTOList.stream().collect(Collectors.toMap(CommMonitorInfoDTO::getId, Function.identity()));
|
||||
|
||||
List<String> temIds = commMonitorInfoDTOList.stream().map(CommMonitorInfoDTO::getId).distinct().collect(Collectors.toList());
|
||||
|
||||
List<RStatLimitRateDPO> 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<String> descriptionList = new ArrayList<>();
|
||||
Integer[] count = {0};
|
||||
Map<String, Boolean> 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<ThsSupervise> queryPage(ThsSuperviseParam thsSuperviseParam) {
|
||||
@@ -862,6 +826,37 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据策略组装对象
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2024/3/19
|
||||
*/
|
||||
private void assBindList(List<ThsStrategyVo> levelList, List<ThsStrategyBindDTO> thsStrategyBindDTOList) {
|
||||
if (CollectionUtil.isNotEmpty(levelList)) {
|
||||
for (ThsStrategyVo thsStrategyVo : levelList) {
|
||||
List<ThsWarnStrategyAss> tagIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.SOURCE_TYPE);//干扰源列表
|
||||
List<ThsWarnStrategyAss> targetIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.INTERFERENCE_TYPE);//指标类型列表
|
||||
List<ThsWarnStrategyAss> monitorIdsAss = this.queryWarnStrategyAss(thsStrategyVo.getId(), TypeEnum.MONITOR_TYPE);//监测点列表
|
||||
|
||||
List<String> tagIds = tagIdsAss.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
|
||||
List<String> targetIds = targetIdsAss.stream().map(ThsWarnStrategyAss::getAssId).distinct().collect(Collectors.toList());
|
||||
List<String> 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文件
|
||||
*
|
||||
|
||||
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user