瀏覽代碼

Merge branch 'v1.0.0' of http://39.106.8.246:3003/apm/energy-alarm-service into v1.0.0

lixing 3 年之前
父節點
當前提交
175e800551
共有 29 個文件被更改,包括 605 次插入130 次删除
  1. 4 0
      src/main/java/com/persagy/apm/alarmservice/group/alarmrecord/controller/AlarmItemController.java
  2. 31 1
      src/main/java/com/persagy/apm/alarmservice/group/alarmrule/controller/GroupAlarmRuleController.java
  3. 22 0
      src/main/java/com/persagy/apm/alarmservice/group/alarmrule/model/dto/CheckAlarmItemDTO.java
  4. 1 1
      src/main/java/com/persagy/apm/alarmservice/group/alarmrule/model/dto/DeleteGroupAlarmRuleDTO.java
  5. 2 3
      src/main/java/com/persagy/apm/alarmservice/group/alarmrule/model/dto/UpdateGroupAlarmRuleDTO.java
  6. 5 3
      src/main/java/com/persagy/apm/alarmservice/group/alarmrule/service/IGroupAlarmRuleService.java
  7. 83 27
      src/main/java/com/persagy/apm/alarmservice/group/alarmrule/service/impl/GroupAlarmRuleServiceImpl.java
  8. 9 9
      src/main/java/com/persagy/apm/alarmservice/project/alarmcondition/service/impl/AlarmConditionServiceImpl.java
  9. 6 1
      src/main/java/com/persagy/apm/alarmservice/project/alarmrule/controller/ProjectAlarmRuleController.java
  10. 4 3
      src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/dto/AddProjectAlarmRuleDTO.java
  11. 18 0
      src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/dto/DeleteProjectAlarmRuleDTO.java
  12. 2 1
      src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/dto/UpdateProjectAlarmRuleDTO.java
  13. 4 1
      src/main/java/com/persagy/apm/alarmservice/project/alarmrule/service/IProjectAlarmRuleService.java
  14. 119 39
      src/main/java/com/persagy/apm/alarmservice/project/alarmrule/service/impl/ProjectAlarmRuleServiceImpl.java
  15. 12 11
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/controller/ProjectAlarmRuleObjRelController.java
  16. 5 0
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/dao/ProjectAlarmRuleObjRelMapper.java
  17. 2 1
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/ProjectAlarmRuleObjRel.java
  18. 5 1
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/AddProjectAlarmRuleObjRelDTO.java
  19. 23 0
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/AddProjectRelDTO.java
  20. 12 0
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/QueryRuleObjRelDTO.java
  21. 28 0
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/ShieldManageDTO.java
  22. 36 0
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/ShieldManageListDTO.java
  23. 25 0
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/UpdateAlarmItemDTO.java
  24. 2 2
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/vo/ProjectAlarmRuleObjRelVO.java
  25. 4 3
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/service/IProjectAlarmRuleObjRelService.java
  26. 106 4
      src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/service/impl/ProjectAlarmRuleObjRelServiceImpl.java
  27. 1 1
      src/main/resources/json/Project.json
  28. 7 5
      src/main/resources/mapper/ProjectAlarmRuleMapper.xml
  29. 27 13
      src/main/resources/mapper/ProjectAlarmRuleObjRelMapper.xml

+ 4 - 0
src/main/java/com/persagy/apm/alarmservice/group/alarmrecord/controller/AlarmItemController.java

@@ -5,6 +5,7 @@ import com.persagy.apm.alarmservice.group.alarmrecord.model.ConvertAlarmCommentT
 import com.persagy.apm.alarmservice.group.alarmrecord.model.dto.CreateAlarmCommentDTO;
 import com.persagy.apm.alarmservice.group.alarmrecord.model.dto.CreateAlarmCommentDTO;
 import com.persagy.apm.alarmservice.group.alarmrecord.model.dto.PageQueryAlarmCommentDTO;
 import com.persagy.apm.alarmservice.group.alarmrecord.model.dto.PageQueryAlarmCommentDTO;
 import com.persagy.apm.alarmservice.group.alarmrecord.model.vo.AlarmCommentListItem;
 import com.persagy.apm.alarmservice.group.alarmrecord.model.vo.AlarmCommentListItem;
+import com.persagy.apm.alarmservice.group.alarmrule.service.IGroupAlarmRuleService;
 import com.persagy.apm.common.model.vo.SimpleObjVO;
 import com.persagy.apm.common.model.vo.SimpleObjVO;
 import com.persagy.apm.common.response.ApmResponseUpsertVO;
 import com.persagy.apm.common.response.ApmResponseUpsertVO;
 import com.persagy.apm.common.response.CommonResult;
 import com.persagy.apm.common.response.CommonResult;
