Browse Source

项目初始化

lixing 3 years ago
commit
0a68c5a2e5
100 changed files with 5395 additions and 0 deletions
  1. 9 0
      .gitignore
  2. 116 0
      pom.xml
  3. 94 0
      src/main/java/com/persagy/apm/controller/AlarmConditionController.java
  4. 94 0
      src/main/java/com/persagy/apm/controller/CalculateMethodController.java
  5. 94 0
      src/main/java/com/persagy/apm/controller/GroupAlarmRuleController.java
  6. 94 0
      src/main/java/com/persagy/apm/controller/MonitorIndicatorController.java
  7. 94 0
      src/main/java/com/persagy/apm/controller/ProjectAlarmRuleController.java
  8. 94 0
      src/main/java/com/persagy/apm/controller/ProjectAlarmRuleObjRelController.java
  9. 94 0
      src/main/java/com/persagy/apm/controller/ProjectMonitorIndicatorConfigController.java
  10. 16 0
      src/main/java/com/persagy/apm/dao/AlarmConditionMapper.java
  11. 16 0
      src/main/java/com/persagy/apm/dao/CalculateMethodMapper.java
  12. 16 0
      src/main/java/com/persagy/apm/dao/GroupAlarmRuleMapper.java
  13. 16 0
      src/main/java/com/persagy/apm/dao/MonitorIndicatorMapper.java
  14. 16 0
      src/main/java/com/persagy/apm/dao/ProjectAlarmRuleMapper.java
  15. 16 0
      src/main/java/com/persagy/apm/dao/ProjectAlarmRuleObjRelMapper.java
  16. 16 0
      src/main/java/com/persagy/apm/dao/ProjectMonitorIndicatorConfigMapper.java
  17. 46 0
      src/main/java/com/persagy/apm/model/AlarmCondition.java
  18. 42 0
      src/main/java/com/persagy/apm/model/CalculateMethod.java
  19. 74 0
      src/main/java/com/persagy/apm/model/ConvertAlarmConditionTool.java
  20. 74 0
      src/main/java/com/persagy/apm/model/ConvertCalculateMethodTool.java
  21. 74 0
      src/main/java/com/persagy/apm/model/ConvertGroupAlarmRuleTool.java
  22. 74 0
      src/main/java/com/persagy/apm/model/ConvertMonitorIndicatorTool.java
  23. 74 0
      src/main/java/com/persagy/apm/model/ConvertProjectAlarmRuleObjRelTool.java
  24. 74 0
      src/main/java/com/persagy/apm/model/ConvertProjectAlarmRuleTool.java
  25. 74 0
      src/main/java/com/persagy/apm/model/ConvertProjectMonitorIndicatorConfigTool.java
  26. 38 0
      src/main/java/com/persagy/apm/model/GroupAlarmRule.java
  27. 34 0
      src/main/java/com/persagy/apm/model/MonitorIndicator.java
  28. 46 0
      src/main/java/com/persagy/apm/model/ProjectAlarmRule.java
  29. 42 0
      src/main/java/com/persagy/apm/model/ProjectAlarmRuleObjRel.java
  30. 42 0
      src/main/java/com/persagy/apm/model/ProjectMonitorIndicatorConfig.java
  31. 39 0
      src/main/java/com/persagy/apm/model/dto/AddAlarmConditionDTO.java
  32. 35 0
      src/main/java/com/persagy/apm/model/dto/AddCalculateMethodDTO.java
  33. 31 0
      src/main/java/com/persagy/apm/model/dto/AddGroupAlarmRuleDTO.java
  34. 27 0
      src/main/java/com/persagy/apm/model/dto/AddMonitorIndicatorDTO.java
  35. 39 0
      src/main/java/com/persagy/apm/model/dto/AddProjectAlarmRuleDTO.java
  36. 35 0
      src/main/java/com/persagy/apm/model/dto/AddProjectAlarmRuleObjRelDTO.java
  37. 35 0
      src/main/java/com/persagy/apm/model/dto/AddProjectMonitorIndicatorConfigDTO.java
  38. 20 0
      src/main/java/com/persagy/apm/model/dto/DeleteAlarmConditionDTO.java
  39. 20 0
      src/main/java/com/persagy/apm/model/dto/DeleteCalculateMethodDTO.java
  40. 20 0
      src/main/java/com/persagy/apm/model/dto/DeleteGroupAlarmRuleDTO.java
  41. 20 0
      src/main/java/com/persagy/apm/model/dto/DeleteMonitorIndicatorDTO.java
  42. 20 0
      src/main/java/com/persagy/apm/model/dto/DeleteProjectAlarmRuleDTO.java
  43. 20 0
      src/main/java/com/persagy/apm/model/dto/DeleteProjectAlarmRuleObjRelDTO.java
  44. 20 0
      src/main/java/com/persagy/apm/model/dto/DeleteProjectMonitorIndicatorConfigDTO.java
  45. 38 0
      src/main/java/com/persagy/apm/model/dto/PageQueryAlarmConditionDTO.java
  46. 35 0
      src/main/java/com/persagy/apm/model/dto/PageQueryCalculateMethodDTO.java
  47. 32 0
      src/main/java/com/persagy/apm/model/dto/PageQueryGroupAlarmRuleDTO.java
  48. 29 0
      src/main/java/com/persagy/apm/model/dto/PageQueryMonitorIndicatorDTO.java
  49. 38 0
      src/main/java/com/persagy/apm/model/dto/PageQueryProjectAlarmRuleDTO.java
  50. 35 0
      src/main/java/com/persagy/apm/model/dto/PageQueryProjectAlarmRuleObjRelDTO.java
  51. 35 0
      src/main/java/com/persagy/apm/model/dto/PageQueryProjectMonitorIndicatorConfigDTO.java
  52. 31 0
      src/main/java/com/persagy/apm/model/dto/QueryAlarmConditionDTO.java
  53. 20 0
      src/main/java/com/persagy/apm/model/dto/QueryAlarmConditionDetailDTO.java
  54. 28 0
      src/main/java/com/persagy/apm/model/dto/QueryCalculateMethodDTO.java
  55. 20 0
      src/main/java/com/persagy/apm/model/dto/QueryCalculateMethodDetailDTO.java
  56. 25 0
      src/main/java/com/persagy/apm/model/dto/QueryGroupAlarmRuleDTO.java
  57. 20 0
      src/main/java/com/persagy/apm/model/dto/QueryGroupAlarmRuleDetailDTO.java
  58. 22 0
      src/main/java/com/persagy/apm/model/dto/QueryMonitorIndicatorDTO.java
  59. 20 0
      src/main/java/com/persagy/apm/model/dto/QueryMonitorIndicatorDetailDTO.java
  60. 31 0
      src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleDTO.java
  61. 20 0
      src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleDetailDTO.java
  62. 28 0
      src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleObjRelDTO.java
  63. 20 0
      src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleObjRelDetailDTO.java
  64. 28 0
      src/main/java/com/persagy/apm/model/dto/QueryProjectMonitorIndicatorConfigDTO.java
  65. 20 0
      src/main/java/com/persagy/apm/model/dto/QueryProjectMonitorIndicatorConfigDetailDTO.java
  66. 43 0
      src/main/java/com/persagy/apm/model/dto/UpdateAlarmConditionDTO.java
  67. 39 0
      src/main/java/com/persagy/apm/model/dto/UpdateCalculateMethodDTO.java
  68. 35 0
      src/main/java/com/persagy/apm/model/dto/UpdateGroupAlarmRuleDTO.java
  69. 31 0
      src/main/java/com/persagy/apm/model/dto/UpdateMonitorIndicatorDTO.java
  70. 43 0
      src/main/java/com/persagy/apm/model/dto/UpdateProjectAlarmRuleDTO.java
  71. 39 0
      src/main/java/com/persagy/apm/model/dto/UpdateProjectAlarmRuleObjRelDTO.java
  72. 39 0
      src/main/java/com/persagy/apm/model/dto/UpdateProjectMonitorIndicatorConfigDTO.java
  73. 49 0
      src/main/java/com/persagy/apm/model/vo/AlarmConditionItemVO.java
  74. 49 0
      src/main/java/com/persagy/apm/model/vo/AlarmConditionListItemVO.java
  75. 46 0
      src/main/java/com/persagy/apm/model/vo/CalculateMethodItemVO.java
  76. 46 0
      src/main/java/com/persagy/apm/model/vo/CalculateMethodListItemVO.java
  77. 43 0
      src/main/java/com/persagy/apm/model/vo/GroupAlarmRuleItemVO.java
  78. 43 0
      src/main/java/com/persagy/apm/model/vo/GroupAlarmRuleListItemVO.java
  79. 40 0
      src/main/java/com/persagy/apm/model/vo/MonitorIndicatorItemVO.java
  80. 40 0
      src/main/java/com/persagy/apm/model/vo/MonitorIndicatorListItemVO.java
  81. 49 0
      src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleItemVO.java
  82. 49 0
      src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleListItemVO.java
  83. 46 0
      src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleObjRelItemVO.java
  84. 46 0
      src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleObjRelListItemVO.java
  85. 46 0
      src/main/java/com/persagy/apm/model/vo/ProjectMonitorIndicatorConfigItemVO.java
  86. 46 0
      src/main/java/com/persagy/apm/model/vo/ProjectMonitorIndicatorConfigListItemVO.java
  87. 77 0
      src/main/java/com/persagy/apm/service/IAlarmConditionService.java
  88. 77 0
      src/main/java/com/persagy/apm/service/ICalculateMethodService.java
  89. 77 0
      src/main/java/com/persagy/apm/service/IGroupAlarmRuleService.java
  90. 77 0
      src/main/java/com/persagy/apm/service/IMonitorIndicatorService.java
  91. 77 0
      src/main/java/com/persagy/apm/service/IProjectAlarmRuleObjRelService.java
  92. 77 0
      src/main/java/com/persagy/apm/service/IProjectAlarmRuleService.java
  93. 77 0
      src/main/java/com/persagy/apm/service/IProjectMonitorIndicatorConfigService.java
  94. 221 0
      src/main/java/com/persagy/apm/service/impl/AlarmConditionServiceImpl.java
  95. 217 0
      src/main/java/com/persagy/apm/service/impl/CalculateMethodServiceImpl.java
  96. 209 0
      src/main/java/com/persagy/apm/service/impl/GroupAlarmRuleServiceImpl.java
  97. 199 0
      src/main/java/com/persagy/apm/service/impl/MonitorIndicatorServiceImpl.java
  98. 217 0
      src/main/java/com/persagy/apm/service/impl/ProjectAlarmRuleObjRelServiceImpl.java
  99. 227 0
      src/main/java/com/persagy/apm/service/impl/ProjectAlarmRuleServiceImpl.java
  100. 0 0
      src/main/java/com/persagy/apm/service/impl/ProjectMonitorIndicatorConfigServiceImpl.java

+ 9 - 0
.gitignore

@@ -0,0 +1,9 @@
+target/
+.settings/
+.project
+.classpath
+*.iml
+*.log
+*.versionsBackup
+.idea/
+/bin/

+ 116 - 0
pom.xml

@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<modelVersion>4.0.0</modelVersion>
+
+<parent>
+    <groupId>com.persagy</groupId>
+    <artifactId>apm-package</artifactId>
+    <version>3.0.0</version>
+</parent>
+
+<artifactId>energy-alarm-service</artifactId>
+<version>1.0.0</version>
+
+<properties>
+    <maven.compiler.source>8</maven.compiler.source>
+    <maven.compiler.target>8</maven.compiler.target>
+</properties>
+
+<repositories>
+    <repository>
+        <id>integrated</id>
+        <name>releases Repository</name>
+        <url>http://47.93.132.139:8081/nexus/content/repositories/integrated/</url>
+    </repository>
+    <repository>
+        <id>persagy</id>
+        <name>persagy Repository</name>
+        <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+    </repository>
+</repositories>
+
+<dependencies>
+    <dependency>
+        <groupId>org.projectlombok</groupId>
+        <artifactId>lombok</artifactId>
+        <optional>true</optional>
+    </dependency>
+    <!-- 项目启动 -->
+    <dependency>
+        <groupId>com.persagy</groupId>
+        <artifactId>apm-server</artifactId>
+    </dependency>
+    <!-- apm 工具包 -->
+    <dependency>
+        <groupId>com.persagy</groupId>
+        <artifactId>apm-common</artifactId>
+        <exclusions>
+            <exclusion>
+                <groupId>com.persagy</groupId>
+                <artifactId>integrated-redis-spring-boot-starter</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+    <!-- lang -->
+    <dependency>
+        <groupId>commons-lang</groupId>
+        <artifactId>commons-lang</artifactId>
+    </dependency>
+
+    <!-- gson json,java对象互转 -->
+    <dependency>
+        <groupId>com.google.code.gson</groupId>
+        <artifactId>gson</artifactId>
+    </dependency>
+    <!-- 配置中心(包含注册中心) -->
+    <dependency>
+        <groupId>com.persagy</groupId>
+        <artifactId>integrated-config-client</artifactId>
+    </dependency>
+
+    <!-- 日志 -->
+    <dependency>
+        <groupId>com.persagy</groupId>
+        <artifactId>integrated-log-spring-boot-starter</artifactId>
+    </dependency>
+
+    <!-- feign -->
+    <dependency>
+        <groupId>com.persagy</groupId>
+        <artifactId>integrated-ribbon-spring-boot-starter</artifactId>
+    </dependency>
+
+    <!-- swagger -->
+    <dependency>
+        <groupId>com.persagy</groupId>
+        <artifactId>integrated-swagger2-spring-boot-starter</artifactId>
+    </dependency>
+
+    <!--jep -->
+    <dependency>
+        <groupId>org.scijava</groupId>
+        <artifactId>jep</artifactId>
+        <version>2.4.2</version>
+    </dependency>
+
+    <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-elasticsearch -->
+    <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-elasticsearch</artifactId>
+        <version>3.2.13.RELEASE</version>
+    </dependency>
+
+    <dependency>
+        <groupId>com.persagy</groupId>
+        <artifactId>apm-mybatis</artifactId>
+        <exclusions>
+            <exclusion>
+                <groupId>com.baomidou</groupId>
+                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            </exclusion>
+        </exclusions>
+    </dependency>
+</dependencies>
+</project>

