Kaynağa Gözat

修改项目报警

xujiaheng 3 yıl önce
ebeveyn
işleme
4be9343b20

+ 6 - 4
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/service/impl/ProjectAlarmRuleServiceImpl.java

@@ -28,6 +28,7 @@ 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.model.vo.ProjectAlarmRuleListItemVO;
 import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.dao.ProjectAlarmRuleObjRelMapper;
 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;
@@ -81,6 +82,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
     private ProjectAlarmRuleMapper mapper;
     @Autowired
     private RabbitMsgSender rabbitMsgSender;
+    @Autowired
+    private ProjectAlarmRuleObjRelMapper projectAlarmRuleObjRelMapper;
 
     /**
      * 创建项目报警规则
@@ -190,13 +193,11 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
     @Transactional(rollbackFor = Exception.class)
     public void updateProjectAlarmRule(UpdateProjectAlarmRuleDTO updateProjectAlarmRuleDTO) throws Exception {
         ProjectAlarmRule projectAlarmRule = getById(updateProjectAlarmRuleDTO.getId());
-        projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertUpdateDto2Entity(projectAlarmRule, updateProjectAlarmRuleDTO);
         projectAlarmRule.setModifier(AppContext.getContext().getAccountId());
         AddAlarmConditionDTO alarmCondition = updateProjectAlarmRuleDTO.getAlarmCondition();
         Map<String, Object> conditionMap = alarmConditionService.swtichAlarmCondition(alarmCondition);
         //查询已有项目报警
-        ProjectAlarmRule projectRule = getById(updateProjectAlarmRuleDTO.getId());
-        int belongOld = projectRule.getBelong();
+        int belongOld = projectAlarmRule.getBelong();
         int belongNew = updateProjectAlarmRuleDTO.getBelong();
         if (belongOld > belongNew) {//集团规则->项目自定义规则
             //新增规则
@@ -231,7 +232,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         projectAlarmRule.setModifier(PoemsContext.getContext().getUserId());
         updateById(projectAlarmRule);
         //删除报警对象关联关系
-        projectAlarmRuleObjRelService.deleteRelation(updateProjectAlarmRuleDTO.getId());
+        //projectAlarmRuleObjRelService.deleteRelation(updateProjectAlarmRuleDTO.getId());
+        projectAlarmRuleObjRelMapper.deleteByProjectAlarmRuleId(updateProjectAlarmRuleDTO.getId());
         //新增关联关系
         List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddEquipList();
         String projectId = updateProjectAlarmRuleDTO.getProjectId();

+ 2 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/dao/ProjectAlarmRuleObjRelMapper.java

@@ -17,4 +17,6 @@ import java.util.List;
 public interface ProjectAlarmRuleObjRelMapper extends BaseMapper<ProjectAlarmRuleObjRel>{
 
     void updateStatus(@Param("shieldManageDTOList") List<ShieldManageDTO> shieldManageDTOList, @Param("projectAlarmRuleId") String projectAlarmRuleId, @Param("projectId") String projectId);
+
+    void deleteByProjectAlarmRuleId(String id);
 }

+ 73 - 35
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/service/impl/ProjectAlarmRuleObjRelServiceImpl.java

@@ -360,8 +360,18 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
 
     @Override
     public List<ProjectAlarmRuleObjRelListItemVO> queryRuleObjRel(QueryRuleObjRelDTO queryRuleObjRelDTO) {
-        List<ProjectAlarmRuleObjRelListItemVO> resultList = new ArrayList<>();
-        //查询未绑定的报警对象 begin
+        List<ProjectAlarmRuleObjRel> resultList = new ArrayList<>();
+        if (StringUtils.isNotBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
+            //查询每条项目报警下的报警对象
+            QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryRuleObjRelDTO.getProjectAlarmRuleId());
+            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
+            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
+            List<ProjectAlarmRuleObjRel> list = list(queryWrapper);
+            list.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
+            resultList.addAll(list);
+        }
+        //查询所有设备(报警对象)
         String projectId = queryRuleObjRelDTO.getProjectId();
         QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
         queryEquipDTO.setProjectId(projectId);
@@ -369,42 +379,70 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
         queryEquipDTO.setCondition(queryRuleObjRelDTO.getCondition());
         List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
         Map<String, EquipItem> partitionMap = records.stream().collect(Collectors.toMap(EquipItem::getId, equip -> equip, (k1, k2) -> k1));
-        //根据项目报警ID查询已绑定的报警对象
-        List<String> projectAlarmRuleIdList = projectAlarmRuleService.queryAlarmRule(queryRuleObjRelDTO);
-        List<ProjectAlarmRuleObjRel> rels = this.queryObjRelList(projectAlarmRuleIdList);
-        List<String> objIds = rels.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
-        if (objIds.size() == 0) {
-            for (EquipItem record : records) {
-                ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
-                projectAlarmRuleObjRelVO.setObjId(record.getId());
-                projectAlarmRuleObjRelVO.setObjName(record.getName());
+        //查询项目下所有已绑定的报警对象
+        QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ID, projectId);
+        queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
+        queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
+        List<ProjectAlarmRuleObjRel> list = list(queryWrapper);
+        //筛选未绑定的报警对象
+        for (ProjectAlarmRuleObjRel projectAlarmRuleObjRel : list) {
+            String objId = projectAlarmRuleObjRel.getObjId();
+            if (!partitionMap.containsKey(objId)) {
+                EquipItem equipItem = partitionMap.get(objId);
+                ProjectAlarmRuleObjRel projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRel();
+                projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
+                projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
                 resultList.add(projectAlarmRuleObjRelVO);
             }
-        } else {
-            for (String objId : objIds) {
-                if (!partitionMap.containsKey(objId)) {
-                    ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
-                    EquipItem equipItem = partitionMap.get(objId);
-                    projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
-                    projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
-                    resultList.add(projectAlarmRuleObjRelVO);
-                }
-            }
-        }
-        //查询未绑定的报警对象 end
-        if (StringUtils.isNotBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
-            //修改
-            QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryRuleObjRelDTO.getProjectAlarmRuleId());
-            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
-            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
-            List<ProjectAlarmRuleObjRel> relList = list(queryWrapper);
-            resultList = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(relList);
-
         }
-        resultList = resultList.stream().filter(item -> item.getObjName() != null).sorted(Comparator.comparing(ProjectAlarmRuleObjRelListItemVO::getObjName,
-                Collator.getInstance(java.util.Locale.CHINA))).collect(Collectors.toList());
-        return resultList;
+        return ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(resultList);
+//
+//        List<ProjectAlarmRuleObjRelListItemVO> resultList = new ArrayList<>();
+//        //查询未绑定的报警对象 begin
+//        String projectId = queryRuleObjRelDTO.getProjectId();
+//        QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
+//        queryEquipDTO.setProjectId(projectId);
+//        queryEquipDTO.setClassCode(queryRuleObjRelDTO.getClassCode());
+//        queryEquipDTO.setCondition(queryRuleObjRelDTO.getCondition());
+//        List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
+//        Map<String, EquipItem> partitionMap = records.stream().collect(Collectors.toMap(EquipItem::getId, equip -> equip, (k1, k2) -> k1));
+//        //根据项目报警ID查询已绑定的报警对象
+//        List<String> projectAlarmRuleIdList = projectAlarmRuleService.queryAlarmRule(queryRuleObjRelDTO);
+//        List<ProjectAlarmRuleObjRel> rels = this.queryObjRelList(projectAlarmRuleIdList);
+//        List<String> objIds = rels.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
+//        if (objIds.size() == 0) {
+//            for (EquipItem record : records) {
+//                ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
+//                projectAlarmRuleObjRelVO.setObjId(record.getId());
+//                projectAlarmRuleObjRelVO.setObjName(record.getName());
+//                resultList.add(projectAlarmRuleObjRelVO);
+//            }
+//        } else {
+//            for (String objId : objIds) {
+//                if (!partitionMap.containsKey(objId)) {
+//                    ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
+//                    EquipItem equipItem = partitionMap.get(objId);
+//                    projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
+//                    projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
+//                    resultList.add(projectAlarmRuleObjRelVO);
+//                }
+//            }
+//        }
+//        //查询未绑定的报警对象 end
+//        if (StringUtils.isNotBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
+//            //修改
+//            QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
+//            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryRuleObjRelDTO.getProjectAlarmRuleId());
+//            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
+//            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, 1);
+//            List<ProjectAlarmRuleObjRel> relList = list(queryWrapper);
+//            resultList = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(relList);
+//
+//        }
+//        resultList = resultList.stream().filter(item -> item.getObjName() != null).sorted(Comparator.comparing(ProjectAlarmRuleObjRelListItemVO::getObjName,
+//                Collator.getInstance(java.util.Locale.CHINA))).collect(Collectors.toList());
+//        return resultList;
     }
 
     private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {

+ 3 - 0
src/main/resources/mapper/ProjectAlarmRuleObjRelMapper.xml

@@ -28,5 +28,8 @@
             </where>
         </foreach>
     </update>
+    <delete id="deleteByProjectAlarmRuleId">
+        delete from project_alarm_rule_obj_rel where project_alarm_rule_id = #{id}
+    </delete>
 </mapper>