@@ -49,6 +50,9 @@ public class AlarmItemController {
     @Autowired
     @Autowired
     AlarmItemServiceImpl alarmItemService;
     AlarmItemServiceImpl alarmItemService;
 
 
+    @Autowired
+    private IGroupAlarmRuleService groupAlarmRuleService;
+
     @ApiOperation(value = "报警类型列表")
     @ApiOperation(value = "报警类型列表")
     @PostMapping("/query")
     @PostMapping("/query")
     public CommonResult<PageList<SimpleObjVO>> queryAlarmItem(
     public CommonResult<PageList<SimpleObjVO>> queryAlarmItem(

+ 31 - 1
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/controller/GroupAlarmRuleController.java

@@ -12,20 +12,25 @@ import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleItemV
 import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleListItemVO;
 import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleListItemVO;
 import com.persagy.apm.alarmservice.group.alarmrule.service.IGroupAlarmRuleService;
 import com.persagy.apm.alarmservice.group.alarmrule.service.IGroupAlarmRuleService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
+import com.persagy.apm.common.model.vo.SimpleObjVO;
 import com.persagy.apm.common.response.ApmResponseUpsertVO;
 import com.persagy.apm.common.response.ApmResponseUpsertVO;
 import com.persagy.apm.common.response.CommonResult;
 import com.persagy.apm.common.response.CommonResult;
 import com.persagy.apm.common.response.PageList;
 import com.persagy.apm.common.response.PageList;
 import com.persagy.apm.common.utils.ResultHelper;
 import com.persagy.apm.common.utils.ResultHelper;
 import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
 import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.QueryAlarmConfigDTO;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.QueryAlarmConfigDTO;
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmitem.QueryAlarmItemDTO;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
+import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmItem;
 import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
 import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
+import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmItemServiceImpl;
 import com.persagy.common.enums.ResponseCode;
 import com.persagy.common.enums.ResponseCode;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -38,8 +43,10 @@ import javax.validation.Valid;
 import java.io.File;
 import java.io.File;
 import java.io.InputStream;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 /**
 /**
  * 集团报警规则控制层
  * 集团报警规则控制层
@@ -61,6 +68,9 @@ public class GroupAlarmRuleController {
     @Autowired
     @Autowired
     private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
     private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
 
 
+    @Autowired
+    AlarmItemServiceImpl alarmItemService;
+
     @ApiOperation(value = "创建集团报警规则")
     @ApiOperation(value = "创建集团报警规则")
     @PostMapping("/create")
     @PostMapping("/create")
     public CommonResult<ApmResponseUpsertVO> createGroupAlarmRule(
     public CommonResult<ApmResponseUpsertVO> createGroupAlarmRule(
@@ -94,7 +104,7 @@ public class GroupAlarmRuleController {
             groupAlarmRuleService.updateGroupAlarmRule(updateGroupAlarmRuleDTO);
             groupAlarmRuleService.updateGroupAlarmRule(updateGroupAlarmRuleDTO);
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
-            return ResultHelper.failure(ResponseCode.B0001.getCode(), e.getMessage());
+            //return ResultHelper.failure(ResponseCode.B0001.getCode(), e.getMessage());
         }
         }
         return ResultHelper.single(new ApmResponseUpsertVO(updateGroupAlarmRuleDTO.getId()));
         return ResultHelper.single(new ApmResponseUpsertVO(updateGroupAlarmRuleDTO.getId()));
     }
     }
@@ -161,5 +171,25 @@ public class GroupAlarmRuleController {
 
 
     }
     }
 
 
+    @ApiOperation(value = "集团页面查询报警类型")
+    @PostMapping("/getAlarmItem")
+    public CommonResult<PageList<SimpleObjVO>> getAlarmItem(CheckAlarmItemDTO checkAlarmItemDTO) throws Exception {
+        QueryAlarmItemDTO queryAlarmItemDTO = new QueryAlarmItemDTO();
+        DmpResult<List<AlarmItem>> dmpResult = alarmItemService.query(queryAlarmItemDTO);
+        List<GroupAlarmRule> existAlarmItem = groupAlarmRuleService.getExistAlarmItem(checkAlarmItemDTO.getGroupId());
+        List<String> alarmItemCodes = existAlarmItem.stream().map(GroupAlarmRule::getAlarmItemCode).collect(Collectors.toList());
+        Iterator<AlarmItem> iterator = dmpResult.getData().iterator();
+        while (iterator.hasNext()) {
+            AlarmItem next = iterator.next();
+            if (alarmItemCodes.contains(next.getCode())) {
+                iterator.remove();
+            }
+        }
+        List<SimpleObjVO> resultList = dmpResult.getData().stream().map(
+                alarmItem -> new SimpleObjVO(alarmItem.getCode(), alarmItem.getName())
+        ).collect(Collectors.toList());
+        return ResultHelper.multi(resultList);
+    }
+
 }
 }
 
 

+ 22 - 0
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/model/dto/CheckAlarmItemDTO.java

@@ -0,0 +1,22 @@
+package com.persagy.apm.alarmservice.group.alarmrule.model.dto;
+
+import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:35:45
+ */
+@Data
+@ApiModel(value = "创建集团报警规则入参")
+public class CheckAlarmItemDTO {
+    @ApiModelProperty(value = "分组id", required = true)
+    @NotNull(message = "分组id不能为空") // todo 更新校验规则
+    private String groupId;
+    
+}

+ 1 - 1
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/model/dto/DeleteGroupAlarmRuleDTO.java

@@ -27,6 +27,6 @@ public class DeleteGroupAlarmRuleDTO {
     private String classCode;
     private String classCode;
 
 
     @ApiModelProperty(value = "查询条件",required = true)
     @ApiModelProperty(value = "查询条件",required = true)
-    @NotBlank(message = "查询条件必传")
+    //@NotBlank(message = "查询条件必传")
     private String condition;
     private String condition;
 }
 }

+ 2 - 3
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/model/dto/UpdateGroupAlarmRuleDTO.java

@@ -23,8 +23,8 @@ public class UpdateGroupAlarmRuleDTO {
     @NotNull(message = "分组id不能为空") // todo 更新校验规则
     @NotNull(message = "分组id不能为空") // todo 更新校验规则
     private String groupId;
     private String groupId;
     
     
-    @ApiModelProperty(value = "报警条目编码", required = true)
-    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    @ApiModelProperty(value = "报警类型编码", required = true)
+    @NotNull(message = "报警类型编码不能为空") // todo 更新校验规则
     private String alarmItemCode;
     private String alarmItemCode;
 
 
     @ApiModelProperty(value = "报警规则", required = true)
     @ApiModelProperty(value = "报警规则", required = true)
@@ -36,7 +36,6 @@ public class UpdateGroupAlarmRuleDTO {
     private String classCode;
     private String classCode;
 
 
     @ApiModelProperty(value = "查询条件",required = true)
     @ApiModelProperty(value = "查询条件",required = true)
-    @NotBlank(message = "查询条件必传")
     private String condition;
     private String condition;
     
     
 }
 }

+ 5 - 3
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/service/IGroupAlarmRuleService.java

@@ -6,9 +6,7 @@ import com.persagy.apm.alarmservice.group.alarmrule.model.dto.*;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.List;
 import java.util.List;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleListItemVO;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipItem;
 
 
 /**
 /**
  * 集团报警规则(GroupAlarmRule) service接口
  * 集团报警规则(GroupAlarmRule) service接口
@@ -81,4 +79,8 @@ public interface IGroupAlarmRuleService  {
     void readExcel() throws IOException;
     void readExcel() throws IOException;
 
 
     GroupAlarmRule getGroupAlarmRule(GetGroupAlarmRuleDTO getGroupAlarmRuleDTO);
     GroupAlarmRule getGroupAlarmRule(GetGroupAlarmRuleDTO getGroupAlarmRuleDTO);
+
+    List<EquipItem> getAllEquip(String classCode, String condition);
+
+    List<GroupAlarmRule> getExistAlarmItem(String groupId);
 }
 }

+ 83 - 27
src/main/java/com/persagy/apm/alarmservice/group/alarmrule/service/impl/GroupAlarmRuleServiceImpl.java

@@ -8,21 +8,20 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.base.CaseFormat;
 import com.google.common.base.CaseFormat;
-import com.persagy.apm.alarmservice.group.alarmrule.controller.GroupAlarmRuleController;
 import com.persagy.apm.alarmservice.group.alarmrule.dao.GroupAlarmRuleMapper;
 import com.persagy.apm.alarmservice.group.alarmrule.dao.GroupAlarmRuleMapper;
 import com.persagy.apm.alarmservice.group.alarmrule.model.ConvertGroupAlarmRuleTool;
 import com.persagy.apm.alarmservice.group.alarmrule.model.ConvertGroupAlarmRuleTool;
 import com.persagy.apm.alarmservice.group.alarmrule.model.GroupAlarmRule;
 import com.persagy.apm.alarmservice.group.alarmrule.model.GroupAlarmRule;
 import com.persagy.apm.alarmservice.group.alarmrule.model.dto.*;
 import com.persagy.apm.alarmservice.group.alarmrule.model.dto.*;
 import com.persagy.apm.alarmservice.group.alarmrule.service.IGroupAlarmRuleService;
 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.EquipItem;
 import com.persagy.apm.alarmservice.group.management.service.impl.GroupManagementServiceImpl;
 import com.persagy.apm.alarmservice.group.management.service.impl.GroupManagementServiceImpl;
 import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
 import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
 import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.UpdateAlarmConditionDTO;
 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.alarmcondition.service.IAlarmConditionService;
-import com.persagy.apm.alarmservice.project.alarmcondition.service.impl.AlarmConditionServiceImpl;
 import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
 import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
-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.AddProjectAlarmRuleObjRelDTO;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.context.AppContext;
@@ -30,11 +29,10 @@ import com.persagy.apm.common.context.poems.PoemsContext;
 import com.persagy.apm.common.model.dto.Sort;
 import com.persagy.apm.common.model.dto.Sort;
 import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
 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.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.dto.alarmconfig.*;
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.common.QueryDTO;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
 import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
 import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
-import org.apache.commons.collections4.ListUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -47,7 +45,6 @@ import org.springframework.util.CollectionUtils;
 import java.io.*;
 import java.io.*;
 import java.sql.Timestamp;
 import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -97,25 +94,36 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
         List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
         for (AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO : addProjectAlarmRuleObjRelDTOS) {
         for (AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO : addProjectAlarmRuleObjRelDTOS) {
             AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
             AddAlarmConfigDTO addAlarmConfigDTO = new AddAlarmConfigDTO();
-            String equipId = addProjectAlarmRuleObjRelDTO.getEquipId();
+            String equipId = addProjectAlarmRuleObjRelDTO.getObjId();
             addAlarmConfigDTO.setObjId(equipId);
             addAlarmConfigDTO.setObjId(equipId);
             addAlarmConfigDTO.setItemCode(addGroupAlarmRuleDTO.getAlarmItemCode());
             addAlarmConfigDTO.setItemCode(addGroupAlarmRuleDTO.getAlarmItemCode());
             addAlarmConfigDTO.setClassCode(addGroupAlarmRuleDTO.getClassCode());
             addAlarmConfigDTO.setClassCode(addGroupAlarmRuleDTO.getClassCode());
             addAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
             addAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
             addAlarmConfigDTO.setCategory("Eqdx");
             addAlarmConfigDTO.setCategory("Eqdx");
+            addAlarmConfigDTO.setOpen(1);
             AlarmCondition condition = new AlarmCondition();
             AlarmCondition condition = new AlarmCondition();
             List<String> infoCodeList = (List<String>) conditionMap.get("infoCode");
             List<String> infoCodeList = (List<String>) conditionMap.get("infoCode");
-            condition.setInfoCode(infoCodeList);
+            List<String> infoCodeNew = new ArrayList<>();
+            for (String infoCode : infoCodeList) {
+                String replacement = equipId + "_" + infoCode;
+                infoCodeNew.add(infoCode.replaceAll(infoCode, replacement));
+            }
+            condition.setInfoCode(infoCodeNew);
             String backend = (String) conditionMap.get("backend");
             String backend = (String) conditionMap.get("backend");
             for (String infoCode : infoCodeList) {
             for (String infoCode : infoCodeList) {
-                String replacement = equipId+"-"+infoCode;
-                backend = backend.replaceAll(infoCode,replacement);
+                String replacement = equipId + "_" + infoCode;
+                backend = backend.replaceAll(infoCode, replacement);
             }
             }
-            condition.setEnd("!"+backend);
+            condition.setEnd("!" + backend);
             condition.setEndUphold(0);
             condition.setEndUphold(0);
             condition.setTrigger(backend);
             condition.setTrigger(backend);
-            condition.setTriggerUphold(alarmCondition.getTriggerUphold()*60);
+            condition.setTriggerUphold(alarmCondition.getTriggerUphold() * 60);
             condition.setRules((List<String>) conditionMap.get("displayFormula"));
             condition.setRules((List<String>) conditionMap.get("displayFormula"));
+            JSONArray configs= JSONArray.parseArray(JSON.toJSONString(alarmCondition.getFrontend()));
+            condition.setConfigs(configs);
+            AlarmEffectTime effectTime = new AlarmEffectTime();
+            effectTime.setType("always");
+            condition.setEffectTime(effectTime);
             addAlarmConfigDTO.setCondition(condition);
             addAlarmConfigDTO.setCondition(condition);
             alarmConfigs.add(addAlarmConfigDTO);
             alarmConfigs.add(addAlarmConfigDTO);
         }
         }
@@ -166,19 +174,20 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         groupAlarmRule = ConvertGroupAlarmRuleTool.INSTANCE.convertUpdateDto2Entity(groupAlarmRule, updateGroupAlarmRuleDTO);
         groupAlarmRule = ConvertGroupAlarmRuleTool.INSTANCE.convertUpdateDto2Entity(groupAlarmRule, updateGroupAlarmRuleDTO);
         groupAlarmRule.setModifier(AppContext.getContext().getAccountId());
         groupAlarmRule.setModifier(AppContext.getContext().getAccountId());
         updateById(groupAlarmRule);
         updateById(groupAlarmRule);
+        //获得报警规则
         UpdateAlarmConditionDTO alarmCondition = updateGroupAlarmRuleDTO.getAlarmCondition();
         UpdateAlarmConditionDTO alarmCondition = updateGroupAlarmRuleDTO.getAlarmCondition();
+        //更新报警规则
         alarmConditionService.updateAlarmCondition(alarmCondition);
         alarmConditionService.updateAlarmCondition(alarmCondition);
         if (alarmCondition != null) {
         if (alarmCondition != null) {
             //同步更新设备报警条件 begin
             //同步更新设备报警条件 begin
-            BatchUpdateAlarmConfigDTO batchUpdateAlarmConfigDTO = new BatchUpdateAlarmConfigDTO();
             List<UpdateAlarmConfigDTO> updateAlarmConfigDTOs = new ArrayList();
             List<UpdateAlarmConfigDTO> updateAlarmConfigDTOs = new ArrayList();
             String condition = updateGroupAlarmRuleDTO.getCondition();
             String condition = updateGroupAlarmRuleDTO.getCondition();
             String classCode = updateGroupAlarmRuleDTO.getClassCode();
             String classCode = updateGroupAlarmRuleDTO.getClassCode();
-            List<EquipItem> equipList = groupManagementService.getEquipList(condition, classCode);
+            List<EquipItem> records = this.getAllEquip(classCode, condition);
             Map<String, Object> stringMap = alarmConditionService.frontend2Backend(alarmCondition.getFrontend());
             Map<String, Object> stringMap = alarmConditionService.frontend2Backend(alarmCondition.getFrontend());
-            for (EquipItem record : equipList) {
+            for (EquipItem record : records) {
                 AlarmCondition alarmCondit = new AlarmCondition();
                 AlarmCondition alarmCondit = new AlarmCondition();
-                alarmCondit.setTrigger((String) alarmCondition.getBackend());
+                alarmCondit.setTrigger(alarmCondition.getBackend());
                 List<String> infoCodeList = alarmCondition.getInfoCodes();
                 List<String> infoCodeList = alarmCondition.getInfoCodes();
                 alarmCondit.setInfoCode(infoCodeList);
                 alarmCondit.setInfoCode(infoCodeList);
                 alarmCondit.setTriggerUphold(alarmCondition.getTriggerUphold());
                 alarmCondit.setTriggerUphold(alarmCondition.getTriggerUphold());
@@ -189,8 +198,12 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
                 updateAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
                 updateAlarmConfigDTO.setLevel(alarmCondition.getAlarmLevel());
                 updateAlarmConfigDTOs.add(updateAlarmConfigDTO);
                 updateAlarmConfigDTOs.add(updateAlarmConfigDTO);
             }
             }
-            batchUpdateAlarmConfigDTO.setAlarmConfigs(updateAlarmConfigDTOs);
-            alarmConfigService.batchUpdate(batchUpdateAlarmConfigDTO);
+            List<List<UpdateAlarmConfigDTO>> lists = averageAssign(updateAlarmConfigDTOs, 200);
+            for (List<UpdateAlarmConfigDTO> list : lists) {
+                BatchUpdateAlarmConfigDTO batchUpdateAlarmConfigDTO = new BatchUpdateAlarmConfigDTO();
+                batchUpdateAlarmConfigDTO.setAlarmConfigs(list);
+                alarmConfigService.batchUpdate(batchUpdateAlarmConfigDTO);
+            }
             //同步更新设备报警条件 end
             //同步更新设备报警条件 end
         }
         }
 
 
@@ -318,21 +331,23 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         String condition = deleteGroupAlarmRuleDTO.getCondition();
         String condition = deleteGroupAlarmRuleDTO.getCondition();
         String classCode = deleteGroupAlarmRuleDTO.getClassCode();
         String classCode = deleteGroupAlarmRuleDTO.getClassCode();
         //查询所有设备
         //查询所有设备
-        List<EquipItem> records = groupManagementService.getEquipList(condition, classCode);
-        List<String> objIds = records.stream().map(EquipItem::getId).collect(Collectors.toList());
+        List<EquipItem> equips = this.getAllEquip(classCode, condition);
+        List<String> objIds = equips.stream().map(EquipItem::getId).collect(Collectors.toList());
         QueryAlarmConfigDTO queryAlarmConfigDTO = new QueryAlarmConfigDTO();
         QueryAlarmConfigDTO queryAlarmConfigDTO = new QueryAlarmConfigDTO();
         queryAlarmConfigDTO.setObjId(objIds);
         queryAlarmConfigDTO.setObjId(objIds);
         DmpResult<List<AlarmConfigItem>> query = alarmConfigService.query(queryAlarmConfigDTO);
         DmpResult<List<AlarmConfigItem>> query = alarmConfigService.query(queryAlarmConfigDTO);
         //所有设备条件
         //所有设备条件
         List<AlarmConfigItem> data = query.getData();
         List<AlarmConfigItem> data = query.getData();
         //组织删除参数
         //组织删除参数
-        data.forEach(alarmConfigItem -> {
-            DeleteAlarmConfigDTO deleteAlarmConfigDTO = new DeleteAlarmConfigDTO();
-            deleteAlarmConfigDTO.setId(alarmConfigItem.getId());
-            alarmConfigs.add(deleteAlarmConfigDTO);
-        });
-        batchDeleteAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
-        alarmConfigService.batchDelete(batchDeleteAlarmConfigDTO);
+        if(data.size()>0){
+            data.forEach(alarmConfigItem -> {
+                DeleteAlarmConfigDTO deleteAlarmConfigDTO = new DeleteAlarmConfigDTO();
+                deleteAlarmConfigDTO.setId(alarmConfigItem.getId());
+                alarmConfigs.add(deleteAlarmConfigDTO);
+            });
+            batchDeleteAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
+            alarmConfigService.batchDelete(batchDeleteAlarmConfigDTO);
+        }
         //删除设备报警条件 end
         //删除设备报警条件 end
     }
     }
 
 
@@ -364,4 +379,45 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         queryWrapper.eq(GroupAlarmRule.PROP_ALARM_ITEM_CODE, getGroupAlarmRuleDTO.getAlarmItemCode());
         queryWrapper.eq(GroupAlarmRule.PROP_ALARM_ITEM_CODE, getGroupAlarmRuleDTO.getAlarmItemCode());
         return getOne(queryWrapper);
         return getOne(queryWrapper);
     }
     }
+
+    public static <T> List<List<T>> averageAssign(List<T> source, int n) {
+        List<List<T>> result = new ArrayList<List<T>>();
+        int remainder = source.size() % n;  //(先计算出余数)
+        int number = source.size() / n;  //然后是商
+        int offset = 0;//偏移量
+        for (int i = 0; i < n; i++) {
+            List<T> value = null;
+            if (remainder > 0) {
+                value = source.subList(i * number + offset, (i + 1) * number + offset + 1);
+                remainder--;
+                offset++;
+            } else {
+                value = source.subList(i * number + offset, (i + 1) * number + offset);
+            }
+            result.add(value);
+        }
+        return result;
+    }
+
+    public List<EquipItem> getAllEquip(String classCode,String condition){
+        //查询所有项目
+        List<ProjectVO> projects = projectAlarmRuleService.getProject();
+        List<EquipItem> records = new ArrayList<>();
+        for (ProjectVO project : projects) {
+            QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
+            queryEquipDTO.setProjectId(project.getProjectId());
+            queryEquipDTO.setClassCode(classCode);
+            queryEquipDTO.setCondition(condition);
+            List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);
+            records.addAll(record);
+        }
+        return records;
+    }
+
+    @Override
+    public List<GroupAlarmRule> getExistAlarmItem(String groupId) {
+        QueryWrapper<GroupAlarmRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(GroupAlarmRule.PROP_GROUP_ID, groupId);
+        return list(queryWrapper);
+    }
 }
 }

+ 9 - 9
src/main/java/com/persagy/apm/alarmservice/project/alarmcondition/service/impl/AlarmConditionServiceImpl.java

@@ -342,10 +342,10 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
         expression = expression.replaceAll(" ", "");
         expression = expression.replaceAll(" ", "");
         // 连续运算符处理
         // 连续运算符处理
         if (expression.split("[\\+\\-\\*\\/]{2,}").length > 1) {
         if (expression.split("[\\+\\-\\*\\/]{2,}").length > 1) {
-            return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,包含连续运算符");
+            return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
         }
         }
         if (org.apache.commons.lang3.StringUtils.contains(expression, "()")) {
         if (org.apache.commons.lang3.StringUtils.contains(expression, "()")) {
-            return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,包含空括号");
+            return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
         }
         }
 //        expression = expression.replaceAll("\\)\\(", "\\)*\\(");
 //        expression = expression.replaceAll("\\)\\(", "\\)*\\(");
 //        expression = expression.replaceAll("\\(\\-", "\\(0-");
 //        expression = expression.replaceAll("\\(\\-", "\\(0-");
@@ -357,7 +357,7 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
                 continue;
                 continue;
             }
             }
             if (!variable.equals(split)) {
             if (!variable.equals(split)) {
-                return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,包含非法变量或字符");
+                return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
             }
             }
         }
         }
         // 校验括号
         // 校验括号
@@ -368,7 +368,7 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
             char currChar = expression.charAt(i);
             char currChar = expression.charAt(i);
             if (i == 0) {
             if (i == 0) {
                 if (Pattern.matches("\\*|\\/", String.valueOf(currChar))) {
                 if (Pattern.matches("\\*|\\/", String.valueOf(currChar))) {
-                    return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,以错误运算符开头");
+                    return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
                 }
                 }
                 if (currChar == '+') {
                 if (currChar == '+') {
                     resultExpression = expression.substring(1);
                     resultExpression = expression.substring(1);
@@ -383,24 +383,24 @@ public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper,
                 if (stack.size() > 0) {
                 if (stack.size() > 0) {
                     stack.pop();
                     stack.pop();
                 } else {
                 } else {
-                    return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,括号不配对");
+                    return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
                 }
                 }
             }
             }
             if (preChar != null && preChar == '(' && Pattern.matches("[\\+\\-\\*\\/]+", String.valueOf(currChar))) {
             if (preChar != null && preChar == '(' && Pattern.matches("[\\+\\-\\*\\/]+", String.valueOf(currChar))) {
-                return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,左括号后是运算符");
+                return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
             }
             }
             if (preChar != null && preChar == ')' && !Pattern.matches("[\\+\\-\\*\\/]+", String.valueOf(currChar))) {
             if (preChar != null && preChar == ')' && !Pattern.matches("[\\+\\-\\*\\/]+", String.valueOf(currChar))) {
-                return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,右括号后面不是运算符");
+                return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
             }
             }
             if (i == expression.length() - 1) {
             if (i == expression.length() - 1) {
                 if (Pattern.matches("\\+|\\-|\\*|\\/", String.valueOf(currChar))) {
                 if (Pattern.matches("\\+|\\-|\\*|\\/", String.valueOf(currChar))) {
-                    return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,以运算符结尾");
+                    return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
                 }
                 }
             }
             }
             preChar = currChar;
             preChar = currChar;
         }
         }
         if (stack.size() > 0) {
         if (stack.size() > 0) {
-            return ResultHelper.failure(ResponseCode.C0134.getCode(), expression + "公式不合法,括号不配对");
+            return ResultHelper.failure(ResponseCode.C0134.getCode(), "公式不合法");
         }
         }
         return ResultHelper.success();
         return ResultHelper.success();
     }
     }

+ 6 - 1
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/controller/ProjectAlarmRuleController.java

@@ -88,7 +88,12 @@ public class ProjectAlarmRuleController {
     @PostMapping("/delete")
     @PostMapping("/delete")
     public CommonResult deleteProjectAlarmRule(
     public CommonResult deleteProjectAlarmRule(
             @RequestBody @Valid DeleteProjectAlarmRuleDTO deleteProjectAlarmRuleDTO) {
             @RequestBody @Valid DeleteProjectAlarmRuleDTO deleteProjectAlarmRuleDTO) {
-        projectAlarmRuleService.deleteProjectAlarmRule(deleteProjectAlarmRuleDTO.getId());
+        try {
+            projectAlarmRuleService.deleteProjectAlarmRule(deleteProjectAlarmRuleDTO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return ResultHelper.failure(ResponseCode.B0001.getCode(), e.getMessage());
+        }
         return ResultHelper.success();
         return ResultHelper.success();
     }
     }
 
 

+ 4 - 3
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/dto/AddProjectAlarmRuleDTO.java

@@ -2,6 +2,7 @@ package com.persagy.apm.alarmservice.project.alarmrule.model.dto;
 
 
 import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
 import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.UpdateAlarmItemDTO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
@@ -30,7 +31,7 @@ public class AddProjectAlarmRuleDTO {
     private String alarmItemName;
     private String alarmItemName;
     
     
     @ApiModelProperty(value = "报警条件id", required = true)
     @ApiModelProperty(value = "报警条件id", required = true)
-    @NotNull(message = "报警条件id不能为空") // todo 更新校验规则
+    //@NotNull(message = "报警条件id不能为空") // todo 更新校验规则
     private String alarmConditionId;
     private String alarmConditionId;
     
     
     @ApiModelProperty(value = "所属类型(0项目自定义、1集团标准)", required = true)
     @ApiModelProperty(value = "所属类型(0项目自定义、1集团标准)", required = true)
@@ -43,7 +44,7 @@ public class AddProjectAlarmRuleDTO {
 
 
     @ApiModelProperty(value = "报警对象列表", required = true)
     @ApiModelProperty(value = "报警对象列表", required = true)
     @NotNull(message = "报警对象列表不能为空") // todo 更新校验规则
     @NotNull(message = "报警对象列表不能为空") // todo 更新校验规则
-    private List<AddProjectAlarmRuleObjRelDTO> addRelationList;
+    private List<UpdateAlarmItemDTO> addRelationList;
 
 
     @ApiModelProperty(value = "报警规则", required = true)
     @ApiModelProperty(value = "报警规则", required = true)
     @NotNull(message = "报警规则不能为空") // todo 更新校验规则
     @NotNull(message = "报警规则不能为空") // todo 更新校验规则
@@ -54,7 +55,7 @@ public class AddProjectAlarmRuleDTO {
     private String classCode;
     private String classCode;
 
 
     @ApiModelProperty(value = "查询条件",required = true)
     @ApiModelProperty(value = "查询条件",required = true)
-    @NotBlank(message = "查询条件必传")
+    //@NotBlank(message = "查询条件必传")
     private String condition;
     private String condition;
     
     
 }
 }

+ 18 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/dto/DeleteProjectAlarmRuleDTO.java

@@ -3,6 +3,8 @@ package com.persagy.apm.alarmservice.project.alarmrule.model.dto;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 
 
 /**
 /**
@@ -15,5 +17,21 @@ public class DeleteProjectAlarmRuleDTO {
     @NotNull(message = "id不能为空")
     @NotNull(message = "id不能为空")
     @ApiModelProperty(value = "主键", required = true)
     @ApiModelProperty(value = "主键", required = true)
     private String id;
     private String id;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    @NotNull(message = "报警条件id不能为空") // todo 更新校验规则
+    private String alarmConditionId;
+
+    @ApiModelProperty(value = "对象类编码",required = true)
+    @NotBlank(message = "对象类编码必传")
+    private String classCode;
+
+    @ApiModelProperty(value = "查询条件",required = true)
+    //@NotBlank(message = "查询条件必传")
+    private String condition;
+
+    @ApiModelProperty(value = "项目ID",required = true)
+    @NotBlank(message = "项目ID必传")
+    private String projectId;
     
     
 }
 }

+ 2 - 1
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/dto/UpdateProjectAlarmRuleDTO.java

@@ -2,6 +2,7 @@ package com.persagy.apm.alarmservice.project.alarmrule.model.dto;
 
 
 import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
 import com.persagy.apm.alarmservice.project.alarmcondition.model.dto.AddAlarmConditionDTO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.UpdateAlarmItemDTO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
@@ -44,7 +45,7 @@ public class UpdateProjectAlarmRuleDTO {
 
 
     @ApiModelProperty(value = "报警对象ids", required = true)
     @ApiModelProperty(value = "报警对象ids", required = true)
     @NotNull(message = "报警对象不能为空") // todo 更新校验规则
     @NotNull(message = "报警对象不能为空") // todo 更新校验规则
-    private List<AddProjectAlarmRuleObjRelDTO> addRelationList;
+    private List<UpdateAlarmItemDTO> addRelationList;
 
 
     @ApiModelProperty(value = "报警规则", required = true)
     @ApiModelProperty(value = "报警规则", required = true)
     @NotNull(message = "报警规则不能为空") // todo 更新校验规则
     @NotNull(message = "报警规则不能为空") // todo 更新校验规则

+ 4 - 1
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/service/IProjectAlarmRuleService.java

@@ -6,6 +6,7 @@ import com.persagy.apm.alarmservice.project.alarmrule.model.dto.*;
 import java.util.List;
 import java.util.List;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
 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.vo.ProjectVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
 
 
 /**
 /**
@@ -52,7 +53,7 @@ public interface IProjectAlarmRuleService  {
     * @author lixing
     * @author lixing
     * @version V1.0 2021-09-08 22:46:16
     * @version V1.0 2021-09-08 22:46:16
     */
     */
-    public void deleteProjectAlarmRule(String id);
+    public void deleteProjectAlarmRule(DeleteProjectAlarmRuleDTO deleteProjectAlarmRuleDTO) throws Exception;
     
     
     /**
     /**
     * 查询项目报警规则
     * 查询项目报警规则
@@ -80,4 +81,6 @@ public interface IProjectAlarmRuleService  {
      * 获取项目
      * 获取项目
      */
      */
     List<ProjectVO> getProject();
     List<ProjectVO> getProject();
+
+    List<String> queryAlarmRule(QueryRuleObjRelDTO queryRuleObjRelDTO);
 }
 }

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

