소스 검색

fix conflict

lixing 3 년 전
부모
커밋
f85fd58664

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

@@ -215,7 +215,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         for (ProjectVO project : projects) {
             List<AddAlarmConfigDTO> alarmConfigs = new ArrayList<>();
             QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
-            queryEquipDTO.setProjectId(project.getProjectId());
+            queryEquipDTO.setProjectId("Pj" + project.getProjectId());
             queryEquipDTO.setClassCode(classCode);
             queryEquipDTO.setCondition(condition);
             List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
@@ -373,9 +373,10 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
     @Transactional(rollbackFor = Exception.class)
     public void delete(DeleteGroupAlarmRuleDTO deleteGroupAlarmRuleDTO) throws Exception {
         String groupRuleId = deleteGroupAlarmRuleDTO.getId();
-        GetGroupAlarmRuleDTO getGroupAlarmRuleDTO = new GetGroupAlarmRuleDTO();
-        getGroupAlarmRuleDTO.setGroupId(groupRuleId);
-        GroupAlarmRule groupAlarmRule = getGroupAlarmRule(getGroupAlarmRuleDTO);
+        GroupAlarmRule groupAlarmRule = getById(groupRuleId);
+//        GetGroupAlarmRuleDTO getGroupAlarmRuleDTO = new GetGroupAlarmRuleDTO();
+//        getGroupAlarmRuleDTO.setGroupId(groupRuleId);
+//        GroupAlarmRule groupAlarmRule = getGroupAlarmRule(getGroupAlarmRuleDTO);
         this.deleteGroupAlarmRule(groupRuleId);
         alarmConditionService.deleteAlarmCondition(deleteGroupAlarmRuleDTO.getAlarmConditionId());
         projectAlarmRuleObjRelService.deleteBatch();
@@ -467,7 +468,7 @@ public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper,
         List<EquipItem> records = new ArrayList<>();
         for (ProjectVO project : projects) {
             QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
-            queryEquipDTO.setProjectId(project.getProjectId());
+            queryEquipDTO.setProjectId("Pj" + project.getProjectId());
             queryEquipDTO.setClassCode(classCode);
             queryEquipDTO.setCondition(condition);
             List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);

+ 27 - 40
src/main/java/com/persagy/apm/alarmservice/project/alarmrule/controller/ProjectAlarmRuleController.java

@@ -9,6 +9,7 @@ import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleS
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
 import com.persagy.common.enums.ResponseCode;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -30,10 +31,11 @@ import java.util.stream.Collectors;
 
 /**
  * 项目报警规则控制层
+ *
  * @author lixing
  * @version V1.0 2021-09-08 22:46:16
  */
-@Api(tags = "项目报警规则") 
+@Api(tags = "项目报警规则")
 @Validated
 @RestController
 @RequestMapping("projectAlarmRules")
@@ -45,10 +47,10 @@ public class ProjectAlarmRuleController {
     @Autowired
     private ProjectAlarmRuleMapper projectAlarmRuleMapper;
 
-	@ApiOperation(value = "创建项目报警规则")
-	@PostMapping("/create")
-	public CommonResult<ApmResponseUpsertVO> createProjectAlarmRule(
-	        @Valid @RequestBody AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) {
+    @ApiOperation(value = "创建项目报警规则")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createProjectAlarmRule(
+            @Valid @RequestBody AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) {
         String id = null;
         try {
             id = projectAlarmRuleService.createProjectAlarmRule(addProjectAlarmRuleDTO);
@@ -57,9 +59,9 @@ public class ProjectAlarmRuleController {
             return ResultHelper.failure(ResponseCode.B0001.getCode(), e.getMessage());
         }
         return ResultHelper.single(new ApmResponseUpsertVO(id));
-	}
-	
-	@ApiOperation(value = "项目报警规则详情")
+    }
+
+    @ApiOperation(value = "项目报警规则详情")
     @PostMapping("/get")
     @ApiIgnore
     public CommonResult<ProjectAlarmRuleItemVO> queryProjectAlarmRuleDetail(
@@ -107,7 +109,7 @@ public class ProjectAlarmRuleController {
         List<ProjectAlarmRuleListItemVO> resultList = ConvertProjectAlarmRuleTool.INSTANCE.convert2List(projectAlarmRuleList);
         return ResultHelper.multi(resultList);
     }
-    
+
     @ApiOperation(value = "项目报警规则列表, 分页查询")
     @PostMapping("/queryPage")
     public CommonResult<PageList<ProjectAlarmRuleListItemVO>> queryProjectAlarmRule(
@@ -116,41 +118,26 @@ public class ProjectAlarmRuleController {
         int page = pageQueryProjectAlarmRuleDTO.getPage();
         int size = pageQueryProjectAlarmRuleDTO.getSize();
         pageQueryProjectAlarmRuleDTO.setStartIndex((page - 1) * size);
-        int count = projectAlarmRuleMapper.queryCount(pageQueryProjectAlarmRuleDTO);
+//        int count = projectAlarmRuleMapper.queryCount(pageQueryProjectAlarmRuleDTO);
         List<ProjectAlarmRuleListItemVO> projectAlarmRuleListItemVOS = projectAlarmRuleMapper.queryList(pageQueryProjectAlarmRuleDTO);
+        List<ProjectAlarmRuleListItemVO> result = new ArrayList<>();
         for (ProjectAlarmRuleListItemVO projectAlarmRuleListItemVO : projectAlarmRuleListItemVOS) {
             List<ProjectAlarmRuleObjRel> query = projectAlarmRuleObjRelService.query(projectAlarmRuleListItemVO.getId());
-            projectAlarmRuleListItemVO.setRelListItemList(query);
+            String equipName = pageQueryProjectAlarmRuleDTO.getEquipName();
+            if (StringUtils.isNotBlank(equipName)) {
+                for (ProjectAlarmRuleObjRel projectAlarmRuleObjRel : query) {
+                    if (StringUtils.isNotBlank(projectAlarmRuleObjRel.getObjName()) && projectAlarmRuleObjRel.getObjName().equals(equipName)) {
+                        projectAlarmRuleListItemVO.setRelListItemList(query);
+                        result.add(projectAlarmRuleListItemVO);
+                    }
+                }
+            } else {
+                projectAlarmRuleListItemVO.setRelListItemList(query);
+                result.add(projectAlarmRuleListItemVO);
+            }
         }
-
-        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<>());
+        List<ProjectAlarmRuleListItemVO> resultList = projectAlarmRuleService.pageBySubList(result, size, page);
+        return ResultHelper.multi(resultList, result.size());
     }
 }
 

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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.persagy.apm.alarmservice.group.alarmrule.model.dto.AddGroupAlarmRuleDTO;
 import com.persagy.apm.alarmservice.project.alarmrule.model.ProjectAlarmRule;
 import com.persagy.apm.alarmservice.project.alarmrule.model.dto.*;
+import com.persagy.apm.alarmservice.project.alarmrule.model.vo.ProjectAlarmRuleListItemVO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.QueryRuleObjRelDTO;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
@@ -18,7 +19,9 @@ import java.util.List;
  * @version V1.0 2021-09-08 22:46:16
  */
 public interface IProjectAlarmRuleService  {
-    
+
+    public List<ProjectAlarmRuleListItemVO> pageBySubList(List<ProjectAlarmRuleListItemVO> list, int pagesize, int currentPage) ;
+
     /**
     * 创建项目报警规则
     *
@@ -51,7 +54,7 @@ public interface IProjectAlarmRuleService  {
     /**
     * 删除项目报警规则
     *
-    * @param id 主键
+    * @param deleteProjectAlarmRuleDTO 入参
     * @author lixing
     * @version V1.0 2021-09-08 22:46:16
     */

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

@@ -26,6 +26,7 @@ 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.*;
+import com.persagy.apm.alarmservice.project.alarmrule.model.vo.ProjectAlarmRuleListItemVO;
 import com.persagy.apm.alarmservice.project.alarmrule.service.IProjectAlarmRuleService;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.ProjectAlarmRuleObjRel;
 import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.dto.AddProjectAlarmRuleObjRelDTO;
@@ -48,7 +49,10 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 import static org.apache.commons.lang3.math.NumberUtils.INTEGER_ONE;
@@ -489,7 +493,7 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         List<EquipItem> records = new ArrayList<>();
         for (ProjectVO project : projects) {
             QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
-            queryEquipDTO.setProjectId(project.getProjectId());
+            queryEquipDTO.setProjectId("Pj" + project.getProjectId());
             queryEquipDTO.setClassCode(classCode);
             queryEquipDTO.setCondition(condition);
             List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);
@@ -565,4 +569,55 @@ public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMap
         dmpMessage.setExts(exts);
         rabbitMsgSender.convertAndSend(dmpMessage);
     }
+
+    /**
+     * 利用subList方法进行分页
+     *
+     * @param list        分页数据
+     * @param pagesize    页面大小
+     * @param currentPage 当前页面
+     * @return
+     */
+    @Override
+    public List<ProjectAlarmRuleListItemVO> pageBySubList(List<ProjectAlarmRuleListItemVO> list, int pagesize, int currentPage) {
+
+        int totalcount = list.size();
+
+        int pagecount = 0;
+
+        List<ProjectAlarmRuleListItemVO> subList;
+
+        int m = totalcount % pagesize;
+
+        if (m > 0) {
+
+            pagecount = totalcount / pagesize + 1;
+
+        } else {
+
+            pagecount = totalcount / pagesize;
+
+        }
+
+        if (m == 0) {
+
+            subList = list.subList((currentPage - 1) * pagesize, pagesize * (currentPage));
+
+        } else {
+
+            if (currentPage == pagecount) {
+
+                subList = list.subList((currentPage - 1) * pagesize, totalcount);
+
+            } else {
+
+                subList = list.subList((currentPage - 1) * pagesize, pagesize * (currentPage));
+
+            }
+
+        }
+
+        return subList;
+
+    }
 }

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

@@ -312,7 +312,7 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
         List<EquipItem> records = new ArrayList<>();
         for (ProjectVO project : projects) {
             QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
-            queryEquipDTO.setProjectId(project.getProjectId());
+            queryEquipDTO.setProjectId("Pj" + project.getProjectId());
             queryEquipDTO.setClassCode(classCode);
             queryEquipDTO.setCondition(condition);
             List<EquipItem> record = groupManagementService.getEquipList(queryEquipDTO);
@@ -359,29 +359,29 @@ public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmR
     @Override
     public List<ProjectAlarmRuleObjRelListItemVO> queryRuleObjRel(QueryRuleObjRelDTO queryRuleObjRelDTO) {
         List<ProjectAlarmRuleObjRelListItemVO> resultList = new ArrayList<>();
-        if (StringUtils.isBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
-            //新增
-            String projectId = queryRuleObjRelDTO.getProjectId();
-            QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
-            queryEquipDTO.setProjectId(projectId);
-            queryEquipDTO.setClassCode(queryRuleObjRelDTO.getClassCode());
-            queryEquipDTO.setCondition(queryRuleObjRelDTO.getCondition());
-            List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
-            Map<String, EquipItem> partitionMap = records.stream().collect(Collectors.toMap(EquipItem::getId, equip -> equip, (k1, k2) -> k1));
-            //根据项目报警ID查询已绑定的报警对象
-            List<String> projectAlarmRuleIdList = projectAlarmRuleService.queryAlarmRule(queryRuleObjRelDTO);
-            List<ProjectAlarmRuleObjRel> rels = this.queryObjRelList(projectAlarmRuleIdList);
-            List<String> objIds = rels.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
-            for (String objId : objIds) {
-                if (!partitionMap.containsKey(objId)) {
-                    ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
-                    EquipItem equipItem = partitionMap.get(objId);
-                    projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
-                    projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
-                    resultList.add(projectAlarmRuleObjRelVO);
-                }
+        //查询未绑定的报警对象 begin
+        String projectId = queryRuleObjRelDTO.getProjectId();
+        QueryEquipDTO queryEquipDTO = new QueryEquipDTO();
+        queryEquipDTO.setProjectId(projectId);
+        queryEquipDTO.setClassCode(queryRuleObjRelDTO.getClassCode());
+        queryEquipDTO.setCondition(queryRuleObjRelDTO.getCondition());
+        List<EquipItem> records = groupManagementService.getEquipList(queryEquipDTO);
+        Map<String, EquipItem> partitionMap = records.stream().collect(Collectors.toMap(EquipItem::getId, equip -> equip, (k1, k2) -> k1));
+        //根据项目报警ID查询已绑定的报警对象
+        List<String> projectAlarmRuleIdList = projectAlarmRuleService.queryAlarmRule(queryRuleObjRelDTO);
+        List<ProjectAlarmRuleObjRel> rels = this.queryObjRelList(projectAlarmRuleIdList);
+        List<String> objIds = rels.stream().map(ProjectAlarmRuleObjRel::getObjId).distinct().collect(Collectors.toList());
+        for (String objId : objIds) {
+            if (!partitionMap.containsKey(objId)) {
+                ProjectAlarmRuleObjRelListItemVO projectAlarmRuleObjRelVO = new ProjectAlarmRuleObjRelListItemVO();
+                EquipItem equipItem = partitionMap.get(objId);
+                projectAlarmRuleObjRelVO.setObjId(equipItem.getId());
+                projectAlarmRuleObjRelVO.setObjName(equipItem.getName());
+                resultList.add(projectAlarmRuleObjRelVO);
             }
-        } else {
+        }
+        //查询未绑定的报警对象 end
+        if (StringUtils.isNotBlank(queryRuleObjRelDTO.getProjectAlarmRuleId())) {
             //修改
             QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
             queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryRuleObjRelDTO.getProjectAlarmRuleId());

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
src/main/resources/db/init/data.sql


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

@@ -45,7 +45,7 @@
         <if test="alarmItemName != null and alarmItemName != ''">
             and a.alarm_item_name like '%${alarmItemName}%'
         </if>
-        order by a.creation_time
+        order by a.creation_time desc
         limit #{startIndex},#{size}
     </select>
     <select id="queryCount" resultType="java.lang.Integer">

+ 3 - 4
src/main/resources/mapper/ProjectAlarmRuleMapper.xml

@@ -35,7 +35,7 @@
         select count(*)
         from project_alarm_rule a
         left join alarm_condition c on a.alarm_condition_id = c.id
-        where a.group_id = #{groupId} and a.valid = 1
+        where a.group_id = #{groupId} and a.valid = 1 and a.project_id = #{projectId}
         <if test="alarmItemCode != null and alarmItemCode != ''">
             and a.alarm_item_code = #{alarmItemCode}
         </if>
@@ -56,12 +56,11 @@
         c.backend,c.frontend,c.info_codes,c.trigger_uphold
         from project_alarm_rule a
         left join alarm_condition c on a.alarm_condition_id = c.id
-        where a.group_id = #{groupId} and a.valid = 1
+        where a.group_id = #{groupId} and a.valid = 1 and a.project_id = #{projectId}
         <if test="alarmItemCode != null and alarmItemCode != ''">
             and a.alarm_item_code = #{alarmItemCode}
         </if>
-        order by a.creation_time
-        limit #{startIndex},#{size}
+        order by a.creation_time desc
     </select>
     <select id="getProject"
             resultType="com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO">