|
@@ -16,6 +16,10 @@ import com.persagy.apm.alarmservice.project.alarmcondition.model.ConvertAlarmCon
|
|
|
import com.persagy.apm.alarmservice.project.alarmcondition.model.Formula;
|
|
|
import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.*;
|
|
|
import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmrule.model.ProjectAlarmRule;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmrule.model.dto.QueryProjectAlarmRuleDTO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
|
|
|
import com.persagy.apm.common.constant.enums.ValidEnum;
|
|
|
import com.persagy.apm.common.context.poems.PoemsContext;
|
|
|
import com.persagy.apm.common.model.dto.Sort;
|
|
@@ -29,6 +33,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import java.util.*;
|
|
|
import java.util.regex.Pattern;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 报警条件(AlarmCondition) service层
|
|
@@ -44,6 +49,10 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
|
|
|
private IMonitorIndicatorService monitorIndicatorService;
|
|
|
@Autowired
|
|
|
JmsSender jmsSender;
|
|
|
+ @Autowired
|
|
|
+ private IProjectAlarmRuleService projectAlarmRuleService;
|
|
|
+ @Autowired
|
|
|
+ private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
|
|
|
|
|
|
/**
|
|
|
* 创建报警条件
|
|
@@ -282,11 +291,11 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
|
|
|
*/
|
|
|
@Override
|
|
|
public AlarmCondition queryAlarmConditionDetail(String id) {
|
|
|
-// AlarmCondition alarmCondition = getById(id);
|
|
|
-// if (alarmCondition == null) {
|
|
|
-// throw new IllegalArgumentException("查看AlarmCondition详情时发生异常,找不到要查看的记录,id=" + id);
|
|
|
-// }
|
|
|
-// return alarmCondition;
|
|
|
+ // AlarmCondition alarmCondition = getById(id);
|
|
|
+ // if (alarmCondition == null) {
|
|
|
+ // throw new IllegalArgumentException("查看AlarmCondition详情时发生异常,找不到要查看的记录,id=" + id);
|
|
|
+ // }
|
|
|
+ // return alarmCondition;
|
|
|
return getById(id);
|
|
|
}
|
|
|
|
|
@@ -367,6 +376,13 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
|
|
|
|
|
|
if (queryAlarmConditionDTO != null) {
|
|
|
|
|
|
+ if (queryAlarmConditionDTO.getIds() != null) {
|
|
|
+ if (CollectionUtils.isEmpty(queryAlarmConditionDTO.getIds())) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ queryWrapper.in(AlarmCondition.PROP_ID, queryAlarmConditionDTO.getIds());
|
|
|
+ }
|
|
|
+
|
|
|
if (queryAlarmConditionDTO.getInfoCodes() != null) {
|
|
|
queryWrapper.eq(AlarmCondition.PROP_INFO_CODES, queryAlarmConditionDTO.getInfoCodes());
|
|
|
}
|
|
@@ -561,4 +577,53 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
|
|
|
public List<AlarmCondition> queryAllAlarmConditions() {
|
|
|
return queryAlarmConditionList(new QueryAlarmConditionDTO());
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<AlarmCondition> queryByObj(String objId) {
|
|
|
+ // 获取设备id关联的项目报警规则
|
|
|
+ List<String> ruleIdList = projectAlarmRuleObjRelService.queryRuleIdsByObj(objId);
|
|
|
+ if (CollectionUtils.isEmpty(ruleIdList)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryProjectAlarmRuleDTO queryProjectAlarmRuleDTO = new QueryProjectAlarmRuleDTO();
|
|
|
+ queryProjectAlarmRuleDTO.setIds(ruleIdList);
|
|
|
+ List<ProjectAlarmRule> projectAlarmRules = projectAlarmRuleService.queryProjectAlarmRuleList(queryProjectAlarmRuleDTO);
|
|
|
+ // 查询这些规则中包含的报警条件
|
|
|
+ return queryByProjectAlarmRules(projectAlarmRules);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<AlarmCondition> queryByObjAndItemCode(String objId, String itemCode) {
|
|
|
+ // 获取设备id关联的项目报警规则
|
|
|
+ List<String> ruleIdList = projectAlarmRuleObjRelService.queryRuleIdsByObj(objId);
|
|
|
+ if (CollectionUtils.isEmpty(ruleIdList)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryProjectAlarmRuleDTO queryProjectAlarmRuleDTO = new QueryProjectAlarmRuleDTO();
|
|
|
+ queryProjectAlarmRuleDTO.setIds(ruleIdList);
|
|
|
+ queryProjectAlarmRuleDTO.setAlarmItemCode(itemCode);
|
|
|
+ List<ProjectAlarmRule> projectAlarmRules = projectAlarmRuleService.queryProjectAlarmRuleList(queryProjectAlarmRuleDTO);
|
|
|
+ return queryByProjectAlarmRules(projectAlarmRules);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<AlarmCondition> queryByProjectAlarmRules(List<ProjectAlarmRule> projectAlarmRules) {
|
|
|
+ if (CollectionUtils.isEmpty(projectAlarmRules)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> conditionIdList = projectAlarmRules.stream().map(
|
|
|
+ ProjectAlarmRule::getAlarmConditionId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ return queryByIds(conditionIdList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<AlarmCondition> queryByIds(List<String> conditionIdList) {
|
|
|
+ QueryAlarmConditionDTO queryAlarmConditionDTO = new QueryAlarmConditionDTO();
|
|
|
+ queryAlarmConditionDTO.setIds(conditionIdList);
|
|
|
+ return queryAlarmConditionList(queryAlarmConditionDTO);
|
|
|
+ }
|
|
|
}
|