@@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.GroupAlarmRule;
 import com.persagy.apm.alarmservice.group.alarmrule.model.dto.AddGroupAlarmRuleDTO;
 import com.persagy.apm.alarmservice.group.alarmrule.model.dto.AddGroupAlarmRuleDTO;
 import com.persagy.apm.alarmservice.group.alarmrule.model.dto.QueryGroupAlarmRuleDTO;
 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.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.EquipItem;
 import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipListItem;
 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.group.management.service.impl.GroupManagementServiceImpl;
@@ -17,22 +19,20 @@ import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditi
 import com.persagy.apm.alarmservice.project.alarmrule.dao.ProjectAlarmRuleMapper;
 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.ConvertProjectAlarmRuleTool;
 import com.persagy.apm.alarmservice.project.alarmrule.model.ProjectAlarmRule;
 import com.persagy.apm.alarmservice.project.alarmrule.model.ProjectAlarmRule;
-import com.persagy.apm.alarmservice.project.alarmrule.model.dto.AddProjectAlarmRuleDTO;
-import com.persagy.apm.alarmservice.project.alarmrule.model.dto.PageQueryProjectAlarmRuleDTO;
-import com.persagy.apm.alarmservice.project.alarmrule.model.dto.QueryProjectAlarmRuleDTO;
-import com.persagy.apm.alarmservice.project.alarmrule.model.dto.UpdateProjectAlarmRuleDTO;
+import com.persagy.apm.alarmservice.project.alarmrule.model.dto.*;
 import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
 import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
 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.ProjectVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.context.poems.PoemsContext;
 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.AlarmCondition;
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.AddAlarmConfigDTO;
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.BatchAddAlarmConfigDTO;
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.BatchUpdateAlarmConfigDTO;
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.UpdateAlarmConfigDTO;
+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 com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
@@ -48,6 +48,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 
 import static org.apache.commons.lang3.math.NumberUtils.INTEGER_ONE;
 import static org.apache.commons.lang3.math.NumberUtils.INTEGER_ONE;
 
 