+ 94 - 0
src/main/java/com/persagy/apm/controller/AlarmConditionController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.persagy.apm.service.IAlarmConditionService;
+
+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.model.*;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 报警条件控制层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:03
+ */
+@Api(tags = "报警条件")
+@Validated
+@RestController
+@RequestMapping("alarmConditions")
+public class AlarmConditionController {
+    @Autowired
+    private IAlarmConditionService alarmConditionService;
+
+    @ApiOperation(value = "创建报警条件")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createAlarmCondition(
+            @Valid @RequestBody AddAlarmConditionDTO addAlarmConditionDTO) {
+        String id = alarmConditionService.createAlarmCondition(addAlarmConditionDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+    }
+
+    @ApiOperation(value = "报警条件详情")
+    @PostMapping("/get")
+    public CommonResult<AlarmConditionItemVO> queryAlarmConditionDetail(
+            @Valid @RequestBody QueryAlarmConditionDetailDTO queryAlarmConditionDetailDTO) {
+        AlarmCondition alarmCondition = alarmConditionService.queryAlarmConditionDetail(queryAlarmConditionDetailDTO.getId());
+        AlarmConditionItemVO alarmConditionItemVO = ConvertAlarmConditionTool.INSTANCE.convert2ResponseItemDTO(alarmCondition);
+        return ResultHelper.single(alarmConditionItemVO);
+    }
+
+
+    @ApiOperation(value = "更新报警条件")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateAlarmCondition(
+            @Valid @RequestBody UpdateAlarmConditionDTO updateAlarmConditionDTO) {
+        alarmConditionService.updateAlarmCondition(updateAlarmConditionDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateAlarmConditionDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除报警条件")
+    @PostMapping("/delete")
+    public CommonResult deleteAlarmCondition(
+            @RequestBody @Valid DeleteAlarmConditionDTO deleteAlarmConditionDTO) {
+        alarmConditionService.deleteAlarmCondition(deleteAlarmConditionDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "报警条件列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<AlarmConditionListItemVO>> queryAlarmCondition(
+            @Valid @RequestBody QueryAlarmConditionDTO queryAlarmConditionDTO) {
+        List<AlarmCondition> alarmConditionList = alarmConditionService.queryAlarmConditionList(queryAlarmConditionDTO);
+        List<AlarmConditionListItemVO> resultList = ConvertAlarmConditionTool.INSTANCE.convert2List(alarmConditionList);
+        return ResultHelper.multi(resultList);
+    }
+
+    //@ApiOperation(value = "报警条件列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<AlarmConditionListItemVO>> queryAlarmCondition(
+    //        @Valid @RequestBody PageQueryAlarmConditionDTO pageQueryAlarmConditionDTO) {
+    //    IPage<AlarmCondition> pagedList = alarmConditionService.pageQueryAlarmCondition(pageQueryAlarmConditionDTO);
+    //    IPage<AlarmConditionListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertAlarmConditionTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,AlarmCondition实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 94 - 0
src/main/java/com/persagy/apm/controller/CalculateMethodController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.persagy.apm.service.ICalculateMethodService;
+
+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.model.*;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 计算方式控制层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Api(tags = "计算方式")
+@Validated
+@RestController
+@RequestMapping("calculateMethods")
+public class CalculateMethodController {
+    @Autowired
+    private ICalculateMethodService calculateMethodService;
+
+    @ApiOperation(value = "创建计算方式")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createCalculateMethod(
+            @Valid @RequestBody AddCalculateMethodDTO addCalculateMethodDTO) {
+        String id = calculateMethodService.createCalculateMethod(addCalculateMethodDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+    }
+
+    @ApiOperation(value = "计算方式详情")
+    @PostMapping("/get")
+    public CommonResult<CalculateMethodItemVO> queryCalculateMethodDetail(
+            @Valid @RequestBody QueryCalculateMethodDetailDTO queryCalculateMethodDetailDTO) {
+        CalculateMethod calculateMethod = calculateMethodService.queryCalculateMethodDetail(queryCalculateMethodDetailDTO.getId());
+        CalculateMethodItemVO calculateMethodItemVO = ConvertCalculateMethodTool.INSTANCE.convert2ResponseItemDTO(calculateMethod);
+        return ResultHelper.single(calculateMethodItemVO);
+    }
+
+
+    @ApiOperation(value = "更新计算方式")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateCalculateMethod(
+            @Valid @RequestBody UpdateCalculateMethodDTO updateCalculateMethodDTO) {
+        calculateMethodService.updateCalculateMethod(updateCalculateMethodDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateCalculateMethodDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除计算方式")
+    @PostMapping("/delete")
+    public CommonResult deleteCalculateMethod(
+            @RequestBody @Valid DeleteCalculateMethodDTO deleteCalculateMethodDTO) {
+        calculateMethodService.deleteCalculateMethod(deleteCalculateMethodDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "计算方式列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<CalculateMethodListItemVO>> queryCalculateMethod(
+            @Valid @RequestBody QueryCalculateMethodDTO queryCalculateMethodDTO) {
+        List<CalculateMethod> calculateMethodList = calculateMethodService.queryCalculateMethodList(queryCalculateMethodDTO);
+        List<CalculateMethodListItemVO> resultList = ConvertCalculateMethodTool.INSTANCE.convert2List(calculateMethodList);
+        return ResultHelper.multi(resultList);
+    }
+
+    //@ApiOperation(value = "计算方式列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<CalculateMethodListItemVO>> queryCalculateMethod(
+    //        @Valid @RequestBody PageQueryCalculateMethodDTO pageQueryCalculateMethodDTO) {
+    //    IPage<CalculateMethod> pagedList = calculateMethodService.pageQueryCalculateMethod(pageQueryCalculateMethodDTO);
+    //    IPage<CalculateMethodListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertCalculateMethodTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,CalculateMethod实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 94 - 0
src/main/java/com/persagy/apm/controller/GroupAlarmRuleController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.persagy.apm.service.IGroupAlarmRuleService;
+
+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.model.*;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 集团报警规则控制层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Api(tags = "集团报警规则")
+@Validated
+@RestController
+@RequestMapping("groupAlarmRules")
+public class GroupAlarmRuleController {
+    @Autowired
+    private IGroupAlarmRuleService groupAlarmRuleService;
+
+    @ApiOperation(value = "创建集团报警规则")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createGroupAlarmRule(
+            @Valid @RequestBody AddGroupAlarmRuleDTO addGroupAlarmRuleDTO) {
+        String id = groupAlarmRuleService.createGroupAlarmRule(addGroupAlarmRuleDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+    }
+
+    @ApiOperation(value = "集团报警规则详情")
+    @PostMapping("/get")
+    public CommonResult<GroupAlarmRuleItemVO> queryGroupAlarmRuleDetail(
+            @Valid @RequestBody QueryGroupAlarmRuleDetailDTO queryGroupAlarmRuleDetailDTO) {
+        GroupAlarmRule groupAlarmRule = groupAlarmRuleService.queryGroupAlarmRuleDetail(queryGroupAlarmRuleDetailDTO.getId());
+        GroupAlarmRuleItemVO groupAlarmRuleItemVO = ConvertGroupAlarmRuleTool.INSTANCE.convert2ResponseItemDTO(groupAlarmRule);
+        return ResultHelper.single(groupAlarmRuleItemVO);
+    }
+
+
+    @ApiOperation(value = "更新集团报警规则")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateGroupAlarmRule(
+            @Valid @RequestBody UpdateGroupAlarmRuleDTO updateGroupAlarmRuleDTO) {
+        groupAlarmRuleService.updateGroupAlarmRule(updateGroupAlarmRuleDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateGroupAlarmRuleDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除集团报警规则")
+    @PostMapping("/delete")
+    public CommonResult deleteGroupAlarmRule(
+            @RequestBody @Valid DeleteGroupAlarmRuleDTO deleteGroupAlarmRuleDTO) {
+        groupAlarmRuleService.deleteGroupAlarmRule(deleteGroupAlarmRuleDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "集团报警规则列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<GroupAlarmRuleListItemVO>> queryGroupAlarmRule(
+            @Valid @RequestBody QueryGroupAlarmRuleDTO queryGroupAlarmRuleDTO) {
+        List<GroupAlarmRule> groupAlarmRuleList = groupAlarmRuleService.queryGroupAlarmRuleList(queryGroupAlarmRuleDTO);
+        List<GroupAlarmRuleListItemVO> resultList = ConvertGroupAlarmRuleTool.INSTANCE.convert2List(groupAlarmRuleList);
+        return ResultHelper.multi(resultList);
+    }
+
+    //@ApiOperation(value = "集团报警规则列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<GroupAlarmRuleListItemVO>> queryGroupAlarmRule(
+    //        @Valid @RequestBody PageQueryGroupAlarmRuleDTO pageQueryGroupAlarmRuleDTO) {
+    //    IPage<GroupAlarmRule> pagedList = groupAlarmRuleService.pageQueryGroupAlarmRule(pageQueryGroupAlarmRuleDTO);
+    //    IPage<GroupAlarmRuleListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertGroupAlarmRuleTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,GroupAlarmRule实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 94 - 0
src/main/java/com/persagy/apm/controller/MonitorIndicatorController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.persagy.apm.service.IMonitorIndicatorService;
+
+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.model.*;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 监测指标控制层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Api(tags = "监测指标")
+@Validated
+@RestController
+@RequestMapping("monitorIndicators")
+public class MonitorIndicatorController {
+    @Autowired
+    private IMonitorIndicatorService monitorIndicatorService;
+
+    @ApiOperation(value = "创建监测指标")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createMonitorIndicator(
+            @Valid @RequestBody AddMonitorIndicatorDTO addMonitorIndicatorDTO) {
+        String id = monitorIndicatorService.createMonitorIndicator(addMonitorIndicatorDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+    }
+
+    @ApiOperation(value = "监测指标详情")
+    @PostMapping("/get")
+    public CommonResult<MonitorIndicatorItemVO> queryMonitorIndicatorDetail(
+            @Valid @RequestBody QueryMonitorIndicatorDetailDTO queryMonitorIndicatorDetailDTO) {
+        MonitorIndicator monitorIndicator = monitorIndicatorService.queryMonitorIndicatorDetail(queryMonitorIndicatorDetailDTO.getId());
+        MonitorIndicatorItemVO monitorIndicatorItemVO = ConvertMonitorIndicatorTool.INSTANCE.convert2ResponseItemDTO(monitorIndicator);
+        return ResultHelper.single(monitorIndicatorItemVO);
+    }
+
+
+    @ApiOperation(value = "更新监测指标")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateMonitorIndicator(
+            @Valid @RequestBody UpdateMonitorIndicatorDTO updateMonitorIndicatorDTO) {
+        monitorIndicatorService.updateMonitorIndicator(updateMonitorIndicatorDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateMonitorIndicatorDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除监测指标")
+    @PostMapping("/delete")
+    public CommonResult deleteMonitorIndicator(
+            @RequestBody @Valid DeleteMonitorIndicatorDTO deleteMonitorIndicatorDTO) {
+        monitorIndicatorService.deleteMonitorIndicator(deleteMonitorIndicatorDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "监测指标列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<MonitorIndicatorListItemVO>> queryMonitorIndicator(
+            @Valid @RequestBody QueryMonitorIndicatorDTO queryMonitorIndicatorDTO) {
+        List<MonitorIndicator> monitorIndicatorList = monitorIndicatorService.queryMonitorIndicatorList(queryMonitorIndicatorDTO);
+        List<MonitorIndicatorListItemVO> resultList = ConvertMonitorIndicatorTool.INSTANCE.convert2List(monitorIndicatorList);
+        return ResultHelper.multi(resultList);
+    }
+
+    //@ApiOperation(value = "监测指标列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<MonitorIndicatorListItemVO>> queryMonitorIndicator(
+    //        @Valid @RequestBody PageQueryMonitorIndicatorDTO pageQueryMonitorIndicatorDTO) {
+    //    IPage<MonitorIndicator> pagedList = monitorIndicatorService.pageQueryMonitorIndicator(pageQueryMonitorIndicatorDTO);
+    //    IPage<MonitorIndicatorListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertMonitorIndicatorTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,MonitorIndicator实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 94 - 0
src/main/java/com/persagy/apm/controller/ProjectAlarmRuleController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.persagy.apm.service.IProjectAlarmRuleService;
+
+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.model.*;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 项目报警规则控制层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Api(tags = "项目报警规则")
+@Validated
+@RestController
+@RequestMapping("projectAlarmRules")
+public class ProjectAlarmRuleController {
+    @Autowired
+    private IProjectAlarmRuleService projectAlarmRuleService;
+
+    @ApiOperation(value = "创建项目报警规则")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createProjectAlarmRule(
+            @Valid @RequestBody AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) {
+        String id = projectAlarmRuleService.createProjectAlarmRule(addProjectAlarmRuleDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+    }
+
+    @ApiOperation(value = "项目报警规则详情")
+    @PostMapping("/get")
+    public CommonResult<ProjectAlarmRuleItemVO> queryProjectAlarmRuleDetail(
+            @Valid @RequestBody QueryProjectAlarmRuleDetailDTO queryProjectAlarmRuleDetailDTO) {
+        ProjectAlarmRule projectAlarmRule = projectAlarmRuleService.queryProjectAlarmRuleDetail(queryProjectAlarmRuleDetailDTO.getId());
+        ProjectAlarmRuleItemVO projectAlarmRuleItemVO = ConvertProjectAlarmRuleTool.INSTANCE.convert2ResponseItemDTO(projectAlarmRule);
+        return ResultHelper.single(projectAlarmRuleItemVO);
+    }
+
+
+    @ApiOperation(value = "更新项目报警规则")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateProjectAlarmRule(
+            @Valid @RequestBody UpdateProjectAlarmRuleDTO updateProjectAlarmRuleDTO) {
+        projectAlarmRuleService.updateProjectAlarmRule(updateProjectAlarmRuleDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateProjectAlarmRuleDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除项目报警规则")
+    @PostMapping("/delete")
+    public CommonResult deleteProjectAlarmRule(
+            @RequestBody @Valid DeleteProjectAlarmRuleDTO deleteProjectAlarmRuleDTO) {
+        projectAlarmRuleService.deleteProjectAlarmRule(deleteProjectAlarmRuleDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "项目报警规则列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<ProjectAlarmRuleListItemVO>> queryProjectAlarmRule(
+            @Valid @RequestBody QueryProjectAlarmRuleDTO queryProjectAlarmRuleDTO) {
+        List<ProjectAlarmRule> projectAlarmRuleList = projectAlarmRuleService.queryProjectAlarmRuleList(queryProjectAlarmRuleDTO);
+        List<ProjectAlarmRuleListItemVO> resultList = ConvertProjectAlarmRuleTool.INSTANCE.convert2List(projectAlarmRuleList);
+        return ResultHelper.multi(resultList);
+    }
+
+    //@ApiOperation(value = "项目报警规则列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<ProjectAlarmRuleListItemVO>> queryProjectAlarmRule(
+    //        @Valid @RequestBody PageQueryProjectAlarmRuleDTO pageQueryProjectAlarmRuleDTO) {
+    //    IPage<ProjectAlarmRule> pagedList = projectAlarmRuleService.pageQueryProjectAlarmRule(pageQueryProjectAlarmRuleDTO);
+    //    IPage<ProjectAlarmRuleListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertProjectAlarmRuleTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,ProjectAlarmRule实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 94 - 0
src/main/java/com/persagy/apm/controller/ProjectAlarmRuleObjRelController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.persagy.apm.service.IProjectAlarmRuleObjRelService;
+
+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.model.*;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 项目报警规则与监测对象的关联控制层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Api(tags = "项目报警规则与监测对象的关联")
+@Validated
+@RestController
+@RequestMapping("projectAlarmRuleObjRels")
+public class ProjectAlarmRuleObjRelController {
+    @Autowired
+    private IProjectAlarmRuleObjRelService projectAlarmRuleObjRelService;
+
+    @ApiOperation(value = "创建项目报警规则与监测对象的关联")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createProjectAlarmRuleObjRel(
+            @Valid @RequestBody AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO) {
+        String id = projectAlarmRuleObjRelService.createProjectAlarmRuleObjRel(addProjectAlarmRuleObjRelDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+    }
+
+    @ApiOperation(value = "项目报警规则与监测对象的关联详情")
+    @PostMapping("/get")
+    public CommonResult<ProjectAlarmRuleObjRelItemVO> queryProjectAlarmRuleObjRelDetail(
+            @Valid @RequestBody QueryProjectAlarmRuleObjRelDetailDTO queryProjectAlarmRuleObjRelDetailDTO) {
+        ProjectAlarmRuleObjRel projectAlarmRuleObjRel = projectAlarmRuleObjRelService.queryProjectAlarmRuleObjRelDetail(queryProjectAlarmRuleObjRelDetailDTO.getId());
+        ProjectAlarmRuleObjRelItemVO projectAlarmRuleObjRelItemVO = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2ResponseItemDTO(projectAlarmRuleObjRel);
+        return ResultHelper.single(projectAlarmRuleObjRelItemVO);
+    }
+
+
+    @ApiOperation(value = "更新项目报警规则与监测对象的关联")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateProjectAlarmRuleObjRel(
+            @Valid @RequestBody UpdateProjectAlarmRuleObjRelDTO updateProjectAlarmRuleObjRelDTO) {
+        projectAlarmRuleObjRelService.updateProjectAlarmRuleObjRel(updateProjectAlarmRuleObjRelDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateProjectAlarmRuleObjRelDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除项目报警规则与监测对象的关联")
+    @PostMapping("/delete")
+    public CommonResult deleteProjectAlarmRuleObjRel(
+            @RequestBody @Valid DeleteProjectAlarmRuleObjRelDTO deleteProjectAlarmRuleObjRelDTO) {
+        projectAlarmRuleObjRelService.deleteProjectAlarmRuleObjRel(deleteProjectAlarmRuleObjRelDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "项目报警规则与监测对象的关联列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<ProjectAlarmRuleObjRelListItemVO>> queryProjectAlarmRuleObjRel(
+            @Valid @RequestBody QueryProjectAlarmRuleObjRelDTO queryProjectAlarmRuleObjRelDTO) {
+        List<ProjectAlarmRuleObjRel> projectAlarmRuleObjRelList = projectAlarmRuleObjRelService.queryProjectAlarmRuleObjRelList(queryProjectAlarmRuleObjRelDTO);
+        List<ProjectAlarmRuleObjRelListItemVO> resultList = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2List(projectAlarmRuleObjRelList);
+        return ResultHelper.multi(resultList);
+    }
+
+    //@ApiOperation(value = "项目报警规则与监测对象的关联列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<ProjectAlarmRuleObjRelListItemVO>> queryProjectAlarmRuleObjRel(
+    //        @Valid @RequestBody PageQueryProjectAlarmRuleObjRelDTO pageQueryProjectAlarmRuleObjRelDTO) {
+    //    IPage<ProjectAlarmRuleObjRel> pagedList = projectAlarmRuleObjRelService.pageQueryProjectAlarmRuleObjRel(pageQueryProjectAlarmRuleObjRelDTO);
+    //    IPage<ProjectAlarmRuleObjRelListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertProjectAlarmRuleObjRelTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,ProjectAlarmRuleObjRel实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 94 - 0
src/main/java/com/persagy/apm/controller/ProjectMonitorIndicatorConfigController.java

@@ -0,0 +1,94 @@
+package com.persagy.apm.controller;
+
+import com.persagy.apm.service.IProjectMonitorIndicatorConfigService;
+
+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.model.*;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+import com.persagy.apm.common.response.*;
+import com.persagy.apm.common.utils.ResultHelper;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 项目监测指标配置控制层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@Api(tags = "项目监测指标配置")
+@Validated
+@RestController
+@RequestMapping("projectMonitorIndicatorConfigs")
+public class ProjectMonitorIndicatorConfigController {
+    @Autowired
+    private IProjectMonitorIndicatorConfigService projectMonitorIndicatorConfigService;
+
+    @ApiOperation(value = "创建项目监测指标配置")
+    @PostMapping("/create")
+    public CommonResult<ApmResponseUpsertVO> createProjectMonitorIndicatorConfig(
+            @Valid @RequestBody AddProjectMonitorIndicatorConfigDTO addProjectMonitorIndicatorConfigDTO) {
+        String id = projectMonitorIndicatorConfigService.createProjectMonitorIndicatorConfig(addProjectMonitorIndicatorConfigDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+    }
+
+    @ApiOperation(value = "项目监测指标配置详情")
+    @PostMapping("/get")
+    public CommonResult<ProjectMonitorIndicatorConfigItemVO> queryProjectMonitorIndicatorConfigDetail(
+            @Valid @RequestBody QueryProjectMonitorIndicatorConfigDetailDTO queryProjectMonitorIndicatorConfigDetailDTO) {
+        ProjectMonitorIndicatorConfig projectMonitorIndicatorConfig = projectMonitorIndicatorConfigService.queryProjectMonitorIndicatorConfigDetail(queryProjectMonitorIndicatorConfigDetailDTO.getId());
+        ProjectMonitorIndicatorConfigItemVO projectMonitorIndicatorConfigItemVO = ConvertProjectMonitorIndicatorConfigTool.INSTANCE.convert2ResponseItemDTO(projectMonitorIndicatorConfig);
+        return ResultHelper.single(projectMonitorIndicatorConfigItemVO);
+    }
+
+
+    @ApiOperation(value = "更新项目监测指标配置")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateProjectMonitorIndicatorConfig(
+            @Valid @RequestBody UpdateProjectMonitorIndicatorConfigDTO updateProjectMonitorIndicatorConfigDTO) {
+        projectMonitorIndicatorConfigService.updateProjectMonitorIndicatorConfig(updateProjectMonitorIndicatorConfigDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateProjectMonitorIndicatorConfigDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除项目监测指标配置")
+    @PostMapping("/delete")
+    public CommonResult deleteProjectMonitorIndicatorConfig(
+            @RequestBody @Valid DeleteProjectMonitorIndicatorConfigDTO deleteProjectMonitorIndicatorConfigDTO) {
+        projectMonitorIndicatorConfigService.deleteProjectMonitorIndicatorConfig(deleteProjectMonitorIndicatorConfigDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "项目监测指标配置列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<ProjectMonitorIndicatorConfigListItemVO>> queryProjectMonitorIndicatorConfig(
+            @Valid @RequestBody QueryProjectMonitorIndicatorConfigDTO queryProjectMonitorIndicatorConfigDTO) {
+        List<ProjectMonitorIndicatorConfig> projectMonitorIndicatorConfigList = projectMonitorIndicatorConfigService.queryProjectMonitorIndicatorConfigList(queryProjectMonitorIndicatorConfigDTO);
+        List<ProjectMonitorIndicatorConfigListItemVO> resultList = ConvertProjectMonitorIndicatorConfigTool.INSTANCE.convert2List(projectMonitorIndicatorConfigList);
+        return ResultHelper.multi(resultList);
+    }
+
+    //@ApiOperation(value = "项目监测指标配置列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<ProjectMonitorIndicatorConfigListItemVO>> queryProjectMonitorIndicatorConfig(
+    //        @Valid @RequestBody PageQueryProjectMonitorIndicatorConfigDTO pageQueryProjectMonitorIndicatorConfigDTO) {
+    //    IPage<ProjectMonitorIndicatorConfig> pagedList = projectMonitorIndicatorConfigService.pageQueryProjectMonitorIndicatorConfig(pageQueryProjectMonitorIndicatorConfigDTO);
+    //    IPage<ProjectMonitorIndicatorConfigListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertProjectMonitorIndicatorConfigTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,ProjectMonitorIndicatorConfig实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 16 - 0
src/main/java/com/persagy/apm/dao/AlarmConditionMapper.java

@@ -0,0 +1,16 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.AlarmCondition;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 报警条件(AlarmCondition)dao层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:03
+ */
+@Mapper
+public interface AlarmConditionMapper extends BaseMapper<AlarmCondition> {
+
+}

+ 16 - 0
src/main/java/com/persagy/apm/dao/CalculateMethodMapper.java

@@ -0,0 +1,16 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.CalculateMethod;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 计算方式(CalculateMethod)dao层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Mapper
+public interface CalculateMethodMapper extends BaseMapper<CalculateMethod> {
+
+}

+ 16 - 0
src/main/java/com/persagy/apm/dao/GroupAlarmRuleMapper.java

@@ -0,0 +1,16 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.GroupAlarmRule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 集团报警规则(GroupAlarmRule)dao层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Mapper
+public interface GroupAlarmRuleMapper extends BaseMapper<GroupAlarmRule> {
+
+}

+ 16 - 0
src/main/java/com/persagy/apm/dao/MonitorIndicatorMapper.java

@@ -0,0 +1,16 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.MonitorIndicator;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 监测指标(MonitorIndicator)dao层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Mapper
+public interface MonitorIndicatorMapper extends BaseMapper<MonitorIndicator> {
+
+}

+ 16 - 0
src/main/java/com/persagy/apm/dao/ProjectAlarmRuleMapper.java

@@ -0,0 +1,16 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.ProjectAlarmRule;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目报警规则(ProjectAlarmRule)dao层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Mapper
+public interface ProjectAlarmRuleMapper extends BaseMapper<ProjectAlarmRule> {
+
+}

+ 16 - 0
src/main/java/com/persagy/apm/dao/ProjectAlarmRuleObjRelMapper.java

@@ -0,0 +1,16 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.ProjectAlarmRuleObjRel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel)dao层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Mapper
+public interface ProjectAlarmRuleObjRelMapper extends BaseMapper<ProjectAlarmRuleObjRel> {
+
+}

+ 16 - 0
src/main/java/com/persagy/apm/dao/ProjectMonitorIndicatorConfigMapper.java

@@ -0,0 +1,16 @@
+package com.persagy.apm.dao;
+
+import com.persagy.apm.model.ProjectMonitorIndicatorConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 项目监测指标配置(ProjectMonitorIndicatorConfig)dao层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@Mapper
+public interface ProjectMonitorIndicatorConfigMapper extends BaseMapper<ProjectMonitorIndicatorConfig> {
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/AlarmCondition.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 报警条件(AlarmCondition)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:03
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "报警条件")
+public class AlarmCondition extends AuditableEntity<AlarmCondition> implements Serializable {
+    private static final long serialVersionUID = 150107139430575398L;
+
+    @ApiModelProperty("包含的参数")
+    private Object infoCodes;
+
+    @ApiModelProperty("前端展示")
+    private Object frontend;
+
+    @ApiModelProperty("后端使用")
+    private Object backend;
+
+    @ApiModelProperty("触发时长")
+    private Integer triggerUphold;
+
+    @ApiModelProperty("报警等级")
+    private String alarmLevel;
+
+
+    public static String PROP_INFO_CODES = "info_codes";
+    public static String PROP_FRONTEND = "frontend";
+    public static String PROP_BACKEND = "backend";
+    public static String PROP_TRIGGER_UPHOLD = "trigger_uphold";
+    public static String PROP_ALARM_LEVEL = "alarm_level";
+
+}

+ 42 - 0
src/main/java/com/persagy/apm/model/CalculateMethod.java

@@ -0,0 +1,42 @@
+package com.persagy.apm.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 计算方式(CalculateMethod)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "计算方式")
+public class CalculateMethod extends AuditableEntity<CalculateMethod> implements Serializable {
+    private static final long serialVersionUID = 310236372518130974L;
+
+    @ApiModelProperty("计算方式名称")
+    private String name;
+
+    @ApiModelProperty("公式")
+    private String formula;
+
+    @ApiModelProperty("监测指标id")
+    private String monitorIndicatorId;
+
+    @ApiModelProperty("是否是指标默认计算方式")
+    private Integer isDefault;
+
+
+    public static String PROP_NAME = "name";
+    public static String PROP_FORMULA = "formula";
+    public static String PROP_MONITOR_INDICATOR_ID = "monitor_indicator_id";
+    public static String PROP_IS_DEFAULT = "is_default";
+
+}

+ 74 - 0
src/main/java/com/persagy/apm/model/ConvertAlarmConditionTool.java

@@ -0,0 +1,74 @@
+package com.persagy.apm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 报警条件(AlarmCondition) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertAlarmConditionTool {
+
+    ConvertAlarmConditionTool INSTANCE = Mappers.getMapper(ConvertAlarmConditionTool.class);
+
+    /**
+     * do转换为ResponseItemVO
+     *
+     * @param alarmCondition do对象
+     * @return ResponseItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    AlarmConditionItemVO convert2ResponseItemDTO(AlarmCondition alarmCondition);
+
+    /**
+     * do转换为ResponseListItemVO
+     *
+     * @param alarmCondition do对象
+     * @return ResponseListItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    AlarmConditionListItemVO convert2ResponseListItemDTO(AlarmCondition alarmCondition);
+
+    /**
+     * do列表转换为ResponseListItemVO列表
+     *
+     * @param alarmConditionList do列表
+     * @return ResponseListItemVO列表
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    List<AlarmConditionListItemVO> convert2List(List<AlarmCondition> alarmConditionList);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addAlarmConditionDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    AlarmCondition convertAddDto2Entity(AddAlarmConditionDTO addAlarmConditionDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param alarmCondition          更新前的do对象
+     * @param updateAlarmConditionDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    AlarmCondition convertUpdateDto2Entity(@MappingTarget AlarmCondition alarmCondition, UpdateAlarmConditionDTO updateAlarmConditionDTO);
+}
+

+ 74 - 0
src/main/java/com/persagy/apm/model/ConvertCalculateMethodTool.java

@@ -0,0 +1,74 @@
+package com.persagy.apm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 计算方式(CalculateMethod) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertCalculateMethodTool {
+
+    ConvertCalculateMethodTool INSTANCE = Mappers.getMapper(ConvertCalculateMethodTool.class);
+
+    /**
+     * do转换为ResponseItemVO
+     *
+     * @param calculateMethod do对象
+     * @return ResponseItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    CalculateMethodItemVO convert2ResponseItemDTO(CalculateMethod calculateMethod);
+
+    /**
+     * do转换为ResponseListItemVO
+     *
+     * @param calculateMethod do对象
+     * @return ResponseListItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    CalculateMethodListItemVO convert2ResponseListItemDTO(CalculateMethod calculateMethod);
+
+    /**
+     * do列表转换为ResponseListItemVO列表
+     *
+     * @param calculateMethodList do列表
+     * @return ResponseListItemVO列表
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    List<CalculateMethodListItemVO> convert2List(List<CalculateMethod> calculateMethodList);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addCalculateMethodDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    CalculateMethod convertAddDto2Entity(AddCalculateMethodDTO addCalculateMethodDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param calculateMethod          更新前的do对象
+     * @param updateCalculateMethodDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    CalculateMethod convertUpdateDto2Entity(@MappingTarget CalculateMethod calculateMethod, UpdateCalculateMethodDTO updateCalculateMethodDTO);
+}
+

+ 74 - 0
src/main/java/com/persagy/apm/model/ConvertGroupAlarmRuleTool.java

@@ -0,0 +1,74 @@
+package com.persagy.apm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 集团报警规则(GroupAlarmRule) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertGroupAlarmRuleTool {
+
+    ConvertGroupAlarmRuleTool INSTANCE = Mappers.getMapper(ConvertGroupAlarmRuleTool.class);
+
+    /**
+     * do转换为ResponseItemVO
+     *
+     * @param groupAlarmRule do对象
+     * @return ResponseItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    GroupAlarmRuleItemVO convert2ResponseItemDTO(GroupAlarmRule groupAlarmRule);
+
+    /**
+     * do转换为ResponseListItemVO
+     *
+     * @param groupAlarmRule do对象
+     * @return ResponseListItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    GroupAlarmRuleListItemVO convert2ResponseListItemDTO(GroupAlarmRule groupAlarmRule);
+
+    /**
+     * do列表转换为ResponseListItemVO列表
+     *
+     * @param groupAlarmRuleList do列表
+     * @return ResponseListItemVO列表
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    List<GroupAlarmRuleListItemVO> convert2List(List<GroupAlarmRule> groupAlarmRuleList);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addGroupAlarmRuleDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    GroupAlarmRule convertAddDto2Entity(AddGroupAlarmRuleDTO addGroupAlarmRuleDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param groupAlarmRule          更新前的do对象
+     * @param updateGroupAlarmRuleDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    GroupAlarmRule convertUpdateDto2Entity(@MappingTarget GroupAlarmRule groupAlarmRule, UpdateGroupAlarmRuleDTO updateGroupAlarmRuleDTO);
+}
+

+ 74 - 0
src/main/java/com/persagy/apm/model/ConvertMonitorIndicatorTool.java

@@ -0,0 +1,74 @@
+package com.persagy.apm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 监测指标(MonitorIndicator) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertMonitorIndicatorTool {
+
+    ConvertMonitorIndicatorTool INSTANCE = Mappers.getMapper(ConvertMonitorIndicatorTool.class);
+
+    /**
+     * do转换为ResponseItemVO
+     *
+     * @param monitorIndicator do对象
+     * @return ResponseItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    MonitorIndicatorItemVO convert2ResponseItemDTO(MonitorIndicator monitorIndicator);
+
+    /**
+     * do转换为ResponseListItemVO
+     *
+     * @param monitorIndicator do对象
+     * @return ResponseListItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    MonitorIndicatorListItemVO convert2ResponseListItemDTO(MonitorIndicator monitorIndicator);
+
+    /**
+     * do列表转换为ResponseListItemVO列表
+     *
+     * @param monitorIndicatorList do列表
+     * @return ResponseListItemVO列表
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    List<MonitorIndicatorListItemVO> convert2List(List<MonitorIndicator> monitorIndicatorList);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addMonitorIndicatorDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    MonitorIndicator convertAddDto2Entity(AddMonitorIndicatorDTO addMonitorIndicatorDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param monitorIndicator          更新前的do对象
+     * @param updateMonitorIndicatorDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    MonitorIndicator convertUpdateDto2Entity(@MappingTarget MonitorIndicator monitorIndicator, UpdateMonitorIndicatorDTO updateMonitorIndicatorDTO);
+}
+

+ 74 - 0
src/main/java/com/persagy/apm/model/ConvertProjectAlarmRuleObjRelTool.java

@@ -0,0 +1,74 @@
+package com.persagy.apm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertProjectAlarmRuleObjRelTool {
+
+    ConvertProjectAlarmRuleObjRelTool INSTANCE = Mappers.getMapper(ConvertProjectAlarmRuleObjRelTool.class);
+
+    /**
+     * do转换为ResponseItemVO
+     *
+     * @param projectAlarmRuleObjRel do对象
+     * @return ResponseItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    ProjectAlarmRuleObjRelItemVO convert2ResponseItemDTO(ProjectAlarmRuleObjRel projectAlarmRuleObjRel);
+
+    /**
+     * do转换为ResponseListItemVO
+     *
+     * @param projectAlarmRuleObjRel do对象
+     * @return ResponseListItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    ProjectAlarmRuleObjRelListItemVO convert2ResponseListItemDTO(ProjectAlarmRuleObjRel projectAlarmRuleObjRel);
+
+    /**
+     * do列表转换为ResponseListItemVO列表
+     *
+     * @param projectAlarmRuleObjRelList do列表
+     * @return ResponseListItemVO列表
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    List<ProjectAlarmRuleObjRelListItemVO> convert2List(List<ProjectAlarmRuleObjRel> projectAlarmRuleObjRelList);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addProjectAlarmRuleObjRelDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    ProjectAlarmRuleObjRel convertAddDto2Entity(AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param projectAlarmRuleObjRel          更新前的do对象
+     * @param updateProjectAlarmRuleObjRelDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    ProjectAlarmRuleObjRel convertUpdateDto2Entity(@MappingTarget ProjectAlarmRuleObjRel projectAlarmRuleObjRel, UpdateProjectAlarmRuleObjRelDTO updateProjectAlarmRuleObjRelDTO);
+}
+

+ 74 - 0
src/main/java/com/persagy/apm/model/ConvertProjectAlarmRuleTool.java

@@ -0,0 +1,74 @@
+package com.persagy.apm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 项目报警规则(ProjectAlarmRule) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertProjectAlarmRuleTool {
+
+    ConvertProjectAlarmRuleTool INSTANCE = Mappers.getMapper(ConvertProjectAlarmRuleTool.class);
+
+    /**
+     * do转换为ResponseItemVO
+     *
+     * @param projectAlarmRule do对象
+     * @return ResponseItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    ProjectAlarmRuleItemVO convert2ResponseItemDTO(ProjectAlarmRule projectAlarmRule);
+
+    /**
+     * do转换为ResponseListItemVO
+     *
+     * @param projectAlarmRule do对象
+     * @return ResponseListItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    ProjectAlarmRuleListItemVO convert2ResponseListItemDTO(ProjectAlarmRule projectAlarmRule);
+
+    /**
+     * do列表转换为ResponseListItemVO列表
+     *
+     * @param projectAlarmRuleList do列表
+     * @return ResponseListItemVO列表
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    List<ProjectAlarmRuleListItemVO> convert2List(List<ProjectAlarmRule> projectAlarmRuleList);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addProjectAlarmRuleDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    ProjectAlarmRule convertAddDto2Entity(AddProjectAlarmRuleDTO addProjectAlarmRuleDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param projectAlarmRule          更新前的do对象
+     * @param updateProjectAlarmRuleDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    ProjectAlarmRule convertUpdateDto2Entity(@MappingTarget ProjectAlarmRule projectAlarmRule, UpdateProjectAlarmRuleDTO updateProjectAlarmRuleDTO);
+}
+

+ 74 - 0
src/main/java/com/persagy/apm/model/ConvertProjectMonitorIndicatorConfigTool.java

@@ -0,0 +1,74 @@
+package com.persagy.apm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.model.vo.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 项目监测指标配置(ProjectMonitorIndicatorConfig) dto、vo、do转换工具类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:10
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertProjectMonitorIndicatorConfigTool {
+
+    ConvertProjectMonitorIndicatorConfigTool INSTANCE = Mappers.getMapper(ConvertProjectMonitorIndicatorConfigTool.class);
+
+    /**
+     * do转换为ResponseItemVO
+     *
+     * @param projectMonitorIndicatorConfig do对象
+     * @return ResponseItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:10
+     */
+    ProjectMonitorIndicatorConfigItemVO convert2ResponseItemDTO(ProjectMonitorIndicatorConfig projectMonitorIndicatorConfig);
+
+    /**
+     * do转换为ResponseListItemVO
+     *
+     * @param projectMonitorIndicatorConfig do对象
+     * @return ResponseListItemVO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:10
+     */
+    ProjectMonitorIndicatorConfigListItemVO convert2ResponseListItemDTO(ProjectMonitorIndicatorConfig projectMonitorIndicatorConfig);
+
+    /**
+     * do列表转换为ResponseListItemVO列表
+     *
+     * @param projectMonitorIndicatorConfigList do列表
+     * @return ResponseListItemVO列表
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:10
+     */
+    List<ProjectMonitorIndicatorConfigListItemVO> convert2List(List<ProjectMonitorIndicatorConfig> projectMonitorIndicatorConfigList);
+
+    /**
+     * addDTO转换为do
+     *
+     * @param addProjectMonitorIndicatorConfigDTO addDTO
+     * @return 要创建的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:10
+     */
+    ProjectMonitorIndicatorConfig convertAddDto2Entity(AddProjectMonitorIndicatorConfigDTO addProjectMonitorIndicatorConfigDTO);
+
+    /**
+     * updateDTO转换为实体
+     *
+     * @param projectMonitorIndicatorConfig          更新前的do对象
+     * @param updateProjectMonitorIndicatorConfigDTO updateDTO
+     * @return 更新后的do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:10
+     */
+    ProjectMonitorIndicatorConfig convertUpdateDto2Entity(@MappingTarget ProjectMonitorIndicatorConfig projectMonitorIndicatorConfig, UpdateProjectMonitorIndicatorConfigDTO updateProjectMonitorIndicatorConfigDTO);
+}
+

+ 38 - 0
src/main/java/com/persagy/apm/model/GroupAlarmRule.java

@@ -0,0 +1,38 @@
+package com.persagy.apm.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 集团报警规则(GroupAlarmRule)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "集团报警规则")
+public class GroupAlarmRule extends AuditableEntity<GroupAlarmRule> implements Serializable {
+    private static final long serialVersionUID = -13043955378011937L;
+
+    @ApiModelProperty("分组id")
+    private String groupId;
+
+    @ApiModelProperty("报警条目编码")
+    private String alarmItemCode;
+
+    @ApiModelProperty("报警条件id")
+    private String alarmConditionId;
+
+
+    public static String PROP_GROUP_ID = "group_id";
+    public static String PROP_ALARM_ITEM_CODE = "alarm_item_code";
+    public static String PROP_ALARM_CONDITION_ID = "alarm_condition_id";
+
+}

+ 34 - 0
src/main/java/com/persagy/apm/model/MonitorIndicator.java

@@ -0,0 +1,34 @@
+package com.persagy.apm.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 监测指标(MonitorIndicator)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "监测指标")
+public class MonitorIndicator extends AuditableEntity<MonitorIndicator> implements Serializable {
+    private static final long serialVersionUID = -58697502928373181L;
+
+    @ApiModelProperty("指标名称")
+    private String name;
+
+    @ApiModelProperty("设备类")
+    private String classCode;
+
+
+    public static String PROP_NAME = "name";
+    public static String PROP_CLASS_CODE = "class_code";
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/ProjectAlarmRule.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 项目报警规则(ProjectAlarmRule)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "项目报警规则")
+public class ProjectAlarmRule extends AuditableEntity<ProjectAlarmRule> implements Serializable {
+    private static final long serialVersionUID = 308173810358543687L;
+
+    @ApiModelProperty("分组id")
+    private String groupId;
+
+    @ApiModelProperty("报警条目编码")
+    private String alarmItemCode;
+
+    @ApiModelProperty("报警条件id")
+    private String alarmConditionId;
+
+    @ApiModelProperty("所属类型(0项目自定义、1集团标准)")
+    private Integer belong;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+
+    public static String PROP_GROUP_ID = "group_id";
+    public static String PROP_ALARM_ITEM_CODE = "alarm_item_code";
+    public static String PROP_ALARM_CONDITION_ID = "alarm_condition_id";
+    public static String PROP_BELONG = "belong";
+    public static String PROP_PROJECT_ID = "project_id";
+
+}

+ 42 - 0
src/main/java/com/persagy/apm/model/ProjectAlarmRuleObjRel.java

@@ -0,0 +1,42 @@
+package com.persagy.apm.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "项目报警规则与监测对象的关联")
+public class ProjectAlarmRuleObjRel extends AuditableEntity<ProjectAlarmRuleObjRel> implements Serializable {
+    private static final long serialVersionUID = 246932386228580969L;
+
+    @ApiModelProperty("项目报警规则id")
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty("设备ID")
+    private String equipId;
+
+    @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
+    private Integer open;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+
+    public static String PROP_PROJECT_ALARM_RULE_ID = "project_alarm_rule_id";
+    public static String PROP_EQUIP_ID = "equip_id";
+    public static String PROP_OPEN = "open";
+    public static String PROP_PROJECT_ID = "project_id";
+
+}

+ 42 - 0
src/main/java/com/persagy/apm/model/ProjectMonitorIndicatorConfig.java

@@ -0,0 +1,42 @@
+package com.persagy.apm.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import com.persagy.apm.common.model.entity.AuditableEntity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 项目监测指标配置(ProjectMonitorIndicatorConfig)实体类
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "项目监测指标配置")
+public class ProjectMonitorIndicatorConfig extends AuditableEntity<ProjectMonitorIndicatorConfig> implements Serializable {
+    private static final long serialVersionUID = -20655826712418348L;
+
+    @ApiModelProperty("监测对象id")
+    private String objId;
+
+    @ApiModelProperty("监测指标id")
+    private String monitorIndicatorId;
+
+    @ApiModelProperty("计算方式id")
+    private String caculateMethodId;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+
+    public static String PROP_OBJ_ID = "obj_id";
+    public static String PROP_MONITOR_INDICATOR_ID = "monitor_indicator_id";
+    public static String PROP_CACULATE_METHOD_ID = "caculate_method_id";
+    public static String PROP_PROJECT_ID = "project_id";
+
+}

+ 39 - 0
src/main/java/com/persagy/apm/model/dto/AddAlarmConditionDTO.java

@@ -0,0 +1,39 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "创建报警条件入参")
+public class AddAlarmConditionDTO {
+    @ApiModelProperty(value = "包含的参数", required = true)
+    @NotNull(message = "包含的参数不能为空") // todo 更新校验规则
+    private Object infoCodes;
+
+    @ApiModelProperty(value = "前端展示", required = true)
+    @NotNull(message = "前端展示不能为空") // todo 更新校验规则
+    private Object frontend;
+
+    @ApiModelProperty(value = "后端使用", required = true)
+    @NotNull(message = "后端使用不能为空") // todo 更新校验规则
+    private Object backend;
+
+    @ApiModelProperty(value = "触发时长", required = true)
+    @NotNull(message = "触发时长不能为空") // todo 更新校验规则
+    private Integer triggerUphold;
+
+    @ApiModelProperty(value = "报警等级", required = true)
+    @NotNull(message = "报警等级不能为空") // todo 更新校验规则
+    private String alarmLevel;
+
+}

+ 35 - 0
src/main/java/com/persagy/apm/model/dto/AddCalculateMethodDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "创建计算方式入参")
+public class AddCalculateMethodDTO {
+    @ApiModelProperty(value = "计算方式名称", required = true)
+    @NotNull(message = "计算方式名称不能为空") // todo 更新校验规则
+    private String name;
+
+    @ApiModelProperty(value = "公式", required = true)
+    @NotNull(message = "公式不能为空") // todo 更新校验规则
+    private String formula;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    @NotNull(message = "监测指标id不能为空") // todo 更新校验规则
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "是否是指标默认计算方式", required = true)
+    @NotNull(message = "是否是指标默认计算方式不能为空") // todo 更新校验规则
+    private Integer isDefault;
+
+}

+ 31 - 0
src/main/java/com/persagy/apm/model/dto/AddGroupAlarmRuleDTO.java

@@ -0,0 +1,31 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Data
+@ApiModel(value = "创建集团报警规则入参")
+public class AddGroupAlarmRuleDTO {
+    @ApiModelProperty(value = "分组id", required = true)
+    @NotNull(message = "分组id不能为空") // todo 更新校验规则
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    @NotNull(message = "报警条件id不能为空") // todo 更新校验规则
+    private String alarmConditionId;
+
+}

+ 27 - 0
src/main/java/com/persagy/apm/model/dto/AddMonitorIndicatorDTO.java

@@ -0,0 +1,27 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "创建监测指标入参")
+public class AddMonitorIndicatorDTO {
+    @ApiModelProperty(value = "指标名称", required = true)
+    @NotNull(message = "指标名称不能为空") // todo 更新校验规则
+    private String name;
+
+    @ApiModelProperty(value = "设备类", required = true)
+    @NotNull(message = "设备类不能为空") // todo 更新校验规则
+    private String classCode;
+
+}

+ 39 - 0
src/main/java/com/persagy/apm/model/dto/AddProjectAlarmRuleDTO.java

@@ -0,0 +1,39 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Data
+@ApiModel(value = "创建项目报警规则入参")
+public class AddProjectAlarmRuleDTO {
+    @ApiModelProperty(value = "分组id", required = true)
+    @NotNull(message = "分组id不能为空") // todo 更新校验规则
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    @NotNull(message = "报警条件id不能为空") // todo 更新校验规则
+    private String alarmConditionId;
+
+    @ApiModelProperty(value = "所属类型(0项目自定义、1集团标准)", required = true)
+    @NotNull(message = "所属类型(0项目自定义、1集团标准)不能为空") // todo 更新校验规则
+    private Integer belong;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+
+}

+ 35 - 0
src/main/java/com/persagy/apm/model/dto/AddProjectAlarmRuleObjRelDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "创建项目报警规则与监测对象的关联入参")
+public class AddProjectAlarmRuleObjRelDTO {
+    @ApiModelProperty(value = "项目报警规则id", required = true)
+    @NotNull(message = "项目报警规则id不能为空") // todo 更新校验规则
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty(value = "设备ID", required = true)
+    @NotNull(message = "设备ID不能为空") // todo 更新校验规则
+    private String equipId;
+
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    @NotNull(message = "屏蔽状态 1-open、0- 屏蔽不能为空") // todo 更新校验规则
+    private Integer open;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+
+}

+ 35 - 0
src/main/java/com/persagy/apm/model/dto/AddProjectMonitorIndicatorConfigDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@Data
+@ApiModel(value = "创建项目监测指标配置入参")
+public class AddProjectMonitorIndicatorConfigDTO {
+    @ApiModelProperty(value = "监测对象id", required = true)
+    @NotNull(message = "监测对象id不能为空") // todo 更新校验规则
+    private String objId;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    @NotNull(message = "监测指标id不能为空") // todo 更新校验规则
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "计算方式id", required = true)
+    @NotNull(message = "计算方式id不能为空") // todo 更新校验规则
+    private String caculateMethodId;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/DeleteAlarmConditionDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "删除报警条件入参")
+public class DeleteAlarmConditionDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/DeleteCalculateMethodDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Data
+@ApiModel(value = "删除计算方式入参")
+public class DeleteCalculateMethodDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/DeleteGroupAlarmRuleDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "删除集团报警规则入参")
+public class DeleteGroupAlarmRuleDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/DeleteMonitorIndicatorDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Data
+@ApiModel(value = "删除监测指标入参")
+public class DeleteMonitorIndicatorDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/DeleteProjectAlarmRuleDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "删除项目报警规则入参")
+public class DeleteProjectAlarmRuleDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/DeleteProjectAlarmRuleObjRelDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "删除项目报警规则与监测对象的关联入参")
+public class DeleteProjectAlarmRuleObjRelDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/DeleteProjectMonitorIndicatorConfigDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@Data
+@ApiModel(value = "删除项目监测指标配置入参")
+public class DeleteProjectMonitorIndicatorConfigDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 38 - 0
src/main/java/com/persagy/apm/model/dto/PageQueryAlarmConditionDTO.java

@@ -0,0 +1,38 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询报警条件入参")
+public class PageQueryAlarmConditionDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+    @ApiModelProperty(value = "包含的参数", required = true)
+    private Object infoCodes;
+
+    @ApiModelProperty(value = "前端展示", required = true)
+    private Object frontend;
+
+    @ApiModelProperty(value = "后端使用", required = true)
+    private Object backend;
+
+    @ApiModelProperty(value = "触发时长", required = true)
+    private Integer triggerUphold;
+
+    @ApiModelProperty(value = "报警等级", required = true)
+    private String alarmLevel;
+
+}

+ 35 - 0
src/main/java/com/persagy/apm/model/dto/PageQueryCalculateMethodDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询计算方式入参")
+public class PageQueryCalculateMethodDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+    @ApiModelProperty(value = "计算方式名称", required = true)
+    private String name;
+
+    @ApiModelProperty(value = "公式", required = true)
+    private String formula;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "是否是指标默认计算方式", required = true)
+    private Integer isDefault;
+
+}

+ 32 - 0
src/main/java/com/persagy/apm/model/dto/PageQueryGroupAlarmRuleDTO.java

@@ -0,0 +1,32 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询集团报警规则入参")
+public class PageQueryGroupAlarmRuleDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+    @ApiModelProperty(value = "分组id", required = true)
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    private String alarmConditionId;
+
+}

+ 29 - 0
src/main/java/com/persagy/apm/model/dto/PageQueryMonitorIndicatorDTO.java

@@ -0,0 +1,29 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询监测指标入参")
+public class PageQueryMonitorIndicatorDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+    @ApiModelProperty(value = "指标名称", required = true)
+    private String name;
+
+    @ApiModelProperty(value = "设备类", required = true)
+    private String classCode;
+
+}

+ 38 - 0
src/main/java/com/persagy/apm/model/dto/PageQueryProjectAlarmRuleDTO.java

@@ -0,0 +1,38 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询项目报警规则入参")
+public class PageQueryProjectAlarmRuleDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+    @ApiModelProperty(value = "分组id", required = true)
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    private String alarmConditionId;
+
+    @ApiModelProperty(value = "所属类型(0项目自定义、1集团标准)", required = true)
+    private Integer belong;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+
+}

+ 35 - 0
src/main/java/com/persagy/apm/model/dto/PageQueryProjectAlarmRuleObjRelDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询项目报警规则与监测对象的关联入参")
+public class PageQueryProjectAlarmRuleObjRelDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+    @ApiModelProperty(value = "项目报警规则id", required = true)
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty(value = "设备ID", required = true)
+    private String equipId;
+
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    private Integer open;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+
+}

+ 35 - 0
src/main/java/com/persagy/apm/model/dto/PageQueryProjectMonitorIndicatorConfigDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+import com.persagy.apm.common.model.dto.PageDTO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:10
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询项目监测指标配置入参")
+public class PageQueryProjectMonitorIndicatorConfigDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+    @ApiModelProperty(value = "监测对象id", required = true)
+    private String objId;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "计算方式id", required = true)
+    private String caculateMethodId;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+
+}

+ 31 - 0
src/main/java/com/persagy/apm/model/dto/QueryAlarmConditionDTO.java

@@ -0,0 +1,31 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "查询报警条件入参")
+public class QueryAlarmConditionDTO {
+    @ApiModelProperty(value = "包含的参数", required = true)
+    private Object infoCodes;
+
+    @ApiModelProperty(value = "前端展示", required = true)
+    private Object frontend;
+
+    @ApiModelProperty(value = "后端使用", required = true)
+    private Object backend;
+
+    @ApiModelProperty(value = "触发时长", required = true)
+    private Integer triggerUphold;
+
+    @ApiModelProperty(value = "报警等级", required = true)
+    private String alarmLevel;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/QueryAlarmConditionDetailDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "获取报警条件详情入参")
+public class QueryAlarmConditionDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 28 - 0
src/main/java/com/persagy/apm/model/dto/QueryCalculateMethodDTO.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Data
+@ApiModel(value = "查询计算方式入参")
+public class QueryCalculateMethodDTO {
+    @ApiModelProperty(value = "计算方式名称", required = true)
+    private String name;
+
+    @ApiModelProperty(value = "公式", required = true)
+    private String formula;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "是否是指标默认计算方式", required = true)
+    private Integer isDefault;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/QueryCalculateMethodDetailDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Data
+@ApiModel(value = "获取计算方式详情入参")
+public class QueryCalculateMethodDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 25 - 0
src/main/java/com/persagy/apm/model/dto/QueryGroupAlarmRuleDTO.java

@@ -0,0 +1,25 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "查询集团报警规则入参")
+public class QueryGroupAlarmRuleDTO {
+    @ApiModelProperty(value = "分组id", required = true)
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    private String alarmConditionId;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/QueryGroupAlarmRuleDetailDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "获取集团报警规则详情入参")
+public class QueryGroupAlarmRuleDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 22 - 0
src/main/java/com/persagy/apm/model/dto/QueryMonitorIndicatorDTO.java

@@ -0,0 +1,22 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Data
+@ApiModel(value = "查询监测指标入参")
+public class QueryMonitorIndicatorDTO {
+    @ApiModelProperty(value = "指标名称", required = true)
+    private String name;
+
+    @ApiModelProperty(value = "设备类", required = true)
+    private String classCode;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/QueryMonitorIndicatorDetailDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "获取监测指标详情入参")
+public class QueryMonitorIndicatorDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 31 - 0
src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleDTO.java

@@ -0,0 +1,31 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "查询项目报警规则入参")
+public class QueryProjectAlarmRuleDTO {
+    @ApiModelProperty(value = "分组id", required = true)
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    private String alarmConditionId;
+
+    @ApiModelProperty(value = "所属类型(0项目自定义、1集团标准)", required = true)
+    private Integer belong;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleDetailDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Data
+@ApiModel(value = "获取项目报警规则详情入参")
+public class QueryProjectAlarmRuleDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 28 - 0
src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleObjRelDTO.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "查询项目报警规则与监测对象的关联入参")
+public class QueryProjectAlarmRuleObjRelDTO {
+    @ApiModelProperty(value = "项目报警规则id", required = true)
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty(value = "设备ID", required = true)
+    private String equipId;
+
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    private Integer open;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/QueryProjectAlarmRuleObjRelDetailDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "获取项目报警规则与监测对象的关联详情入参")
+public class QueryProjectAlarmRuleObjRelDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 28 - 0
src/main/java/com/persagy/apm/model/dto/QueryProjectMonitorIndicatorConfigDTO.java

@@ -0,0 +1,28 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:10
+ */
+@Data
+@ApiModel(value = "查询项目监测指标配置入参")
+public class QueryProjectMonitorIndicatorConfigDTO {
+    @ApiModelProperty(value = "监测对象id", required = true)
+    private String objId;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "计算方式id", required = true)
+    private String caculateMethodId;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+
+}

+ 20 - 0
src/main/java/com/persagy/apm/model/dto/QueryProjectMonitorIndicatorConfigDetailDTO.java

@@ -0,0 +1,20 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@Data
+@ApiModel(value = "获取项目监测指标配置详情入参")
+public class QueryProjectMonitorIndicatorConfigDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+
+}

+ 43 - 0
src/main/java/com/persagy/apm/model/dto/UpdateAlarmConditionDTO.java

@@ -0,0 +1,43 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "更新报警条件入参")
+public class UpdateAlarmConditionDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+
+    @ApiModelProperty(value = "包含的参数", required = true)
+    @NotNull(message = "包含的参数不能为空") // todo 更新校验规则
+    private Object infoCodes;
+
+    @ApiModelProperty(value = "前端展示", required = true)
+    @NotNull(message = "前端展示不能为空") // todo 更新校验规则
+    private Object frontend;
+
+    @ApiModelProperty(value = "后端使用", required = true)
+    @NotNull(message = "后端使用不能为空") // todo 更新校验规则
+    private Object backend;
+
+    @ApiModelProperty(value = "触发时长", required = true)
+    @NotNull(message = "触发时长不能为空") // todo 更新校验规则
+    private Integer triggerUphold;
+
+    @ApiModelProperty(value = "报警等级", required = true)
+    @NotNull(message = "报警等级不能为空") // todo 更新校验规则
+    private String alarmLevel;
+
+}

+ 39 - 0
src/main/java/com/persagy/apm/model/dto/UpdateCalculateMethodDTO.java

@@ -0,0 +1,39 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Data
+@ApiModel(value = "更新计算方式入参")
+public class UpdateCalculateMethodDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+
+    @ApiModelProperty(value = "计算方式名称", required = true)
+    @NotNull(message = "计算方式名称不能为空") // todo 更新校验规则
+    private String name;
+
+    @ApiModelProperty(value = "公式", required = true)
+    @NotNull(message = "公式不能为空") // todo 更新校验规则
+    private String formula;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    @NotNull(message = "监测指标id不能为空") // todo 更新校验规则
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "是否是指标默认计算方式", required = true)
+    @NotNull(message = "是否是指标默认计算方式不能为空") // todo 更新校验规则
+    private Integer isDefault;
+
+}

+ 35 - 0
src/main/java/com/persagy/apm/model/dto/UpdateGroupAlarmRuleDTO.java

@@ -0,0 +1,35 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "更新集团报警规则入参")
+public class UpdateGroupAlarmRuleDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+
+    @ApiModelProperty(value = "分组id", required = true)
+    @NotNull(message = "分组id不能为空") // todo 更新校验规则
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    @NotNull(message = "报警条件id不能为空") // todo 更新校验规则
+    private String alarmConditionId;
+
+}

