xujiaheng 3 vuotta sitten
vanhempi
commit
72e64844e0

+ 2 - 1
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.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.UpdateAlarmItemDTO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -43,7 +44,7 @@ public class AddProjectAlarmRuleDTO {
 
     @ApiModelProperty(value = "报警对象列表", required = true)
     @NotNull(message = "报警对象列表不能为空") // todo 更新校验规则
-    private List<AddProjectAlarmRuleObjRelDTO> addRelationList;
+    private List<UpdateAlarmItemDTO> addRelationList;
 
     @ApiModelProperty(value = "报警规则", required = true)
     @NotNull(message = "报警规则不能为空") // todo 更新校验规则

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

@@ -84,6 +84,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
     @Transactional(rollbackFor = Exception.class)
     public String createProjectAlarmRule(AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) throws Exception {
         ProjectAlarmRule projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertAddDto2Entity(addProjectAlarmRuleDTO);
+        String uuid = DataUtils.getUUID();
+        projectAlarmRule.setId(uuid);
         AddAlarmConditionDTO addAlarmConditionDTO = addProjectAlarmRuleDTO.getAlarmCondition();
         if (addProjectAlarmRuleDTO.getBelong() == INTEGER_ONE) {
             //查询对应报警类型的集团规则,将ID添加到项目规则表
@@ -98,7 +100,10 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
             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());
         setDefaultValue(projectAlarmRule);
@@ -216,7 +221,10 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
                 projectAlarmRule.setAlarmConditionId((String) map.get("id"));
             }
             //新增关联关系
-            List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(updateProjectAlarmRuleDTO);
+            List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddRelationList();
+            String projectId = updateProjectAlarmRuleDTO.getProjectId();
+            String id = updateProjectAlarmRuleDTO.getId();
+            List<AddProjectAlarmRuleObjRelDTO> addRelations = convert2AddProjectAlarmRuleObjRelDTO(addRelationList,id,projectId);
             projectAlarmRuleObjRelService.createBatchRelation(addRelations);
 
             //同步更新设备报警条件 begin
@@ -224,7 +232,6 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
             List<UpdateAlarmConfigDTO> updateAlarmConfigDTOs = new ArrayList();
             String condition = updateProjectAlarmRuleDTO.getCondition();
             String classCode = updateProjectAlarmRuleDTO.getClassCode();
-            String projectId = updateProjectAlarmRuleDTO.getProjectId();
             QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
             queryEquipDTO.setProjectId(projectId);
             queryEquipDTO.setClassCode(classCode);
@@ -256,11 +263,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
 
     }
 
-    private List<AddProjectAlarmRuleObjRelDTO> convert2AddProjectAlarmRuleObjRelDTO(UpdateProjectAlarmRuleDTO updateProjectAlarmRuleDTO) {
-        List<UpdateAlarmItemDTO> addRelationList = updateProjectAlarmRuleDTO.getAddRelationList();
+    private List<AddProjectAlarmRuleObjRelDTO> convert2AddProjectAlarmRuleObjRelDTO(List<UpdateAlarmItemDTO> addRelationList,String id,String projectId) {
         List<AddProjectAlarmRuleObjRelDTO> list = new ArrayList<>();
-        String projectId = updateProjectAlarmRuleDTO.getProjectId();
-        String id = updateProjectAlarmRuleDTO.getId();
         for (UpdateAlarmItemDTO updateAlarmItemDTO : addRelationList) {
             AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO = new AddProjectAlarmRuleObjRelDTO();
             addProjectAlarmRuleObjRelDTO.setProjectAlarmRuleId(id);

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

@@ -104,7 +104,7 @@ public class ProjectAlarmRuleObjRelController {
     @ApiOperation(value = "修改屏蔽管理")
     @PostMapping("/shieldManage")
     public CommonResult<ApmResponseUpsertVO> shieldManage(
-            @Valid @RequestBody ShieldManageListDTO shieldManageListDTO) {
+            @Valid @RequestBody ShieldManageListDTO shieldManageListDTO) throws Exception {
         projectAlarmRuleObjRelService.updateBatch(shieldManageListDTO);
         return ResultHelper.success();
     }

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

@@ -4,6 +4,7 @@ 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;
 
@@ -23,6 +24,13 @@ public class ShieldManageListDTO {
     @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;
     
 }

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

@@ -78,7 +78,7 @@ public interface IProjectAlarmRuleObjRelService  {
 
     void createBatchRelation(List<AddProjectAlarmRuleObjRelDTO> addRelationList);
 
-    void updateBatch(ShieldManageListDTO shieldManageListDTO);
+    void updateBatch(ShieldManageListDTO shieldManageListDTO) throws Exception;
 
     void deleteBatch();
 

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

@@ -21,6 +21,12 @@ import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlar
 import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.persagy.apm.common.context.AppContext;
 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.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -44,6 +50,8 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
     @Autowired
     private IProjectAlarmRuleService projectAlarmRuleService;
 
+    @Autowired
+    AlarmConfigServiceImpl alarmConfigService;
 
     @Autowired
     GroupManagementService groupManagementService;
@@ -264,11 +272,51 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
     }
 
     @Override
-    public void updateBatch(ShieldManageListDTO shieldManageListDTO) {
+    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