@@ -83,6 +84,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public String createProjectAlarmRule(AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) throws Exception {
     public String createProjectAlarmRule(AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) throws Exception {
         ProjectAlarmRule projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertAddDto2Entity(addProjectAlarmRuleDTO);
         ProjectAlarmRule projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertAddDto2Entity(addProjectAlarmRuleDTO);
+        String uuid = DataUtils.getUUID();
+        projectAlarmRule.setId(uuid);
         AddAlarmConditionDTO addAlarmConditionDTO = addProjectAlarmRuleDTO.getAlarmCondition();
         AddAlarmConditionDTO addAlarmConditionDTO = addProjectAlarmRuleDTO.getAlarmCondition();
         if (addProjectAlarmRuleDTO.getBelong() == INTEGER_ONE) {
         if (addProjectAlarmRuleDTO.getBelong() == INTEGER_ONE) {
             //查询对应报警类型的集团规则,将ID添加到项目规则表
             //查询对应报警类型的集团规则,将ID添加到项目规则表
@@ -97,7 +100,10 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
             projectAlarmRule.setAlarmConditionId((String) map.get("id"));
             projectAlarmRule.setAlarmConditionId((String) map.get("id"));
         }
         }
         //新增关联关系
         //新增关联关系
-        projectAlarmRuleObjRelService.createBatchRelation(addProjectAlarmRuleDTO.getAddRelationList());
+        List<UpdateAlarmItemDTO> addRelationList = addProjectAlarmRuleDTO.getAddRelationList();
+        String projectId = addProjectAlarmRuleDTO.getProjectId();
+        List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList,uuid,projectId);
+        projectAlarmRuleObjRelService.createBatchRelation(addRelations);
         // 设置默认值
         // 设置默认值
         projectAlarmRule.setCreationTime(new Date());
         projectAlarmRule.setCreationTime(new Date());
         setDefaultValue(projectAlarmRule);
         setDefaultValue(projectAlarmRule);
@@ -215,30 +221,38 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
                 projectAlarmRule.setAlarmConditionId((String) map.get("id"));
                 projectAlarmRule.setAlarmConditionId((String) map.get("id"));
             }
             }
             //新增关联关系
             //新增关联关系
