|
@@ -1,5 +1,6 @@
|
|
|
package com.persagy.apm.alarmservice.project.alarmrule.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -8,29 +9,36 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.persagy.apm.alarmservice.common.util.DataUtils;
|
|
|
import com.persagy.apm.alarmservice.group.alarmrule.model.GroupAlarmRule;
|
|
|
import com.persagy.apm.alarmservice.group.alarmrule.model.dto.AddGroupAlarmRuleDTO;
|
|
|
+import com.persagy.apm.alarmservice.group.alarmrule.model.dto.GetGroupAlarmRuleDTO;
|
|
|
import com.persagy.apm.alarmservice.group.alarmrule.model.dto.QueryGroupAlarmRuleDTO;
|
|
|
import com.persagy.apm.alarmservice.group.alarmrule.service.IGroupAlarmRuleService;
|
|
|
import com.persagy.apm.alarmservice.group.management.model.equip.dto.QueryEquipDTO;
|
|
|
import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipItem;
|
|
|
import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipListItem;
|
|
|
import com.persagy.apm.alarmservice.group.management.service.impl.GroupManagementServiceImpl;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.model.ConvertAlarmConditionTool;
|
|
|
import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.QueryAlarmConditionDTO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.UpdateAlarmConditionDTO;
|
|
|
import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
|
|
|
import com.persagy.apm.alarmservice.project.alarmrule.dao.ProjectAlarmRuleMapper;
|
|
|
import com.persagy.apm.alarmservice.project.alarmrule.model.ConvertProjectAlarmRuleTool;
|
|
|
import com.persagy.apm.alarmservice.project.alarmrule.model.ProjectAlarmRule;
|
|
|
import com.persagy.apm.alarmservice.project.alarmrule.model.dto.*;
|
|
|
import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ConvertProjectAlarmRuleObjRelTool;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel;
|
|
|
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.ProjectAlarmRuleObjRelListItemVO;
|
|
|
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;
|
|
|
import com.persagy.apm.common.context.AppContext;
|
|
|
import com.persagy.apm.common.context.poems.PoemsContext;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
|
|
|
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.AlarmCondition;
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.AlarmEffectTime;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.*;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
|
|
@@ -39,6 +47,7 @@ import org.apache.commons.lang.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.AlarmCondition;
|
|
|
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
@@ -84,75 +93,64 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public String createProjectAlarmRule(AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) throws Exception {
|
|
|
ProjectAlarmRule projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertAddDto2Entity(addProjectAlarmRuleDTO);
|
|
|
- String uuid = DataUtils.getUUID();
|
|
|
- projectAlarmRule.setId(uuid);
|
|
|
- AddAlarmConditionDTO addAlarmConditionDTO = addProjectAlarmRuleDTO.getAlarmCondition();
|
|
|
- if (addProjectAlarmRuleDTO.getBelong() == INTEGER_ONE) {
|
|
|
- //查询对应报警类型的集团规则,将ID添加到项目规则表
|
|
|
- QueryGroupAlarmRuleDTO queryAlarmConditionDTO = new QueryGroupAlarmRuleDTO();
|
|
|
- queryAlarmConditionDTO.setAlarmItemCode(addProjectAlarmRuleDTO.getAlarmItemCode());
|
|
|
- List<GroupAlarmRule> groupAlarmRuleList = groupAlarmRuleService.queryGroupAlarmRuleList(queryAlarmConditionDTO);
|
|
|
- String conditionId = groupAlarmRuleList.get(0).getAlarmConditionId();
|
|
|
- projectAlarmRule.setAlarmConditionId(conditionId);
|
|
|
- } else {
|
|
|
- //新增自定义的规则
|
|
|
- Map<String, Object> map = alarmConditionService.createAlarmCondition(addAlarmConditionDTO);
|
|
|
- projectAlarmRule.setAlarmConditionId((String) map.get("id"));
|
|
|
- }
|
|
|
- //新增关联关系
|
|
|
- List<UpdateAlarmItemDTO> addRelationList = addProjectAlarmRuleDTO.getAddRelationList();
|
|
|
- String projectId = addProjectAlarmRuleDTO.getProjectId();
|
|
|
- List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList,uuid,projectId);
|
|
|
- projectAlarmRuleObjRelService.createBatchRelation(addRelations);
|
|
|
- // 设置默认值
|
|
|
- projectAlarmRule.setCreationTime(new Date());
|
|
|
+ AddAlarmConditionDTO alarmConditionDTO = addProjectAlarmRuleDTO.getAlarmCondition();
|
|
|
+ ConvertAlarmConditionTool.INSTANCE.convertAddDto2Entity(alarmConditionDTO);
|
|
|
+ //存储报警规则
|
|
|
+ Map<String, Object> alarmConditionMap = alarmConditionService.createAlarmCondition(alarmConditionDTO);
|
|
|
+ String conditionId = (String) alarmConditionMap.get("id");
|
|
|
+ projectAlarmRule.setAlarmConditionId(conditionId);
|
|
|
+ projectAlarmRule.setId(DataUtils.getUUID());
|
|
|
setDefaultValue(projectAlarmRule);
|
|
|
+ //存储项目报警
|
|
|
save(projectAlarmRule);
|
|
|
-// //同步创建设备报警条件
|
|
|
-// BatchAddAlarmConfigDTO batchAddAlarmConfigDTO = new BatchAddAlarmConfigDTO();
|
|
|
-// List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
|
-// for (AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO : addProjectAlarmRuleDTO.getAddRelationList()) {
|
|
|
-// AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
|
|
|
-// addAlarmConfigDTO.setObjId(addProjectAlarmRuleObjRelDTO.getEquipId());
|
|
|
-// addAlarmConfigDTO.setItemCode(addProjectAlarmRuleDTO.getAlarmItemCode());
|
|
|
-// addAlarmConfigDTO.setClassCode(addProjectAlarmRuleDTO.getClassCode());
|
|
|
-// addAlarmConfigDTO.setLevel(addAlarmConditionDTO.getAlarmLevel());
|
|
|
-// AlarmCondition condition = new AlarmCondition();
|
|
|
-// condition.setTrigger(addAlarmConditionDTO.getBackend());
|
|
|
-// List<String> infoCodeList = addAlarmConditionDTO.getInfoCodes();
|
|
|
-// condition.setInfoCode(infoCodeList);
|
|
|
-// condition.setTriggerUphold(addAlarmConditionDTO.getTriggerUphold());
|
|
|
-// Map<String, Object> stringMap = alarmConditionService.frontend2Backend(addAlarmConditionDTO.getFrontend());
|
|
|
-// condition.setRules((List<String>) stringMap.get("displayFormula"));
|
|
|
-// addAlarmConfigDTO.setCondition(condition);
|
|
|
-// alarmConfigs.add(addAlarmConfigDTO);
|
|
|
-// }
|
|
|
-// batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
-// alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
-
|
|
|
- //同步更新设备报警条件 begin
|
|
|
-// BatchUpdateAlarmConfigDTO batchUpdateAlarmConfigDTO = new BatchUpdateAlarmConfigDTO();
|
|
|
-// List<UpdateAlarmConfigDTO> updateAlarmConfigDTOs = new ArrayList();
|
|
|
-// String condition = addProjectAlarmRuleDTO.getCondition();
|
|
|
-// String classCode = addProjectAlarmRuleDTO.getClassCode();
|
|
|
-// List<GroupManagementVo> records = groupManagementService.getEquipList(condition, classCode);
|
|
|
-// Map<String, Object> stringMap = alarmConditionService.frontend2Backend(addAlarmConditionDTO.getFrontend());
|
|
|
-// for (GroupManagementVo record : records) {
|
|
|
-// AlarmCondition alarmCondit = new AlarmCondition();
|
|
|
-// alarmCondit.setTrigger(alarmCondition.getBackend());
|
|
|
-// List<String> infoCodeList = alarmCondition.getInfoCodes();
|
|
|
-// alarmCondit.setInfoCode(infoCodeList);
|
|
|
-// alarmCondit.setTriggerUphold(alarmCondition.getTriggerUphold());
|
|
|
-// alarmCondit.setRules((List<String>) stringMap.get("displayFormula"));
|
|
|
-// UpdateAlarmConfigDTO updateAlarmConfigDTO = new UpdateAlarmConfigDTO();
|
|
|
-// updateAlarmConfigDTO.setCondition(alarmCondit);
|
|
|
-// updateAlarmConfigDTO.setId(record.getId());
|
|
|
-// updateAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
|
|
|
-// updateAlarmConfigDTOs.add(updateAlarmConfigDTO);
|
|
|
-// }
|
|
|
-// batchUpdateAlarmConfigDTO.setAlarmConfigs(updateAlarmConfigDTOs);
|
|
|
-// alarmConfigService.batchUpdate(batchUpdateAlarmConfigDTO);
|
|
|
- //同步更新设备报警条件 end
|
|
|
+
|
|
|
+ List<ProjectAlarmRuleObjRel> addEquipList = addProjectAlarmRuleDTO.getAddEquipList();
|
|
|
+ addEquipList.forEach(addEquip -> {
|
|
|
+ addEquip.setProjectAlarmRuleId(projectAlarmRule.getId());
|
|
|
+ });
|
|
|
+ //保存报警对象
|
|
|
+ projectAlarmRuleObjRelService.saveProjectAlarmRule(addEquipList);
|
|
|
+ //保存中台规则
|
|
|
+ BatchAddAlarmConfigDTO batchAddAlarmConfigDTO = new BatchAddAlarmConfigDTO();
|
|
|
+ List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
|
+ for (ProjectAlarmRuleObjRel ProjectAlarmRuleObjRel : addEquipList) {
|
|
|
+ AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
|
|
|
+ String equipId = ProjectAlarmRuleObjRel.getObjId();
|
|
|
+ addAlarmConfigDTO.setObjId(equipId);
|
|
|
+ addAlarmConfigDTO.setItemCode(addProjectAlarmRuleDTO.getAlarmItemCode());
|
|
|
+ addAlarmConfigDTO.setClassCode(addProjectAlarmRuleDTO.getClassCode());
|
|
|
+ addAlarmConfigDTO.setLevel(alarmConditionDTO.getAlarmLevel());
|
|
|
+ addAlarmConfigDTO.setCategory("Eqdx");
|
|
|
+ addAlarmConfigDTO.setOpen(1);
|
|
|
+ AlarmCondition equipCondition = new AlarmCondition();
|
|
|
+ List<String> infoCodeList = (List<String>) alarmConditionMap.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) alarmConditionMap.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(alarmConditionDTO.getTriggerUphold() * 60);
|
|
|
+ equipCondition.setRules((List<String>) alarmConditionMap.get("displayFormula"));
|
|
|
+ JSONArray configs = JSONArray.parseArray(JSON.toJSONString(alarmConditionDTO.getFrontend()));
|
|
|
+ equipCondition.setConfigs(configs);
|
|
|
+ AlarmEffectTime effectTime = new AlarmEffectTime();
|
|
|
+ effectTime.setType("always");
|
|
|
+ equipCondition.setEffectTime(effectTime);
|
|
|
+ addAlarmConfigDTO.setCondition(equipCondition);
|
|
|
+ alarmConfigs.add(addAlarmConfigDTO);
|
|
|
+ }
|
|
|
+ batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
+ batchAddAlarmConfigDTO.setProjectId(addProjectAlarmRuleDTO.getProjectId());
|
|
|
+ alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
return projectAlarmRule.getId();
|
|
|
}
|
|
|
|
|
@@ -165,9 +163,6 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
*/
|
|
|
private void setDefaultValue(ProjectAlarmRule projectAlarmRule) {
|
|
|
projectAlarmRule.setCreator(AppContext.getContext().getAccountId());
|
|
|
- projectAlarmRule.setModifiedTime(new Date());
|
|
|
- // todo 其他默认的属性
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -200,70 +195,100 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertUpdateDto2Entity(projectAlarmRule, updateProjectAlarmRuleDTO);
|
|
|
projectAlarmRule.setModifier(AppContext.getContext().getAccountId());
|
|
|
AddAlarmConditionDTO alarmCondition = updateProjectAlarmRuleDTO.getAlarmCondition();
|
|
|
- if (alarmCondition != null) {
|
|
|
- //查询已有报警
|
|
|
- ProjectAlarmRule projectRule = getById(updateProjectAlarmRuleDTO.getId());
|
|
|
- int belongOld = projectRule.getBelong();
|
|
|
- int belongNew = updateProjectAlarmRuleDTO.getBelong();
|
|
|
- //删除对应项目、报警类型、报警对象的关联
|
|
|
- projectAlarmRuleObjRelService.deleteRelation(updateProjectAlarmRuleDTO.getProjectId());
|
|
|
- if (belongOld > belongNew) {//集团规则->项目自定义规则
|
|
|
- //新增自定义的规则
|
|
|
- Map<String, Object> map = alarmConditionService.createAlarmCondition(alarmCondition);
|
|
|
- projectAlarmRule.setAlarmConditionId((String) map.get("id"));
|
|
|
- } else if (belongOld < belongNew) {//项目自定义规则->集团规则
|
|
|
- String conditionId = getConditionId(updateProjectAlarmRuleDTO.getAlarmItemCode());
|
|
|
- projectAlarmRule.setAlarmConditionId(conditionId);
|
|
|
- } else if (belongOld == 0 && belongNew == 0) {//项目自定义规则->项目自定义规则
|
|
|
- //删除自定义规则,新增自定义的规则
|
|
|
- alarmConditionService.deleteAlarmCondition(updateProjectAlarmRuleDTO.getAlarmConditionId());
|
|
|
- Map<String, Object> map = alarmConditionService.createAlarmCondition(alarmCondition);
|
|
|
- projectAlarmRule.setAlarmConditionId((String) map.get("id"));
|
|
|
- }
|
|
|
- //新增关联关系
|
|
|
- List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddRelationList();
|
|
|
- String projectId = updateProjectAlarmRuleDTO.getProjectId();
|
|
|
- String id = updateProjectAlarmRuleDTO.getId();
|
|
|
- List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList,id,projectId);
|
|
|
- projectAlarmRuleObjRelService.createBatchRelation(addRelations);
|
|
|
-
|
|
|
- //同步更新设备报警条件 begin
|
|
|
-// BatchUpdateAlarmConfigDTO batchUpdateAlarmConfigDTO = new BatchUpdateAlarmConfigDTO();
|
|
|
-// List<UpdateAlarmConfigDTO> updateAlarmConfigDTOs = new ArrayList();
|
|
|
-// String condition = updateProjectAlarmRuleDTO.getCondition();
|
|
|
-// String classCode = updateProjectAlarmRuleDTO.getClassCode();
|
|
|
-// QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
|
|
|
-// queryEquipDTO.setProjectId(projectId);
|
|
|
-// queryEquipDTO.setClassCode(classCode);
|
|
|
-// queryEquipDTO.setCondition(condition);
|
|
|
-// List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
|
|
|
-// Map<String, Object> stringMap = alarmConditionService.frontend2Backend(alarmCondition.getFrontend());
|
|
|
-// for (EquipItem record : records) {
|
|
|
-// AlarmCondition alarmCondit = new AlarmCondition();
|
|
|
-// alarmCondit.setTrigger(alarmCondition.getBackend());
|
|
|
-// List<String> infoCodeList = alarmCondition.getInfoCodes();
|
|
|
-// alarmCondit.setInfoCode(infoCodeList);
|
|
|
-// alarmCondit.setTriggerUphold(alarmCondition.getTriggerUphold());
|
|
|
-// alarmCondit.setRules((List<String>) stringMap.get("displayFormula"));
|
|
|
-// UpdateAlarmConfigDTO updateAlarmConfigDTO = new UpdateAlarmConfigDTO();
|
|
|
-// updateAlarmConfigDTO.setCondition(alarmCondit);
|
|
|
-// updateAlarmConfigDTO.setId(record.getId());
|
|
|
-// updateAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
|
|
|
-// updateAlarmConfigDTOs.add(updateAlarmConfigDTO);
|
|
|
-// }
|
|
|
-// batchUpdateAlarmConfigDTO.setAlarmConfigs(updateAlarmConfigDTOs);
|
|
|
-// alarmConfigService.batchUpdate(batchUpdateAlarmConfigDTO);
|
|
|
- //同步更新设备报警条件 end
|
|
|
+ Map<String, Object> conditionMap = alarmConditionService.swtichAlarmCondition(alarmCondition);
|
|
|
+ //查询已有项目报警
|
|
|
+ ProjectAlarmRule projectRule = getById(updateProjectAlarmRuleDTO.getId());
|
|
|
+ int belongOld = projectRule.getBelong();
|
|
|
+ int belongNew = updateProjectAlarmRuleDTO.getBelong();
|
|
|
+ if (belongOld > belongNew) {//集团规则->项目自定义规则
|
|
|
+ //新增规则
|
|
|
+ com.persagy.apm.alarmservice.project.alarmcondition.model.AlarmCondition condition =
|
|
|
+ (com.persagy.apm.alarmservice.project.alarmcondition.model.AlarmCondition) conditionMap.get("alarmCondition");
|
|
|
+ String uuid = DataUtils.getUUID();
|
|
|
+ condition.setId(uuid);
|
|
|
+ alarmConditionService.saveCondition(condition);
|
|
|
+ //将规则ID传给项目报警
|
|
|
+ projectAlarmRule.setAlarmConditionId(uuid);
|
|
|
+ } else if (belongOld < belongNew) {//项目自定义规则->集团规则
|
|
|
+ //删除自定义规则
|
|
|
+ ProjectAlarmRule projectAlarm = getById(updateProjectAlarmRuleDTO.getId());
|
|
|
+ alarmConditionService.deleteAlarmCondition(projectAlarm.getAlarmConditionId());
|
|
|
+ //查询集团规则,将集团规则ID传给项目报警
|
|
|
+ GetGroupAlarmRuleDTO getGroupAlarmRuleDTO = new GetGroupAlarmRuleDTO();
|
|
|
+ getGroupAlarmRuleDTO.setGroupId(updateProjectAlarmRuleDTO.getGroupId());
|
|
|
+ getGroupAlarmRuleDTO.setAlarmItemCode(updateProjectAlarmRuleDTO.getAlarmItemCode());
|
|
|
+ GroupAlarmRule groupAlarmRule = groupAlarmRuleService.getGroupAlarmRule(getGroupAlarmRuleDTO);
|
|
|
+ projectAlarmRule.setAlarmConditionId(groupAlarmRule.getId());
|
|
|
+ } else if (belongOld == 0 && belongNew == 0) {//项目自定义规则->项目自定义规则
|
|
|
+ //修改自定义规则
|
|
|
+ UpdateAlarmConditionDTO updateAlarmConditionDTO = new UpdateAlarmConditionDTO();
|
|
|
+ updateAlarmConditionDTO.setFrontend(alarmCondition.getFrontend());
|
|
|
+ updateAlarmConditionDTO.setId(updateProjectAlarmRuleDTO.getAlarmConditionId());
|
|
|
+ updateAlarmConditionDTO.setTriggerUphold(alarmCondition.getTriggerUphold());
|
|
|
+ updateAlarmConditionDTO.setAlarmLevel(alarmCondition.getAlarmLevel());
|
|
|
+ alarmConditionService.updateAlarmCondition(updateAlarmConditionDTO);
|
|
|
}
|
|
|
//更新项目报警
|
|
|
projectAlarmRule.setModifiedTime(new Date());
|
|
|
projectAlarmRule.setModifier(PoemsContext.getContext().getUserId());
|
|
|
updateById(projectAlarmRule);
|
|
|
-
|
|
|
-
|
|
|
+ //删除报警对象关联关系
|
|
|
+ projectAlarmRuleObjRelService.deleteRelation(updateProjectAlarmRuleDTO.getId());
|
|
|
+ //新增关联关系
|
|
|
+ List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddRelationList();
|
|
|
+ String projectId = updateProjectAlarmRuleDTO.getProjectId();
|
|
|
+ String id = updateProjectAlarmRuleDTO.getId();
|
|
|
+ List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList, id, projectId);
|
|
|
+ projectAlarmRuleObjRelService.createBatchRelation(addRelations);
|
|
|
+ String condition = updateProjectAlarmRuleDTO.getCondition();
|
|
|
+ String classCode = updateProjectAlarmRuleDTO.getClassCode();
|
|
|
+ String alarmItemCode = updateProjectAlarmRuleDTO.getAlarmItemCode();
|
|
|
+ //删除中台报警条件
|
|
|
+ groupAlarmRuleService.deleteEquipCondition(condition, classCode, alarmItemCode);
|
|
|
+ //新增中台报警条件
|
|
|
+ BatchAddAlarmConfigDTO batchAddAlarmConfigDTO = new BatchAddAlarmConfigDTO();
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+ batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
+ batchAddAlarmConfigDTO.setProjectId(projectId);
|
|
|
+ alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
}
|
|
|
|
|
|
- private List<AddProjectAlarmRuleObjRelDTO> convert2AddProjectAlarmRuleObjRelDTO(List<UpdateAlarmItemDTO> addRelationList,String id,String projectId) {
|
|
|
+ private List<AddProjectAlarmRuleObjRelDTO> convert2AddProjectAlarmRuleObjRelDTO(List<UpdateAlarmItemDTO> addRelationList, String id, String projectId) {
|
|
|
List<AddProjectAlarmRuleObjRelDTO> list = new ArrayList<>();
|
|
|
for (UpdateAlarmItemDTO updateAlarmItemDTO : addRelationList) {
|
|
|
AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO = new AddProjectAlarmRuleObjRelDTO();
|
|
@@ -327,7 +352,7 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
alarmConditionService.deleteAlarmCondition(projectAlarmRule.getAlarmConditionId());
|
|
|
}
|
|
|
//删除项目报警规则与监测对象的关联
|
|
|
- projectAlarmRuleObjRelService.deleteRelation(projectAlarmRule.getProjectId());
|
|
|
+ projectAlarmRuleObjRelService.deleteRelation(projectAlarmRule.getId());
|
|
|
//删除设备报警条件 begin
|
|
|
BatchDeleteAlarmConfigDTO batchDeleteAlarmConfigDTO = new BatchDeleteAlarmConfigDTO();
|
|
|
List<DeleteAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
@@ -532,6 +557,7 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
QueryWrapper<ProjectAlarmRule> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq(ProjectAlarmRule.PROP_GROUP_ID, queryRuleObjRelDTO.getGroupId());
|
|
|
queryWrapper.eq(ProjectAlarmRule.PROP_ALARM_ITEM_CODE, queryRuleObjRelDTO.getAlarmItemCode());
|
|
|
+ queryWrapper.eq(ProjectAlarmRule.PROP_PROJECT_ID, queryRuleObjRelDTO.getProjectId());
|
|
|
List<ProjectAlarmRule> list = list(queryWrapper);
|
|
|
List<String> idList = list.stream().map(ProjectAlarmRule::getId).collect(Collectors.toList());
|
|
|
return idList;
|