xujiaheng пре 3 година
родитељ
комит
751634cddf

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

@@ -7,6 +7,7 @@ import java.io.IOException;
 import java.util.List;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleListItemVO;
+import com.persagy.apm.alarmservice.group.management.model.equip.vo.EquipItem;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -81,4 +82,6 @@ public interface IGroupAlarmRuleService  {
     void readExcel() throws IOException;
 
     GroupAlarmRule getGroupAlarmRule(GetGroupAlarmRuleDTO getGroupAlarmRuleDTO);
+
+    List<EquipItem> getAllEquip(String classCode, String condition);
 }

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

@@ -88,7 +88,12 @@ public class ProjectAlarmRuleController {
     @PostMapping("/delete")
     public CommonResult deleteProjectAlarmRule(
             @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();
     }
 

+ 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.ApiModelProperty;
 import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 
 /**
@@ -15,5 +17,21 @@ public class DeleteProjectAlarmRuleDTO {
     @NotNull(message = "id不能为空")
     @ApiModelProperty(value = "主键", required = true)
     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;
     
 }

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

@@ -53,7 +53,7 @@ public interface IProjectAlarmRuleService  {
     * @author lixing
     * @version V1.0 2021-09-08 22:46:16
     */
-    public void deleteProjectAlarmRule(String id);
+    public void deleteProjectAlarmRule(DeleteProjectAlarmRuleDTO deleteProjectAlarmRuleDTO) throws Exception;
     
     /**
     * 查询项目报警规则

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

@@ -19,10 +19,7 @@ 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.model.ConvertProjectAlarmRuleTool;
 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.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.QueryRuleObjRelDTO;
@@ -31,11 +28,10 @@ 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.context.poems.PoemsContext;
+import com.persagy.apm.energyalarmstarter.alarmdata.feign.DmpResult;
 import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.AlarmCondition;
-import com.persagy.apm.energyalarmstarter.alarmdata.model.dto.alarmconfig.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 org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
@@ -293,9 +289,9 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
      */
     @Override
     @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());
         updateById(projectAlarmRule);
         //查询是否是自定义报警,是则删除自定义规则
@@ -305,6 +301,40 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         }
         //删除项目报警规则与监测对象的关联
         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;
     }
 
     /**