-            projectAlarmRuleObjRelService.createBatchRelation(updateProjectAlarmRuleDTO.getAddRelationList());
+            List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddRelationList();
+            String projectId = updateProjectAlarmRuleDTO.getProjectId();
+            String id = updateProjectAlarmRuleDTO.getId();
+            List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList,id,projectId);
+            projectAlarmRuleObjRelService.createBatchRelation(addRelations);
 
 
             //同步更新设备报警条件 begin
             //同步更新设备报警条件 begin
-            BatchUpdateAlarmConfigDTO batchUpdateAlarmConfigDTO = new BatchUpdateAlarmConfigDTO();
-            List<UpdateAlarmConfigDTO> updateAlarmConfigDTOs = new ArrayList();
-            String condition = updateProjectAlarmRuleDTO.getCondition();
-            String classCode = updateProjectAlarmRuleDTO.getClassCode();
-            List<EquipItem> records = groupManagementService.getEquipList(condition, classCode);
-            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);
+//            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
             //同步更新设备报警条件 end
         }
         }
         //更新项目报警
         //更新项目报警
@@ -249,6 +263,20 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
 
 
     }
     }
 
 
+    private List<AddProjectAlarmRuleObjRelDTO> convert2AddProjectAlarmRuleObjRelDTO(List<UpdateAlarmItemDTO> addRelationList,String id,String projectId) {
+        List<AddProjectAlarmRuleObjRelDTO> list = new ArrayList<>();
+        for (UpdateAlarmItemDTO updateAlarmItemDTO : addRelationList) {
+            AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO = new AddProjectAlarmRuleObjRelDTO();
+            addProjectAlarmRuleObjRelDTO.setProjectAlarmRuleId(id);
+            addProjectAlarmRuleObjRelDTO.setObjId(updateAlarmItemDTO.getObjId());
+            addProjectAlarmRuleObjRelDTO.setProjectId(projectId);
+            addProjectAlarmRuleObjRelDTO.setOpen(1);
+            addProjectAlarmRuleObjRelDTO.setObjName(updateAlarmItemDTO.getObjName());
+            list.add(addProjectAlarmRuleObjRelDTO);
+        }
+        return list;
+    }
+
     public String getConditionId(String alarmItemCode) {
     public String getConditionId(String alarmItemCode) {
         //查询对应报警类型的集团规则,将ID添加到项目规则表
         //查询对应报警类型的集团规则,将ID添加到项目规则表
         QueryGroupAlarmRuleDTO queryAlarmConditionDTO = new QueryGroupAlarmRuleDTO();
         QueryGroupAlarmRuleDTO queryAlarmConditionDTO = new QueryGroupAlarmRuleDTO();
@@ -283,15 +311,14 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
     /**
     /**
      * 删除项目报警规则
      * 删除项目报警规则
      *
      *
-     * @param id 主键
      * @author lixing
      * @author lixing
      * @version V1.0 2021-09-08 22:46:16
      * @version V1.0 2021-09-08 22:46:16
      */
      */
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
-    public void deleteProjectAlarmRule(String id) {
+    public void deleteProjectAlarmRule(DeleteProjectAlarmRuleDTO deleteProjectAlarmRuleDTO) throws Exception {
         // 校验是否可删除
         // 校验是否可删除
-        ProjectAlarmRule projectAlarmRule = checkDeletable(id);
+        ProjectAlarmRule projectAlarmRule = checkDeletable(deleteProjectAlarmRuleDTO.getId());
         projectAlarmRule.setValid(ValidEnum.FALSE.getType());
         projectAlarmRule.setValid(ValidEnum.FALSE.getType());
         updateById(projectAlarmRule);
         updateById(projectAlarmRule);
         //查询是否是自定义报警,是则删除自定义规则
         //查询是否是自定义报警,是则删除自定义规则
@@ -301,6 +328,40 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         }
         }
         //删除项目报警规则与监测对象的关联
         //删除项目报警规则与监测对象的关联
         projectAlarmRuleObjRelService.deleteRelation(projectAlarmRule.getProjectId());
         projectAlarmRuleObjRelService.deleteRelation(projectAlarmRule.getProjectId());
+        //删除设备报警条件 begin
+        BatchDeleteAlarmConfigDTO batchDeleteAlarmConfigDTO = new BatchDeleteAlarmConfigDTO();
+        List<DeleteAlarmConfigDTO> alarmConfigs = new ArrayList<>();
+        String condition = deleteProjectAlarmRuleDTO.getCondition();
+        String classCode = deleteProjectAlarmRuleDTO.getClassCode();
+        String projectId = deleteProjectAlarmRuleDTO.getProjectId();
+        //查询所有设备
+        List<EquipItem> equips = this.getAllEquip(classCode, condition, projectId);
+        List<String> objIds = equips.stream().map(EquipItem::getId).collect(Collectors.toList());
+        QueryAlarmConfigDTO queryAlarmConfigDTO = new QueryAlarmConfigDTO();
+        queryAlarmConfigDTO.setObjId(objIds);
+        DmpResult<List<AlarmConfigItem>> query = alarmConfigService.query(queryAlarmConfigDTO);
+        //所有设备条件
+        List<AlarmConfigItem> data = query.getData();
+        //组织删除参数
+        if (data.size() > 0) {
+            data.forEach(alarmConfigItem -> {
+                DeleteAlarmConfigDTO deleteAlarmConfigDTO = new DeleteAlarmConfigDTO();
+                deleteAlarmConfigDTO.setId(alarmConfigItem.getId());
+                alarmConfigs.add(deleteAlarmConfigDTO);
+            });
+            batchDeleteAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
+            alarmConfigService.batchDelete(batchDeleteAlarmConfigDTO);
+        }
+        //删除设备报警条件 end
+    }
+
+    private List<EquipItem> getAllEquip(String classCode, String condition, String projectId) {
+        QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
+        queryEquipDTO.setProjectId(projectId);
+        queryEquipDTO.setClassCode(classCode);
+        queryEquipDTO.setCondition(condition);
+        List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);
+        return record;
     }
     }
 
 
     /**
     /**
@@ -406,9 +467,17 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
     public List<AddProjectAlarmRuleObjRelDTO> addProjectAlarmRules(AddGroupAlarmRuleDTO addGroupAlarmRuleDTO) {
     public List<AddProjectAlarmRuleObjRelDTO> addProjectAlarmRules(AddGroupAlarmRuleDTO addGroupAlarmRuleDTO) {
         String condition = addGroupAlarmRuleDTO.getCondition();
         String condition = addGroupAlarmRuleDTO.getCondition();
         String classCode = addGroupAlarmRuleDTO.getClassCode();
         String classCode = addGroupAlarmRuleDTO.getClassCode();
-        List<EquipItem> records = groupManagementService.getEquipList(condition, classCode);
         //查询所有项目
         //查询所有项目
         List<ProjectVO> projects = this.getProject();
         List<ProjectVO> projects = this.getProject();
+        List<EquipItem> records = new ArrayList<>();
+        for (ProjectVO project : projects) {
+            QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
+            queryEquipDTO.setProjectId(project.getProjectId());
+            queryEquipDTO.setClassCode(classCode);
+            queryEquipDTO.setCondition(condition);
+            List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);
+            records.addAll(record);
+        }
         //遍历项目,组好对象进行插入
         //遍历项目,组好对象进行插入
         List<ProjectAlarmRule> projectAlarmRuleList = new ArrayList<>();
         List<ProjectAlarmRule> projectAlarmRuleList = new ArrayList<>();
         String alarmItemCode = addGroupAlarmRuleDTO.getAlarmItemCode();
         String alarmItemCode = addGroupAlarmRuleDTO.getAlarmItemCode();
@@ -421,23 +490,24 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
             projectAlarmRule.setAlarmItemName(alarmItemName);
             projectAlarmRule.setAlarmItemName(alarmItemName);
             projectAlarmRule.setBelong(INTEGER_ONE);
             projectAlarmRule.setBelong(INTEGER_ONE);
             projectAlarmRule.setGroupId(addGroupAlarmRuleDTO.getGroupId());
             projectAlarmRule.setGroupId(addGroupAlarmRuleDTO.getGroupId());
+            projectAlarmRule.setId(DataUtils.getUUID());
             String conditionId = getConditionId(alarmItemCode);
             String conditionId = getConditionId(alarmItemCode);
             projectAlarmRule.setAlarmConditionId(conditionId);
             projectAlarmRule.setAlarmConditionId(conditionId);
             setDefaultValue(projectAlarmRule);
             setDefaultValue(projectAlarmRule);
             projectAlarmRuleList.add(projectAlarmRule);
             projectAlarmRuleList.add(projectAlarmRule);
             //新增关联关系
             //新增关联关系
-            records.forEach(groupManagementVo -> {
+            for (EquipItem record : records) {
                 AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO = new AddProjectAlarmRuleObjRelDTO();
                 AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO = new AddProjectAlarmRuleObjRelDTO();
                 addProjectAlarmRuleObjRelDTO.setProjectAlarmRuleId(projectAlarmRule.getId());
                 addProjectAlarmRuleObjRelDTO.setProjectAlarmRuleId(projectAlarmRule.getId());
                 addProjectAlarmRuleObjRelDTO.setProjectId(project.getProjectId());
                 addProjectAlarmRuleObjRelDTO.setProjectId(project.getProjectId());
-                addProjectAlarmRuleObjRelDTO.setEquipId(groupManagementVo.getId());
+                addProjectAlarmRuleObjRelDTO.setObjId(record.getId());
+                addProjectAlarmRuleObjRelDTO.setObjName(record.getName());
                 addProjectAlarmRuleObjRelDTO.setOpen(INTEGER_ONE);
                 addProjectAlarmRuleObjRelDTO.setOpen(INTEGER_ONE);
                 addRelationList.add(addProjectAlarmRuleObjRelDTO);
                 addRelationList.add(addProjectAlarmRuleObjRelDTO);
-            });
+            }
         }
         }
         projectAlarmRuleObjRelService.createBatchRelation(addRelationList);
         projectAlarmRuleObjRelService.createBatchRelation(addRelationList);
         saveBatch(projectAlarmRuleList);
         saveBatch(projectAlarmRuleList);
-
         return addRelationList;
         return addRelationList;
     }
     }
 
 
@@ -456,4 +526,14 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
             throw new RuntimeException("json文件有误", ioe);
             throw new RuntimeException("json文件有误", ioe);
         }
         }
     }
     }
+
+    @Override
+    public List<String> queryAlarmRule(QueryRuleObjRelDTO queryRuleObjRelDTO) {
+        QueryWrapper<ProjectAlarmRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectAlarmRule.PROP_GROUP_ID, queryRuleObjRelDTO.getGroupId());
+        queryWrapper.eq(ProjectAlarmRule.PROP_ALARM_ITEM_CODE, queryRuleObjRelDTO.getAlarmItemCode());
+        List<ProjectAlarmRule> list = list(queryWrapper);
+        List<String> idList = list.stream().map(ProjectAlarmRule::getId).collect(Collectors.toList());
+        return idList;
+    }
 }
 }

+ 12 - 11
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/controller/ProjectAlarmRuleObjRelController.java

@@ -1,12 +1,12 @@
 package com.persagy.apm.alarmservice.project.alarmruleobjrel.controller;
 package com.persagy.apm.alarmservice.project.alarmruleobjrel.controller;
 
 
 import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
 import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
+import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.*;
@@ -33,6 +33,8 @@ public class ProjectAlarmRuleObjRelController {
     private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
     private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
     @Autowired
     @Autowired
     private IAlarmConditionService alarmConditionService;
     private IAlarmConditionService alarmConditionService;
+    @Autowired
+    private IProjectAlarmRuleService projectAlarmRuleService;
 
 
 	@ApiOperation(value = "创建项目报警规则与监测对象的关联")
 	@ApiOperation(value = "创建项目报警规则与监测对象的关联")
     @ApiIgnore
     @ApiIgnore
@@ -102,8 +104,8 @@ public class ProjectAlarmRuleObjRelController {
     @ApiOperation(value = "修改屏蔽管理")
     @ApiOperation(value = "修改屏蔽管理")
     @PostMapping("/shieldManage")
     @PostMapping("/shieldManage")
     public CommonResult<ApmResponseUpsertVO> shieldManage(
     public CommonResult<ApmResponseUpsertVO> shieldManage(
-            @Valid @RequestBody List<ProjectAlarmRuleObjRel> projectAlarmRuleObjRelList) {
-        projectAlarmRuleObjRelService.updateBatch(projectAlarmRuleObjRelList);
+            @Valid @RequestBody ShieldManageListDTO shieldManageListDTO) throws Exception {
+        projectAlarmRuleObjRelService.updateBatch(shieldManageListDTO);
         return ResultHelper.success();
         return ResultHelper.success();
     }
     }
 
 
@@ -116,13 +118,12 @@ public class ProjectAlarmRuleObjRelController {
         return ResultHelper.multi(resultList);
         return ResultHelper.multi(resultList);
     }
     }
 
 
-//    @ApiOperation(value = "项目报警规则与监测对象的关联列表")
-//    @PostMapping("/queryRuleObjRel")
-//    public CommonResult<PageList<ProjectAlarmRuleObjRelListItemVO>> queryRuleObjRel(
-//            @Valid @RequestBody QueryRuleObjRelDTO queryRuleObjRelDTO) {
-//        alarmConditionService.queryRuleObjRel(queryRuleObjRelDTO);
-//        List<ProjectAlarmRuleObjRelListItemVO> resultList = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(projectAlarmRuleObjRelList);
-//        return ResultHelper.multi(resultList);
-//    }
+    @ApiOperation(value = "查询报警对象")
+    @PostMapping("/queryRuleObjRel")
+    public CommonResult<PageList<ProjectAlarmRuleObjRelVO>> queryRuleObjRel(
+            @Valid @RequestBody QueryRuleObjRelDTO queryRuleObjRelDTO) {
+        List<ProjectAlarmRuleObjRelVO> projectAlarmRuleObjRelVOS = projectAlarmRuleObjRelService.queryRuleObjRel(queryRuleObjRelDTO);
+        return ResultHelper.multi(projectAlarmRuleObjRelVOS);
+    }
 }
 }
 
 

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

@@ -2,8 +2,12 @@ package com.persagy.apm.alarmservice.project.alarmruleobjrel.dao;
 
 
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.ShieldManageDTO;
+import feign.Param;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 
 
+import java.util.List;
+
 /**
 /**
  * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel)dao层
  * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel)dao层
  * @author lixing
  * @author lixing
@@ -12,4 +16,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface ProjectAlarmRuleObjRelMapper extends BaseMapper<ProjectAlarmRuleObjRel>{
 public interface ProjectAlarmRuleObjRelMapper extends BaseMapper<ProjectAlarmRuleObjRel>{
 
 
+    void updateStatus(@Param("shieldManageDTOList") List<ShieldManageDTO> shieldManageDTOList, @Param("projectAlarmRuleId") String projectAlarmRuleId, @Param("projectId") String projectId);
 }
 }

+ 2 - 1
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/ProjectAlarmRuleObjRel.java

@@ -36,7 +36,8 @@ public class ProjectAlarmRuleObjRel extends AuditableEntity<ProjectAlarmRuleObjR
     
     
 
 
     public static String PROP_PROJECT_ALARM_RULE_ID = "project_alarm_rule_id";
     public static String PROP_PROJECT_ALARM_RULE_ID = "project_alarm_rule_id";
-    public static String PROP_EQUIP_ID = "equip_id";
+    public static String PROP_OBJ_ID = "obj_id";
+    public static String PROP_OBJ_NAME = "obj_name";
     public static String PROP_OPEN = "open";
     public static String PROP_OPEN = "open";
     public static String PROP_PROJECT_ID = "project_id";
     public static String PROP_PROJECT_ID = "project_id";
 
 

+ 5 - 1
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/AddProjectAlarmRuleObjRelDTO.java

@@ -19,7 +19,11 @@ public class AddProjectAlarmRuleObjRelDTO {
     
     
     @ApiModelProperty(value = "设备ID", required = true)
     @ApiModelProperty(value = "设备ID", required = true)
     @NotNull(message = "设备ID不能为空") // todo 更新校验规则
     @NotNull(message = "设备ID不能为空") // todo 更新校验规则
-    private String equipId;
+    private String objId;
+
+    @ApiModelProperty(value = "设备名称", required = true)
+    @NotNull(message = "设备名称不能为空") // todo 更新校验规则
+    private String objName;
     
     
     @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
     @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
     @NotNull(message = "屏蔽状态 1-open、0- 屏蔽不能为空") // todo 更新校验规则
     @NotNull(message = "屏蔽状态 1-open、0- 屏蔽不能为空") // todo 更新校验规则

+ 23 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/AddProjectRelDTO.java

@@ -0,0 +1,23 @@
+package com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:46:37
+ */
+@Data
+@ApiModel(value = "创建项目报警规则与监测对象的关联入参")
+public class AddProjectRelDTO {
+    @ApiModelProperty(value = "设备ID", required = true)
+    @NotNull(message = "设备ID不能为空") // todo 更新校验规则
+    private String objId;
+
+    @ApiModelProperty(value = "设备名称", required = true)
+    @NotNull(message = "设备名称不能为空") // todo 更新校验规则
+    private String objName;
+}