+ 31 - 0
src/main/java/com/persagy/apm/model/dto/UpdateMonitorIndicatorDTO.java

@@ -0,0 +1,31 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "更新监测指标入参")
+public class UpdateMonitorIndicatorDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+
+    @ApiModelProperty(value = "指标名称", required = true)
+    @NotNull(message = "指标名称不能为空") // todo 更新校验规则
+    private String name;
+
+    @ApiModelProperty(value = "设备类", required = true)
+    @NotNull(message = "设备类不能为空") // todo 更新校验规则
+    private String classCode;
+
+}

+ 43 - 0
src/main/java/com/persagy/apm/model/dto/UpdateProjectAlarmRuleDTO.java

@@ -0,0 +1,43 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Data
+@ApiModel(value = "更新项目报警规则入参")
+public class UpdateProjectAlarmRuleDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+
+    @ApiModelProperty(value = "分组id", required = true)
+    @NotNull(message = "分组id不能为空") // todo 更新校验规则
+    private String groupId;
+
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String alarmItemCode;
+
+    @ApiModelProperty(value = "报警条件id", required = true)
+    @NotNull(message = "报警条件id不能为空") // todo 更新校验规则
+    private String alarmConditionId;
+
+    @ApiModelProperty(value = "所属类型(0项目自定义、1集团标准)", required = true)
+    @NotNull(message = "所属类型(0项目自定义、1集团标准)不能为空") // todo 更新校验规则
+    private Integer belong;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+
+}

