|
@@ -14,6 +14,7 @@ import com.persagy.apm.alarmservice.group.management.model.equip.dto.QueryEquipD
|
|
|
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.service.IAlarmConditionService;
|
|
|
import com.persagy.apm.alarmservice.project.alarmrule.dao.ProjectAlarmRuleMapper;
|
|
@@ -21,16 +22,18 @@ import com.persagy.apm.alarmservice.project.alarmrule.model.ConvertProjectAlarmR
|
|
|
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.alarmconfig.*;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
|
|
|
import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
|
|
@@ -39,6 +42,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 +88,45 @@ 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());
|
|
|
+// List<ProjectAlarmRuleObjRelListItemVO> equipList = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(addProjectAlarmRuleDTO.getAddEquipList());
|
|
|
+ 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();
|
|
|
+ addAlarmConfigDTO.setObjId(ProjectAlarmRuleObjRel.getObjId());
|
|
|
+ addAlarmConfigDTO.setItemCode(addProjectAlarmRuleDTO.getAlarmItemCode());
|
|
|
+ addAlarmConfigDTO.setClassCode(addProjectAlarmRuleDTO.getClassCode());
|
|
|
+ addAlarmConfigDTO.setLevel(alarmConditionDTO.getAlarmLevel());
|
|
|
+ AlarmCondition condition = new AlarmCondition();
|
|
|
+ condition.setTrigger(alarmConditionDTO.getBackend());
|
|
|
+ List<String> infoCodeList = alarmConditionDTO.getInfoCodes();
|
|
|
+ condition.setInfoCode(infoCodeList);
|
|
|
+ condition.setTriggerUphold(alarmConditionDTO.getTriggerUphold());
|
|
|
+ Map<String, Object> stringMap = alarmConditionService.frontend2Backend(alarmConditionDTO.getFrontend());
|
|
|
+ condition.setRules((List<String>) stringMap.get("displayFormula"));
|
|
|
+ addAlarmConfigDTO.setCondition(condition);
|
|
|
+ alarmConfigs.add(addAlarmConfigDTO);
|
|
|
+ }
|
|
|
+ batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
+ alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
return projectAlarmRule.getId();
|
|
|
}
|
|
|
|
|
@@ -165,9 +139,6 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
*/
|
|
|
private void setDefaultValue(ProjectAlarmRule projectAlarmRule) {
|
|
|
projectAlarmRule.setCreator(AppContext.getContext().getAccountId());
|
|
|
- projectAlarmRule.setModifiedTime(new Date());
|
|
|
- // todo 其他默认的属性
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -532,6 +503,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;
|