Browse Source

修改项目报警

xujiaheng 3 years ago
parent
commit
2faec59dce

+ 35 - 21
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/controller/ProjectAlarmRuleController.java

@@ -42,6 +42,8 @@ public class ProjectAlarmRuleController {
     private IProjectAlarmRuleService projectAlarmRuleService;
     @Autowired
     private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
+    @Autowired
+    private ProjectAlarmRuleMapper projectAlarmRuleMapper;
 
 	@ApiOperation(value = "创建项目报警规则")
 	@PostMapping("/create")
@@ -105,28 +107,40 @@ public class ProjectAlarmRuleController {
     @PostMapping("/queryPage")
     public CommonResult<PageList<ProjectAlarmRuleListItemVO>> queryProjectAlarmRule(
             @Valid @RequestBody PageQueryProjectAlarmRuleDTO pageQueryProjectAlarmRuleDTO) {
-        IPage<ProjectAlarmRule> pagedList = projectAlarmRuleService.pageQueryProjectAlarmRule(pageQueryProjectAlarmRuleDTO);
-        if(pagedList.getRecords().size()>0){
-            List<String> projectIds = pagedList.getRecords().stream().map(ProjectAlarmRule::getProjectId).collect(Collectors.toList());
-            List<ProjectAlarmRuleObjRel> relationList = projectAlarmRuleObjRelService.queryRelationListByProjectIds(projectIds);
-            Map<String, ProjectAlarmRuleObjRel> relationMap = relationList.stream().collect(Collectors.toMap(ProjectAlarmRuleObjRel::getProjectId, rule -> rule));
-            IPage<ProjectAlarmRuleListItemVO> pagedResultList = pagedList.convert(item -> {
-                try {
-                    return ConvertProjectAlarmRuleTool.INSTANCE.convert2ResponseListItemDTO(item);
-                } catch (Exception e) {
-                    throw new IllegalArgumentException("分页查询,ProjectAlarmRule实体类转换为列表对象发生异常", e);
-                }
-            });
-            pagedResultList.getRecords().forEach(projectAlarmRuleListItemVO -> {
-                String projectId = projectAlarmRuleListItemVO.getProjectId();
-                if(relationMap.containsKey(projectId)){
-                    projectAlarmRuleListItemVO.setRelListItemList((List<ProjectAlarmRuleObjRel>) relationMap.get(projectId));
-                }
-            });
-            return ResultHelper.multi(pagedResultList);
-        }
 
-        return ResultHelper.multi(new ArrayList<>());
+        int page = pageQueryProjectAlarmRuleDTO.getPage();
+        int size = pageQueryProjectAlarmRuleDTO.getSize();
+        pageQueryProjectAlarmRuleDTO.setStartIndex((page - 1) * size);
+        int count = projectAlarmRuleMapper.queryCount(pageQueryProjectAlarmRuleDTO);
+        List<ProjectAlarmRuleListItemVO> projectAlarmRuleListItemVOS = projectAlarmRuleMapper.queryList(pageQueryProjectAlarmRuleDTO);
+        return ResultHelper.multi(projectAlarmRuleListItemVOS, count);
+
+
+
+
+
+
+//        IPage<ProjectAlarmRule> pagedList = projectAlarmRuleService.pageQueryProjectAlarmRule(pageQueryProjectAlarmRuleDTO);
+//        if(pagedList.getRecords().size()>0){
+//            List<String> projectIds = pagedList.getRecords().stream().map(ProjectAlarmRule::getProjectId).collect(Collectors.toList());
+//            List<ProjectAlarmRuleObjRel> relationList = projectAlarmRuleObjRelService.queryRelationListByProjectIds(projectIds);
+//            Map<String, ProjectAlarmRuleObjRel> relationMap = relationList.stream().collect(Collectors.toMap(ProjectAlarmRuleObjRel::getProjectId, rule -> rule));
+//            IPage<ProjectAlarmRuleListItemVO> pagedResultList = pagedList.convert(item -> {
+//                try {
+//                    return ConvertProjectAlarmRuleTool.INSTANCE.convert2ResponseListItemDTO(item);
+//                } catch (Exception e) {
+//                    throw new IllegalArgumentException("分页查询,ProjectAlarmRule实体类转换为列表对象发生异常", e);
+//                }
+//            });
+//            pagedResultList.getRecords().forEach(projectAlarmRuleListItemVO -> {
+//                String projectId = projectAlarmRuleListItemVO.getProjectId();
+//                if(relationMap.containsKey(projectId)){
+//                    projectAlarmRuleListItemVO.setRelListItemList((List<ProjectAlarmRuleObjRel>) relationMap.get(projectId));
+//                }
+//            });
+//            return ResultHelper.multi(pagedResultList);
+//        }
+//        return ResultHelper.multi(new ArrayList<>());
     }
 }
 

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

@@ -22,11 +22,11 @@ public class PageQueryProjectAlarmRuleDTO extends PageDTO {
     @ApiModelProperty(value = "分组id", required = true)
     private String groupId;
     
-//    @ApiModelProperty(value = "报警类型编码", required = true)
-//    private String alarmItemCode;
+    @ApiModelProperty(value = "报警类型编码", required = true)
+    private String alarmItemCode;
 
-    @ApiModelProperty(value = "报警类型名称", required = true)
-    private String alarmItemName;
+    @ApiModelProperty(value = "报警对象名称", required = true)
+    private String equipName;
     
 //    @ApiModelProperty(value = "报警条件id", required = true)
 //    private String alarmConditionId;

+ 3 - 2
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/model/vo/ProjectAlarmRuleListItemVO.java

@@ -1,6 +1,7 @@
 package com.persagy.apm.alarmservice.project.alarmrule.model.vo;
 
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel;
+import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectAlarmRuleObjRelVO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -47,7 +48,7 @@ public class ProjectAlarmRuleListItemVO {
     @ApiModelProperty("修改时间")
     private Date modifiedTime;
 
-    @ApiModelProperty("修改时间")
-    private List<ProjectAlarmRuleObjRel> relListItemList;
+    @ApiModelProperty("报警对象")
+    private List<ProjectAlarmRuleObjRelVO> relListItemList;
 
 }

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

@@ -381,8 +381,8 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         }
 
         // todo 需判断使用like还是eq
-        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleDTO.getAlarmItemName())) {
-            queryWrapper.like(ProjectAlarmRule.PROP_ALARM_ITEM_NAME, pageQueryProjectAlarmRuleDTO.getAlarmItemName());
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleDTO.getAlarmItemCode())) {
+            queryWrapper.eq(ProjectAlarmRule.PROP_ALARM_ITEM_CODE, pageQueryProjectAlarmRuleDTO.getAlarmItemCode());
         }
 
         // todo 需判断使用like还是eq