+ 12 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/QueryRuleObjRelDTO.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.NotNull;
 
 
 /**
 /**
@@ -20,4 +21,15 @@ public class QueryRuleObjRelDTO {
     @ApiModelProperty(value = "报警类型编码", required = true)
     @ApiModelProperty(value = "报警类型编码", required = true)
     @NotNull(message = "报警类型编码不能为空") // todo 更新校验规则
     @NotNull(message = "报警类型编码不能为空") // todo 更新校验规则
     private String alarmItemCode;
     private String alarmItemCode;
+
+    @ApiModelProperty(value = "对象类编码",required = true)
+    @NotBlank(message = "对象类编码必传")
+    private String classCode;
+
+    @ApiModelProperty(value = "分组条件",required = true)
+    private String condition;
+
+    @ApiModelProperty(value = "项目ID",required = true)
+    @NotBlank(message = "项目ID必传")
+    private String projectId;
 }
 }

+ 28 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/ShieldManageDTO.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:46:37
+ */
+@Data
+@ApiModel(value = "创建项目报警规则与监测对象的关联入参")
+public class ShieldManageDTO {
+    @ApiModelProperty(value = "设备ID", required = true)
+    @NotNull(message = "设备ID不能为空") // todo 更新校验规则
+    private String objId;
+    
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    @NotNull(message = "屏蔽状态 1-open、0- 屏蔽不能为空") // todo 更新校验规则
+    private Integer open;
+    
+
+
+    public static String PROP_PROJECT_ALARM_RULE_ID = "project_alarm_rule_id";
+    public static String PROP_PROJECT_ID = "project_id";
+}