+ 39 - 0
src/main/java/com/persagy/apm/model/dto/UpdateProjectAlarmRuleObjRelDTO.java

@@ -0,0 +1,39 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "更新项目报警规则与监测对象的关联入参")
+public class UpdateProjectAlarmRuleObjRelDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+
+    @ApiModelProperty(value = "项目报警规则id", required = true)
+    @NotNull(message = "项目报警规则id不能为空") // todo 更新校验规则
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty(value = "设备ID", required = true)
+    @NotNull(message = "设备ID不能为空") // todo 更新校验规则
+    private String equipId;
+
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    @NotNull(message = "屏蔽状态 1-open、0- 屏蔽不能为空") // todo 更新校验规则
+    private Integer open;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+
+}

+ 39 - 0
src/main/java/com/persagy/apm/model/dto/UpdateProjectMonitorIndicatorConfigDTO.java

@@ -0,0 +1,39 @@
+package com.persagy.apm.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+@Data
+@ApiModel(value = "更新项目监测指标配置入参")
+public class UpdateProjectMonitorIndicatorConfigDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+
+    @ApiModelProperty(value = "监测对象id", required = true)
+    @NotNull(message = "监测对象id不能为空") // todo 更新校验规则
+    private String objId;
+
+    @ApiModelProperty(value = "监测指标id", required = true)
+    @NotNull(message = "监测指标id不能为空") // todo 更新校验规则
+    private String monitorIndicatorId;
+
+    @ApiModelProperty(value = "计算方式id", required = true)
+    @NotNull(message = "计算方式id不能为空") // todo 更新校验规则
+    private String caculateMethodId;
+
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+
+}

