|
@@ -1,28 +1,34 @@
|
|
|
package com.persagy.apm.alarmservice.project.alarmrule.controller;
|
|
|
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
-import com.persagy.apm.alarmservice.group.alarmrule.dao.GroupAlarmRuleMapper;
|
|
|
-import com.persagy.apm.alarmservice.group.alarmrule.model.vo.GroupAlarmRuleListItemVO;
|
|
|
-import com.persagy.apm.alarmservice.group.monitorindicator.model.MonitorIndicator;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.model.AlarmCondition;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmcondition.service.IAlarmConditionService;
|
|
|
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.ProjectAlarmRuleItemVO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmrule.model.vo.ProjectAlarmRuleListItemVO;
|
|
|
+import com.persagy.apm.alarmservice.project.alarmrule.model.vo.ProjectAlarmRuleWithObjsAndInfoCodes;
|
|
|
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.QueryProjectAlarmRuleObjRelDTO;
|
|
|
import com.persagy.apm.alarmservice.project.alarmruleobjrel.model.vo.ProjectVO;
|
|
|
import com.persagy.apm.alarmservice.project.alarmruleobjrel.service.IProjectAlarmRuleObjRelService;
|
|
|
+import com.persagy.apm.common.response.ApmResponseUpsertVO;
|
|
|
+import com.persagy.apm.common.response.CommonResult;
|
|
|
+import com.persagy.apm.common.response.PageList;
|
|
|
+import com.persagy.apm.common.utils.ResultHelper;
|
|
|
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;
|
|
|
-import io.swagger.annotations.ApiParam;
|
|
|
-import com.persagy.apm.alarmservice.project.alarmrule.model.*;
|
|
|
-import com.persagy.apm.alarmservice.project.alarmrule.model.vo.*;
|
|
|
-import com.persagy.apm.alarmservice.project.alarmrule.model.dto.*;
|
|
|
-import com.persagy.apm.common.response.*;
|
|
|
-import com.persagy.apm.common.utils.ResultHelper;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
-import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
import springfox.documentation.annotations.ApiIgnore;
|
|
|
|
|
|
import javax.validation.Valid;
|
|
@@ -47,6 +53,8 @@ public class ProjectAlarmRuleController {
|
|
|
private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
|
|
|
@Autowired
|
|
|
private ProjectAlarmRuleMapper projectAlarmRuleMapper;
|
|
|
+ @Autowired
|
|
|
+ private IAlarmConditionService alarmConditionService;
|
|
|
|
|
|
@ApiOperation(value = "查询所有的项目")
|
|
|
@PostMapping("/projects")
|
|
@@ -108,7 +116,7 @@ public class ProjectAlarmRuleController {
|
|
|
}
|
|
|
|
|
|
|
|
|
- @ApiOperation(value = "项目报警规则列表")
|
|
|
+ @ApiOperation(value = "项目报警规则列表(不含报警条件)")
|
|
|
@ApiIgnore
|
|
|
@PostMapping("/query")
|
|
|
public CommonResult<PageList<ProjectAlarmRuleListItemVO>> queryProjectAlarmRule(
|
|
@@ -126,7 +134,7 @@ 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) {
|
|
@@ -146,10 +154,65 @@ public class ProjectAlarmRuleController {
|
|
|
result.add(projectAlarmRuleListItemVO);
|
|
|
}
|
|
|
}
|
|
|
- List<ProjectAlarmRuleListItemVO> collect = result.stream().sorted(Comparator.comparing(ProjectAlarmRuleListItemVO::getAlarmItemName,
|
|
|
+ // 报警类型名称按照中文排序
|
|
|
+ List<ProjectAlarmRuleListItemVO> collect = result.stream().sorted(Comparator.comparing(
|
|
|
+ ProjectAlarmRuleListItemVO::getAlarmItemName,
|
|
|
Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
|
|
|
List<ProjectAlarmRuleListItemVO> resultList = projectAlarmRuleService.pageBySubList(collect, size, page);
|
|
|
return ResultHelper.multi(resultList, result.size());
|
|
|
}
|
|
|
+
|
|
|
+ @ApiOperation(value = "项目报警规则列表(含关联的监测指标和设备)")
|
|
|
+ @ApiIgnore
|
|
|
+ @PostMapping("/query_with_indicators_objs")
|
|
|
+ public CommonResult<PageList<ProjectAlarmRuleWithObjsAndInfoCodes>> queryProjectAlarmRuleWithCondition(
|
|
|
+ @Valid @RequestBody QueryProjectAlarmRuleDTO queryProjectAlarmRuleDTO) {
|
|
|
+ List<ProjectAlarmRule> projectAlarmRuleList = projectAlarmRuleService.queryProjectAlarmRuleList(queryProjectAlarmRuleDTO);
|
|
|
+ List<ProjectAlarmRuleWithObjsAndInfoCodes> resultList = new LinkedList<>();
|
|
|
+ for (ProjectAlarmRule projectAlarmRule : projectAlarmRuleList) {
|
|
|
+ ProjectAlarmRuleWithObjsAndInfoCodes projectAlarmRuleWithObjsAndInfoCodes =
|
|
|
+ convert2ProjectAlarmRuleWithObjsAndInfoCodes(projectAlarmRule);
|
|
|
+ if (projectAlarmRuleWithObjsAndInfoCodes == null) {continue;}
|
|
|
+
|
|
|
+ resultList.add(projectAlarmRuleWithObjsAndInfoCodes);
|
|
|
+ }
|
|
|
+ return ResultHelper.multi(resultList);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 项目报警规则对象转换为项目报警规则(含关联的监测指标和设备)
|
|
|
+ *
|
|
|
+ * @param projectAlarmRule 项目报警规则
|
|
|
+ * @return 项目报警规则(含关联的监测指标和设备)
|
|
|
+ * @author lixing
|
|
|
+ * @version V1.0 2021/10/26 11:14 上午
|
|
|
+ */
|
|
|
+ private ProjectAlarmRuleWithObjsAndInfoCodes convert2ProjectAlarmRuleWithObjsAndInfoCodes(ProjectAlarmRule projectAlarmRule) {
|
|
|
+ ProjectAlarmRuleWithObjsAndInfoCodes projectAlarmRuleWithObjsAndInfoCodes = new ProjectAlarmRuleWithObjsAndInfoCodes();
|
|
|
+ projectAlarmRuleWithObjsAndInfoCodes.setId(projectAlarmRule.getId());
|
|
|
+ projectAlarmRuleWithObjsAndInfoCodes.setProjectId(projectAlarmRule.getProjectId());
|
|
|
+ projectAlarmRuleWithObjsAndInfoCodes.setAlarmItemCode(projectAlarmRule.getAlarmItemCode());
|
|
|
+ // 查询报警规则关联的报警条件,从报警条件中取关联的监测指标
|
|
|
+ String alarmConditionId = projectAlarmRule.getAlarmConditionId();
|
|
|
+ AlarmCondition alarmCondition = alarmConditionService.queryAlarmConditionDetail(alarmConditionId);
|
|
|
+ if (alarmCondition == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ projectAlarmRuleWithObjsAndInfoCodes.setInfoCodes(alarmCondition.getInfoCodes());
|
|
|
+ // 从关联关系表中获取关联的设备
|
|
|
+ QueryProjectAlarmRuleObjRelDTO queryProjectAlarmRuleObjRelDTO = new QueryProjectAlarmRuleObjRelDTO();
|
|
|
+ queryProjectAlarmRuleObjRelDTO.setProjectAlarmRuleId(projectAlarmRule.getId());
|
|
|
+ // 屏蔽状态 1-open、0- 屏蔽
|
|
|
+ Integer open = 1;
|
|
|
+ queryProjectAlarmRuleObjRelDTO.setOpen(open);
|
|
|
+ List<ProjectAlarmRuleObjRel> projectAlarmRuleObjRelList = projectAlarmRuleObjRelService.
|
|
|
+ queryProjectAlarmRuleObjRelList(queryProjectAlarmRuleObjRelDTO);
|
|
|
+ if (!CollectionUtils.isEmpty(projectAlarmRuleObjRelList)) {
|
|
|
+ List<String> objIds = projectAlarmRuleObjRelList.stream().map(
|
|
|
+ ProjectAlarmRuleObjRel::getObjId).collect(Collectors.toList());
|
|
|
+ projectAlarmRuleWithObjsAndInfoCodes.setObjIds(objIds);
|
|
|
+ }
|
|
|
+ return projectAlarmRuleWithObjsAndInfoCodes;
|
|
|
+ }
|
|
|
}
|
|
|
|