+ 36 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/ShieldManageListDTO.java

@@ -0,0 +1,36 @@
+package com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:46:37
+ */
+@Data
+@ApiModel(value = "创建项目报警规则与监测对象的关联入参")
+public class ShieldManageListDTO {
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+
+    @ApiModelProperty(value = "项目报警规则id", required = true)
+    @NotNull(message = "项目报警规则id不能为空") // todo 更新校验规则
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty(value = "对象类编码",required = true)
+    @NotBlank(message = "对象类编码必传")
+    private String classCode;
+
+    @ApiModelProperty(value = "分组条件",required = true)
+    private String condition;
+
+    List<ShieldManageDTO> shieldManageDTOList;
+    
+}

+ 25 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/dto/UpdateAlarmItemDTO.java

@@ -0,0 +1,25 @@
+package com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:46:37
+ */
+@Data
+@ApiModel(value = "更新项目报警规则与监测对象的关联入参")
+public class UpdateAlarmItemDTO {
+    
+    @ApiModelProperty(value = "报警对象ID", required = true)
+    @NotNull(message = "报警对象名称不能为空") // todo 更新校验规则
+    private String objId;
+
+    @ApiModelProperty(value = "报警对象ID", required = true)
+    @NotNull(message = "报警对象名称不能为空") // todo 更新校验规则
+    private String objName;
+    
+}

+ 2 - 2
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/vo/ProjectAlarmRuleObjRelVO.java

