|
@@ -33,6 +33,7 @@ import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRu
|
|
|
import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
|
|
|
import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.QueryRuleObjRelDTO;
|
|
|
import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.UpdateAlarmItemDTO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ObjConditionRel;
|
|
|
import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
|
|
|
import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
|
|
|
import com.persagy.apm.common.constant.enums.ValidEnum;
|
|
@@ -232,70 +233,30 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
projectAlarmRule.setBelong(updateProjectAlarmRuleDTO.getBelong());
|
|
|
// 前面更新报警条件已经发送了消息,这里更新报警规则不需要再发送消息
|
|
|
updateById(projectAlarmRule);
|
|
|
- // 根据报警规则删除规则与设备关联关系并发送mq消息
|
|
|
- deleteRelsAndSendMsgByRuleId(updateProjectAlarmRuleDTO.getId());
|
|
|
+ // 根据报警规则删除规则与设备关联关系
|
|
|
+ List<ProjectAlarmRuleObjRel> deletedObjConditionRels = deleteRels(updateProjectAlarmRuleDTO.getId());
|
|
|
//新增关联关系
|
|
|
List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddEquipList();
|
|
|
String projectId = updateProjectAlarmRuleDTO.getProjectId();
|
|
|
String id = updateProjectAlarmRuleDTO.getId();
|
|
|
List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList, id, projectId);
|
|
|
- projectAlarmRuleObjRelService.createBatchRelation(addRelations);
|
|
|
- // 勿删后续可能启用 lixing
|
|
|
- // String condition = updateProjectAlarmRuleDTO.getCondition();
|
|
|
- // String classCode = updateProjectAlarmRuleDTO.getClassCode();
|
|
|
- // String alarmItemCode = updateProjectAlarmRuleDTO.getAlarmItemCode();
|
|
|
- // //删除中台报警条件
|
|
|
- // groupAlarmRuleService.deleteEquipCondition(condition, classCode, alarmItemCode);
|
|
|
- // //新增中台报警条件
|
|
|
- // List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
|
- // for (AddProjectAlarmRuleObjRelDTO equipRel : addRelations) {
|
|
|
- // AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
|
|
|
- // String equipId = equipRel.getObjId();
|
|
|
- // addAlarmConfigDTO.setObjId(equipId);
|
|
|
- // addAlarmConfigDTO.setItemCode(alarmItemCode);
|
|
|
- // addAlarmConfigDTO.setClassCode(classCode);
|
|
|
- // addAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
|
|
|
- // addAlarmConfigDTO.setCategory("Eqdx");
|
|
|
- // addAlarmConfigDTO.setOpen(1);
|
|
|
- // AlarmCondition equipCondition = new AlarmCondition();
|
|
|
- // List<String> infoCodeList = (List<String>) conditionMap.get("infoCode");
|
|
|
- // List<String> infoCodeNew = new ArrayList<>();
|
|
|
- // for (String infoCode : infoCodeList) {
|
|
|
- // String replacement = equipId + "_" + infoCode;
|
|
|
- // infoCodeNew.add(infoCode.replaceAll(infoCode, replacement));
|
|
|
- // }
|
|
|
- // equipCondition.setInfoCode(infoCodeNew);
|
|
|
- // String backend = (String) conditionMap.get("backend");
|
|
|
- // for (String infoCode : infoCodeList) {
|
|
|
- // String replacement = equipId + "_" + infoCode;
|
|
|
- // backend = backend.replaceAll(infoCode, replacement);
|
|
|
- // }
|
|
|
- // equipCondition.setEnd("!" + backend);
|
|
|
- // equipCondition.setEndUphold(0);
|
|
|
- // equipCondition.setTrigger(backend);
|
|
|
- // equipCondition.setTriggerUphold(alarmCondition.getTriggerUphold() * 60);
|
|
|
- // equipCondition.setRules((List<String>) conditionMap.get("displayFormula"));
|
|
|
- // JSONArray configs = JSONArray.parseArray(JSON.toJSONString(alarmCondition.getFrontend()));
|
|
|
- // equipCondition.setConfigs(configs);
|
|
|
- // AlarmEffectTime effectTime = new AlarmEffectTime();
|
|
|
- // effectTime.setType("always");
|
|
|
- // equipCondition.setEffectTime(effectTime);
|
|
|
- // addAlarmConfigDTO.setCondition(equipCondition);
|
|
|
- // alarmConfigs.add(addAlarmConfigDTO);
|
|
|
- // }
|
|
|
- // sendBatchCreateAlarmConfigMsg(alarmConfigs, projectId);
|
|
|
+ List<ProjectAlarmRuleObjRel> createdObjConditionRels = projectAlarmRuleObjRelService.createBatchRelation(addRelations);
|
|
|
+ // 发送更新关联关系的消息
|
|
|
+ jmsSender.sendUpdateObjConditionRelListMsg(deletedObjConditionRels, createdObjConditionRels);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 根据报警规则删除规则与设备关联关系并发送mq消息
|
|
|
+ * 根据报警规则删除规则与设备关联关系
|
|
|
*
|
|
|
* @param ruleId 报警规则id
|
|
|
+ * @return 删除的关联关系
|
|
|
* @author lixing
|
|
|
* @version V1.0 2021/10/26 5:38 下午
|
|
|
*/
|
|
|
- private void deleteRelsAndSendMsgByRuleId(String ruleId) {
|
|
|
- jmsSender.sendRemoveObjConditionRelListMsg(ruleId);
|
|
|
+ private List<ProjectAlarmRuleObjRel> deleteRels(String ruleId) {
|
|
|
+ List<ProjectAlarmRuleObjRel> projectAlarmRuleObjRels = jmsSender.getProjectAlarmRuleObjRels(ruleId);
|
|
|
projectAlarmRuleObjRelMapper.deleteByProjectAlarmRuleId(ruleId);
|
|
|
+ return projectAlarmRuleObjRels;
|
|
|
}
|
|
|
|
|
|
private List<AddProjectAlarmRuleObjRelDTO> convert2AddProjectAlarmRuleObjRelDTO(List<UpdateAlarmItemDTO> addRelationList, String id, String projectId) {
|
|
@@ -524,7 +485,7 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
}
|
|
|
// 按项目批量保存
|
|
|
saveBatch(projectAlarmRuleList);
|
|
|
- projectAlarmRuleObjRelService.createBatchRelation(addRelationList);
|
|
|
+ projectAlarmRuleObjRelService.createBatchRelationAndSendMsg(addRelationList);
|
|
|
count++;
|
|
|
log.info("已完成{}个项目的报警规则创建, 剩余{}个项目的报警规则待创建", count, projects.size() - count);
|
|
|
}
|