|
@@ -2,10 +2,13 @@ package com.persagy.apm.alarmservice.project.alarmrule.service.impl;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.persagy.apm.alarmservice.common.configuration.rabbitmq.RabbitMsgSender;
|
|
|
+import com.persagy.apm.alarmservice.common.model.DmpMessage;
|
|
|
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;
|
|
@@ -14,11 +17,9 @@ import com.persagy.apm.alarmservice.group.alarmrule.model.dto.QueryGroupAlarmRul
|
|
|
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;
|
|
@@ -26,37 +27,28 @@ 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.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;
|
|
|
-import org.apache.commons.io.IOUtils;
|
|
|
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 org.springframework.util.CollectionUtils;
|
|
|
|
|
|
-import java.io.File;
|
|
|
-import java.io.IOException;
|
|
|
-import java.io.InputStream;
|
|
|
-import java.nio.charset.StandardCharsets;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static org.apache.commons.lang3.math.NumberUtils.INTEGER_ONE;
|
|
@@ -83,6 +75,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
private AlarmConfigServiceImpl alarmConfigService;
|
|
|
@Autowired
|
|
|
private ProjectAlarmRuleMapper mapper;
|
|
|
+ @Autowired
|
|
|
+ private RabbitMsgSender rabbitMsgSender;
|
|
|
|
|
|
/**
|
|
|
* 创建项目报警规则
|
|
@@ -150,9 +144,7 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
addAlarmConfigDTO.setCondition(equipCondition);
|
|
|
alarmConfigs.add(addAlarmConfigDTO);
|
|
|
}
|
|
|
- batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
- batchAddAlarmConfigDTO.setProjectId(addProjectAlarmRuleDTO.getProjectId());
|
|
|
- alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
+ sendBatchCreateAlarmConfigMsg(alarmConfigs, addProjectAlarmRuleDTO.getProjectId());
|
|
|
return projectAlarmRule.getId();
|
|
|
}
|
|
|
|
|
@@ -248,7 +240,6 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
//删除中台报警条件
|
|
|
groupAlarmRuleService.deleteEquipCondition(condition, classCode, alarmItemCode);
|
|
|
//新增中台报警条件
|
|
|
- BatchAddAlarmConfigDTO batchAddAlarmConfigDTO = new BatchAddAlarmConfigDTO();
|
|
|
List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
|
|
|
for (AddProjectAlarmRuleObjRelDTO equipRel : addRelations) {
|
|
|
AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
|
|
@@ -285,9 +276,7 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
addAlarmConfigDTO.setCondition(equipCondition);
|
|
|
alarmConfigs.add(addAlarmConfigDTO);
|
|
|
}
|
|
|
- batchAddAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
|
|
|
- batchAddAlarmConfigDTO.setProjectId(projectId);
|
|
|
- alarmConfigService.batchCreate(batchAddAlarmConfigDTO);
|
|
|
+ sendBatchCreateAlarmConfigMsg(alarmConfigs, projectId);
|
|
|
}
|
|
|
|
|
|
private List<AddProjectAlarmRuleObjRelDTO> convert2AddProjectAlarmRuleObjRelDTO(List<UpdateAlarmItemDTO> addRelationList, String id, String projectId) {
|
|
@@ -444,14 +433,15 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
* @version V1.0 2021-09-08 22:46:16
|
|
|
*/
|
|
|
@Override
|
|
|
- public IPage<ProjectAlarmRule> pageQueryProjectAlarmRule(PageQueryProjectAlarmRuleDTO
|
|
|
- pageQueryProjectAlarmRuleDTO) {
|
|
|
+ public IPage<ProjectAlarmRule> pageQueryProjectAlarmRule(
|
|
|
+ PageQueryProjectAlarmRuleDTO
|
|
|
+ pageQueryProjectAlarmRuleDTO) {
|
|
|
QueryWrapper<ProjectAlarmRule> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq(ProjectAlarmRule.PROP_VALID, ValidEnum.TRUE.getType());
|
|
|
// 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
|
|
|
IPage<ProjectAlarmRule> pageParam = new Page<>(pageQueryProjectAlarmRuleDTO.getPage(), pageQueryProjectAlarmRuleDTO.getSize(), true);
|
|
|
// 排序信息
|
|
|
-// if(CollectionUtils.isEmpty(pageQueryProjectAlarmRuleDTO.getOrders())){
|
|
|
+ // if(CollectionUtils.isEmpty(pageQueryProjectAlarmRuleDTO.getOrders())){
|
|
|
// 默认按创建时间倒序排序
|
|
|
queryWrapper.orderBy(true, false, ProjectAlarmRule.PROP_CREATIONTIME);
|
|
|
/*}else {
|
|
@@ -478,9 +468,9 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
queryWrapper.like(ProjectAlarmRule.PROP_ALARM_CONDITION_ID, pageQueryProjectAlarmRuleDTO.getAlarmConditionId());
|
|
|
}*/
|
|
|
|
|
|
-// if (pageQueryProjectAlarmRuleDTO.getBelong() != null) {
|
|
|
-// queryWrapper.eq(ProjectAlarmRule.PROP_BELONG, pageQueryProjectAlarmRuleDTO.getBelong());
|
|
|
-// }
|
|
|
+ // if (pageQueryProjectAlarmRuleDTO.getBelong() != null) {
|
|
|
+ // queryWrapper.eq(ProjectAlarmRule.PROP_BELONG, pageQueryProjectAlarmRuleDTO.getBelong());
|
|
|
+ // }
|
|
|
|
|
|
// todo 需判断使用like还是eq
|
|
|
if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleDTO.getProjectId())) {
|
|
@@ -558,4 +548,21 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
|
|
|
public void insertProject(String substring) {
|
|
|
mapper.insertProject(substring);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void sendBatchCreateAlarmConfigMsg(List<AddAlarmConfigDTO> alarmConfigs, String projectId) {
|
|
|
+ if (CollectionUtils.isEmpty(alarmConfigs)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ DmpMessage dmpMessage = new DmpMessage();
|
|
|
+ dmpMessage.setGroupCode(PoemsContext.getContext().getGroupCode());
|
|
|
+ dmpMessage.setProjectId(projectId);
|
|
|
+ dmpMessage.setUserId(PoemsContext.getContext().getUserId());
|
|
|
+ dmpMessage.setAppId("energy-alarm-service");
|
|
|
+ dmpMessage.setType("alarmConfigBatchCreate");
|
|
|
+ JSONObject exts = new JSONObject();
|
|
|
+ exts.put("alarmConfigs", alarmConfigs);
|
|
|
+ dmpMessage.setExts(exts);
|
|
|
+ rabbitMsgSender.convertAndSend(dmpMessage);
|
|
|
+ }
|
|
|
}
|