@@ -22,10 +22,10 @@ public class ProjectAlarmRuleObjRelVO {
     private String projectAlarmRuleId;
     private String projectAlarmRuleId;
     
     
     @ApiModelProperty("设备ID")
     @ApiModelProperty("设备ID")
-    private String equipId;
+    private String objId;
 
 
     @ApiModelProperty("设备名称")
     @ApiModelProperty("设备名称")
-    private String equipName;
+    private String objName;
     
     
     @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
     @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
     private Integer open;
     private Integer open;

+ 4 - 3
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/service/IProjectAlarmRuleObjRelService.java

@@ -4,8 +4,7 @@ import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.*;
 import java.util.List;
 import java.util.List;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectAlarmRuleObjRelVO;
 
 
 /**
 /**
  * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel) service接口
  * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel) service接口
@@ -79,9 +78,11 @@ public interface IProjectAlarmRuleObjRelService  {
 
 
     void createBatchRelation(List<AddProjectAlarmRuleObjRelDTO> addRelationList);
     void createBatchRelation(List<AddProjectAlarmRuleObjRelDTO> addRelationList);
 
 
-    void updateBatch(List<ProjectAlarmRuleObjRel> projectAlarmRuleObjRelList);
+    void updateBatch(ShieldManageListDTO shieldManageListDTO) throws Exception;
 
 
     void deleteBatch();
     void deleteBatch();
 
 
     List<ProjectAlarmRuleObjRel> queryShieldManage(QueryShieldManageDTO queryShieldManageDTO);
     List<ProjectAlarmRuleObjRel> queryShieldManage(QueryShieldManageDTO queryShieldManageDTO);
+
+    List<ProjectAlarmRuleObjRelVO> queryRuleObjRel(QueryRuleObjRelDTO queryRuleObjRelDTO);
 }
 }

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

@@ -5,16 +5,28 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.base.CaseFormat;
 import com.google.common.base.CaseFormat;
+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.service.GroupManagementService;
+import com.persagy.apm.alarmservice.project.alarmrule.dao.ProjectAlarmRuleMapper;
+import com.persagy.apm.alarmservice.project.alarmrule.model.ProjectAlarmRule;
 import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
 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.dao.ProjectAlarmRuleObjRelMapper;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ConvertProjectAlarmRuleObjRelTool;
 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.ProjectAlarmRuleObjRel;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.*;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.*;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectAlarmRuleObjRelVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.model.dto.Sort;
 import com.persagy.apm.common.model.dto.Sort;
+import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.BatchDeleteAlarmConfigDTO;
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.DeleteAlarmConfigDTO;
+import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.QueryAlarmConfigDTO;
+import com.persagy.apm.energyalarmstarter.alarmdata.model.vo.AlarmConfigItem;
+import com.persagy.apm.energyalarmstarter.alarmdata.service.AlarmConfigServiceImpl;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -22,6 +34,7 @@ import org.springframework.util.CollectionUtils;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -36,6 +49,15 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
 
 
     @Autowired
     @Autowired
     private IProjectAlarmRuleService projectAlarmRuleService;
     private IProjectAlarmRuleService projectAlarmRuleService;
+
+    @Autowired
+    AlarmConfigServiceImpl alarmConfigService;
+
+    @Autowired
+    GroupManagementService groupManagementService;
+    @Autowired
+    private ProjectAlarmRuleObjRelMapper projectAlarmRuleObjRelMapper;
+
     /**
     /**
      * 创建项目报警规则与监测对象的关联
      * 创建项目报警规则与监测对象的关联
      *
      *
@@ -157,7 +179,7 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
 
 
             // todo 需判断使用like还是eq
             // todo 需判断使用like还是eq
             if (StringUtils.isNotEmpty(queryProjectAlarmRuleObjRelDTO.getEquipId())) {
             if (StringUtils.isNotEmpty(queryProjectAlarmRuleObjRelDTO.getEquipId())) {
-                queryWrapper.like(ProjectAlarmRuleObjRel.PROP_EQUIP_ID, queryProjectAlarmRuleObjRelDTO.getEquipId());
+                queryWrapper.like(ProjectAlarmRuleObjRel.PROP_OBJ_ID, queryProjectAlarmRuleObjRelDTO.getEquipId());
             }
             }
 
 
             if (queryProjectAlarmRuleObjRelDTO.getOpen() != null) {
             if (queryProjectAlarmRuleObjRelDTO.getOpen() != null) {
@@ -207,7 +229,7 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
 
 
         // todo 需判断使用like还是eq
         // todo 需判断使用like还是eq
         if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleObjRelDTO.getEquipId())) {
         if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleObjRelDTO.getEquipId())) {
-            queryWrapper.like(ProjectAlarmRuleObjRel.PROP_EQUIP_ID, pageQueryProjectAlarmRuleObjRelDTO.getEquipId());
+            queryWrapper.like(ProjectAlarmRuleObjRel.PROP_OBJ_ID, pageQueryProjectAlarmRuleObjRelDTO.getEquipId());
         }
         }
 
 
         if (pageQueryProjectAlarmRuleObjRelDTO.getOpen() != null) {
         if (pageQueryProjectAlarmRuleObjRelDTO.getOpen() != null) {
@@ -250,8 +272,51 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
     }
     }
 
 
     @Override
     @Override
-    public void updateBatch(List<ProjectAlarmRuleObjRel> projectAlarmRuleObjRelList) {
-        updateBatchById(projectAlarmRuleObjRelList);
+    public void updateBatch(ShieldManageListDTO shieldManageListDTO) throws Exception {
+        List<ShieldManageDTO> shieldManageDTOList = shieldManageListDTO.getShieldManageDTOList();
+        String projectAlarmRuleId = shieldManageListDTO.getProjectAlarmRuleId();
+        String projectId = shieldManageListDTO.getProjectId();
+        projectAlarmRuleObjRelMapper.updateStatus(shieldManageDTOList,projectAlarmRuleId,projectId);
+
+        //删除设备报警条件 begin
+        BatchDeleteAlarmConfigDTO batchDeleteAlarmConfigDTO = new BatchDeleteAlarmConfigDTO();
+        List<DeleteAlarmConfigDTO> alarmConfigs = new ArrayList<>();
+        String condition = shieldManageListDTO.getCondition();
+        String classCode = shieldManageListDTO.getClassCode();
+        //查询所有设备
+        List<EquipItem> equips = this.getAllEquip(classCode, condition);
+        List<String> objIds = equips.stream().map(EquipItem::getId).collect(Collectors.toList());
+        QueryAlarmConfigDTO queryAlarmConfigDTO = new QueryAlarmConfigDTO();
+        queryAlarmConfigDTO.setObjId(objIds);
+        DmpResult<List<AlarmConfigItem>> query = alarmConfigService.query(queryAlarmConfigDTO);
+        //所有设备条件
+        List<AlarmConfigItem> data = query.getData();
+        //组织删除参数
+        if(data.size()>0){
+            data.forEach(alarmConfigItem -> {
+                DeleteAlarmConfigDTO deleteAlarmConfigDTO = new DeleteAlarmConfigDTO();
+                deleteAlarmConfigDTO.setId(alarmConfigItem.getId());
+                alarmConfigs.add(deleteAlarmConfigDTO);
+            });
+            batchDeleteAlarmConfigDTO.setAlarmConfigs(alarmConfigs);
+            alarmConfigService.batchDelete(batchDeleteAlarmConfigDTO);
+        }
+        //删除设备报警条件 end
+    }
+
+    public List<EquipItem> getAllEquip(String classCode,String condition){
+        //查询所有项目
+        List<ProjectVO> projects = projectAlarmRuleService.getProject();
+        List<EquipItem> records = new ArrayList<>();
+        for (ProjectVO project : projects) {
+            QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
+            queryEquipDTO.setProjectId(project.getProjectId());
+            queryEquipDTO.setClassCode(classCode);
+            queryEquipDTO.setCondition(condition);
+            List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);
+            records.addAll(record);
+        }
+        return records;
     }
     }
 
 
     @Override
     @Override
@@ -288,4 +353,41 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
 
 
         return list(queryWrapper);
         return list(queryWrapper);
     }
     }
+
+    @Override
+    public List<ProjectAlarmRuleObjRelVO> queryRuleObjRel(QueryRuleObjRelDTO queryRuleObjRelDTO) {
+        List<String> projectAlarmRuleIdList = projectAlarmRuleService.queryAlarmRule(queryRuleObjRelDTO);
+        List<ProjectAlarmRuleObjRel> relationList = this.queryObjRelList(projectAlarmRuleIdList);
+        Map<String, ProjectAlarmRuleObjRel> partitionMap = relationList.stream().collect(Collectors.toMap(
+                ProjectAlarmRuleObjRel::getObjId, equip -> equip));
+        String condition = queryRuleObjRelDTO.getCondition();
+        String classCode = queryRuleObjRelDTO.getClassCode();
+        String projectId = queryRuleObjRelDTO.getProjectId();
+        QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
+        queryEquipDTO.setProjectId(projectId);
+        queryEquipDTO.setClassCode(classCode);
+        queryEquipDTO.setCondition(condition);
+        List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
+        List<ProjectAlarmRuleObjRelVO> resultList = new ArrayList<>();
+        for (EquipItem record : records) {
+            if (partitionMap.get(record.getId()) == null) {
+                ProjectAlarmRuleObjRelVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelVO();
+                projectAlarmRuleObjRelVO.setObjId(record.getId());
+                projectAlarmRuleObjRelVO.setObjName(record.getName());
+                resultList.add(projectAlarmRuleObjRelVO);
+            }
+        }
+        return resultList;
+    }
+
+    private List<ProjectAlarmRuleObjRel> queryObjRelList(List<String> projectAlarmRuleIdList) {
+        List<ProjectAlarmRuleObjRel> list = new ArrayList<>();
+        for (String projectAlarmRuleId : projectAlarmRuleIdList) {
+            QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, projectAlarmRuleId);
+            list.addAll(list(queryWrapper));
+
+        }
+        return list;
+    }
 }
 }

+ 1 - 1
src/main/resources/json/Project.json

@@ -1 +1 @@
-[{"projectName":"衡阳蒸湘万达广场","projectId":"1101051029","groupCode":"WD"},{"projectName":"泉州安溪万达广场","projectId":"1101051130","groupCode":"WD"}]
+[{"projectName":"衡阳蒸湘万达广场","projectId":"Pj1101060001","groupCode":"WD"}]

+ 7 - 5
src/main/resources/mapper/ProjectAlarmRuleMapper.xml

@@ -16,8 +16,8 @@
         <result column="modified_time" property="modifiedTime"/>
         <result column="modified_time" property="modifiedTime"/>
         <collection property="relListItemList"
         <collection property="relListItemList"
                     ofType="com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectAlarmRuleObjRelVO">
                     ofType="com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectAlarmRuleObjRelVO">
-            <result column="obj_id" property="equipId"/>
-            <result column="obj_name" property="equipName"/>
+            <result column="obj_id" property="objId"/>
+            <result column="obj_name" property="objName"/>
             <result column="open" property="open"/>
             <result column="open" property="open"/>
         </collection>
         </collection>
         <collection property="alarmCondition"
         <collection property="alarmCondition"
@@ -38,8 +38,10 @@
         select count(*)
         select count(*)
         from project_alarm_rule a
         from project_alarm_rule a
         left join project_alarm_rule_obj_rel b on a.id = b.project_alarm_rule_id
         left join project_alarm_rule_obj_rel b on a.id = b.project_alarm_rule_id
-        where a.group_id = #{groupId}
-        and a.alarm_item_code = #{alarmItemCode}
+        where a.group_id = #{groupId} and a.valid = 1
+        <if test="alarmItemCode != null and alarmItemCode != ''">
+            and a.alarm_item_code = #{alarmItemCode}
+        </if>
         <if test="equipName != null and equipName != ''">
         <if test="equipName != null and equipName != ''">
             and b.obj_name like '%${equipName}%'
             and b.obj_name like '%${equipName}%'
         </if>
         </if>
@@ -64,7 +66,7 @@
         from project_alarm_rule a
         from project_alarm_rule a
         left join project_alarm_rule_obj_rel b on a.id = b.project_alarm_rule_id
         left join project_alarm_rule_obj_rel b on a.id = b.project_alarm_rule_id
         left join alarm_condition c on a.alarm_condition_id = c.id
         left join alarm_condition c on a.alarm_condition_id = c.id
-        where a.group_id = #{groupId}
+        where a.group_id = #{groupId} and a.valid = 1
         <if test="alarmItemCode != null and alarmItemCode != ''">
         <if test="alarmItemCode != null and alarmItemCode != ''">
             and a.alarm_item_code = #{alarmItemCode}
             and a.alarm_item_code = #{alarmItemCode}
         </if>
         </if>

+ 27 - 13
src/main/resources/mapper/ProjectAlarmRuleObjRelMapper.xml

@@ -1,18 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.persagy.apm.alarmservice.project.alarmruleobjrel.dao.ProjectAlarmRuleObjRelMapper">
 <mapper namespace="com.persagy.apm.alarmservice.project.alarmruleobjrel.dao.ProjectAlarmRuleObjRelMapper">
-    <resultMap id="ProjectAlarmRuleObjRelMap" type="com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel">
-		<result column="id" property="id" />
-		<result column="project_alarm_rule_id" property="projectAlarmRuleId" />
-		<result column="equip_id" property="equipId" />
-		<result column="open" property="open" />
-		<result column="project_id" property="projectId" />
-		<result column="ts" property="ts" />
-		<result column="creator" property="creator" />
-		<result column="creation_time" property="creationTime" />
-		<result column="modifier" property="modifier" />
-		<result column="modified_time" property="modifiedTime" />
-		<result column="valid" property="valid" />
-	</resultMap>
+    <resultMap id="ProjectAlarmRuleObjRelMap"
+               type="com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel">
+        <result column="id" property="id"/>
+        <result column="project_alarm_rule_id" property="projectAlarmRuleId"/>
+        <result column="obj_id" property="objId"/>
+        <result column="open" property="open"/>
+        <result column="project_id" property="projectId"/>
+        <result column="ts" property="ts"/>
+        <result column="creator" property="creator"/>
+        <result column="creation_time" property="creationTime"/>
+        <result column="modifier" property="modifier"/>
+        <result column="modified_time" property="modifiedTime"/>
+        <result column="valid" property="valid"/>
+    </resultMap>
+    <update id="updateStatus">
+        <foreach collection="shieldManageDTOList" item="item" index="index" open="" close="" separator=";">
+            update project_alarm_rule_obj_rel
+            <set>
+                open=#{item.open}
+            </set>
+            <where>
+                project_alarm_rule_id =#{projectAlarmRuleId}
+                and project_id = #{projectId}
+                and obj_id = #{item.objId}
+            </where>
+        </foreach>
+    </update>
 </mapper>
 </mapper>