+ 49 - 0
src/main/java/com/persagy/apm/model/vo/AlarmConditionItemVO.java

@@ -0,0 +1,49 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "报警条件返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmConditionItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("包含的参数")
+    private Object infoCodes;
+
+    @ApiModelProperty("前端展示")
+    private Object frontend;
+
+    @ApiModelProperty("后端使用")
+    private Object backend;
+
+    @ApiModelProperty("触发时长")
+    private Integer triggerUphold;
+
+    @ApiModelProperty("报警等级")
+    private String alarmLevel;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 49 - 0
src/main/java/com/persagy/apm/model/vo/AlarmConditionListItemVO.java

@@ -0,0 +1,49 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Data
+@ApiModel(value = "报警条件列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmConditionListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("包含的参数")
+    private Object infoCodes;
+
+    @ApiModelProperty("前端展示")
+    private Object frontend;
+
+    @ApiModelProperty("后端使用")
+    private Object backend;
+
+    @ApiModelProperty("触发时长")
+    private Integer triggerUphold;
+
+    @ApiModelProperty("报警等级")
+    private String alarmLevel;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/vo/CalculateMethodItemVO.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Data
+@ApiModel(value = "计算方式返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CalculateMethodItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("计算方式名称")
+    private String name;
+
+    @ApiModelProperty("公式")
+    private String formula;
+
+    @ApiModelProperty("监测指标id")
+    private String monitorIndicatorId;
+
+    @ApiModelProperty("是否是指标默认计算方式")
+    private Integer isDefault;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/vo/CalculateMethodListItemVO.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Data
+@ApiModel(value = "计算方式列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CalculateMethodListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("计算方式名称")
+    private String name;
+
+    @ApiModelProperty("公式")
+    private String formula;
+
+    @ApiModelProperty("监测指标id")
+    private String monitorIndicatorId;
+
+    @ApiModelProperty("是否是指标默认计算方式")
+    private Integer isDefault;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 43 - 0
src/main/java/com/persagy/apm/model/vo/GroupAlarmRuleItemVO.java

@@ -0,0 +1,43 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "集团报警规则返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class GroupAlarmRuleItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("分组id")
+    private String groupId;
+
+    @ApiModelProperty("报警条目编码")
+    private String alarmItemCode;
+
+    @ApiModelProperty("报警条件id")
+    private String alarmConditionId;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 43 - 0
src/main/java/com/persagy/apm/model/vo/GroupAlarmRuleListItemVO.java

@@ -0,0 +1,43 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Data
+@ApiModel(value = "集团报警规则列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class GroupAlarmRuleListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("分组id")
+    private String groupId;
+
+    @ApiModelProperty("报警条目编码")
+    private String alarmItemCode;
+
+    @ApiModelProperty("报警条件id")
+    private String alarmConditionId;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 40 - 0
src/main/java/com/persagy/apm/model/vo/MonitorIndicatorItemVO.java

@@ -0,0 +1,40 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Data
+@ApiModel(value = "监测指标返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class MonitorIndicatorItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("指标名称")
+    private String name;
+
+    @ApiModelProperty("设备类")
+    private String classCode;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 40 - 0
src/main/java/com/persagy/apm/model/vo/MonitorIndicatorListItemVO.java

@@ -0,0 +1,40 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Data
+@ApiModel(value = "监测指标列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class MonitorIndicatorListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("指标名称")
+    private String name;
+
+    @ApiModelProperty("设备类")
+    private String classCode;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 49 - 0
src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleItemVO.java

@@ -0,0 +1,49 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "项目报警规则返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectAlarmRuleItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("分组id")
+    private String groupId;
+
+    @ApiModelProperty("报警条目编码")
+    private String alarmItemCode;
+
+    @ApiModelProperty("报警条件id")
+    private String alarmConditionId;
+
+    @ApiModelProperty("所属类型(0项目自定义、1集团标准)")
+    private Integer belong;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 49 - 0
src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleListItemVO.java

@@ -0,0 +1,49 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "项目报警规则列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectAlarmRuleListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("分组id")
+    private String groupId;
+
+    @ApiModelProperty("报警条目编码")
+    private String alarmItemCode;
+
+    @ApiModelProperty("报警条件id")
+    private String alarmConditionId;
+
+    @ApiModelProperty("所属类型(0项目自定义、1集团标准)")
+    private Integer belong;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleObjRelItemVO.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "项目报警规则与监测对象的关联返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectAlarmRuleObjRelItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("项目报警规则id")
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty("设备ID")
+    private String equipId;
+
+    @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;
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/vo/ProjectAlarmRuleObjRelListItemVO.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Data
+@ApiModel(value = "项目报警规则与监测对象的关联列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectAlarmRuleObjRelListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("项目报警规则id")
+    private String projectAlarmRuleId;
+
+    @ApiModelProperty("设备ID")
+    private String equipId;
+
+    @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;
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/vo/ProjectMonitorIndicatorConfigItemVO.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:10
+ */
+@Data
+@ApiModel(value = "项目监测指标配置返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectMonitorIndicatorConfigItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("监测对象id")
+    private String objId;
+
+    @ApiModelProperty("监测指标id")
+    private String monitorIndicatorId;
+
+    @ApiModelProperty("计算方式id")
+    private String caculateMethodId;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 46 - 0
src/main/java/com/persagy/apm/model/vo/ProjectMonitorIndicatorConfigListItemVO.java

@@ -0,0 +1,46 @@
+package com.persagy.apm.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:10
+ */
+@Data
+@ApiModel(value = "项目监测指标配置列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ProjectMonitorIndicatorConfigListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("监测对象id")
+    private String objId;
+
+    @ApiModelProperty("监测指标id")
+    private String monitorIndicatorId;
+
+    @ApiModelProperty("计算方式id")
+    private String caculateMethodId;
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("创建时间")
+    private Date creationTime;
+
+    @ApiModelProperty("修改人")
+    private String modifier;
+
+    @ApiModelProperty("修改时间")
+    private Date modifiedTime;
+
+}

+ 77 - 0
src/main/java/com/persagy/apm/service/IAlarmConditionService.java

@@ -0,0 +1,77 @@
+package com.persagy.apm.service;
+
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 报警条件(AlarmCondition) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:03
+ */
+public interface IAlarmConditionService {
+
+    /**
+     * 创建报警条件
+     *
+     * @param addAlarmConditionDTO addDTO
+     * @return 报警条件主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    String createAlarmCondition(AddAlarmConditionDTO addAlarmConditionDTO);
+
+    /**
+     * 报警条件详情
+     *
+     * @param id 主键
+     * @return 报警条件do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    AlarmCondition queryAlarmConditionDetail(String id);
+
+    /**
+     * 更新报警条件
+     *
+     * @param updateAlarmConditionDTO updateDTO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    void updateAlarmCondition(UpdateAlarmConditionDTO updateAlarmConditionDTO);
+
+    /**
+     * 删除报警条件
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    void deleteAlarmCondition(String id);
+
+    /**
+     * 查询报警条件
+     *
+     * @param queryAlarmConditionDTO queryDTO
+     * @return List<AlarmCondition>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    List<AlarmCondition> queryAlarmConditionList(QueryAlarmConditionDTO queryAlarmConditionDTO);
+
+    /**
+     * 分页查询报警条件
+     *
+     * @param pageQueryAlarmConditionDTO pageQueryDTO
+     * @return IPage<AlarmCondition>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    IPage<AlarmCondition> pageQueryAlarmCondition(PageQueryAlarmConditionDTO pageQueryAlarmConditionDTO);
+}

+ 77 - 0
src/main/java/com/persagy/apm/service/ICalculateMethodService.java

@@ -0,0 +1,77 @@
+package com.persagy.apm.service;
+
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 计算方式(CalculateMethod) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+public interface ICalculateMethodService {
+
+    /**
+     * 创建计算方式
+     *
+     * @param addCalculateMethodDTO addDTO
+     * @return 计算方式主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    String createCalculateMethod(AddCalculateMethodDTO addCalculateMethodDTO);
+
+    /**
+     * 计算方式详情
+     *
+     * @param id 主键
+     * @return 计算方式do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    CalculateMethod queryCalculateMethodDetail(String id);
+
+    /**
+     * 更新计算方式
+     *
+     * @param updateCalculateMethodDTO updateDTO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    void updateCalculateMethod(UpdateCalculateMethodDTO updateCalculateMethodDTO);
+
+    /**
+     * 删除计算方式
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    void deleteCalculateMethod(String id);
+
+    /**
+     * 查询计算方式
+     *
+     * @param queryCalculateMethodDTO queryDTO
+     * @return List<CalculateMethod>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    List<CalculateMethod> queryCalculateMethodList(QueryCalculateMethodDTO queryCalculateMethodDTO);
+
+    /**
+     * 分页查询计算方式
+     *
+     * @param pageQueryCalculateMethodDTO pageQueryDTO
+     * @return IPage<CalculateMethod>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    IPage<CalculateMethod> pageQueryCalculateMethod(PageQueryCalculateMethodDTO pageQueryCalculateMethodDTO);
+}

+ 77 - 0
src/main/java/com/persagy/apm/service/IGroupAlarmRuleService.java

@@ -0,0 +1,77 @@
+package com.persagy.apm.service;
+
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 集团报警规则(GroupAlarmRule) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+public interface IGroupAlarmRuleService {
+
+    /**
+     * 创建集团报警规则
+     *
+     * @param addGroupAlarmRuleDTO addDTO
+     * @return 集团报警规则主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    String createGroupAlarmRule(AddGroupAlarmRuleDTO addGroupAlarmRuleDTO);
+
+    /**
+     * 集团报警规则详情
+     *
+     * @param id 主键
+     * @return 集团报警规则do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    GroupAlarmRule queryGroupAlarmRuleDetail(String id);
+
+    /**
+     * 更新集团报警规则
+     *
+     * @param updateGroupAlarmRuleDTO updateDTO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    void updateGroupAlarmRule(UpdateGroupAlarmRuleDTO updateGroupAlarmRuleDTO);
+
+    /**
+     * 删除集团报警规则
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    void deleteGroupAlarmRule(String id);
+
+    /**
+     * 查询集团报警规则
+     *
+     * @param queryGroupAlarmRuleDTO queryDTO
+     * @return List<GroupAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    List<GroupAlarmRule> queryGroupAlarmRuleList(QueryGroupAlarmRuleDTO queryGroupAlarmRuleDTO);
+
+    /**
+     * 分页查询集团报警规则
+     *
+     * @param pageQueryGroupAlarmRuleDTO pageQueryDTO
+     * @return IPage<GroupAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    IPage<GroupAlarmRule> pageQueryGroupAlarmRule(PageQueryGroupAlarmRuleDTO pageQueryGroupAlarmRuleDTO);
+}

+ 77 - 0
src/main/java/com/persagy/apm/service/IMonitorIndicatorService.java

@@ -0,0 +1,77 @@
+package com.persagy.apm.service;
+
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 监测指标(MonitorIndicator) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+public interface IMonitorIndicatorService {
+
+    /**
+     * 创建监测指标
+     *
+     * @param addMonitorIndicatorDTO addDTO
+     * @return 监测指标主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    String createMonitorIndicator(AddMonitorIndicatorDTO addMonitorIndicatorDTO);
+
+    /**
+     * 监测指标详情
+     *
+     * @param id 主键
+     * @return 监测指标do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    MonitorIndicator queryMonitorIndicatorDetail(String id);
+
+    /**
+     * 更新监测指标
+     *
+     * @param updateMonitorIndicatorDTO updateDTO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    void updateMonitorIndicator(UpdateMonitorIndicatorDTO updateMonitorIndicatorDTO);
+
+    /**
+     * 删除监测指标
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    void deleteMonitorIndicator(String id);
+
+    /**
+     * 查询监测指标
+     *
+     * @param queryMonitorIndicatorDTO queryDTO
+     * @return List<MonitorIndicator>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    List<MonitorIndicator> queryMonitorIndicatorList(QueryMonitorIndicatorDTO queryMonitorIndicatorDTO);
+
+    /**
+     * 分页查询监测指标
+     *
+     * @param pageQueryMonitorIndicatorDTO pageQueryDTO
+     * @return IPage<MonitorIndicator>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    IPage<MonitorIndicator> pageQueryMonitorIndicator(PageQueryMonitorIndicatorDTO pageQueryMonitorIndicatorDTO);
+}

+ 77 - 0
src/main/java/com/persagy/apm/service/IProjectAlarmRuleObjRelService.java

@@ -0,0 +1,77 @@
+package com.persagy.apm.service;
+
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+public interface IProjectAlarmRuleObjRelService {
+
+    /**
+     * 创建项目报警规则与监测对象的关联
+     *
+     * @param addProjectAlarmRuleObjRelDTO addDTO
+     * @return 项目报警规则与监测对象的关联主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    String createProjectAlarmRuleObjRel(AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO);
+
+    /**
+     * 项目报警规则与监测对象的关联详情
+     *
+     * @param id 主键
+     * @return 项目报警规则与监测对象的关联do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    ProjectAlarmRuleObjRel queryProjectAlarmRuleObjRelDetail(String id);
+
+    /**
+     * 更新项目报警规则与监测对象的关联
+     *
+     * @param updateProjectAlarmRuleObjRelDTO updateDTO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    void updateProjectAlarmRuleObjRel(UpdateProjectAlarmRuleObjRelDTO updateProjectAlarmRuleObjRelDTO);
+
+    /**
+     * 删除项目报警规则与监测对象的关联
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    void deleteProjectAlarmRuleObjRel(String id);
+
+    /**
+     * 查询项目报警规则与监测对象的关联
+     *
+     * @param queryProjectAlarmRuleObjRelDTO queryDTO
+     * @return List<ProjectAlarmRuleObjRel>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    List<ProjectAlarmRuleObjRel> queryProjectAlarmRuleObjRelList(QueryProjectAlarmRuleObjRelDTO queryProjectAlarmRuleObjRelDTO);
+
+    /**
+     * 分页查询项目报警规则与监测对象的关联
+     *
+     * @param pageQueryProjectAlarmRuleObjRelDTO pageQueryDTO
+     * @return IPage<ProjectAlarmRuleObjRel>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    IPage<ProjectAlarmRuleObjRel> pageQueryProjectAlarmRuleObjRel(PageQueryProjectAlarmRuleObjRelDTO pageQueryProjectAlarmRuleObjRelDTO);
+}

+ 77 - 0
src/main/java/com/persagy/apm/service/IProjectAlarmRuleService.java

@@ -0,0 +1,77 @@
+package com.persagy.apm.service;
+
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 项目报警规则(ProjectAlarmRule) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+public interface IProjectAlarmRuleService {
+
+    /**
+     * 创建项目报警规则
+     *
+     * @param addProjectAlarmRuleDTO addDTO
+     * @return 项目报警规则主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    String createProjectAlarmRule(AddProjectAlarmRuleDTO addProjectAlarmRuleDTO);
+
+    /**
+     * 项目报警规则详情
+     *
+     * @param id 主键
+     * @return 项目报警规则do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    ProjectAlarmRule queryProjectAlarmRuleDetail(String id);
+
+    /**
+     * 更新项目报警规则
+     *
+     * @param updateProjectAlarmRuleDTO updateDTO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    void updateProjectAlarmRule(UpdateProjectAlarmRuleDTO updateProjectAlarmRuleDTO);
+
+    /**
+     * 删除项目报警规则
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    void deleteProjectAlarmRule(String id);
+
+    /**
+     * 查询项目报警规则
+     *
+     * @param queryProjectAlarmRuleDTO queryDTO
+     * @return List<ProjectAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    List<ProjectAlarmRule> queryProjectAlarmRuleList(QueryProjectAlarmRuleDTO queryProjectAlarmRuleDTO);
+
+    /**
+     * 分页查询项目报警规则
+     *
+     * @param pageQueryProjectAlarmRuleDTO pageQueryDTO
+     * @return IPage<ProjectAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    IPage<ProjectAlarmRule> pageQueryProjectAlarmRule(PageQueryProjectAlarmRuleDTO pageQueryProjectAlarmRuleDTO);
+}

+ 77 - 0
src/main/java/com/persagy/apm/service/IProjectMonitorIndicatorConfigService.java

@@ -0,0 +1,77 @@
+package com.persagy.apm.service;
+
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 项目监测指标配置(ProjectMonitorIndicatorConfig) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:09
+ */
+public interface IProjectMonitorIndicatorConfigService {
+
+    /**
+     * 创建项目监测指标配置
+     *
+     * @param addProjectMonitorIndicatorConfigDTO addDTO
+     * @return 项目监测指标配置主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    String createProjectMonitorIndicatorConfig(AddProjectMonitorIndicatorConfigDTO addProjectMonitorIndicatorConfigDTO);
+
+    /**
+     * 项目监测指标配置详情
+     *
+     * @param id 主键
+     * @return 项目监测指标配置do对象
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    ProjectMonitorIndicatorConfig queryProjectMonitorIndicatorConfigDetail(String id);
+
+    /**
+     * 更新项目监测指标配置
+     *
+     * @param updateProjectMonitorIndicatorConfigDTO updateDTO
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    void updateProjectMonitorIndicatorConfig(UpdateProjectMonitorIndicatorConfigDTO updateProjectMonitorIndicatorConfigDTO);
+
+    /**
+     * 删除项目监测指标配置
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    void deleteProjectMonitorIndicatorConfig(String id);
+
+    /**
+     * 查询项目监测指标配置
+     *
+     * @param queryProjectMonitorIndicatorConfigDTO queryDTO
+     * @return List<ProjectMonitorIndicatorConfig>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    List<ProjectMonitorIndicatorConfig> queryProjectMonitorIndicatorConfigList(QueryProjectMonitorIndicatorConfigDTO queryProjectMonitorIndicatorConfigDTO);
+
+    /**
+     * 分页查询项目监测指标配置
+     *
+     * @param pageQueryProjectMonitorIndicatorConfigDTO pageQueryDTO
+     * @return IPage<ProjectMonitorIndicatorConfig>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:09
+     */
+    IPage<ProjectMonitorIndicatorConfig> pageQueryProjectMonitorIndicatorConfig(PageQueryProjectMonitorIndicatorConfigDTO pageQueryProjectMonitorIndicatorConfigDTO);
+}

+ 221 - 0
src/main/java/com/persagy/apm/service/impl/AlarmConditionServiceImpl.java

@@ -0,0 +1,221 @@
+package com.persagy.apm.service.impl;
+
+import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.dao.AlarmConditionMapper;
+import com.persagy.apm.service.IAlarmConditionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.model.dto.Sort;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * 报警条件(AlarmCondition) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:03
+ */
+@Service
+public class AlarmConditionServiceImpl extends ServiceImpl<AlarmConditionMapper, AlarmCondition>
+        implements IAlarmConditionService {
+
+    /**
+     * 创建报警条件
+     *
+     * @return 报警条件主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    @Override
+    public String createAlarmCondition(AddAlarmConditionDTO addAlarmConditionDTO) {
+        AlarmCondition alarmCondition = ConvertAlarmConditionTool.INSTANCE.convertAddDto2Entity(addAlarmConditionDTO);
+        // 设置默认值
+        setDefaultValue(alarmCondition);
+        save(alarmCondition);
+        return alarmCondition.getId();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param alarmCondition 报警条件实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AlarmCondition alarmCondition) {
+        alarmCondition.setCreator(AppContext.getContext().getAccountId());
+        // todo 其他默认的属性
+
+    }
+
+    /**
+     * 报警条件详情
+     *
+     * @param id 主键
+     * @return 部门do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    @Override
+    public AlarmCondition queryAlarmConditionDetail(String id) {
+        AlarmCondition alarmCondition = getById(id);
+        if (alarmCondition == null) {
+            throw new IllegalArgumentException("查看AlarmCondition详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return alarmCondition;
+    }
+
+    /**
+     * 更新报警条件
+     *
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    @Override
+    public void updateAlarmCondition(UpdateAlarmConditionDTO updateAlarmConditionDTO) {
+        AlarmCondition alarmCondition = getById(updateAlarmConditionDTO.getId());
+        alarmCondition = ConvertAlarmConditionTool.INSTANCE.convertUpdateDto2Entity(alarmCondition, updateAlarmConditionDTO);
+        alarmCondition.setModifier(AppContext.getContext().getAccountId());
+        updateById(alarmCondition);
+    }
+
+    /**
+     * 校验报警条件是否可删除
+     *
+     * @param id 报警条件主键
+     * @return 报警条件do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    public AlarmCondition checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除AlarmCondition时发生异常,主键为空");
+        }
+
+        AlarmCondition alarmCondition = getById(id);
+
+        if (alarmCondition == null) {
+            throw new IllegalArgumentException("删除AlarmCondition时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return alarmCondition;
+    }
+
+    /**
+     * 删除报警条件
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    @Override
+    public void deleteAlarmCondition(String id) {
+        // 校验是否可删除
+        AlarmCondition alarmCondition = checkDeletable(id);
+
+        alarmCondition.setValid(ValidEnum.FALSE.getType());
+        updateById(alarmCondition);
+    }
+
+    /**
+     * 查询报警条件
+     *
+     * @return List<AlarmCondition>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    @Override
+    public List<AlarmCondition> queryAlarmConditionList(QueryAlarmConditionDTO queryAlarmConditionDTO) {
+        QueryWrapper<AlarmCondition> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmCondition.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, AlarmCondition.PROP_CREATIONTIME);
+
+        if (queryAlarmConditionDTO != null) {
+
+            if (queryAlarmConditionDTO.getInfoCodes() != null) {
+                queryWrapper.eq(AlarmCondition.PROP_INFO_CODES, queryAlarmConditionDTO.getInfoCodes());
+            }
+
+            if (queryAlarmConditionDTO.getFrontend() != null) {
+                queryWrapper.eq(AlarmCondition.PROP_FRONTEND, queryAlarmConditionDTO.getFrontend());
+            }
+
+            if (queryAlarmConditionDTO.getBackend() != null) {
+                queryWrapper.eq(AlarmCondition.PROP_BACKEND, queryAlarmConditionDTO.getBackend());
+            }
+
+            if (queryAlarmConditionDTO.getTriggerUphold() != null) {
+                queryWrapper.eq(AlarmCondition.PROP_TRIGGER_UPHOLD, queryAlarmConditionDTO.getTriggerUphold());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConditionDTO.getAlarmLevel())) {
+                queryWrapper.like(AlarmCondition.PROP_ALARM_LEVEL, queryAlarmConditionDTO.getAlarmLevel());
+            }
+
+        }
+
+        return list(queryWrapper);
+    }
+
+    /**
+     * 分页查询报警条件
+     *
+     * @return IPage<AlarmCondition>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:03
+     */
+    @Override
+    public IPage<AlarmCondition> pageQueryAlarmCondition(PageQueryAlarmConditionDTO pageQueryAlarmConditionDTO) {
+        QueryWrapper<AlarmCondition> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmCondition.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<AlarmCondition> pageParam = new Page<>(pageQueryAlarmConditionDTO.getPage(), pageQueryAlarmConditionDTO.getSize(), true);
+        // 排序信息
+        if (CollectionUtils.isEmpty(pageQueryAlarmConditionDTO.getOrders())) {
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, AlarmCondition.PROP_CREATIONTIME);
+        } else {
+            List<Sort> orders = pageQueryAlarmConditionDTO.getOrders();
+            for (Sort sort : orders) {
+                // 将驼峰转换为下划线格式
+                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
+                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
+            }
+        }
+
+        if (pageQueryAlarmConditionDTO.getInfoCodes() != null) {
+            queryWrapper.eq(AlarmCondition.PROP_INFO_CODES, pageQueryAlarmConditionDTO.getInfoCodes());
+        }
+
+        if (pageQueryAlarmConditionDTO.getFrontend() != null) {
+            queryWrapper.eq(AlarmCondition.PROP_FRONTEND, pageQueryAlarmConditionDTO.getFrontend());
+        }
+
+        if (pageQueryAlarmConditionDTO.getBackend() != null) {
+            queryWrapper.eq(AlarmCondition.PROP_BACKEND, pageQueryAlarmConditionDTO.getBackend());
+        }
+
+        if (pageQueryAlarmConditionDTO.getTriggerUphold() != null) {
+            queryWrapper.eq(AlarmCondition.PROP_TRIGGER_UPHOLD, pageQueryAlarmConditionDTO.getTriggerUphold());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConditionDTO.getAlarmLevel())) {
+            queryWrapper.like(AlarmCondition.PROP_ALARM_LEVEL, pageQueryAlarmConditionDTO.getAlarmLevel());
+        }
+
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 217 - 0
src/main/java/com/persagy/apm/service/impl/CalculateMethodServiceImpl.java

@@ -0,0 +1,217 @@
+package com.persagy.apm.service.impl;
+
+import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.dao.CalculateMethodMapper;
+import com.persagy.apm.service.ICalculateMethodService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.model.dto.Sort;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * 计算方式(CalculateMethod) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:04
+ */
+@Service
+public class CalculateMethodServiceImpl extends ServiceImpl<CalculateMethodMapper, CalculateMethod>
+        implements ICalculateMethodService {
+
+    /**
+     * 创建计算方式
+     *
+     * @return 计算方式主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    @Override
+    public String createCalculateMethod(AddCalculateMethodDTO addCalculateMethodDTO) {
+        CalculateMethod calculateMethod = ConvertCalculateMethodTool.INSTANCE.convertAddDto2Entity(addCalculateMethodDTO);
+        // 设置默认值
+        setDefaultValue(calculateMethod);
+        save(calculateMethod);
+        return calculateMethod.getId();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param calculateMethod 计算方式实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(CalculateMethod calculateMethod) {
+        calculateMethod.setCreator(AppContext.getContext().getAccountId());
+        // todo 其他默认的属性
+
+    }
+
+    /**
+     * 计算方式详情
+     *
+     * @param id 主键
+     * @return 部门do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    @Override
+    public CalculateMethod queryCalculateMethodDetail(String id) {
+        CalculateMethod calculateMethod = getById(id);
+        if (calculateMethod == null) {
+            throw new IllegalArgumentException("查看CalculateMethod详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return calculateMethod;
+    }
+
+    /**
+     * 更新计算方式
+     *
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    @Override
+    public void updateCalculateMethod(UpdateCalculateMethodDTO updateCalculateMethodDTO) {
+        CalculateMethod calculateMethod = getById(updateCalculateMethodDTO.getId());
+        calculateMethod = ConvertCalculateMethodTool.INSTANCE.convertUpdateDto2Entity(calculateMethod, updateCalculateMethodDTO);
+        calculateMethod.setModifier(AppContext.getContext().getAccountId());
+        updateById(calculateMethod);
+    }
+
+    /**
+     * 校验计算方式是否可删除
+     *
+     * @param id 计算方式主键
+     * @return 计算方式do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    public CalculateMethod checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除CalculateMethod时发生异常,主键为空");
+        }
+
+        CalculateMethod calculateMethod = getById(id);
+
+        if (calculateMethod == null) {
+            throw new IllegalArgumentException("删除CalculateMethod时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return calculateMethod;
+    }
+
+    /**
+     * 删除计算方式
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    @Override
+    public void deleteCalculateMethod(String id) {
+        // 校验是否可删除
+        CalculateMethod calculateMethod = checkDeletable(id);
+
+        calculateMethod.setValid(ValidEnum.FALSE.getType());
+        updateById(calculateMethod);
+    }
+
+    /**
+     * 查询计算方式
+     *
+     * @return List<CalculateMethod>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    @Override
+    public List<CalculateMethod> queryCalculateMethodList(QueryCalculateMethodDTO queryCalculateMethodDTO) {
+        QueryWrapper<CalculateMethod> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(CalculateMethod.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, CalculateMethod.PROP_CREATIONTIME);
+
+        if (queryCalculateMethodDTO != null) {
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryCalculateMethodDTO.getName())) {
+                queryWrapper.like(CalculateMethod.PROP_NAME, queryCalculateMethodDTO.getName());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryCalculateMethodDTO.getFormula())) {
+                queryWrapper.like(CalculateMethod.PROP_FORMULA, queryCalculateMethodDTO.getFormula());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryCalculateMethodDTO.getMonitorIndicatorId())) {
+                queryWrapper.like(CalculateMethod.PROP_MONITOR_INDICATOR_ID, queryCalculateMethodDTO.getMonitorIndicatorId());
+            }
+
+            if (queryCalculateMethodDTO.getIsDefault() != null) {
+                queryWrapper.eq(CalculateMethod.PROP_IS_DEFAULT, queryCalculateMethodDTO.getIsDefault());
+            }
+
+        }
+
+        return list(queryWrapper);
+    }
+
+    /**
+     * 分页查询计算方式
+     *
+     * @return IPage<CalculateMethod>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:04
+     */
+    @Override
+    public IPage<CalculateMethod> pageQueryCalculateMethod(PageQueryCalculateMethodDTO pageQueryCalculateMethodDTO) {
+        QueryWrapper<CalculateMethod> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(CalculateMethod.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<CalculateMethod> pageParam = new Page<>(pageQueryCalculateMethodDTO.getPage(), pageQueryCalculateMethodDTO.getSize(), true);
+        // 排序信息
+        if (CollectionUtils.isEmpty(pageQueryCalculateMethodDTO.getOrders())) {
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, CalculateMethod.PROP_CREATIONTIME);
+        } else {
+            List<Sort> orders = pageQueryCalculateMethodDTO.getOrders();
+            for (Sort sort : orders) {
+                // 将驼峰转换为下划线格式
+                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
+                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
+            }
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryCalculateMethodDTO.getName())) {
+            queryWrapper.like(CalculateMethod.PROP_NAME, pageQueryCalculateMethodDTO.getName());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryCalculateMethodDTO.getFormula())) {
+            queryWrapper.like(CalculateMethod.PROP_FORMULA, pageQueryCalculateMethodDTO.getFormula());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryCalculateMethodDTO.getMonitorIndicatorId())) {
+            queryWrapper.like(CalculateMethod.PROP_MONITOR_INDICATOR_ID, pageQueryCalculateMethodDTO.getMonitorIndicatorId());
+        }
+
+        if (pageQueryCalculateMethodDTO.getIsDefault() != null) {
+            queryWrapper.eq(CalculateMethod.PROP_IS_DEFAULT, pageQueryCalculateMethodDTO.getIsDefault());
+        }
+
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 209 - 0
src/main/java/com/persagy/apm/service/impl/GroupAlarmRuleServiceImpl.java

@@ -0,0 +1,209 @@
+package com.persagy.apm.service.impl;
+
+import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.dao.GroupAlarmRuleMapper;
+import com.persagy.apm.service.IGroupAlarmRuleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.model.dto.Sort;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * 集团报警规则(GroupAlarmRule) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:05
+ */
+@Service
+public class GroupAlarmRuleServiceImpl extends ServiceImpl<GroupAlarmRuleMapper, GroupAlarmRule>
+        implements IGroupAlarmRuleService {
+
+    /**
+     * 创建集团报警规则
+     *
+     * @return 集团报警规则主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    @Override
+    public String createGroupAlarmRule(AddGroupAlarmRuleDTO addGroupAlarmRuleDTO) {
+        GroupAlarmRule groupAlarmRule = ConvertGroupAlarmRuleTool.INSTANCE.convertAddDto2Entity(addGroupAlarmRuleDTO);
+        // 设置默认值
+        setDefaultValue(groupAlarmRule);
+        save(groupAlarmRule);
+        return groupAlarmRule.getId();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param groupAlarmRule 集团报警规则实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(GroupAlarmRule groupAlarmRule) {
+        groupAlarmRule.setCreator(AppContext.getContext().getAccountId());
+        // todo 其他默认的属性
+
+    }
+
+    /**
+     * 集团报警规则详情
+     *
+     * @param id 主键
+     * @return 部门do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    @Override
+    public GroupAlarmRule queryGroupAlarmRuleDetail(String id) {
+        GroupAlarmRule groupAlarmRule = getById(id);
+        if (groupAlarmRule == null) {
+            throw new IllegalArgumentException("查看GroupAlarmRule详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return groupAlarmRule;
+    }
+
+    /**
+     * 更新集团报警规则
+     *
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    @Override
+    public void updateGroupAlarmRule(UpdateGroupAlarmRuleDTO updateGroupAlarmRuleDTO) {
+        GroupAlarmRule groupAlarmRule = getById(updateGroupAlarmRuleDTO.getId());
+        groupAlarmRule = ConvertGroupAlarmRuleTool.INSTANCE.convertUpdateDto2Entity(groupAlarmRule, updateGroupAlarmRuleDTO);
+        groupAlarmRule.setModifier(AppContext.getContext().getAccountId());
+        updateById(groupAlarmRule);
+    }
+
+    /**
+     * 校验集团报警规则是否可删除
+     *
+     * @param id 集团报警规则主键
+     * @return 集团报警规则do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    public GroupAlarmRule checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除GroupAlarmRule时发生异常,主键为空");
+        }
+
+        GroupAlarmRule groupAlarmRule = getById(id);
+
+        if (groupAlarmRule == null) {
+            throw new IllegalArgumentException("删除GroupAlarmRule时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return groupAlarmRule;
+    }
+
+    /**
+     * 删除集团报警规则
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    @Override
+    public void deleteGroupAlarmRule(String id) {
+        // 校验是否可删除
+        GroupAlarmRule groupAlarmRule = checkDeletable(id);
+
+        groupAlarmRule.setValid(ValidEnum.FALSE.getType());
+        updateById(groupAlarmRule);
+    }
+
+    /**
+     * 查询集团报警规则
+     *
+     * @return List<GroupAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    @Override
+    public List<GroupAlarmRule> queryGroupAlarmRuleList(QueryGroupAlarmRuleDTO queryGroupAlarmRuleDTO) {
+        QueryWrapper<GroupAlarmRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(GroupAlarmRule.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, GroupAlarmRule.PROP_CREATIONTIME);
+
+        if (queryGroupAlarmRuleDTO != null) {
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryGroupAlarmRuleDTO.getGroupId())) {
+                queryWrapper.like(GroupAlarmRule.PROP_GROUP_ID, queryGroupAlarmRuleDTO.getGroupId());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryGroupAlarmRuleDTO.getAlarmItemCode())) {
+                queryWrapper.like(GroupAlarmRule.PROP_ALARM_ITEM_CODE, queryGroupAlarmRuleDTO.getAlarmItemCode());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryGroupAlarmRuleDTO.getAlarmConditionId())) {
+                queryWrapper.like(GroupAlarmRule.PROP_ALARM_CONDITION_ID, queryGroupAlarmRuleDTO.getAlarmConditionId());
+            }
+
+        }
+
+        return list(queryWrapper);
+    }
+
+    /**
+     * 分页查询集团报警规则
+     *
+     * @return IPage<GroupAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:05
+     */
+    @Override
+    public IPage<GroupAlarmRule> pageQueryGroupAlarmRule(PageQueryGroupAlarmRuleDTO pageQueryGroupAlarmRuleDTO) {
+        QueryWrapper<GroupAlarmRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(GroupAlarmRule.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<GroupAlarmRule> pageParam = new Page<>(pageQueryGroupAlarmRuleDTO.getPage(), pageQueryGroupAlarmRuleDTO.getSize(), true);
+        // 排序信息
+        if (CollectionUtils.isEmpty(pageQueryGroupAlarmRuleDTO.getOrders())) {
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, GroupAlarmRule.PROP_CREATIONTIME);
+        } else {
+            List<Sort> orders = pageQueryGroupAlarmRuleDTO.getOrders();
+            for (Sort sort : orders) {
+                // 将驼峰转换为下划线格式
+                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
+                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
+            }
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryGroupAlarmRuleDTO.getGroupId())) {
+            queryWrapper.like(GroupAlarmRule.PROP_GROUP_ID, pageQueryGroupAlarmRuleDTO.getGroupId());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryGroupAlarmRuleDTO.getAlarmItemCode())) {
+            queryWrapper.like(GroupAlarmRule.PROP_ALARM_ITEM_CODE, pageQueryGroupAlarmRuleDTO.getAlarmItemCode());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryGroupAlarmRuleDTO.getAlarmConditionId())) {
+            queryWrapper.like(GroupAlarmRule.PROP_ALARM_CONDITION_ID, pageQueryGroupAlarmRuleDTO.getAlarmConditionId());
+        }
+
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 199 - 0
src/main/java/com/persagy/apm/service/impl/MonitorIndicatorServiceImpl.java

@@ -0,0 +1,199 @@
+package com.persagy.apm.service.impl;
+
+import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.dao.MonitorIndicatorMapper;
+import com.persagy.apm.service.IMonitorIndicatorService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.model.dto.Sort;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * 监测指标(MonitorIndicator) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:06
+ */
+@Service
+public class MonitorIndicatorServiceImpl extends ServiceImpl<MonitorIndicatorMapper, MonitorIndicator>
+        implements IMonitorIndicatorService {
+
+    /**
+     * 创建监测指标
+     *
+     * @return 监测指标主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    @Override
+    public String createMonitorIndicator(AddMonitorIndicatorDTO addMonitorIndicatorDTO) {
+        MonitorIndicator monitorIndicator = ConvertMonitorIndicatorTool.INSTANCE.convertAddDto2Entity(addMonitorIndicatorDTO);
+        // 设置默认值
+        setDefaultValue(monitorIndicator);
+        save(monitorIndicator);
+        return monitorIndicator.getId();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param monitorIndicator 监测指标实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(MonitorIndicator monitorIndicator) {
+        monitorIndicator.setCreator(AppContext.getContext().getAccountId());
+        // todo 其他默认的属性
+
+    }
+
+    /**
+     * 监测指标详情
+     *
+     * @param id 主键
+     * @return 部门do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    @Override
+    public MonitorIndicator queryMonitorIndicatorDetail(String id) {
+        MonitorIndicator monitorIndicator = getById(id);
+        if (monitorIndicator == null) {
+            throw new IllegalArgumentException("查看MonitorIndicator详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return monitorIndicator;
+    }
+
+    /**
+     * 更新监测指标
+     *
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    @Override
+    public void updateMonitorIndicator(UpdateMonitorIndicatorDTO updateMonitorIndicatorDTO) {
+        MonitorIndicator monitorIndicator = getById(updateMonitorIndicatorDTO.getId());
+        monitorIndicator = ConvertMonitorIndicatorTool.INSTANCE.convertUpdateDto2Entity(monitorIndicator, updateMonitorIndicatorDTO);
+        monitorIndicator.setModifier(AppContext.getContext().getAccountId());
+        updateById(monitorIndicator);
+    }
+
+    /**
+     * 校验监测指标是否可删除
+     *
+     * @param id 监测指标主键
+     * @return 监测指标do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    public MonitorIndicator checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除MonitorIndicator时发生异常,主键为空");
+        }
+
+        MonitorIndicator monitorIndicator = getById(id);
+
+        if (monitorIndicator == null) {
+            throw new IllegalArgumentException("删除MonitorIndicator时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return monitorIndicator;
+    }
+
+    /**
+     * 删除监测指标
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    @Override
+    public void deleteMonitorIndicator(String id) {
+        // 校验是否可删除
+        MonitorIndicator monitorIndicator = checkDeletable(id);
+
+        monitorIndicator.setValid(ValidEnum.FALSE.getType());
+        updateById(monitorIndicator);
+    }
+
+    /**
+     * 查询监测指标
+     *
+     * @return List<MonitorIndicator>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    @Override
+    public List<MonitorIndicator> queryMonitorIndicatorList(QueryMonitorIndicatorDTO queryMonitorIndicatorDTO) {
+        QueryWrapper<MonitorIndicator> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(MonitorIndicator.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, MonitorIndicator.PROP_CREATIONTIME);
+
+        if (queryMonitorIndicatorDTO != null) {
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryMonitorIndicatorDTO.getName())) {
+                queryWrapper.like(MonitorIndicator.PROP_NAME, queryMonitorIndicatorDTO.getName());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryMonitorIndicatorDTO.getClassCode())) {
+                queryWrapper.like(MonitorIndicator.PROP_CLASS_CODE, queryMonitorIndicatorDTO.getClassCode());
+            }
+
+        }
+
+        return list(queryWrapper);
+    }
+
+    /**
+     * 分页查询监测指标
+     *
+     * @return IPage<MonitorIndicator>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:06
+     */
+    @Override
+    public IPage<MonitorIndicator> pageQueryMonitorIndicator(PageQueryMonitorIndicatorDTO pageQueryMonitorIndicatorDTO) {
+        QueryWrapper<MonitorIndicator> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(MonitorIndicator.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<MonitorIndicator> pageParam = new Page<>(pageQueryMonitorIndicatorDTO.getPage(), pageQueryMonitorIndicatorDTO.getSize(), true);
+        // 排序信息
+        if (CollectionUtils.isEmpty(pageQueryMonitorIndicatorDTO.getOrders())) {
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, MonitorIndicator.PROP_CREATIONTIME);
+        } else {
+            List<Sort> orders = pageQueryMonitorIndicatorDTO.getOrders();
+            for (Sort sort : orders) {
+                // 将驼峰转换为下划线格式
+                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
+                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
+            }
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryMonitorIndicatorDTO.getName())) {
+            queryWrapper.like(MonitorIndicator.PROP_NAME, pageQueryMonitorIndicatorDTO.getName());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryMonitorIndicatorDTO.getClassCode())) {
+            queryWrapper.like(MonitorIndicator.PROP_CLASS_CODE, pageQueryMonitorIndicatorDTO.getClassCode());
+        }
+
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 217 - 0
src/main/java/com/persagy/apm/service/impl/ProjectAlarmRuleObjRelServiceImpl.java

@@ -0,0 +1,217 @@
+package com.persagy.apm.service.impl;
+
+import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.dao.ProjectAlarmRuleObjRelMapper;
+import com.persagy.apm.service.IProjectAlarmRuleObjRelService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.model.dto.Sort;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * 项目报警规则与监测对象的关联(ProjectAlarmRuleObjRel) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:08
+ */
+@Service
+public class ProjectAlarmRuleObjRelServiceImpl extends ServiceImpl<ProjectAlarmRuleObjRelMapper, ProjectAlarmRuleObjRel>
+        implements IProjectAlarmRuleObjRelService {
+
+    /**
+     * 创建项目报警规则与监测对象的关联
+     *
+     * @return 项目报警规则与监测对象的关联主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    @Override
+    public String createProjectAlarmRuleObjRel(AddProjectAlarmRuleObjRelDTO addProjectAlarmRuleObjRelDTO) {
+        ProjectAlarmRuleObjRel projectAlarmRuleObjRel = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convertAddDto2Entity(addProjectAlarmRuleObjRelDTO);
+        // 设置默认值
+        setDefaultValue(projectAlarmRuleObjRel);
+        save(projectAlarmRuleObjRel);
+        return projectAlarmRuleObjRel.getId();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param projectAlarmRuleObjRel 项目报警规则与监测对象的关联实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(ProjectAlarmRuleObjRel projectAlarmRuleObjRel) {
+        projectAlarmRuleObjRel.setCreator(AppContext.getContext().getAccountId());
+        // todo 其他默认的属性
+
+    }
+
+    /**
+     * 项目报警规则与监测对象的关联详情
+     *
+     * @param id 主键
+     * @return 部门do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    @Override
+    public ProjectAlarmRuleObjRel queryProjectAlarmRuleObjRelDetail(String id) {
+        ProjectAlarmRuleObjRel projectAlarmRuleObjRel = getById(id);
+        if (projectAlarmRuleObjRel == null) {
+            throw new IllegalArgumentException("查看ProjectAlarmRuleObjRel详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return projectAlarmRuleObjRel;
+    }
+
+    /**
+     * 更新项目报警规则与监测对象的关联
+     *
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    @Override
+    public void updateProjectAlarmRuleObjRel(UpdateProjectAlarmRuleObjRelDTO updateProjectAlarmRuleObjRelDTO) {
+        ProjectAlarmRuleObjRel projectAlarmRuleObjRel = getById(updateProjectAlarmRuleObjRelDTO.getId());
+        projectAlarmRuleObjRel = ConvertProjectAlarmRuleObjRelTool.INSTANCE.convertUpdateDto2Entity(projectAlarmRuleObjRel, updateProjectAlarmRuleObjRelDTO);
+        projectAlarmRuleObjRel.setModifier(AppContext.getContext().getAccountId());
+        updateById(projectAlarmRuleObjRel);
+    }
+
+    /**
+     * 校验项目报警规则与监测对象的关联是否可删除
+     *
+     * @param id 项目报警规则与监测对象的关联主键
+     * @return 项目报警规则与监测对象的关联do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    public ProjectAlarmRuleObjRel checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除ProjectAlarmRuleObjRel时发生异常,主键为空");
+        }
+
+        ProjectAlarmRuleObjRel projectAlarmRuleObjRel = getById(id);
+
+        if (projectAlarmRuleObjRel == null) {
+            throw new IllegalArgumentException("删除ProjectAlarmRuleObjRel时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return projectAlarmRuleObjRel;
+    }
+
+    /**
+     * 删除项目报警规则与监测对象的关联
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    @Override
+    public void deleteProjectAlarmRuleObjRel(String id) {
+        // 校验是否可删除
+        ProjectAlarmRuleObjRel projectAlarmRuleObjRel = checkDeletable(id);
+
+        projectAlarmRuleObjRel.setValid(ValidEnum.FALSE.getType());
+        updateById(projectAlarmRuleObjRel);
+    }
+
+    /**
+     * 查询项目报警规则与监测对象的关联
+     *
+     * @return List<ProjectAlarmRuleObjRel>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    @Override
+    public List<ProjectAlarmRuleObjRel> queryProjectAlarmRuleObjRelList(QueryProjectAlarmRuleObjRelDTO queryProjectAlarmRuleObjRelDTO) {
+        QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, ProjectAlarmRuleObjRel.PROP_CREATIONTIME);
+
+        if (queryProjectAlarmRuleObjRelDTO != null) {
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectAlarmRuleObjRelDTO.getProjectAlarmRuleId())) {
+                queryWrapper.like(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, queryProjectAlarmRuleObjRelDTO.getProjectAlarmRuleId());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectAlarmRuleObjRelDTO.getEquipId())) {
+                queryWrapper.like(ProjectAlarmRuleObjRel.PROP_EQUIP_ID, queryProjectAlarmRuleObjRelDTO.getEquipId());
+            }
+
+            if (queryProjectAlarmRuleObjRelDTO.getOpen() != null) {
+                queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, queryProjectAlarmRuleObjRelDTO.getOpen());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectAlarmRuleObjRelDTO.getProjectId())) {
+                queryWrapper.like(ProjectAlarmRuleObjRel.PROP_PROJECT_ID, queryProjectAlarmRuleObjRelDTO.getProjectId());
+            }
+
+        }
+
+        return list(queryWrapper);
+    }
+
+    /**
+     * 分页查询项目报警规则与监测对象的关联
+     *
+     * @return IPage<ProjectAlarmRuleObjRel>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:08
+     */
+    @Override
+    public IPage<ProjectAlarmRuleObjRel> pageQueryProjectAlarmRuleObjRel(PageQueryProjectAlarmRuleObjRelDTO pageQueryProjectAlarmRuleObjRelDTO) {
+        QueryWrapper<ProjectAlarmRuleObjRel> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<ProjectAlarmRuleObjRel> pageParam = new Page<>(pageQueryProjectAlarmRuleObjRelDTO.getPage(), pageQueryProjectAlarmRuleObjRelDTO.getSize(), true);
+        // 排序信息
+        if (CollectionUtils.isEmpty(pageQueryProjectAlarmRuleObjRelDTO.getOrders())) {
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, ProjectAlarmRuleObjRel.PROP_CREATIONTIME);
+        } else {
+            List<Sort> orders = pageQueryProjectAlarmRuleObjRelDTO.getOrders();
+            for (Sort sort : orders) {
+                // 将驼峰转换为下划线格式
+                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
+                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
+            }
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleObjRelDTO.getProjectAlarmRuleId())) {
+            queryWrapper.like(ProjectAlarmRuleObjRel.PROP_PROJECT_ALARM_RULE_ID, pageQueryProjectAlarmRuleObjRelDTO.getProjectAlarmRuleId());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleObjRelDTO.getEquipId())) {
+            queryWrapper.like(ProjectAlarmRuleObjRel.PROP_EQUIP_ID, pageQueryProjectAlarmRuleObjRelDTO.getEquipId());
+        }
+
+        if (pageQueryProjectAlarmRuleObjRelDTO.getOpen() != null) {
+            queryWrapper.eq(ProjectAlarmRuleObjRel.PROP_OPEN, pageQueryProjectAlarmRuleObjRelDTO.getOpen());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleObjRelDTO.getProjectId())) {
+            queryWrapper.like(ProjectAlarmRuleObjRel.PROP_PROJECT_ID, pageQueryProjectAlarmRuleObjRelDTO.getProjectId());
+        }
+
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 227 - 0
src/main/java/com/persagy/apm/service/impl/ProjectAlarmRuleServiceImpl.java

@@ -0,0 +1,227 @@
+package com.persagy.apm.service.impl;
+
+import com.persagy.apm.common.context.AppContext;
+import com.persagy.apm.dao.ProjectAlarmRuleMapper;
+import com.persagy.apm.service.IProjectAlarmRuleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.apache.commons.lang.StringUtils;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.persagy.apm.model.*;
+import com.persagy.apm.model.dto.*;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.model.dto.Sort;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * 项目报警规则(ProjectAlarmRule) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-09-07 18:12:07
+ */
+@Service
+public class ProjectAlarmRuleServiceImpl extends ServiceImpl<ProjectAlarmRuleMapper, ProjectAlarmRule>
+        implements IProjectAlarmRuleService {
+
+    /**
+     * 创建项目报警规则
+     *
+     * @return 项目报警规则主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    @Override
+    public String createProjectAlarmRule(AddProjectAlarmRuleDTO addProjectAlarmRuleDTO) {
+        ProjectAlarmRule projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertAddDto2Entity(addProjectAlarmRuleDTO);
+        // 设置默认值
+        setDefaultValue(projectAlarmRule);
+        save(projectAlarmRule);
+        return projectAlarmRule.getId();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param projectAlarmRule 项目报警规则实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(ProjectAlarmRule projectAlarmRule) {
+        projectAlarmRule.setCreator(AppContext.getContext().getAccountId());
+        // todo 其他默认的属性
+
+    }
+
+    /**
+     * 项目报警规则详情
+     *
+     * @param id 主键
+     * @return 部门do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    @Override
+    public ProjectAlarmRule queryProjectAlarmRuleDetail(String id) {
+        ProjectAlarmRule projectAlarmRule = getById(id);
+        if (projectAlarmRule == null) {
+            throw new IllegalArgumentException("查看ProjectAlarmRule详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return projectAlarmRule;
+    }
+
+    /**
+     * 更新项目报警规则
+     *
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    @Override
+    public void updateProjectAlarmRule(UpdateProjectAlarmRuleDTO updateProjectAlarmRuleDTO) {
+        ProjectAlarmRule projectAlarmRule = getById(updateProjectAlarmRuleDTO.getId());
+        projectAlarmRule = ConvertProjectAlarmRuleTool.INSTANCE.convertUpdateDto2Entity(projectAlarmRule, updateProjectAlarmRuleDTO);
+        projectAlarmRule.setModifier(AppContext.getContext().getAccountId());
+        updateById(projectAlarmRule);
+    }
+
+    /**
+     * 校验项目报警规则是否可删除
+     *
+     * @param id 项目报警规则主键
+     * @return 项目报警规则do类
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    public ProjectAlarmRule checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除ProjectAlarmRule时发生异常,主键为空");
+        }
+
+        ProjectAlarmRule projectAlarmRule = getById(id);
+
+        if (projectAlarmRule == null) {
+            throw new IllegalArgumentException("删除ProjectAlarmRule时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return projectAlarmRule;
+    }
+
+    /**
+     * 删除项目报警规则
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    @Override
+    public void deleteProjectAlarmRule(String id) {
+        // 校验是否可删除
+        ProjectAlarmRule projectAlarmRule = checkDeletable(id);
+
+        projectAlarmRule.setValid(ValidEnum.FALSE.getType());
+        updateById(projectAlarmRule);
+    }
+
+    /**
+     * 查询项目报警规则
+     *
+     * @return List<ProjectAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    @Override
+    public List<ProjectAlarmRule> queryProjectAlarmRuleList(QueryProjectAlarmRuleDTO queryProjectAlarmRuleDTO) {
+        QueryWrapper<ProjectAlarmRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectAlarmRule.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, ProjectAlarmRule.PROP_CREATIONTIME);
+
+        if (queryProjectAlarmRuleDTO != null) {
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectAlarmRuleDTO.getGroupId())) {
+                queryWrapper.like(ProjectAlarmRule.PROP_GROUP_ID, queryProjectAlarmRuleDTO.getGroupId());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectAlarmRuleDTO.getAlarmItemCode())) {
+                queryWrapper.like(ProjectAlarmRule.PROP_ALARM_ITEM_CODE, queryProjectAlarmRuleDTO.getAlarmItemCode());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectAlarmRuleDTO.getAlarmConditionId())) {
+                queryWrapper.like(ProjectAlarmRule.PROP_ALARM_CONDITION_ID, queryProjectAlarmRuleDTO.getAlarmConditionId());
+            }
+
+            if (queryProjectAlarmRuleDTO.getBelong() != null) {
+                queryWrapper.eq(ProjectAlarmRule.PROP_BELONG, queryProjectAlarmRuleDTO.getBelong());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryProjectAlarmRuleDTO.getProjectId())) {
+                queryWrapper.like(ProjectAlarmRule.PROP_PROJECT_ID, queryProjectAlarmRuleDTO.getProjectId());
+            }
+
+        }
+
+        return list(queryWrapper);
+    }
+
+    /**
+     * 分页查询项目报警规则
+     *
+     * @return IPage<ProjectAlarmRule>
+     * @author lixing
+     * @version V1.0 2021-09-07 18:12:07
+     */
+    @Override
+    public IPage<ProjectAlarmRule> pageQueryProjectAlarmRule(PageQueryProjectAlarmRuleDTO pageQueryProjectAlarmRuleDTO) {
+        QueryWrapper<ProjectAlarmRule> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(ProjectAlarmRule.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<ProjectAlarmRule> pageParam = new Page<>(pageQueryProjectAlarmRuleDTO.getPage(), pageQueryProjectAlarmRuleDTO.getSize(), true);
+        // 排序信息
+        if (CollectionUtils.isEmpty(pageQueryProjectAlarmRuleDTO.getOrders())) {
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, ProjectAlarmRule.PROP_CREATIONTIME);
+        } else {
+            List<Sort> orders = pageQueryProjectAlarmRuleDTO.getOrders();
+            for (Sort sort : orders) {
+                // 将驼峰转换为下划线格式
+                sort.setColumn(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sort.getColumn()));
+                queryWrapper.orderBy(true, sort.isAsc(), sort.getColumn());
+            }
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleDTO.getGroupId())) {
+            queryWrapper.like(ProjectAlarmRule.PROP_GROUP_ID, pageQueryProjectAlarmRuleDTO.getGroupId());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleDTO.getAlarmItemCode())) {
+            queryWrapper.like(ProjectAlarmRule.PROP_ALARM_ITEM_CODE, pageQueryProjectAlarmRuleDTO.getAlarmItemCode());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleDTO.getAlarmConditionId())) {
+            queryWrapper.like(ProjectAlarmRule.PROP_ALARM_CONDITION_ID, pageQueryProjectAlarmRuleDTO.getAlarmConditionId());
+        }
+
+        if (pageQueryProjectAlarmRuleDTO.getBelong() != null) {
+            queryWrapper.eq(ProjectAlarmRule.PROP_BELONG, pageQueryProjectAlarmRuleDTO.getBelong());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryProjectAlarmRuleDTO.getProjectId())) {
+            queryWrapper.like(ProjectAlarmRule.PROP_PROJECT_ID, pageQueryProjectAlarmRuleDTO.getProjectId());
+        }
+
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 0 - 0
src/main/java/com/persagy/apm/service/impl/ProjectMonitorIndicatorConfigServiceImpl.java


Some files were not shown because too many files changed in this diff