1.国网上送代码调整
2.技术监督模块策略添加类型判断
This commit is contained in:
@@ -637,42 +637,26 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
|
||||
List<ThsStrategyVo> threeLevel = thsStrategyList.stream().filter(r -> GradeEnum.THREE_LEVEL.getCode().equals(r.getGrade())).collect(Collectors.toList());//三级策略集合
|
||||
//获取排他策略集合
|
||||
assBindList(threeLevel, thsStrategyBindDTOList);
|
||||
if(CollectionUtil.isNotEmpty(threeLevel)){
|
||||
threeLevel.forEach(i->assBindList(i, 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();
|
||||
Dept dept = deptFeignClient.getDeptById(depId).getData();
|
||||
|
||||
List<ThsOverRunLog> thsOverRunLogList = new ArrayList<>();
|
||||
|
||||
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);//监测点列表
|
||||
|
||||
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);
|
||||
}
|
||||
assBindList(oneStrategyVo,useBindDTOList);
|
||||
//根据排他策略过滤12级策略
|
||||
Iterator<ThsStrategyBindDTO> iterator = useBindDTOList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
@@ -694,7 +678,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
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(useTagIds);
|
||||
monitorGetParam.setMonitorIds(useMonitorIds);
|
||||
@@ -704,11 +687,9 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
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这边稳态指标没用一个需要考虑兼容问题
|
||||
|
||||
//判断指标是否在策略中
|
||||
if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) {
|
||||
for (RStatLimitRateDPO rStatLimitRateDPO : rStatLimitRateDPOList) {
|
||||
@@ -728,7 +709,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
}
|
||||
|
||||
Map<String, Boolean> limitBoolMap = verifyLimit(rStatLimitRateDPO, dictDataList, descriptionList, count);
|
||||
|
||||
boolean shouldContinue;
|
||||
if (oneStrategyVo.getOperation().equals(OperationEnum.AND.getCode())) {
|
||||
//与
|
||||
@@ -772,10 +752,8 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -832,9 +810,8 @@ 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) {
|
||||
private void assBindList(ThsStrategyVo thsStrategyVo, List<ThsStrategyBindDTO> thsStrategyBindDTOList) {
|
||||
|
||||
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);//监测点列表
|
||||
@@ -852,8 +829,6 @@ public class ThsSuperviseServiceImpl extends ServiceImpl<ThsSuperviseMapper, Ths
|
||||
thsStrategyBindDTOList.add(strategyBindDTO);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.njcn.user.api.DeptFeignClient;
|
||||
import com.njcn.user.pojo.dto.DeptDTO;
|
||||
import com.njcn.web.utils.RequestUtil;
|
||||
import com.njcn.web.utils.WebUtil;
|
||||
import liquibase.pro.packaged.S;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.math3.random.RandomDataGenerator;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -49,6 +50,8 @@ import java.util.stream.Collectors;
|
||||
public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMapper, ThsWarnStrategy> implements ThsWarnStrategyService {
|
||||
|
||||
private final ThsWarnStrategyAssServiceImpl thsWarnStrategyAssService;
|
||||
|
||||
private final ThsWarnStrategyMapper thsWarnStrategyMapper;
|
||||
private final MonitorClient monitorClient;
|
||||
private final DeptFeignClient deptFeignClient;
|
||||
private final ThsDeptAlarmService thsDeptAlarmService;
|
||||
@@ -107,6 +110,8 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public Boolean bindStrategy(StrategyParam.BindParam param) {
|
||||
checkBind(param);
|
||||
|
||||
List<ThsWarnStrategyAss> assList = new ArrayList<>();
|
||||
|
||||
ThsWarnStrategy thsWarnStrategy = new ThsWarnStrategy();
|
||||
@@ -141,6 +146,38 @@ public class ThsWarnStrategyServiceImpl extends ServiceImpl<ThsWarnStrategyMappe
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验
|
||||
*/
|
||||
private boolean checkBind(StrategyParam.BindParam param){
|
||||
|
||||
LambdaQueryWrapper<ThsWarnStrategy> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.select(ThsWarnStrategy::getId).eq(ThsWarnStrategy::getDeptId,param.getDeptId())
|
||||
.eq(ThsWarnStrategy::getType,param.getStrategyType()).eq(ThsWarnStrategy::getGrade,param.getGrade());
|
||||
|
||||
if (StrUtil.isNotBlank(param.getId())) {
|
||||
lambdaQueryWrapper.ne(ThsWarnStrategy::getId,param.getId());
|
||||
}
|
||||
|
||||
List<ThsWarnStrategy> thsWarnStrategyList = thsWarnStrategyMapper.selectList(lambdaQueryWrapper);
|
||||
List<String> strategyIds = thsWarnStrategyList.stream().map(ThsWarnStrategy::getId).collect(Collectors.toList());
|
||||
if(CollectionUtil.isEmpty(strategyIds)){
|
||||
return true;
|
||||
}
|
||||
|
||||
//判断标签和监测点是否已经存在
|
||||
List<ThsWarnStrategyAss> thsWarnStrategyAssList = thsWarnStrategyAssService.lambdaQuery().select(ThsWarnStrategyAss::getAssId).in(ThsWarnStrategyAss::getWarnId,strategyIds).list();
|
||||
long tagCount = thsWarnStrategyAssList.stream().filter(item->param.getMonitorTag().contains(item.getAssId())).count();
|
||||
if(tagCount>0){
|
||||
throw new BusinessException("所选干扰源已经存在策略!");
|
||||
}
|
||||
long monitorCount = thsWarnStrategyAssList.stream().filter(item->param.getMonitorIds().contains(item.getAssId())).count();
|
||||
if(monitorCount>0){
|
||||
throw new BusinessException("所选监测点已经存在策略!");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StrategyParam.StrategyUpdateParam getUpdateStrategy(String id) {
|
||||
return this.baseMapper.selectUpdateStrategy(id);
|
||||
|
||||
Reference in New Issue
Block a user