+ 3 - 0
src/main/java/com/persagy/apm/alarmservice/project/alarmruleobjrel/model/ProjectAlarmRuleObjRel.java

@@ -24,6 +24,9 @@ public class ProjectAlarmRuleObjRel extends AuditableEntity<ProjectAlarmRuleObjR
     
     @ApiModelProperty("设备ID")
     private String equipId;
+
+    @ApiModelProperty("设备名称")
+    private String equipName;
     
     @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
     private Integer open;

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

@@ -0,0 +1,48 @@
+package com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-08 22:46:37
+ */
+@Data
+@ApiModel(value = "项目报警规则与监测对象的关联返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectAlarmRuleObjRelVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("项目报警规则id")
+    private String projectAlarmRuleId;
+    
+    @ApiModelProperty("设备ID")
+    private String equipId;
+
+    @ApiModelProperty("设备名称")
+    private String equipName;
+    
+    @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
+    private Integer open;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("创建人")
+    private String creator;
+    
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+    
+    @ApiModelProperty("修改人")
+    private String modifier;
+    
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+    
+}

+ 2 - 2
src/main/resources/mapper/GroupAlarmRuleMapper.xml

@@ -43,7 +43,7 @@
         left join alarm_condition b on a.alarm_condition_id = b.id
         where a.group_id = #{groupId} and a.valid = 1
         <if test="alarmItemName != null and alarmItemName != ''">
-            and a.alarm_item_name = #{alarmItemName}
+            and a.alarm_item_name like '%${alarmItemName}%'
         </if>
         order by a.creation_time
         limit #{startIndex},#{size}
@@ -54,7 +54,7 @@
         left join alarm_condition b on a.alarm_condition_id = b.id
         where a.group_id = #{groupId} and a.valid = 1
         <if test="alarmItemName != null and alarmItemName != ''">
-            and a.alarm_item_name = #{alarmItemName}
+            and a.alarm_item_name like '%${alarmItemName}%'
         </if>
     </select>
 </mapper>

+ 50 - 17
src/main/resources/mapper/ProjectAlarmRuleMapper.xml

@@ -2,23 +2,56 @@
 <!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.alarmrule.dao.ProjectAlarmRuleMapper">
     <resultMap id="ProjectAlarmRuleMap" type="com.persagy.apm.alarmservice.project.alarmrule.model.vo.ProjectAlarmRuleListItemVO">
-		<result column="id" property="id" />
-		<result column="group_id" property="groupId" />
-		<result column="alarm_item_code" property="alarmItemCode" />
-		<result column="alarm_condition_id" property="alarmConditionId" />
-		<result column="belong" property="belong" />
-		<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>
-    <select id="queryCount" resultType="java.lang.Integer"></select>
-	<select id="queryList"
-			resultMap="ProjectAlarmRuleMap">
+        <result column="id" property="id"/>
+        <result column="group_id" property="groupId"/>
+        <result column="alarm_item_code" property="alarmItemCode"/>
+        <result column="alarm_condition_id" property="alarmConditionId"/>
+        <result column="belong" property="belong"/>
+        <result column="project_id" property="projectId"/>
+        <result column="creator" property="creator"/>
+        <result column="creation_time" property="creationTime"/>
+        <result column="modifier" property="modifier"/>
+        <result column="modified_time" property="modifiedTime"/>
+        <collection property="relListItemList" ofType="com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectAlarmRuleObjRelVO">
+            <result column="equip_id" property="equipId"/>
+            <result column="equip_name" property="equipName"/>
+            <result column="open" property="open"/>
+        </collection>
+    </resultMap>
 
-	</select>
+    <select id="queryCount" resultType="java.lang.Integer">
+        select count(*)
+        from project_alarm_rule a
+        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}
+        <if test="equipName != null and equipName != ''">
+            and b.equip_name like '%${equipName}%'
+        </if>
+    </select>
+    <select id="queryList" resultMap="ProjectAlarmRuleMap">
+        select a.id,
+               a.group_id,
+               a.alarm_item_code,
+               a.alarm_condition_id,
+               a.belong,
+               a.project_id,
+               a.creator,
+               a.creation_time,
+               a.modified_time,
+               a.modifier,
+               b.equip_id,
+               b.equip_name,
+               b.open
+        from project_alarm_rule a
+                 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}
+        <if test="equipName != null and equipName != ''">
+            and b.equip_name like '%${equipName}%'
+        </if>
+        order by a.creation_time
+            limit #{startIndex},#{size}
+    </select>
 </mapper>