lixing 3 years ago
commit
5e56e644f2
96 changed files with 8607 additions and 0 deletions
  1. 9 0
      .gitignore
  2. 109 0
      pom.xml
  3. 13 0
      readme.md
  4. 92 0
      src/main/java/com/persagy/apm/dmpalarm/controller/AlarmCommentController.java
  5. 92 0
      src/main/java/com/persagy/apm/dmpalarm/controller/AlarmConfigController.java
  6. 92 0
      src/main/java/com/persagy/apm/dmpalarm/controller/AlarmItemController.java
  7. 92 0
      src/main/java/com/persagy/apm/dmpalarm/controller/AlarmLogController.java
  8. 92 0
      src/main/java/com/persagy/apm/dmpalarm/controller/AlarmRecordController.java
  9. 92 0
      src/main/java/com/persagy/apm/dmpalarm/controller/AlarmTargetController.java
  10. 15 0
      src/main/java/com/persagy/apm/dmpalarm/dao/AlarmCommentMapper.java
  11. 15 0
      src/main/java/com/persagy/apm/dmpalarm/dao/AlarmConfigMapper.java
  12. 15 0
      src/main/java/com/persagy/apm/dmpalarm/dao/AlarmItemMapper.java
  13. 15 0
      src/main/java/com/persagy/apm/dmpalarm/dao/AlarmLogMapper.java
  14. 15 0
      src/main/java/com/persagy/apm/dmpalarm/dao/AlarmRecordMapper.java
  15. 15 0
      src/main/java/com/persagy/apm/dmpalarm/dao/AlarmTargetMapper.java
  16. 59 0
      src/main/java/com/persagy/apm/dmpalarm/model/AlarmComment.java
  17. 92 0
      src/main/java/com/persagy/apm/dmpalarm/model/AlarmConfig.java
  18. 80 0
      src/main/java/com/persagy/apm/dmpalarm/model/AlarmItem.java
  19. 68 0
      src/main/java/com/persagy/apm/dmpalarm/model/AlarmLog.java
  20. 140 0
      src/main/java/com/persagy/apm/dmpalarm/model/AlarmRecord.java
  21. 72 0
      src/main/java/com/persagy/apm/dmpalarm/model/AlarmTarget.java
  22. 73 0
      src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmCommentTool.java
  23. 73 0
      src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmConfigTool.java
  24. 73 0
      src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmItemTool.java
  25. 73 0
      src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmLogTool.java
  26. 73 0
      src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmRecordTool.java
  27. 73 0
      src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmTargetTool.java
  28. 48 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmCommentDTO.java
  29. 84 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmConfigDTO.java
  30. 72 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmItemDTO.java
  31. 60 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmLogDTO.java
  32. 132 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmRecordDTO.java
  33. 64 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmTargetDTO.java
  34. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmCommentDTO.java
  35. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmConfigDTO.java
  36. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmItemDTO.java
  37. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmLogDTO.java
  38. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmRecordDTO.java
  39. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmTargetDTO.java
  40. 45 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmCommentDTO.java
  41. 72 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmConfigDTO.java
  42. 63 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmItemDTO.java
  43. 54 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmLogDTO.java
  44. 108 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmRecordDTO.java
  45. 57 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmTargetDTO.java
  46. 39 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmCommentDTO.java
  47. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmCommentDetailDTO.java
  48. 66 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmConfigDTO.java
  49. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmConfigDetailDTO.java
  50. 57 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmItemDTO.java
  51. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmItemDetailDTO.java
  52. 48 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmLogDTO.java
  53. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmLogDetailDTO.java
  54. 102 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmRecordDTO.java
  55. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmRecordDetailDTO.java
  56. 51 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmTargetDTO.java
  57. 19 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmTargetDetailDTO.java
  58. 52 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmCommentDTO.java
  59. 88 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmConfigDTO.java
  60. 76 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmItemDTO.java
  61. 64 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmLogDTO.java
  62. 136 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmRecordDTO.java
  63. 68 0
      src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmTargetDTO.java
  64. 44 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmCommentItemVO.java
  65. 44 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmCommentListItemVO.java
  66. 71 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmConfigItemVO.java
  67. 71 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmConfigListItemVO.java
  68. 62 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmItemItemVO.java
  69. 62 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmItemListItemVO.java
  70. 53 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmLogItemVO.java
  71. 53 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmLogListItemVO.java
  72. 107 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmRecordItemVO.java
  73. 107 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmRecordListItemVO.java
  74. 56 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmTargetItemVO.java
  75. 56 0
      src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmTargetListItemVO.java
  76. 75 0
      src/main/java/com/persagy/apm/dmpalarm/service/IAlarmCommentService.java
  77. 75 0
      src/main/java/com/persagy/apm/dmpalarm/service/IAlarmConfigService.java
  78. 75 0
      src/main/java/com/persagy/apm/dmpalarm/service/IAlarmItemService.java
  79. 75 0
      src/main/java/com/persagy/apm/dmpalarm/service/IAlarmLogService.java
  80. 75 0
      src/main/java/com/persagy/apm/dmpalarm/service/IAlarmRecordService.java
  81. 75 0
      src/main/java/com/persagy/apm/dmpalarm/service/IAlarmTargetService.java
  82. 247 0
      src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmCommentServiceImpl.java
  83. 329 0
      src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmConfigServiceImpl.java
  84. 305 0
      src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmItemServiceImpl.java
  85. 269 0
      src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmLogServiceImpl.java
  86. 431 0
      src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmRecordServiceImpl.java
  87. 281 0
      src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmTargetServiceImpl.java
  88. 72 0
      src/main/resources/bootstrap.yml
  89. 1482 0
      src/main/resources/db/init/data.sql
  90. 154 0
      src/main/resources/db/init/table.sql
  91. 17 0
      src/main/resources/mapper/AlarmCommentMapper.xml
  92. 26 0
      src/main/resources/mapper/AlarmConfigMapper.xml
  93. 23 0
      src/main/resources/mapper/AlarmItemMapper.xml
  94. 20 0
      src/main/resources/mapper/AlarmLogMapper.xml
  95. 38 0
      src/main/resources/mapper/AlarmRecordMapper.xml
  96. 21 0
      src/main/resources/mapper/AlarmTargetMapper.xml

+ 9 - 0
.gitignore

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

+ 109 - 0
pom.xml

@@ -0,0 +1,109 @@
+<?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>v1.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>energy-dmp-alarm</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+
+    <repositories>
+        <repository>
+            <id>snapshot</id>
+            <name>snapshot Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/snapshots/</url>
+            <snapshots>
+                <enabled>true</enabled>
+                <updatePolicy>always</updatePolicy>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>persagy</id>
+            <name>persagy Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+        <repository>
+            <id>integrated</id>
+            <name>releases Repository</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/integrated/</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>
+
+        <dependency>
+            <groupId>com.persagy</groupId>
+            <artifactId>apm-mybatis</artifactId>
+        </dependency>
+
+    </dependencies>
+
+</project>

+ 13 - 0
readme.md

@@ -0,0 +1,13 @@
+# 报警数据中台升级
+- 基于集成框架新建项目 李兴、高宇 0.5
+  - apm-basics
+  - mybatis-plus
+  - integr.gitignoreated系列
+- 将数据中台的代码复制到新项目中 高宇、泓博 3
+  - 解决依赖包引入问题
+- 修改数据中台service层query方法实现 高宇、泓博 2
+  - 将查询入参转换为mybatis-plus的查询条件
+- 自测 李兴、高宇、泓博 1
+  - postman调用中台所有接口,验证是否有问题
+- 测试
+  - 提供给测试所有中台的接口,采用压测的方法测试

+ 92 - 0
src/main/java/com/persagy/apm/dmpalarm/controller/AlarmCommentController.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.dmpalarm.controller;
+
+import com.persagy.apm.dmpalarm.service.IAlarmCommentService;
+
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.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-12-09 10:43:56
+ */
+@Api(tags = "报警批注") 
+@Validated
+@RestController
+@RequestMapping("alarmComments")
+public class AlarmCommentController {
+    @Autowired
+    private IAlarmCommentService alarmCommentService;
+
+	@ApiOperation(value = "创建报警批注")
+	@PostMapping("/create")
+	public CommonResult<ApmResponseUpsertVO> createAlarmComment(
+	        @Valid @RequestBody AddAlarmCommentDTO addAlarmCommentDTO) {
+        String id = alarmCommentService.createAlarmComment(addAlarmCommentDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+	}
+	
+	@ApiOperation(value = "报警批注详情")
+    @PostMapping("/get")
+    public CommonResult<AlarmCommentItemVO> queryAlarmCommentDetail(
+            @Valid @RequestBody QueryAlarmCommentDetailDTO queryAlarmCommentDetailDTO) {
+        AlarmComment alarmComment = alarmCommentService.queryAlarmCommentDetail(queryAlarmCommentDetailDTO.getId());
+        AlarmCommentItemVO alarmCommentItemVO = ConvertAlarmCommentTool.INSTANCE.convert2ResponseItemDTO(alarmComment);
+        return ResultHelper.single(alarmCommentItemVO);
+    }
+
+
+    @ApiOperation(value = "更新报警批注")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateAlarmComment(
+            @Valid @RequestBody UpdateAlarmCommentDTO updateAlarmCommentDTO) {
+        alarmCommentService.updateAlarmComment(updateAlarmCommentDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateAlarmCommentDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除报警批注")
+    @PostMapping("/delete")
+    public CommonResult deleteAlarmComment(
+            @RequestBody @Valid DeleteAlarmCommentDTO deleteAlarmCommentDTO) {
+        alarmCommentService.deleteAlarmComment(deleteAlarmCommentDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "报警批注列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<AlarmCommentListItemVO>> queryAlarmComment(
+            @Valid @RequestBody QueryAlarmCommentDTO queryAlarmCommentDTO) {
+        List<AlarmComment> alarmCommentList = alarmCommentService.queryAlarmCommentList(queryAlarmCommentDTO);
+        List<AlarmCommentListItemVO> resultList = ConvertAlarmCommentTool.INSTANCE.convert2List(alarmCommentList);
+        return ResultHelper.multi(resultList);
+    }
+    
+    //@ApiOperation(value = "报警批注列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<AlarmCommentListItemVO>> queryAlarmComment(
+    //        @Valid @RequestBody PageQueryAlarmCommentDTO pageQueryAlarmCommentDTO) {
+    //    IPage<AlarmComment> pagedList = alarmCommentService.pageQueryAlarmComment(pageQueryAlarmCommentDTO);
+    //    IPage<AlarmCommentListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertAlarmCommentTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,AlarmComment实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 92 - 0
src/main/java/com/persagy/apm/dmpalarm/controller/AlarmConfigController.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.dmpalarm.controller;
+
+import com.persagy.apm.dmpalarm.service.IAlarmConfigService;
+
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.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-12-09 10:43:56
+ */
+@Api(tags = "报警定义") 
+@Validated
+@RestController
+@RequestMapping("alarmConfigs")
+public class AlarmConfigController {
+    @Autowired
+    private IAlarmConfigService alarmConfigService;
+
+	@ApiOperation(value = "创建报警定义")
+	@PostMapping("/create")
+	public CommonResult<ApmResponseUpsertVO> createAlarmConfig(
+	        @Valid @RequestBody AddAlarmConfigDTO addAlarmConfigDTO) {
+        String id = alarmConfigService.createAlarmConfig(addAlarmConfigDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+	}
+	
+	@ApiOperation(value = "报警定义详情")
+    @PostMapping("/get")
+    public CommonResult<AlarmConfigItemVO> queryAlarmConfigDetail(
+            @Valid @RequestBody QueryAlarmConfigDetailDTO queryAlarmConfigDetailDTO) {
+        AlarmConfig alarmConfig = alarmConfigService.queryAlarmConfigDetail(queryAlarmConfigDetailDTO.getId());
+        AlarmConfigItemVO alarmConfigItemVO = ConvertAlarmConfigTool.INSTANCE.convert2ResponseItemDTO(alarmConfig);
+        return ResultHelper.single(alarmConfigItemVO);
+    }
+
+
+    @ApiOperation(value = "更新报警定义")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateAlarmConfig(
+            @Valid @RequestBody UpdateAlarmConfigDTO updateAlarmConfigDTO) {
+        alarmConfigService.updateAlarmConfig(updateAlarmConfigDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateAlarmConfigDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除报警定义")
+    @PostMapping("/delete")
+    public CommonResult deleteAlarmConfig(
+            @RequestBody @Valid DeleteAlarmConfigDTO deleteAlarmConfigDTO) {
+        alarmConfigService.deleteAlarmConfig(deleteAlarmConfigDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "报警定义列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<AlarmConfigListItemVO>> queryAlarmConfig(
+            @Valid @RequestBody QueryAlarmConfigDTO queryAlarmConfigDTO) {
+        List<AlarmConfig> alarmConfigList = alarmConfigService.queryAlarmConfigList(queryAlarmConfigDTO);
+        List<AlarmConfigListItemVO> resultList = ConvertAlarmConfigTool.INSTANCE.convert2List(alarmConfigList);
+        return ResultHelper.multi(resultList);
+    }
+    
+    //@ApiOperation(value = "报警定义列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<AlarmConfigListItemVO>> queryAlarmConfig(
+    //        @Valid @RequestBody PageQueryAlarmConfigDTO pageQueryAlarmConfigDTO) {
+    //    IPage<AlarmConfig> pagedList = alarmConfigService.pageQueryAlarmConfig(pageQueryAlarmConfigDTO);
+    //    IPage<AlarmConfigListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertAlarmConfigTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,AlarmConfig实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 92 - 0
src/main/java/com/persagy/apm/dmpalarm/controller/AlarmItemController.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.dmpalarm.controller;
+
+import com.persagy.apm.dmpalarm.service.IAlarmItemService;
+
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.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-12-09 10:43:56
+ */
+@Api(tags = "报警条目") 
+@Validated
+@RestController
+@RequestMapping("alarmItems")
+public class AlarmItemController {
+    @Autowired
+    private IAlarmItemService alarmItemService;
+
+	@ApiOperation(value = "创建报警条目")
+	@PostMapping("/create")
+	public CommonResult<ApmResponseUpsertVO> createAlarmItem(
+	        @Valid @RequestBody AddAlarmItemDTO addAlarmItemDTO) {
+        String id = alarmItemService.createAlarmItem(addAlarmItemDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+	}
+	
+	@ApiOperation(value = "报警条目详情")
+    @PostMapping("/get")
+    public CommonResult<AlarmItemItemVO> queryAlarmItemDetail(
+            @Valid @RequestBody QueryAlarmItemDetailDTO queryAlarmItemDetailDTO) {
+        AlarmItem alarmItem = alarmItemService.queryAlarmItemDetail(queryAlarmItemDetailDTO.getId());
+        AlarmItemItemVO alarmItemItemVO = ConvertAlarmItemTool.INSTANCE.convert2ResponseItemDTO(alarmItem);
+        return ResultHelper.single(alarmItemItemVO);
+    }
+
+
+    @ApiOperation(value = "更新报警条目")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateAlarmItem(
+            @Valid @RequestBody UpdateAlarmItemDTO updateAlarmItemDTO) {
+        alarmItemService.updateAlarmItem(updateAlarmItemDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateAlarmItemDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除报警条目")
+    @PostMapping("/delete")
+    public CommonResult deleteAlarmItem(
+            @RequestBody @Valid DeleteAlarmItemDTO deleteAlarmItemDTO) {
+        alarmItemService.deleteAlarmItem(deleteAlarmItemDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "报警条目列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<AlarmItemListItemVO>> queryAlarmItem(
+            @Valid @RequestBody QueryAlarmItemDTO queryAlarmItemDTO) {
+        List<AlarmItem> alarmItemList = alarmItemService.queryAlarmItemList(queryAlarmItemDTO);
+        List<AlarmItemListItemVO> resultList = ConvertAlarmItemTool.INSTANCE.convert2List(alarmItemList);
+        return ResultHelper.multi(resultList);
+    }
+    
+    //@ApiOperation(value = "报警条目列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<AlarmItemListItemVO>> queryAlarmItem(
+    //        @Valid @RequestBody PageQueryAlarmItemDTO pageQueryAlarmItemDTO) {
+    //    IPage<AlarmItem> pagedList = alarmItemService.pageQueryAlarmItem(pageQueryAlarmItemDTO);
+    //    IPage<AlarmItemListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertAlarmItemTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,AlarmItem实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 92 - 0
src/main/java/com/persagy/apm/dmpalarm/controller/AlarmLogController.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.dmpalarm.controller;
+
+import com.persagy.apm.dmpalarm.service.IAlarmLogService;
+
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.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-12-09 10:43:56
+ */
+@Api(tags = "报警日志") 
+@Validated
+@RestController
+@RequestMapping("alarmLogs")
+public class AlarmLogController {
+    @Autowired
+    private IAlarmLogService alarmLogService;
+
+	@ApiOperation(value = "创建报警日志")
+	@PostMapping("/create")
+	public CommonResult<ApmResponseUpsertVO> createAlarmLog(
+	        @Valid @RequestBody AddAlarmLogDTO addAlarmLogDTO) {
+        String id = alarmLogService.createAlarmLog(addAlarmLogDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+	}
+	
+	@ApiOperation(value = "报警日志详情")
+    @PostMapping("/get")
+    public CommonResult<AlarmLogItemVO> queryAlarmLogDetail(
+            @Valid @RequestBody QueryAlarmLogDetailDTO queryAlarmLogDetailDTO) {
+        AlarmLog alarmLog = alarmLogService.queryAlarmLogDetail(queryAlarmLogDetailDTO.getId());
+        AlarmLogItemVO alarmLogItemVO = ConvertAlarmLogTool.INSTANCE.convert2ResponseItemDTO(alarmLog);
+        return ResultHelper.single(alarmLogItemVO);
+    }
+
+
+    @ApiOperation(value = "更新报警日志")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateAlarmLog(
+            @Valid @RequestBody UpdateAlarmLogDTO updateAlarmLogDTO) {
+        alarmLogService.updateAlarmLog(updateAlarmLogDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateAlarmLogDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除报警日志")
+    @PostMapping("/delete")
+    public CommonResult deleteAlarmLog(
+            @RequestBody @Valid DeleteAlarmLogDTO deleteAlarmLogDTO) {
+        alarmLogService.deleteAlarmLog(deleteAlarmLogDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "报警日志列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<AlarmLogListItemVO>> queryAlarmLog(
+            @Valid @RequestBody QueryAlarmLogDTO queryAlarmLogDTO) {
+        List<AlarmLog> alarmLogList = alarmLogService.queryAlarmLogList(queryAlarmLogDTO);
+        List<AlarmLogListItemVO> resultList = ConvertAlarmLogTool.INSTANCE.convert2List(alarmLogList);
+        return ResultHelper.multi(resultList);
+    }
+    
+    //@ApiOperation(value = "报警日志列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<AlarmLogListItemVO>> queryAlarmLog(
+    //        @Valid @RequestBody PageQueryAlarmLogDTO pageQueryAlarmLogDTO) {
+    //    IPage<AlarmLog> pagedList = alarmLogService.pageQueryAlarmLog(pageQueryAlarmLogDTO);
+    //    IPage<AlarmLogListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertAlarmLogTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,AlarmLog实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 92 - 0
src/main/java/com/persagy/apm/dmpalarm/controller/AlarmRecordController.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.dmpalarm.controller;
+
+import com.persagy.apm.dmpalarm.service.IAlarmRecordService;
+
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.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-12-09 10:43:56
+ */
+@Api(tags = "报警记录") 
+@Validated
+@RestController
+@RequestMapping("alarmRecords")
+public class AlarmRecordController {
+    @Autowired
+    private IAlarmRecordService alarmRecordService;
+
+	@ApiOperation(value = "创建报警记录")
+	@PostMapping("/create")
+	public CommonResult<ApmResponseUpsertVO> createAlarmRecord(
+	        @Valid @RequestBody AddAlarmRecordDTO addAlarmRecordDTO) {
+        String id = alarmRecordService.createAlarmRecord(addAlarmRecordDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+	}
+	
+	@ApiOperation(value = "报警记录详情")
+    @PostMapping("/get")
+    public CommonResult<AlarmRecordItemVO> queryAlarmRecordDetail(
+            @Valid @RequestBody QueryAlarmRecordDetailDTO queryAlarmRecordDetailDTO) {
+        AlarmRecord alarmRecord = alarmRecordService.queryAlarmRecordDetail(queryAlarmRecordDetailDTO.getId());
+        AlarmRecordItemVO alarmRecordItemVO = ConvertAlarmRecordTool.INSTANCE.convert2ResponseItemDTO(alarmRecord);
+        return ResultHelper.single(alarmRecordItemVO);
+    }
+
+
+    @ApiOperation(value = "更新报警记录")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateAlarmRecord(
+            @Valid @RequestBody UpdateAlarmRecordDTO updateAlarmRecordDTO) {
+        alarmRecordService.updateAlarmRecord(updateAlarmRecordDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateAlarmRecordDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除报警记录")
+    @PostMapping("/delete")
+    public CommonResult deleteAlarmRecord(
+            @RequestBody @Valid DeleteAlarmRecordDTO deleteAlarmRecordDTO) {
+        alarmRecordService.deleteAlarmRecord(deleteAlarmRecordDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "报警记录列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<AlarmRecordListItemVO>> queryAlarmRecord(
+            @Valid @RequestBody QueryAlarmRecordDTO queryAlarmRecordDTO) {
+        List<AlarmRecord> alarmRecordList = alarmRecordService.queryAlarmRecordList(queryAlarmRecordDTO);
+        List<AlarmRecordListItemVO> resultList = ConvertAlarmRecordTool.INSTANCE.convert2List(alarmRecordList);
+        return ResultHelper.multi(resultList);
+    }
+    
+    //@ApiOperation(value = "报警记录列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<AlarmRecordListItemVO>> queryAlarmRecord(
+    //        @Valid @RequestBody PageQueryAlarmRecordDTO pageQueryAlarmRecordDTO) {
+    //    IPage<AlarmRecord> pagedList = alarmRecordService.pageQueryAlarmRecord(pageQueryAlarmRecordDTO);
+    //    IPage<AlarmRecordListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertAlarmRecordTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,AlarmRecord实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 92 - 0
src/main/java/com/persagy/apm/dmpalarm/controller/AlarmTargetController.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.dmpalarm.controller;
+
+import com.persagy.apm.dmpalarm.service.IAlarmTargetService;
+
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.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-12-09 10:43:56
+ */
+@Api(tags = "报警匹配条件") 
+@Validated
+@RestController
+@RequestMapping("alarmTargets")
+public class AlarmTargetController {
+    @Autowired
+    private IAlarmTargetService alarmTargetService;
+
+	@ApiOperation(value = "创建报警匹配条件")
+	@PostMapping("/create")
+	public CommonResult<ApmResponseUpsertVO> createAlarmTarget(
+	        @Valid @RequestBody AddAlarmTargetDTO addAlarmTargetDTO) {
+        String id = alarmTargetService.createAlarmTarget(addAlarmTargetDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(id));
+	}
+	
+	@ApiOperation(value = "报警匹配条件详情")
+    @PostMapping("/get")
+    public CommonResult<AlarmTargetItemVO> queryAlarmTargetDetail(
+            @Valid @RequestBody QueryAlarmTargetDetailDTO queryAlarmTargetDetailDTO) {
+        AlarmTarget alarmTarget = alarmTargetService.queryAlarmTargetDetail(queryAlarmTargetDetailDTO.getId());
+        AlarmTargetItemVO alarmTargetItemVO = ConvertAlarmTargetTool.INSTANCE.convert2ResponseItemDTO(alarmTarget);
+        return ResultHelper.single(alarmTargetItemVO);
+    }
+
+
+    @ApiOperation(value = "更新报警匹配条件")
+    @PostMapping("/update")
+    public CommonResult<ApmResponseUpsertVO> updateAlarmTarget(
+            @Valid @RequestBody UpdateAlarmTargetDTO updateAlarmTargetDTO) {
+        alarmTargetService.updateAlarmTarget(updateAlarmTargetDTO);
+        return ResultHelper.single(new ApmResponseUpsertVO(updateAlarmTargetDTO.getId()));
+    }
+
+
+    @ApiOperation(value = "删除报警匹配条件")
+    @PostMapping("/delete")
+    public CommonResult deleteAlarmTarget(
+            @RequestBody @Valid DeleteAlarmTargetDTO deleteAlarmTargetDTO) {
+        alarmTargetService.deleteAlarmTarget(deleteAlarmTargetDTO.getId());
+        return ResultHelper.success();
+    }
+
+
+    @ApiOperation(value = "报警匹配条件列表")
+    @PostMapping("/query")
+    public CommonResult<PageList<AlarmTargetListItemVO>> queryAlarmTarget(
+            @Valid @RequestBody QueryAlarmTargetDTO queryAlarmTargetDTO) {
+        List<AlarmTarget> alarmTargetList = alarmTargetService.queryAlarmTargetList(queryAlarmTargetDTO);
+        List<AlarmTargetListItemVO> resultList = ConvertAlarmTargetTool.INSTANCE.convert2List(alarmTargetList);
+        return ResultHelper.multi(resultList);
+    }
+    
+    //@ApiOperation(value = "报警匹配条件列表, 分页查询")
+    //@PostMapping("/query")
+    //public CommonResult<PageList<AlarmTargetListItemVO>> queryAlarmTarget(
+    //        @Valid @RequestBody PageQueryAlarmTargetDTO pageQueryAlarmTargetDTO) {
+    //    IPage<AlarmTarget> pagedList = alarmTargetService.pageQueryAlarmTarget(pageQueryAlarmTargetDTO);
+    //    IPage<AlarmTargetListItemVO> pagedResultList = pagedList.convert(item -> {
+    //        try {
+    //           return ConvertAlarmTargetTool.INSTANCE.convert2ResponseListItemDTO(item);
+    //        } catch (Exception e) {
+    //            throw new IllegalArgumentException("分页查询,AlarmTarget实体类转换为列表对象发生异常", e);
+    //        }
+    //    });
+    //    return ResultHelper.multi(pagedResultList);
+    //}
+}
+

+ 15 - 0
src/main/java/com/persagy/apm/dmpalarm/dao/AlarmCommentMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.dmpalarm.dao;
+
+import com.persagy.apm.dmpalarm.model.AlarmComment;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 报警批注(AlarmComment)dao层
+ * @author lixing
+ * @version V1.0 2021-12-09 10:46:43
+ */
+@Mapper
+public interface AlarmCommentMapper extends BaseMapper<AlarmComment>{
+
+}

+ 15 - 0
src/main/java/com/persagy/apm/dmpalarm/dao/AlarmConfigMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.dmpalarm.dao;
+
+import com.persagy.apm.dmpalarm.model.AlarmConfig;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 报警定义(AlarmConfig)dao层
+ * @author lixing
+ * @version V1.0 2021-12-09 10:46:43
+ */
+@Mapper
+public interface AlarmConfigMapper extends BaseMapper<AlarmConfig>{
+
+}

+ 15 - 0
src/main/java/com/persagy/apm/dmpalarm/dao/AlarmItemMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.dmpalarm.dao;
+
+import com.persagy.apm.dmpalarm.model.AlarmItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 报警条目(AlarmItem)dao层
+ * @author lixing
+ * @version V1.0 2021-12-09 10:46:43
+ */
+@Mapper
+public interface AlarmItemMapper extends BaseMapper<AlarmItem>{
+
+}

+ 15 - 0
src/main/java/com/persagy/apm/dmpalarm/dao/AlarmLogMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.dmpalarm.dao;
+
+import com.persagy.apm.dmpalarm.model.AlarmLog;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 报警日志(AlarmLog)dao层
+ * @author lixing
+ * @version V1.0 2021-12-09 10:46:43
+ */
+@Mapper
+public interface AlarmLogMapper extends BaseMapper<AlarmLog>{
+
+}

+ 15 - 0
src/main/java/com/persagy/apm/dmpalarm/dao/AlarmRecordMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.dmpalarm.dao;
+
+import com.persagy.apm.dmpalarm.model.AlarmRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 报警记录(AlarmRecord)dao层
+ * @author lixing
+ * @version V1.0 2021-12-09 10:46:43
+ */
+@Mapper
+public interface AlarmRecordMapper extends BaseMapper<AlarmRecord>{
+
+}

+ 15 - 0
src/main/java/com/persagy/apm/dmpalarm/dao/AlarmTargetMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.apm.dmpalarm.dao;
+
+import com.persagy.apm.dmpalarm.model.AlarmTarget;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 报警匹配条件(AlarmTarget)dao层
+ * @author lixing
+ * @version V1.0 2021-12-09 10:46:43
+ */
+@Mapper
+public interface AlarmTargetMapper extends BaseMapper<AlarmTarget>{
+
+}

+ 59 - 0
src/main/java/com/persagy/apm/dmpalarm/model/AlarmComment.java

@@ -0,0 +1,59 @@
+package com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警批注(AlarmComment)实体类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:53
+ */
+@Data
+@ApiModel(description = "报警批注")
+public class AlarmComment implements Serializable {
+    private static final long serialVersionUID = -25604656657950729L;
+
+    private String id;
+
+    @ApiModelProperty("报警记录id")
+    private String recordId;
+    
+    @ApiModelProperty("批注内容")
+    private String content;
+    
+    @ApiModelProperty("创建人")
+    private String createUser;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("更新人")
+    private String updateUser;
+
+    private int valid;
+    
+
+    public static String PROP_RECORD_ID = "record_id";
+    public static String PROP_CONTENT = "content";
+    public static String PROP_CREATE_USER = "create_user";
+    public static String PROP_PROJECT_ID = "project_id";
+    public static String PROP_GROUP_CODE = "group_code";
+    public static String PROP_CREATE_TIME = "create_time";
+    public static String PROP_UPDATE_TIME = "update_time";
+    public static String PROP_UPDATE_USER = "update_user";
+
+}

+ 92 - 0
src/main/java/com/persagy/apm/dmpalarm/model/AlarmConfig.java

@@ -0,0 +1,92 @@
+package com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警定义(AlarmConfig)实体类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:53
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "报警定义")
+public class AlarmConfig extends AuditableEntity<AlarmConfig> implements Serializable {
+    private static final long serialVersionUID = -50363859666957294L;
+
+    @ApiModelProperty("对象id")
+    private String objId;
+    
+    @ApiModelProperty("对象类型编码")
+    private String classCode;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("报警条目编码")
+    private String itemCode;
+    
+    @ApiModelProperty("报警匹配条件id")
+    private String targetId;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("备注")
+    private String remark;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
+    private Integer open;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("是否自定义")
+    private Integer userDefined;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+
+    public static String PROP_OBJ_ID = "obj_id";
+    public static String PROP_CLASS_CODE = "class_code";
+    public static String PROP_PROJECT_ID = "project_id";
+    public static String PROP_GROUP_CODE = "group_code";
+    public static String PROP_ITEM_CODE = "item_code";
+    public static String PROP_TARGET_ID = "target_id";
+    public static String PROP_CATEGORY = "category";
+    public static String PROP_LEVEL = "level";
+    public static String PROP_REMARK = "remark";
+    public static String PROP_CONDITION = "condition";
+    public static String PROP_OPEN = "open";
+    public static String PROP_CONCERN = "concern";
+    public static String PROP_USER_DEFINED = "user_defined";
+    public static String PROP_CREATE_USER = "create_user";
+    public static String PROP_CREATE_TIME = "create_time";
+    public static String PROP_UPDATE_USER = "update_user";
+    public static String PROP_UPDATE_TIME = "update_time";
+
+}

+ 80 - 0
src/main/java/com/persagy/apm/dmpalarm/model/AlarmItem.java

@@ -0,0 +1,80 @@
+package com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警条目(AlarmItem)实体类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:49
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "报警条目")
+public class AlarmItem extends AuditableEntity<AlarmItem> implements Serializable {
+    private static final long serialVersionUID = 683658832546296259L;
+
+    @ApiModelProperty("报警条目编码")
+    private String code;
+    
+    @ApiModelProperty("报警条目名称")
+    private String name;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("备注")
+    private String remark;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("处理算法")
+    private String dealFun;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("项目id,0代表通用")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码,0代表通用")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("应用id")
+    private String appId;
+    
+
+    public static String PROP_CODE = "code";
+    public static String PROP_NAME = "name";
+    public static String PROP_CATEGORY = "category";
+    public static String PROP_LEVEL = "level";
+    public static String PROP_REMARK = "remark";
+    public static String PROP_CONDITION = "condition";
+    public static String PROP_DEAL_FUN = "deal_fun";
+    public static String PROP_CREATE_USER = "create_user";
+    public static String PROP_PROJECT_ID = "project_id";
+    public static String PROP_GROUP_CODE = "group_code";
+    public static String PROP_CREATE_TIME = "create_time";
+    public static String PROP_UPDATE_USER = "update_user";
+    public static String PROP_UPDATE_TIME = "update_time";
+    public static String PROP_APP_ID = "app_id";
+
+}

+ 68 - 0
src/main/java/com/persagy/apm/dmpalarm/model/AlarmLog.java

@@ -0,0 +1,68 @@
+package com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警日志(AlarmLog)实体类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:53
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "报警日志")
+public class AlarmLog extends AuditableEntity<AlarmLog> implements Serializable {
+    private static final long serialVersionUID = 618980609835731542L;
+
+    @ApiModelProperty("报警记录id")
+    private String recordId;
+    
+    @ApiModelProperty("操作类型(报警状态、报警性质、报警处理方式、报警处理状态)")
+    private String type;
+    
+    @ApiModelProperty("报警性质")
+    private Integer nature;
+    
+    @ApiModelProperty("修改前报警记录的状态")
+    private Integer before;
+    
+    @ApiModelProperty("修改后报警记录的状态")
+    private Integer after;
+    
+    @ApiModelProperty("备注")
+    private Object remark;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("创建人")
+    private String createUser;
+    
+
+    public static String PROP_RECORD_ID = "record_id";
+    public static String PROP_TYPE = "type";
+    public static String PROP_NATURE = "nature";
+    public static String PROP_BEFORE = "before";
+    public static String PROP_AFTER = "after";
+    public static String PROP_REMARK = "remark";
+    public static String PROP_PROJECT_ID = "project_id";
+    public static String PROP_GROUP_CODE = "group_code";
+    public static String PROP_CREATE_TIME = "create_time";
+    public static String PROP_UPDATE_TIME = "update_time";
+    public static String PROP_CREATE_USER = "create_user";
+
+}

+ 140 - 0
src/main/java/com/persagy/apm/dmpalarm/model/AlarmRecord.java

@@ -0,0 +1,140 @@
+package com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警记录(AlarmRecord)实体类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:53
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "报警记录")
+public class AlarmRecord extends AuditableEntity<AlarmRecord> implements Serializable {
+    private static final long serialVersionUID = -68361447505702871L;
+
+    @ApiModelProperty("报警条目编码")
+    private String itemCode;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("对象id")
+    private String objId;
+    
+    @ApiModelProperty("对象类型编码")
+    private String classCode;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("报警描述")
+    private String remark;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("报警名称")
+    private String name;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("报警状态")
+    private Integer state;
+    
+    @ApiModelProperty("有效期开始时间")
+    private Date effectStartTime;
+    
+    @ApiModelProperty("有效期结束时间")
+    private Date effectEndTime;
+    
+    @ApiModelProperty("报警性质")
+    private Integer nature;
+    
+    @ApiModelProperty("处理方式")
+    private Integer treatMode;
+    
+    @ApiModelProperty("处理状态")
+    private Integer treatState;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("触发和恢复条件")
+    private Object condition;
+    
+    @ApiModelProperty("触发值信息")
+    private Object triggerInfo;
+    
+    @ApiModelProperty("恢复值信息")
+    private Object endInfo;
+    
+    @ApiModelProperty("报警触发时间")
+    private Date triggerTime;
+    
+    @ApiModelProperty("恢复时间")
+    private Date endTime;
+    
+    @ApiModelProperty("工单id")
+    private String orderId;
+    
+    @ApiModelProperty("工单状态")
+    private String orderState;
+    
+    @ApiModelProperty("补充说明")
+    private Object supplement;
+    
+    @ApiModelProperty("匹配规则id")
+    private String targetId;
+    
+
+    public static String PROP_ITEM_CODE = "item_code";
+    public static String PROP_PROJECT_ID = "project_id";
+    public static String PROP_OBJ_ID = "obj_id";
+    public static String PROP_CLASS_CODE = "class_code";
+    public static String PROP_LEVEL = "level";
+    public static String PROP_REMARK = "remark";
+    public static String PROP_CREATE_USER = "create_user";
+    public static String PROP_CREATE_TIME = "create_time";
+    public static String PROP_UPDATE_USER = "update_user";
+    public static String PROP_UPDATE_TIME = "update_time";
+    public static String PROP_NAME = "name";
+    public static String PROP_CATEGORY = "category";
+    public static String PROP_CONCERN = "concern";
+    public static String PROP_STATE = "state";
+    public static String PROP_EFFECT_START_TIME = "effect_start_time";
+    public static String PROP_EFFECT_END_TIME = "effect_end_time";
+    public static String PROP_NATURE = "nature";
+    public static String PROP_TREAT_MODE = "treat_mode";
+    public static String PROP_TREAT_STATE = "treat_state";
+    public static String PROP_GROUP_CODE = "group_code";
+    public static String PROP_CONDITION = "condition";
+    public static String PROP_TRIGGER_INFO = "trigger_info";
+    public static String PROP_END_INFO = "end_info";
+    public static String PROP_TRIGGER_TIME = "trigger_time";
+    public static String PROP_END_TIME = "end_time";
+    public static String PROP_ORDER_ID = "order_id";
+    public static String PROP_ORDER_STATE = "order_state";
+    public static String PROP_SUPPLEMENT = "supplement";
+    public static String PROP_TARGET_ID = "target_id";
+
+}

+ 72 - 0
src/main/java/com/persagy/apm/dmpalarm/model/AlarmTarget.java

@@ -0,0 +1,72 @@
+package com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警匹配条件(AlarmTarget)实体类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:53
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(description = "报警匹配条件")
+public class AlarmTarget extends AuditableEntity<AlarmTarget> implements Serializable {
+    private static final long serialVersionUID = 584249238241159229L;
+
+    @ApiModelProperty("报警条目id")
+    private String itemCode;
+    
+    @ApiModelProperty("对象类型")
+    private String classCode;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("报警等级")
+    private String level;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("屏蔽状态(0:不屏蔽,1:屏蔽)")
+    private Integer open;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+
+    public static String PROP_ITEM_CODE = "item_code";
+    public static String PROP_CLASS_CODE = "class_code";
+    public static String PROP_CONDITION = "condition";
+    public static String PROP_LEVEL = "level";
+    public static String PROP_CONCERN = "concern";
+    public static String PROP_OPEN = "open";
+    public static String PROP_CREATE_USER = "create_user";
+    public static String PROP_CREATE_TIME = "create_time";
+    public static String PROP_UPDATE_USER = "update_user";
+    public static String PROP_UPDATE_TIME = "update_time";
+    public static String PROP_PROJECT_ID = "project_id";
+    public static String PROP_GROUP_CODE = "group_code";
+
+}

+ 73 - 0
src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmCommentTool.java

@@ -0,0 +1,73 @@
+package com.persagy.apm.dmpalarm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 报警批注(AlarmComment) dto、vo、do转换工具类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:47:10
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertAlarmCommentTool {
+
+    ConvertAlarmCommentTool INSTANCE = Mappers.getMapper(ConvertAlarmCommentTool.class);
+    
+    /**
+    * do转换为ResponseItemVO
+    *
+    * @param alarmComment do对象
+    * @return ResponseItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmCommentItemVO convert2ResponseItemDTO(AlarmComment alarmComment);
+    
+    /**
+    * do转换为ResponseListItemVO
+    *
+    * @param alarmComment do对象
+    * @return ResponseListItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmCommentListItemVO convert2ResponseListItemDTO(AlarmComment alarmComment);
+
+    /**
+    * do列表转换为ResponseListItemVO列表
+    *
+    * @param alarmCommentList do列表
+    * @return ResponseListItemVO列表
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    List<AlarmCommentListItemVO> convert2List(List<AlarmComment> alarmCommentList);
+    
+    /**
+    * addDTO转换为do
+    *
+    * @param addAlarmCommentDTO addDTO
+    * @return 要创建的do对象 
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmComment convertAddDto2Entity(AddAlarmCommentDTO addAlarmCommentDTO);
+    
+    /**
+    * updateDTO转换为实体
+    *
+    * @param alarmComment 更新前的do对象
+    * @param updateAlarmCommentDTO updateDTO
+    * @return 更新后的do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmComment convertUpdateDto2Entity(@MappingTarget AlarmComment alarmComment, UpdateAlarmCommentDTO updateAlarmCommentDTO);
+}
+

+ 73 - 0
src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmConfigTool.java

@@ -0,0 +1,73 @@
+package com.persagy.apm.dmpalarm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 报警定义(AlarmConfig) dto、vo、do转换工具类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:47:10
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertAlarmConfigTool {
+
+    ConvertAlarmConfigTool INSTANCE = Mappers.getMapper(ConvertAlarmConfigTool.class);
+    
+    /**
+    * do转换为ResponseItemVO
+    *
+    * @param alarmConfig do对象
+    * @return ResponseItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmConfigItemVO convert2ResponseItemDTO(AlarmConfig alarmConfig);
+    
+    /**
+    * do转换为ResponseListItemVO
+    *
+    * @param alarmConfig do对象
+    * @return ResponseListItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmConfigListItemVO convert2ResponseListItemDTO(AlarmConfig alarmConfig);
+
+    /**
+    * do列表转换为ResponseListItemVO列表
+    *
+    * @param alarmConfigList do列表
+    * @return ResponseListItemVO列表
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    List<AlarmConfigListItemVO> convert2List(List<AlarmConfig> alarmConfigList);
+    
+    /**
+    * addDTO转换为do
+    *
+    * @param addAlarmConfigDTO addDTO
+    * @return 要创建的do对象 
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmConfig convertAddDto2Entity(AddAlarmConfigDTO addAlarmConfigDTO);
+    
+    /**
+    * updateDTO转换为实体
+    *
+    * @param alarmConfig 更新前的do对象
+    * @param updateAlarmConfigDTO updateDTO
+    * @return 更新后的do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmConfig convertUpdateDto2Entity(@MappingTarget AlarmConfig alarmConfig, UpdateAlarmConfigDTO updateAlarmConfigDTO);
+}
+

+ 73 - 0
src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmItemTool.java

@@ -0,0 +1,73 @@
+package com.persagy.apm.dmpalarm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 报警条目(AlarmItem) dto、vo、do转换工具类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:47:10
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertAlarmItemTool {
+
+    ConvertAlarmItemTool INSTANCE = Mappers.getMapper(ConvertAlarmItemTool.class);
+    
+    /**
+    * do转换为ResponseItemVO
+    *
+    * @param alarmItem do对象
+    * @return ResponseItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmItemItemVO convert2ResponseItemDTO(AlarmItem alarmItem);
+    
+    /**
+    * do转换为ResponseListItemVO
+    *
+    * @param alarmItem do对象
+    * @return ResponseListItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmItemListItemVO convert2ResponseListItemDTO(AlarmItem alarmItem);
+
+    /**
+    * do列表转换为ResponseListItemVO列表
+    *
+    * @param alarmItemList do列表
+    * @return ResponseListItemVO列表
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    List<AlarmItemListItemVO> convert2List(List<AlarmItem> alarmItemList);
+    
+    /**
+    * addDTO转换为do
+    *
+    * @param addAlarmItemDTO addDTO
+    * @return 要创建的do对象 
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmItem convertAddDto2Entity(AddAlarmItemDTO addAlarmItemDTO);
+    
+    /**
+    * updateDTO转换为实体
+    *
+    * @param alarmItem 更新前的do对象
+    * @param updateAlarmItemDTO updateDTO
+    * @return 更新后的do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmItem convertUpdateDto2Entity(@MappingTarget AlarmItem alarmItem, UpdateAlarmItemDTO updateAlarmItemDTO);
+}
+

+ 73 - 0
src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmLogTool.java

@@ -0,0 +1,73 @@
+package com.persagy.apm.dmpalarm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 报警日志(AlarmLog) dto、vo、do转换工具类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:47:10
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertAlarmLogTool {
+
+    ConvertAlarmLogTool INSTANCE = Mappers.getMapper(ConvertAlarmLogTool.class);
+    
+    /**
+    * do转换为ResponseItemVO
+    *
+    * @param alarmLog do对象
+    * @return ResponseItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmLogItemVO convert2ResponseItemDTO(AlarmLog alarmLog);
+    
+    /**
+    * do转换为ResponseListItemVO
+    *
+    * @param alarmLog do对象
+    * @return ResponseListItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmLogListItemVO convert2ResponseListItemDTO(AlarmLog alarmLog);
+
+    /**
+    * do列表转换为ResponseListItemVO列表
+    *
+    * @param alarmLogList do列表
+    * @return ResponseListItemVO列表
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    List<AlarmLogListItemVO> convert2List(List<AlarmLog> alarmLogList);
+    
+    /**
+    * addDTO转换为do
+    *
+    * @param addAlarmLogDTO addDTO
+    * @return 要创建的do对象 
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmLog convertAddDto2Entity(AddAlarmLogDTO addAlarmLogDTO);
+    
+    /**
+    * updateDTO转换为实体
+    *
+    * @param alarmLog 更新前的do对象
+    * @param updateAlarmLogDTO updateDTO
+    * @return 更新后的do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmLog convertUpdateDto2Entity(@MappingTarget AlarmLog alarmLog, UpdateAlarmLogDTO updateAlarmLogDTO);
+}
+

+ 73 - 0
src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmRecordTool.java

@@ -0,0 +1,73 @@
+package com.persagy.apm.dmpalarm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 报警记录(AlarmRecord) dto、vo、do转换工具类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:47:10
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertAlarmRecordTool {
+
+    ConvertAlarmRecordTool INSTANCE = Mappers.getMapper(ConvertAlarmRecordTool.class);
+    
+    /**
+    * do转换为ResponseItemVO
+    *
+    * @param alarmRecord do对象
+    * @return ResponseItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmRecordItemVO convert2ResponseItemDTO(AlarmRecord alarmRecord);
+    
+    /**
+    * do转换为ResponseListItemVO
+    *
+    * @param alarmRecord do对象
+    * @return ResponseListItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmRecordListItemVO convert2ResponseListItemDTO(AlarmRecord alarmRecord);
+
+    /**
+    * do列表转换为ResponseListItemVO列表
+    *
+    * @param alarmRecordList do列表
+    * @return ResponseListItemVO列表
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    List<AlarmRecordListItemVO> convert2List(List<AlarmRecord> alarmRecordList);
+    
+    /**
+    * addDTO转换为do
+    *
+    * @param addAlarmRecordDTO addDTO
+    * @return 要创建的do对象 
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmRecord convertAddDto2Entity(AddAlarmRecordDTO addAlarmRecordDTO);
+    
+    /**
+    * updateDTO转换为实体
+    *
+    * @param alarmRecord 更新前的do对象
+    * @param updateAlarmRecordDTO updateDTO
+    * @return 更新后的do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmRecord convertUpdateDto2Entity(@MappingTarget AlarmRecord alarmRecord, UpdateAlarmRecordDTO updateAlarmRecordDTO);
+}
+

+ 73 - 0
src/main/java/com/persagy/apm/dmpalarm/model/ConvertAlarmTargetTool.java

@@ -0,0 +1,73 @@
+package com.persagy.apm.dmpalarm.model;
+
+import org.mapstruct.*;
+import org.mapstruct.MappingTarget;
+import org.mapstruct.factory.Mappers;
+import com.persagy.apm.dmpalarm.model.vo.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+
+import java.util.List;
+
+/**
+ * 报警匹配条件(AlarmTarget) dto、vo、do转换工具类
+ * @author lixing
+ * @version V1.0 2021-12-09 10:47:10
+ */
+@Mapper(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT,
+        nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
+public interface ConvertAlarmTargetTool {
+
+    ConvertAlarmTargetTool INSTANCE = Mappers.getMapper(ConvertAlarmTargetTool.class);
+    
+    /**
+    * do转换为ResponseItemVO
+    *
+    * @param alarmTarget do对象
+    * @return ResponseItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmTargetItemVO convert2ResponseItemDTO(AlarmTarget alarmTarget);
+    
+    /**
+    * do转换为ResponseListItemVO
+    *
+    * @param alarmTarget do对象
+    * @return ResponseListItemVO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmTargetListItemVO convert2ResponseListItemDTO(AlarmTarget alarmTarget);
+
+    /**
+    * do列表转换为ResponseListItemVO列表
+    *
+    * @param alarmTargetList do列表
+    * @return ResponseListItemVO列表
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    List<AlarmTargetListItemVO> convert2List(List<AlarmTarget> alarmTargetList);
+    
+    /**
+    * addDTO转换为do
+    *
+    * @param addAlarmTargetDTO addDTO
+    * @return 要创建的do对象 
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmTarget convertAddDto2Entity(AddAlarmTargetDTO addAlarmTargetDTO);
+    
+    /**
+    * updateDTO转换为实体
+    *
+    * @param alarmTarget 更新前的do对象
+    * @param updateAlarmTargetDTO updateDTO
+    * @return 更新后的do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:47:10
+    */
+    AlarmTarget convertUpdateDto2Entity(@MappingTarget AlarmTarget alarmTarget, UpdateAlarmTargetDTO updateAlarmTargetDTO);
+}
+

+ 48 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmCommentDTO.java

@@ -0,0 +1,48 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "创建报警批注入参")
+public class AddAlarmCommentDTO {
+    @ApiModelProperty(value = "报警记录id", required = true)
+    @NotNull(message = "报警记录id不能为空") // todo 更新校验规则
+    private String recordId;
+    
+    @ApiModelProperty(value = "批注内容", required = true)
+    @NotNull(message = "批注内容不能为空") // todo 更新校验规则
+    private String content;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    @NotNull(message = "创建人不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "更新人", required = true)
+    @NotNull(message = "更新人不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+}

+ 84 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmConfigDTO.java

@@ -0,0 +1,84 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "创建报警定义入参")
+public class AddAlarmConfigDTO {
+    @ApiModelProperty(value = "对象id", required = true)
+    @NotNull(message = "对象id不能为空") // todo 更新校验规则
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    @NotNull(message = "对象类型编码不能为空") // todo 更新校验规则
+    private String classCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String itemCode;
+    
+    @ApiModelProperty(value = "报警匹配条件id", required = true)
+    @NotNull(message = "报警匹配条件id不能为空") // todo 更新校验规则
+    private String targetId;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    @NotNull(message = "报警分类不能为空") // todo 更新校验规则
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    @NotNull(message = "严重程度不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    @NotNull(message = "备注不能为空") // todo 更新校验规则
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    @NotNull(message = "触发条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    @NotNull(message = "屏蔽状态 1-open、0- 屏蔽不能为空") // todo 更新校验规则
+    private Integer open;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    @NotNull(message = "是否重点关注不能为空") // todo 更新校验规则
+    private Integer concern;
+    
+    @ApiModelProperty(value = "是否自定义", required = true)
+    @NotNull(message = "是否自定义不能为空") // todo 更新校验规则
+    private Integer userDefined;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+}

+ 72 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmItemDTO.java

@@ -0,0 +1,72 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "创建报警条目入参")
+public class AddAlarmItemDTO {
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String code;
+    
+    @ApiModelProperty(value = "报警条目名称", required = true)
+    @NotNull(message = "报警条目名称不能为空") // todo 更新校验规则
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    @NotNull(message = "报警分类不能为空") // todo 更新校验规则
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    @NotNull(message = "严重程度不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    @NotNull(message = "备注不能为空") // todo 更新校验规则
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    @NotNull(message = "触发条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "处理算法", required = true)
+    @NotNull(message = "处理算法不能为空") // todo 更新校验规则
+    private String dealFun;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id,0代表通用", required = true)
+    @NotNull(message = "项目id,0代表通用不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码,0代表通用", required = true)
+    @NotNull(message = "集团编码,0代表通用不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "应用id", required = true)
+    @NotNull(message = "应用id不能为空") // todo 更新校验规则
+    private String appId;
+    
+}

+ 60 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmLogDTO.java

@@ -0,0 +1,60 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "创建报警日志入参")
+public class AddAlarmLogDTO {
+    @ApiModelProperty(value = "报警记录id", required = true)
+    @NotNull(message = "报警记录id不能为空") // todo 更新校验规则
+    private String recordId;
+    
+    @ApiModelProperty(value = "操作类型(报警状态、报警性质、报警处理方式、报警处理状态)", required = true)
+    @NotNull(message = "操作类型(报警状态、报警性质、报警处理方式、报警处理状态)不能为空") // todo 更新校验规则
+    private String type;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    @NotNull(message = "报警性质不能为空") // todo 更新校验规则
+    private Integer nature;
+    
+    @ApiModelProperty(value = "修改前报警记录的状态", required = true)
+    @NotNull(message = "修改前报警记录的状态不能为空") // todo 更新校验规则
+    private Integer before;
+    
+    @ApiModelProperty(value = "修改后报警记录的状态", required = true)
+    @NotNull(message = "修改后报警记录的状态不能为空") // todo 更新校验规则
+    private Integer after;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    @NotNull(message = "备注不能为空") // todo 更新校验规则
+    private Object remark;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    @NotNull(message = "创建人不能为空") // todo 更新校验规则
+    private String createUser;
+    
+}

+ 132 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmRecordDTO.java

@@ -0,0 +1,132 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "创建报警记录入参")
+public class AddAlarmRecordDTO {
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String itemCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "对象id", required = true)
+    @NotNull(message = "对象id不能为空") // todo 更新校验规则
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    @NotNull(message = "对象类型编码不能为空") // todo 更新校验规则
+    private String classCode;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    @NotNull(message = "严重程度不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "报警描述", required = true)
+    @NotNull(message = "报警描述不能为空") // todo 更新校验规则
+    private String remark;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "报警名称", required = true)
+    @NotNull(message = "报警名称不能为空") // todo 更新校验规则
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    @NotNull(message = "报警分类不能为空") // todo 更新校验规则
+    private String category;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    @NotNull(message = "是否重点关注不能为空") // todo 更新校验规则
+    private Integer concern;
+    
+    @ApiModelProperty(value = "报警状态", required = true)
+    @NotNull(message = "报警状态不能为空") // todo 更新校验规则
+    private Integer state;
+    
+    @ApiModelProperty(value = "有效期开始时间", required = true)
+    @NotNull(message = "有效期开始时间不能为空") // todo 更新校验规则
+    private Date effectStartTime;
+    
+    @ApiModelProperty(value = "有效期结束时间", required = true)
+    @NotNull(message = "有效期结束时间不能为空") // todo 更新校验规则
+    private Date effectEndTime;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    @NotNull(message = "报警性质不能为空") // todo 更新校验规则
+    private Integer nature;
+    
+    @ApiModelProperty(value = "处理方式", required = true)
+    @NotNull(message = "处理方式不能为空") // todo 更新校验规则
+    private Integer treatMode;
+    
+    @ApiModelProperty(value = "处理状态", required = true)
+    @NotNull(message = "处理状态不能为空") // todo 更新校验规则
+    private Integer treatState;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "触发和恢复条件", required = true)
+    @NotNull(message = "触发和恢复条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "触发值信息", required = true)
+    @NotNull(message = "触发值信息不能为空") // todo 更新校验规则
+    private Object triggerInfo;
+    
+    @ApiModelProperty(value = "恢复值信息", required = true)
+    @NotNull(message = "恢复值信息不能为空") // todo 更新校验规则
+    private Object endInfo;
+    
+    @ApiModelProperty(value = "报警触发时间", required = true)
+    @NotNull(message = "报警触发时间不能为空") // todo 更新校验规则
+    private Date triggerTime;
+    
+    @ApiModelProperty(value = "恢复时间", required = true)
+    @NotNull(message = "恢复时间不能为空") // todo 更新校验规则
+    private Date endTime;
+    
+    @ApiModelProperty(value = "工单id", required = true)
+    @NotNull(message = "工单id不能为空") // todo 更新校验规则
+    private String orderId;
+    
+    @ApiModelProperty(value = "工单状态", required = true)
+    @NotNull(message = "工单状态不能为空") // todo 更新校验规则
+    private String orderState;
+    
+    @ApiModelProperty(value = "补充说明", required = true)
+    @NotNull(message = "补充说明不能为空") // todo 更新校验规则
+    private Object supplement;
+    
+    @ApiModelProperty(value = "匹配规则id", required = true)
+    @NotNull(message = "匹配规则id不能为空") // todo 更新校验规则
+    private String targetId;
+    
+}

+ 64 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/AddAlarmTargetDTO.java

@@ -0,0 +1,64 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "创建报警匹配条件入参")
+public class AddAlarmTargetDTO {
+    @ApiModelProperty(value = "报警条目id", required = true)
+    @NotNull(message = "报警条目id不能为空") // todo 更新校验规则
+    private String itemCode;
+    
+    @ApiModelProperty(value = "对象类型", required = true)
+    @NotNull(message = "对象类型不能为空") // todo 更新校验规则
+    private String classCode;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    @NotNull(message = "触发条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "报警等级", required = true)
+    @NotNull(message = "报警等级不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    @NotNull(message = "是否重点关注不能为空") // todo 更新校验规则
+    private Integer concern;
+    
+    @ApiModelProperty(value = "屏蔽状态(0:不屏蔽,1:屏蔽)", required = true)
+    @NotNull(message = "屏蔽状态(0:不屏蔽,1:屏蔽)不能为空") // todo 更新校验规则
+    private Integer open;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmCommentDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "删除报警批注入参")
+public class DeleteAlarmCommentDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmConfigDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "删除报警定义入参")
+public class DeleteAlarmConfigDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmItemDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "删除报警条目入参")
+public class DeleteAlarmItemDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmLogDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "删除报警日志入参")
+public class DeleteAlarmLogDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmRecordDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "删除报警记录入参")
+public class DeleteAlarmRecordDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/DeleteAlarmTargetDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "删除报警匹配条件入参")
+public class DeleteAlarmTargetDTO {
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 45 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmCommentDTO.java

@@ -0,0 +1,45 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询报警批注入参")
+public class PageQueryAlarmCommentDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+    @ApiModelProperty(value = "报警记录id", required = true)
+    private String recordId;
+    
+    @ApiModelProperty(value = "批注内容", required = true)
+    private String content;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "更新人", required = true)
+    private String updateUser;
+    
+}

+ 72 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmConfigDTO.java

@@ -0,0 +1,72 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询报警定义入参")
+public class PageQueryAlarmConfigDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+    @ApiModelProperty(value = "对象id", required = true)
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    private String classCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String itemCode;
+    
+    @ApiModelProperty(value = "报警匹配条件id", required = true)
+    private String targetId;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    private Integer open;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    private Integer concern;
+    
+    @ApiModelProperty(value = "是否自定义", required = true)
+    private Integer userDefined;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+}

+ 63 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmItemDTO.java

@@ -0,0 +1,63 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询报警条目入参")
+public class PageQueryAlarmItemDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String code;
+    
+    @ApiModelProperty(value = "报警条目名称", required = true)
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "处理算法", required = true)
+    private String dealFun;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id,0代表通用", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码,0代表通用", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "应用id", required = true)
+    private String appId;
+    
+}

+ 54 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmLogDTO.java

@@ -0,0 +1,54 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询报警日志入参")
+public class PageQueryAlarmLogDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+    @ApiModelProperty(value = "报警记录id", required = true)
+    private String recordId;
+    
+    @ApiModelProperty(value = "操作类型(报警状态、报警性质、报警处理方式、报警处理状态)", required = true)
+    private String type;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    private Integer nature;
+    
+    @ApiModelProperty(value = "修改前报警记录的状态", required = true)
+    private Integer before;
+    
+    @ApiModelProperty(value = "修改后报警记录的状态", required = true)
+    private Integer after;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    private Object remark;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    private String createUser;
+    
+}

+ 108 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmRecordDTO.java

@@ -0,0 +1,108 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询报警记录入参")
+public class PageQueryAlarmRecordDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String itemCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "对象id", required = true)
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    private String classCode;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "报警描述", required = true)
+    private String remark;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "报警名称", required = true)
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    private String category;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    private Integer concern;
+    
+    @ApiModelProperty(value = "报警状态", required = true)
+    private Integer state;
+    
+    @ApiModelProperty(value = "有效期开始时间", required = true)
+    private Date effectStartTime;
+    
+    @ApiModelProperty(value = "有效期结束时间", required = true)
+    private Date effectEndTime;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    private Integer nature;
+    
+    @ApiModelProperty(value = "处理方式", required = true)
+    private Integer treatMode;
+    
+    @ApiModelProperty(value = "处理状态", required = true)
+    private Integer treatState;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "触发和恢复条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "触发值信息", required = true)
+    private Object triggerInfo;
+    
+    @ApiModelProperty(value = "恢复值信息", required = true)
+    private Object endInfo;
+    
+    @ApiModelProperty(value = "报警触发时间", required = true)
+    private Date triggerTime;
+    
+    @ApiModelProperty(value = "恢复时间", required = true)
+    private Date endTime;
+    
+    @ApiModelProperty(value = "工单id", required = true)
+    private String orderId;
+    
+    @ApiModelProperty(value = "工单状态", required = true)
+    private String orderState;
+    
+    @ApiModelProperty(value = "补充说明", required = true)
+    private Object supplement;
+    
+    @ApiModelProperty(value = "匹配规则id", required = true)
+    private String targetId;
+    
+}

+ 57 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/PageQueryAlarmTargetDTO.java

@@ -0,0 +1,57 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel(value = "分页查询报警匹配条件入参")
+public class PageQueryAlarmTargetDTO extends PageDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+    @ApiModelProperty(value = "报警条目id", required = true)
+    private String itemCode;
+    
+    @ApiModelProperty(value = "对象类型", required = true)
+    private String classCode;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "报警等级", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    private Integer concern;
+    
+    @ApiModelProperty(value = "屏蔽状态(0:不屏蔽,1:屏蔽)", required = true)
+    private Integer open;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+}

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

@@ -0,0 +1,39 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "查询报警批注入参")
+public class QueryAlarmCommentDTO {
+    @ApiModelProperty(value = "报警记录id", required = true)
+    private String recordId;
+    
+    @ApiModelProperty(value = "批注内容", required = true)
+    private String content;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "更新人", required = true)
+    private String updateUser;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmCommentDetailDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "获取报警批注详情入参")
+public class QueryAlarmCommentDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 66 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmConfigDTO.java

@@ -0,0 +1,66 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "查询报警定义入参")
+public class QueryAlarmConfigDTO {
+    @ApiModelProperty(value = "对象id", required = true)
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    private String classCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String itemCode;
+    
+    @ApiModelProperty(value = "报警匹配条件id", required = true)
+    private String targetId;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    private Integer open;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    private Integer concern;
+    
+    @ApiModelProperty(value = "是否自定义", required = true)
+    private Integer userDefined;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmConfigDetailDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "获取报警定义详情入参")
+public class QueryAlarmConfigDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 57 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmItemDTO.java

@@ -0,0 +1,57 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "查询报警条目入参")
+public class QueryAlarmItemDTO {
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String code;
+    
+    @ApiModelProperty(value = "报警条目名称", required = true)
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "处理算法", required = true)
+    private String dealFun;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id,0代表通用", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码,0代表通用", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "应用id", required = true)
+    private String appId;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmItemDetailDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "获取报警条目详情入参")
+public class QueryAlarmItemDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 48 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmLogDTO.java

@@ -0,0 +1,48 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "查询报警日志入参")
+public class QueryAlarmLogDTO {
+    @ApiModelProperty(value = "报警记录id", required = true)
+    private String recordId;
+    
+    @ApiModelProperty(value = "操作类型(报警状态、报警性质、报警处理方式、报警处理状态)", required = true)
+    private String type;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    private Integer nature;
+    
+    @ApiModelProperty(value = "修改前报警记录的状态", required = true)
+    private Integer before;
+    
+    @ApiModelProperty(value = "修改后报警记录的状态", required = true)
+    private Integer after;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    private Object remark;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    private String createUser;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmLogDetailDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "获取报警日志详情入参")
+public class QueryAlarmLogDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 102 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmRecordDTO.java

@@ -0,0 +1,102 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "查询报警记录入参")
+public class QueryAlarmRecordDTO {
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    private String itemCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "对象id", required = true)
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    private String classCode;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "报警描述", required = true)
+    private String remark;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "报警名称", required = true)
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    private String category;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    private Integer concern;
+    
+    @ApiModelProperty(value = "报警状态", required = true)
+    private Integer state;
+    
+    @ApiModelProperty(value = "有效期开始时间", required = true)
+    private Date effectStartTime;
+    
+    @ApiModelProperty(value = "有效期结束时间", required = true)
+    private Date effectEndTime;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    private Integer nature;
+    
+    @ApiModelProperty(value = "处理方式", required = true)
+    private Integer treatMode;
+    
+    @ApiModelProperty(value = "处理状态", required = true)
+    private Integer treatState;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+    @ApiModelProperty(value = "触发和恢复条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "触发值信息", required = true)
+    private Object triggerInfo;
+    
+    @ApiModelProperty(value = "恢复值信息", required = true)
+    private Object endInfo;
+    
+    @ApiModelProperty(value = "报警触发时间", required = true)
+    private Date triggerTime;
+    
+    @ApiModelProperty(value = "恢复时间", required = true)
+    private Date endTime;
+    
+    @ApiModelProperty(value = "工单id", required = true)
+    private String orderId;
+    
+    @ApiModelProperty(value = "工单状态", required = true)
+    private String orderState;
+    
+    @ApiModelProperty(value = "补充说明", required = true)
+    private Object supplement;
+    
+    @ApiModelProperty(value = "匹配规则id", required = true)
+    private String targetId;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmRecordDetailDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "获取报警记录详情入参")
+public class QueryAlarmRecordDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 51 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmTargetDTO.java

@@ -0,0 +1,51 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "查询报警匹配条件入参")
+public class QueryAlarmTargetDTO {
+    @ApiModelProperty(value = "报警条目id", required = true)
+    private String itemCode;
+    
+    @ApiModelProperty(value = "对象类型", required = true)
+    private String classCode;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    private Object condition;
+    
+    @ApiModelProperty(value = "报警等级", required = true)
+    private String level;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    private Integer concern;
+    
+    @ApiModelProperty(value = "屏蔽状态(0:不屏蔽,1:屏蔽)", required = true)
+    private Integer open;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    private String groupCode;
+    
+}

+ 19 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/QueryAlarmTargetDetailDTO.java

@@ -0,0 +1,19 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "获取报警匹配条件详情入参")
+public class QueryAlarmTargetDetailDTO {
+    @NotNull(message = "主键不能为空")
+    @ApiModelProperty(value = "主键", required = true)
+    private String id;
+    
+}

+ 52 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmCommentDTO.java

@@ -0,0 +1,52 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "更新报警批注入参")
+public class UpdateAlarmCommentDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+    
+    @ApiModelProperty(value = "报警记录id", required = true)
+    @NotNull(message = "报警记录id不能为空") // todo 更新校验规则
+    private String recordId;
+    
+    @ApiModelProperty(value = "批注内容", required = true)
+    @NotNull(message = "批注内容不能为空") // todo 更新校验规则
+    private String content;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    @NotNull(message = "创建人不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "更新人", required = true)
+    @NotNull(message = "更新人不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+}

+ 88 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmConfigDTO.java

@@ -0,0 +1,88 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "更新报警定义入参")
+public class UpdateAlarmConfigDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+    
+    @ApiModelProperty(value = "对象id", required = true)
+    @NotNull(message = "对象id不能为空") // todo 更新校验规则
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    @NotNull(message = "对象类型编码不能为空") // todo 更新校验规则
+    private String classCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String itemCode;
+    
+    @ApiModelProperty(value = "报警匹配条件id", required = true)
+    @NotNull(message = "报警匹配条件id不能为空") // todo 更新校验规则
+    private String targetId;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    @NotNull(message = "报警分类不能为空") // todo 更新校验规则
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    @NotNull(message = "严重程度不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    @NotNull(message = "备注不能为空") // todo 更新校验规则
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    @NotNull(message = "触发条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "屏蔽状态 1-open、0- 屏蔽", required = true)
+    @NotNull(message = "屏蔽状态 1-open、0- 屏蔽不能为空") // todo 更新校验规则
+    private Integer open;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    @NotNull(message = "是否重点关注不能为空") // todo 更新校验规则
+    private Integer concern;
+    
+    @ApiModelProperty(value = "是否自定义", required = true)
+    @NotNull(message = "是否自定义不能为空") // todo 更新校验规则
+    private Integer userDefined;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+}

+ 76 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmItemDTO.java

@@ -0,0 +1,76 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "更新报警条目入参")
+public class UpdateAlarmItemDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String code;
+    
+    @ApiModelProperty(value = "报警条目名称", required = true)
+    @NotNull(message = "报警条目名称不能为空") // todo 更新校验规则
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    @NotNull(message = "报警分类不能为空") // todo 更新校验规则
+    private String category;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    @NotNull(message = "严重程度不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    @NotNull(message = "备注不能为空") // todo 更新校验规则
+    private String remark;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    @NotNull(message = "触发条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "处理算法", required = true)
+    @NotNull(message = "处理算法不能为空") // todo 更新校验规则
+    private String dealFun;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "项目id,0代表通用", required = true)
+    @NotNull(message = "项目id,0代表通用不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码,0代表通用", required = true)
+    @NotNull(message = "集团编码,0代表通用不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "应用id", required = true)
+    @NotNull(message = "应用id不能为空") // todo 更新校验规则
+    private String appId;
+    
+}

+ 64 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmLogDTO.java

@@ -0,0 +1,64 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "更新报警日志入参")
+public class UpdateAlarmLogDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+    
+    @ApiModelProperty(value = "报警记录id", required = true)
+    @NotNull(message = "报警记录id不能为空") // todo 更新校验规则
+    private String recordId;
+    
+    @ApiModelProperty(value = "操作类型(报警状态、报警性质、报警处理方式、报警处理状态)", required = true)
+    @NotNull(message = "操作类型(报警状态、报警性质、报警处理方式、报警处理状态)不能为空") // todo 更新校验规则
+    private String type;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    @NotNull(message = "报警性质不能为空") // todo 更新校验规则
+    private Integer nature;
+    
+    @ApiModelProperty(value = "修改前报警记录的状态", required = true)
+    @NotNull(message = "修改前报警记录的状态不能为空") // todo 更新校验规则
+    private Integer before;
+    
+    @ApiModelProperty(value = "修改后报警记录的状态", required = true)
+    @NotNull(message = "修改后报警记录的状态不能为空") // todo 更新校验规则
+    private Integer after;
+    
+    @ApiModelProperty(value = "备注", required = true)
+    @NotNull(message = "备注不能为空") // todo 更新校验规则
+    private Object remark;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "创建人", required = true)
+    @NotNull(message = "创建人不能为空") // todo 更新校验规则
+    private String createUser;
+    
+}

+ 136 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmRecordDTO.java

@@ -0,0 +1,136 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "更新报警记录入参")
+public class UpdateAlarmRecordDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+    
+    @ApiModelProperty(value = "报警条目编码", required = true)
+    @NotNull(message = "报警条目编码不能为空") // todo 更新校验规则
+    private String itemCode;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "对象id", required = true)
+    @NotNull(message = "对象id不能为空") // todo 更新校验规则
+    private String objId;
+    
+    @ApiModelProperty(value = "对象类型编码", required = true)
+    @NotNull(message = "对象类型编码不能为空") // todo 更新校验规则
+    private String classCode;
+    
+    @ApiModelProperty(value = "严重程度", required = true)
+    @NotNull(message = "严重程度不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "报警描述", required = true)
+    @NotNull(message = "报警描述不能为空") // todo 更新校验规则
+    private String remark;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "报警名称", required = true)
+    @NotNull(message = "报警名称不能为空") // todo 更新校验规则
+    private String name;
+    
+    @ApiModelProperty(value = "报警分类", required = true)
+    @NotNull(message = "报警分类不能为空") // todo 更新校验规则
+    private String category;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    @NotNull(message = "是否重点关注不能为空") // todo 更新校验规则
+    private Integer concern;
+    
+    @ApiModelProperty(value = "报警状态", required = true)
+    @NotNull(message = "报警状态不能为空") // todo 更新校验规则
+    private Integer state;
+    
+    @ApiModelProperty(value = "有效期开始时间", required = true)
+    @NotNull(message = "有效期开始时间不能为空") // todo 更新校验规则
+    private Date effectStartTime;
+    
+    @ApiModelProperty(value = "有效期结束时间", required = true)
+    @NotNull(message = "有效期结束时间不能为空") // todo 更新校验规则
+    private Date effectEndTime;
+    
+    @ApiModelProperty(value = "报警性质", required = true)
+    @NotNull(message = "报警性质不能为空") // todo 更新校验规则
+    private Integer nature;
+    
+    @ApiModelProperty(value = "处理方式", required = true)
+    @NotNull(message = "处理方式不能为空") // todo 更新校验规则
+    private Integer treatMode;
+    
+    @ApiModelProperty(value = "处理状态", required = true)
+    @NotNull(message = "处理状态不能为空") // todo 更新校验规则
+    private Integer treatState;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+    @ApiModelProperty(value = "触发和恢复条件", required = true)
+    @NotNull(message = "触发和恢复条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "触发值信息", required = true)
+    @NotNull(message = "触发值信息不能为空") // todo 更新校验规则
+    private Object triggerInfo;
+    
+    @ApiModelProperty(value = "恢复值信息", required = true)
+    @NotNull(message = "恢复值信息不能为空") // todo 更新校验规则
+    private Object endInfo;
+    
+    @ApiModelProperty(value = "报警触发时间", required = true)
+    @NotNull(message = "报警触发时间不能为空") // todo 更新校验规则
+    private Date triggerTime;
+    
+    @ApiModelProperty(value = "恢复时间", required = true)
+    @NotNull(message = "恢复时间不能为空") // todo 更新校验规则
+    private Date endTime;
+    
+    @ApiModelProperty(value = "工单id", required = true)
+    @NotNull(message = "工单id不能为空") // todo 更新校验规则
+    private String orderId;
+    
+    @ApiModelProperty(value = "工单状态", required = true)
+    @NotNull(message = "工单状态不能为空") // todo 更新校验规则
+    private String orderState;
+    
+    @ApiModelProperty(value = "补充说明", required = true)
+    @NotNull(message = "补充说明不能为空") // todo 更新校验规则
+    private Object supplement;
+    
+    @ApiModelProperty(value = "匹配规则id", required = true)
+    @NotNull(message = "匹配规则id不能为空") // todo 更新校验规则
+    private String targetId;
+    
+}

+ 68 - 0
src/main/java/com/persagy/apm/dmpalarm/model/dto/UpdateAlarmTargetDTO.java

@@ -0,0 +1,68 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:45:24
+ */
+@Data
+@ApiModel(value = "更新报警匹配条件入参")
+public class UpdateAlarmTargetDTO {
+    @ApiModelProperty(value = "主键", required = true)
+    @NotNull(message = "主键不能为空") // todo 更新校验规则
+    private String id;
+    
+    @ApiModelProperty(value = "报警条目id", required = true)
+    @NotNull(message = "报警条目id不能为空") // todo 更新校验规则
+    private String itemCode;
+    
+    @ApiModelProperty(value = "对象类型", required = true)
+    @NotNull(message = "对象类型不能为空") // todo 更新校验规则
+    private String classCode;
+    
+    @ApiModelProperty(value = "触发条件", required = true)
+    @NotNull(message = "触发条件不能为空") // todo 更新校验规则
+    private Object condition;
+    
+    @ApiModelProperty(value = "报警等级", required = true)
+    @NotNull(message = "报警等级不能为空") // todo 更新校验规则
+    private String level;
+    
+    @ApiModelProperty(value = "是否重点关注", required = true)
+    @NotNull(message = "是否重点关注不能为空") // todo 更新校验规则
+    private Integer concern;
+    
+    @ApiModelProperty(value = "屏蔽状态(0:不屏蔽,1:屏蔽)", required = true)
+    @NotNull(message = "屏蔽状态(0:不屏蔽,1:屏蔽)不能为空") // todo 更新校验规则
+    private Integer open;
+    
+    @ApiModelProperty(value = "创建用户", required = true)
+    @NotNull(message = "创建用户不能为空") // todo 更新校验规则
+    private String createUser;
+    
+    @ApiModelProperty(value = "创建时间", required = true)
+    @NotNull(message = "创建时间不能为空") // todo 更新校验规则
+    private Date createTime;
+    
+    @ApiModelProperty(value = "更新用户", required = true)
+    @NotNull(message = "更新用户不能为空") // todo 更新校验规则
+    private String updateUser;
+    
+    @ApiModelProperty(value = "更新时间", required = true)
+    @NotNull(message = "更新时间不能为空") // todo 更新校验规则
+    private Date updateTime;
+    
+    @ApiModelProperty(value = "项目id", required = true)
+    @NotNull(message = "项目id不能为空") // todo 更新校验规则
+    private String projectId;
+    
+    @ApiModelProperty(value = "集团编码", required = true)
+    @NotNull(message = "集团编码不能为空") // todo 更新校验规则
+    private String groupCode;
+    
+}

+ 44 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmCommentItemVO.java

@@ -0,0 +1,44 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警批注返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmCommentItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警记录id")
+    private String recordId;
+    
+    @ApiModelProperty("批注内容")
+    private String content;
+    
+    @ApiModelProperty("创建人")
+    private String createUser;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("更新人")
+    private String updateUser;
+    
+}

+ 44 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmCommentListItemVO.java

@@ -0,0 +1,44 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警批注列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmCommentListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警记录id")
+    private String recordId;
+    
+    @ApiModelProperty("批注内容")
+    private String content;
+    
+    @ApiModelProperty("创建人")
+    private String createUser;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("更新人")
+    private String updateUser;
+    
+}

+ 71 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmConfigItemVO.java

@@ -0,0 +1,71 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警定义返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmConfigItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("对象id")
+    private String objId;
+    
+    @ApiModelProperty("对象类型编码")
+    private String classCode;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("报警条目编码")
+    private String itemCode;
+    
+    @ApiModelProperty("报警匹配条件id")
+    private String targetId;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("备注")
+    private String remark;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
+    private Integer open;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("是否自定义")
+    private Integer userDefined;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+}

+ 71 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmConfigListItemVO.java

@@ -0,0 +1,71 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警定义列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmConfigListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("对象id")
+    private String objId;
+    
+    @ApiModelProperty("对象类型编码")
+    private String classCode;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("报警条目编码")
+    private String itemCode;
+    
+    @ApiModelProperty("报警匹配条件id")
+    private String targetId;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("备注")
+    private String remark;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("屏蔽状态 1-open、0- 屏蔽")
+    private Integer open;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("是否自定义")
+    private Integer userDefined;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+}

+ 62 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmItemItemVO.java

@@ -0,0 +1,62 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警条目返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmItemItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警条目编码")
+    private String code;
+    
+    @ApiModelProperty("报警条目名称")
+    private String name;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("备注")
+    private String remark;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("处理算法")
+    private String dealFun;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("项目id,0代表通用")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码,0代表通用")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("应用id")
+    private String appId;
+    
+}

+ 62 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmItemListItemVO.java

@@ -0,0 +1,62 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警条目列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmItemListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警条目编码")
+    private String code;
+    
+    @ApiModelProperty("报警条目名称")
+    private String name;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("备注")
+    private String remark;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("处理算法")
+    private String dealFun;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("项目id,0代表通用")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码,0代表通用")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("应用id")
+    private String appId;
+    
+}

+ 53 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmLogItemVO.java

@@ -0,0 +1,53 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警日志返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmLogItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警记录id")
+    private String recordId;
+    
+    @ApiModelProperty("操作类型(报警状态、报警性质、报警处理方式、报警处理状态)")
+    private String type;
+    
+    @ApiModelProperty("报警性质")
+    private Integer nature;
+    
+    @ApiModelProperty("修改前报警记录的状态")
+    private Integer before;
+    
+    @ApiModelProperty("修改后报警记录的状态")
+    private Integer after;
+    
+    @ApiModelProperty("备注")
+    private Object remark;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("创建人")
+    private String createUser;
+    
+}

+ 53 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmLogListItemVO.java

@@ -0,0 +1,53 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警日志列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmLogListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警记录id")
+    private String recordId;
+    
+    @ApiModelProperty("操作类型(报警状态、报警性质、报警处理方式、报警处理状态)")
+    private String type;
+    
+    @ApiModelProperty("报警性质")
+    private Integer nature;
+    
+    @ApiModelProperty("修改前报警记录的状态")
+    private Integer before;
+    
+    @ApiModelProperty("修改后报警记录的状态")
+    private Integer after;
+    
+    @ApiModelProperty("备注")
+    private Object remark;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("创建人")
+    private String createUser;
+    
+}

+ 107 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmRecordItemVO.java

@@ -0,0 +1,107 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警记录返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmRecordItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警条目编码")
+    private String itemCode;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("对象id")
+    private String objId;
+    
+    @ApiModelProperty("对象类型编码")
+    private String classCode;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("报警描述")
+    private String remark;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("报警名称")
+    private String name;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("报警状态")
+    private Integer state;
+    
+    @ApiModelProperty("有效期开始时间")
+    private Date effectStartTime;
+    
+    @ApiModelProperty("有效期结束时间")
+    private Date effectEndTime;
+    
+    @ApiModelProperty("报警性质")
+    private Integer nature;
+    
+    @ApiModelProperty("处理方式")
+    private Integer treatMode;
+    
+    @ApiModelProperty("处理状态")
+    private Integer treatState;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("触发和恢复条件")
+    private Object condition;
+    
+    @ApiModelProperty("触发值信息")
+    private Object triggerInfo;
+    
+    @ApiModelProperty("恢复值信息")
+    private Object endInfo;
+    
+    @ApiModelProperty("报警触发时间")
+    private Date triggerTime;
+    
+    @ApiModelProperty("恢复时间")
+    private Date endTime;
+    
+    @ApiModelProperty("工单id")
+    private String orderId;
+    
+    @ApiModelProperty("工单状态")
+    private String orderState;
+    
+    @ApiModelProperty("补充说明")
+    private Object supplement;
+    
+    @ApiModelProperty("匹配规则id")
+    private String targetId;
+    
+}

+ 107 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmRecordListItemVO.java

@@ -0,0 +1,107 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警记录列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmRecordListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警条目编码")
+    private String itemCode;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("对象id")
+    private String objId;
+    
+    @ApiModelProperty("对象类型编码")
+    private String classCode;
+    
+    @ApiModelProperty("严重程度")
+    private String level;
+    
+    @ApiModelProperty("报警描述")
+    private String remark;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("报警名称")
+    private String name;
+    
+    @ApiModelProperty("报警分类")
+    private String category;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("报警状态")
+    private Integer state;
+    
+    @ApiModelProperty("有效期开始时间")
+    private Date effectStartTime;
+    
+    @ApiModelProperty("有效期结束时间")
+    private Date effectEndTime;
+    
+    @ApiModelProperty("报警性质")
+    private Integer nature;
+    
+    @ApiModelProperty("处理方式")
+    private Integer treatMode;
+    
+    @ApiModelProperty("处理状态")
+    private Integer treatState;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+    @ApiModelProperty("触发和恢复条件")
+    private Object condition;
+    
+    @ApiModelProperty("触发值信息")
+    private Object triggerInfo;
+    
+    @ApiModelProperty("恢复值信息")
+    private Object endInfo;
+    
+    @ApiModelProperty("报警触发时间")
+    private Date triggerTime;
+    
+    @ApiModelProperty("恢复时间")
+    private Date endTime;
+    
+    @ApiModelProperty("工单id")
+    private String orderId;
+    
+    @ApiModelProperty("工单状态")
+    private String orderState;
+    
+    @ApiModelProperty("补充说明")
+    private Object supplement;
+    
+    @ApiModelProperty("匹配规则id")
+    private String targetId;
+    
+}

+ 56 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmTargetItemVO.java

@@ -0,0 +1,56 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警匹配条件返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmTargetItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警条目id")
+    private String itemCode;
+    
+    @ApiModelProperty("对象类型")
+    private String classCode;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("报警等级")
+    private String level;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("屏蔽状态(0:不屏蔽,1:屏蔽)")
+    private Integer open;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+}

+ 56 - 0
src/main/java/com/persagy/apm/dmpalarm/model/vo/AlarmTargetListItemVO.java

@@ -0,0 +1,56 @@
+package com.persagy.apm.dmpalarm.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-12-09 10:47:02
+ */
+@Data
+@ApiModel(value = "报警匹配条件列表返回结果参数")
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AlarmTargetListItemVO {
+    @ApiModelProperty("主键")
+    private String id;
+    
+    @ApiModelProperty("报警条目id")
+    private String itemCode;
+    
+    @ApiModelProperty("对象类型")
+    private String classCode;
+    
+    @ApiModelProperty("触发条件")
+    private Object condition;
+    
+    @ApiModelProperty("报警等级")
+    private String level;
+    
+    @ApiModelProperty("是否重点关注")
+    private Integer concern;
+    
+    @ApiModelProperty("屏蔽状态(0:不屏蔽,1:屏蔽)")
+    private Integer open;
+    
+    @ApiModelProperty("创建用户")
+    private String createUser;
+    
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    
+    @ApiModelProperty("更新用户")
+    private String updateUser;
+    
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+    
+    @ApiModelProperty("项目id")
+    private String projectId;
+    
+    @ApiModelProperty("集团编码")
+    private String groupCode;
+    
+}

+ 75 - 0
src/main/java/com/persagy/apm/dmpalarm/service/IAlarmCommentService.java

@@ -0,0 +1,75 @@
+package com.persagy.apm.dmpalarm.service;
+
+import com.persagy.apm.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 报警批注(AlarmComment) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+public interface IAlarmCommentService  {
+    
+    /**
+    * 创建报警批注
+    *
+    * @param addAlarmCommentDTO addDTO
+    * @return 报警批注主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public String createAlarmComment(AddAlarmCommentDTO addAlarmCommentDTO);
+    
+    /**
+    * 报警批注详情
+    *
+    * @param id 主键
+    * @return 报警批注do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public AlarmComment queryAlarmCommentDetail(String id);
+    
+    /**
+    * 更新报警批注
+    *
+    * @param updateAlarmCommentDTO updateDTO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void updateAlarmComment(UpdateAlarmCommentDTO updateAlarmCommentDTO);
+    
+    /**
+    * 删除报警批注
+    *
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void deleteAlarmComment(String id);
+    
+    /**
+    * 查询报警批注
+    *
+    * @param queryAlarmCommentDTO queryDTO
+    * @return List<AlarmComment>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public List<AlarmComment> queryAlarmCommentList(QueryAlarmCommentDTO queryAlarmCommentDTO);
+    
+    /**
+    * 分页查询报警批注
+    * 
+    * @param pageQueryAlarmCommentDTO pageQueryDTO
+    * @return IPage<AlarmComment>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public IPage<AlarmComment> pageQueryAlarmComment(PageQueryAlarmCommentDTO pageQueryAlarmCommentDTO);
+}

+ 75 - 0
src/main/java/com/persagy/apm/dmpalarm/service/IAlarmConfigService.java

@@ -0,0 +1,75 @@
+package com.persagy.apm.dmpalarm.service;
+
+import com.persagy.apm.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 报警定义(AlarmConfig) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+public interface IAlarmConfigService  {
+    
+    /**
+    * 创建报警定义
+    *
+    * @param addAlarmConfigDTO addDTO
+    * @return 报警定义主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public String createAlarmConfig(AddAlarmConfigDTO addAlarmConfigDTO);
+    
+    /**
+    * 报警定义详情
+    *
+    * @param id 主键
+    * @return 报警定义do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public AlarmConfig queryAlarmConfigDetail(String id);
+    
+    /**
+    * 更新报警定义
+    *
+    * @param updateAlarmConfigDTO updateDTO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void updateAlarmConfig(UpdateAlarmConfigDTO updateAlarmConfigDTO);
+    
+    /**
+    * 删除报警定义
+    *
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void deleteAlarmConfig(String id);
+    
+    /**
+    * 查询报警定义
+    *
+    * @param queryAlarmConfigDTO queryDTO
+    * @return List<AlarmConfig>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public List<AlarmConfig> queryAlarmConfigList(QueryAlarmConfigDTO queryAlarmConfigDTO);
+    
+    /**
+    * 分页查询报警定义
+    * 
+    * @param pageQueryAlarmConfigDTO pageQueryDTO
+    * @return IPage<AlarmConfig>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public IPage<AlarmConfig> pageQueryAlarmConfig(PageQueryAlarmConfigDTO pageQueryAlarmConfigDTO);
+}

+ 75 - 0
src/main/java/com/persagy/apm/dmpalarm/service/IAlarmItemService.java

@@ -0,0 +1,75 @@
+package com.persagy.apm.dmpalarm.service;
+
+import com.persagy.apm.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 报警条目(AlarmItem) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+public interface IAlarmItemService  {
+    
+    /**
+    * 创建报警条目
+    *
+    * @param addAlarmItemDTO addDTO
+    * @return 报警条目主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public String createAlarmItem(AddAlarmItemDTO addAlarmItemDTO);
+    
+    /**
+    * 报警条目详情
+    *
+    * @param id 主键
+    * @return 报警条目do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public AlarmItem queryAlarmItemDetail(String id);
+    
+    /**
+    * 更新报警条目
+    *
+    * @param updateAlarmItemDTO updateDTO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void updateAlarmItem(UpdateAlarmItemDTO updateAlarmItemDTO);
+    
+    /**
+    * 删除报警条目
+    *
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void deleteAlarmItem(String id);
+    
+    /**
+    * 查询报警条目
+    *
+    * @param queryAlarmItemDTO queryDTO
+    * @return List<AlarmItem>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public List<AlarmItem> queryAlarmItemList(QueryAlarmItemDTO queryAlarmItemDTO);
+    
+    /**
+    * 分页查询报警条目
+    * 
+    * @param pageQueryAlarmItemDTO pageQueryDTO
+    * @return IPage<AlarmItem>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public IPage<AlarmItem> pageQueryAlarmItem(PageQueryAlarmItemDTO pageQueryAlarmItemDTO);
+}

+ 75 - 0
src/main/java/com/persagy/apm/dmpalarm/service/IAlarmLogService.java

@@ -0,0 +1,75 @@
+package com.persagy.apm.dmpalarm.service;
+
+import com.persagy.apm.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 报警日志(AlarmLog) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+public interface IAlarmLogService  {
+    
+    /**
+    * 创建报警日志
+    *
+    * @param addAlarmLogDTO addDTO
+    * @return 报警日志主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public String createAlarmLog(AddAlarmLogDTO addAlarmLogDTO);
+    
+    /**
+    * 报警日志详情
+    *
+    * @param id 主键
+    * @return 报警日志do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public AlarmLog queryAlarmLogDetail(String id);
+    
+    /**
+    * 更新报警日志
+    *
+    * @param updateAlarmLogDTO updateDTO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void updateAlarmLog(UpdateAlarmLogDTO updateAlarmLogDTO);
+    
+    /**
+    * 删除报警日志
+    *
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void deleteAlarmLog(String id);
+    
+    /**
+    * 查询报警日志
+    *
+    * @param queryAlarmLogDTO queryDTO
+    * @return List<AlarmLog>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public List<AlarmLog> queryAlarmLogList(QueryAlarmLogDTO queryAlarmLogDTO);
+    
+    /**
+    * 分页查询报警日志
+    * 
+    * @param pageQueryAlarmLogDTO pageQueryDTO
+    * @return IPage<AlarmLog>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public IPage<AlarmLog> pageQueryAlarmLog(PageQueryAlarmLogDTO pageQueryAlarmLogDTO);
+}

+ 75 - 0
src/main/java/com/persagy/apm/dmpalarm/service/IAlarmRecordService.java

@@ -0,0 +1,75 @@
+package com.persagy.apm.dmpalarm.service;
+
+import com.persagy.apm.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 报警记录(AlarmRecord) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+public interface IAlarmRecordService  {
+    
+    /**
+    * 创建报警记录
+    *
+    * @param addAlarmRecordDTO addDTO
+    * @return 报警记录主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public String createAlarmRecord(AddAlarmRecordDTO addAlarmRecordDTO);
+    
+    /**
+    * 报警记录详情
+    *
+    * @param id 主键
+    * @return 报警记录do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public AlarmRecord queryAlarmRecordDetail(String id);
+    
+    /**
+    * 更新报警记录
+    *
+    * @param updateAlarmRecordDTO updateDTO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void updateAlarmRecord(UpdateAlarmRecordDTO updateAlarmRecordDTO);
+    
+    /**
+    * 删除报警记录
+    *
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void deleteAlarmRecord(String id);
+    
+    /**
+    * 查询报警记录
+    *
+    * @param queryAlarmRecordDTO queryDTO
+    * @return List<AlarmRecord>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public List<AlarmRecord> queryAlarmRecordList(QueryAlarmRecordDTO queryAlarmRecordDTO);
+    
+    /**
+    * 分页查询报警记录
+    * 
+    * @param pageQueryAlarmRecordDTO pageQueryDTO
+    * @return IPage<AlarmRecord>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public IPage<AlarmRecord> pageQueryAlarmRecord(PageQueryAlarmRecordDTO pageQueryAlarmRecordDTO);
+}

+ 75 - 0
src/main/java/com/persagy/apm/dmpalarm/service/IAlarmTargetService.java

@@ -0,0 +1,75 @@
+package com.persagy.apm.dmpalarm.service;
+
+import com.persagy.apm.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.model.dto.*;
+import java.util.List;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 报警匹配条件(AlarmTarget) service接口
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+public interface IAlarmTargetService  {
+    
+    /**
+    * 创建报警匹配条件
+    *
+    * @param addAlarmTargetDTO addDTO
+    * @return 报警匹配条件主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public String createAlarmTarget(AddAlarmTargetDTO addAlarmTargetDTO);
+    
+    /**
+    * 报警匹配条件详情
+    *
+    * @param id 主键
+    * @return 报警匹配条件do对象
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public AlarmTarget queryAlarmTargetDetail(String id);
+    
+    /**
+    * 更新报警匹配条件
+    *
+    * @param updateAlarmTargetDTO updateDTO
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void updateAlarmTarget(UpdateAlarmTargetDTO updateAlarmTargetDTO);
+    
+    /**
+    * 删除报警匹配条件
+    *
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public void deleteAlarmTarget(String id);
+    
+    /**
+    * 查询报警匹配条件
+    *
+    * @param queryAlarmTargetDTO queryDTO
+    * @return List<AlarmTarget>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public List<AlarmTarget> queryAlarmTargetList(QueryAlarmTargetDTO queryAlarmTargetDTO);
+    
+    /**
+    * 分页查询报警匹配条件
+    * 
+    * @param pageQueryAlarmTargetDTO pageQueryDTO
+    * @return IPage<AlarmTarget>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    public IPage<AlarmTarget> pageQueryAlarmTarget(PageQueryAlarmTargetDTO pageQueryAlarmTargetDTO);
+}

+ 247 - 0
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmCommentServiceImpl.java

@@ -0,0 +1,247 @@
+package com.persagy.apm.dmpalarm.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.common.model.dto.Sort;
+import com.persagy.apm.dmpalarm.dao.AlarmCommentMapper;
+import com.persagy.apm.dmpalarm.model.AlarmComment;
+import com.persagy.apm.dmpalarm.model.ConvertAlarmCommentTool;
+import com.persagy.apm.dmpalarm.model.dto.AddAlarmCommentDTO;
+import com.persagy.apm.dmpalarm.model.dto.PageQueryAlarmCommentDTO;
+import com.persagy.apm.dmpalarm.model.dto.QueryAlarmCommentDTO;
+import com.persagy.apm.dmpalarm.model.dto.UpdateAlarmCommentDTO;
+import com.persagy.apm.dmpalarm.service.IAlarmCommentService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 报警批注(AlarmComment) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+@Service
+public class AlarmCommentServiceImpl extends ServiceImpl<AlarmCommentMapper, AlarmComment>
+        implements IAlarmCommentService {
+
+    /**
+     * 创建报警批注
+     *
+     * @return 报警批注主键
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    @Override
+    public String createAlarmComment(AddAlarmCommentDTO addAlarmCommentDTO) {
+        AlarmComment alarmComment = ConvertAlarmCommentTool.INSTANCE.convertAddDto2Entity(addAlarmCommentDTO);
+        // 设置默认值
+        setDefaultValue(alarmComment);
+        save(alarmComment);
+        return alarmComment.getId();
+    }
+
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param alarmComment 报警批注实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AlarmComment alarmComment) {
+        // todo 其他默认的属性
+
+    }
+
+    /**
+     * 报警批注详情
+     *
+     * @param id 主键
+     * @return 部门do类
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    @Override
+    public AlarmComment queryAlarmCommentDetail(String id) {
+        AlarmComment alarmComment = getById(id);
+        if (alarmComment == null) {
+            throw new IllegalArgumentException("查看AlarmComment详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return alarmComment;
+    }
+
+    /**
+     * 更新报警批注
+     *
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    @Override
+    public void updateAlarmComment(UpdateAlarmCommentDTO updateAlarmCommentDTO) {
+        AlarmComment alarmComment = getById(updateAlarmCommentDTO.getId());
+        alarmComment = ConvertAlarmCommentTool.INSTANCE.convertUpdateDto2Entity(alarmComment, updateAlarmCommentDTO);
+        alarmComment.setUpdateUser(PoemsContext.getContext().getUserId());
+        updateById(alarmComment);
+    }
+
+    /**
+     * 校验报警批注是否可删除
+     *
+     * @param id 报警批注主键
+     * @return 报警批注do类
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    public AlarmComment checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除AlarmComment时发生异常,主键为空");
+        }
+
+        AlarmComment alarmComment = getById(id);
+
+        if (alarmComment == null) {
+            throw new IllegalArgumentException("删除AlarmComment时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return alarmComment;
+    }
+
+    /**
+     * 删除报警批注
+     *
+     * @param id 主键
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    @Override
+    public void deleteAlarmComment(String id) {
+        // 校验是否可删除
+        AlarmComment alarmComment = checkDeletable(id);
+
+        alarmComment.setValid(ValidEnum.FALSE.getType());
+        updateById(alarmComment);
+    }
+
+    /**
+     * 查询报警批注
+     *
+     * @return List<AlarmComment>
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    @Override
+    public List<AlarmComment> queryAlarmCommentList(QueryAlarmCommentDTO queryAlarmCommentDTO) {
+        QueryWrapper<AlarmComment> queryWrapper = new QueryWrapper<>();
+
+        if (queryAlarmCommentDTO != null) {
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmCommentDTO.getRecordId())) {
+                queryWrapper.like(AlarmComment.PROP_RECORD_ID, queryAlarmCommentDTO.getRecordId());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmCommentDTO.getContent())) {
+                queryWrapper.like(AlarmComment.PROP_CONTENT, queryAlarmCommentDTO.getContent());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmCommentDTO.getCreateUser())) {
+                queryWrapper.like(AlarmComment.PROP_CREATE_USER, queryAlarmCommentDTO.getCreateUser());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmCommentDTO.getProjectId())) {
+                queryWrapper.like(AlarmComment.PROP_PROJECT_ID, queryAlarmCommentDTO.getProjectId());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmCommentDTO.getGroupCode())) {
+                queryWrapper.like(AlarmComment.PROP_GROUP_CODE, queryAlarmCommentDTO.getGroupCode());
+            }
+
+            if (queryAlarmCommentDTO.getCreateTime() != null) {
+                queryWrapper.eq(AlarmComment.PROP_CREATE_TIME, queryAlarmCommentDTO.getCreateTime());
+            }
+
+            if (queryAlarmCommentDTO.getUpdateTime() != null) {
+                queryWrapper.eq(AlarmComment.PROP_UPDATE_TIME, queryAlarmCommentDTO.getUpdateTime());
+            }
+
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmCommentDTO.getUpdateUser())) {
+                queryWrapper.like(AlarmComment.PROP_UPDATE_USER, queryAlarmCommentDTO.getUpdateUser());
+            }
+
+        }
+
+        return list(queryWrapper);
+    }
+
+    /**
+     * 分页查询报警批注
+     *
+     * @return IPage<AlarmComment>
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    @Override
+    public IPage<AlarmComment> pageQueryAlarmComment(PageQueryAlarmCommentDTO pageQueryAlarmCommentDTO) {
+        QueryWrapper<AlarmComment> queryWrapper = new QueryWrapper<>();
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<AlarmComment> pageParam = new Page<>(pageQueryAlarmCommentDTO.getPage(), pageQueryAlarmCommentDTO.getSize(), true);
+        // 排序信息
+        List<Sort> orders = pageQueryAlarmCommentDTO.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(pageQueryAlarmCommentDTO.getRecordId())) {
+            queryWrapper.like(AlarmComment.PROP_RECORD_ID, pageQueryAlarmCommentDTO.getRecordId());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmCommentDTO.getContent())) {
+            queryWrapper.like(AlarmComment.PROP_CONTENT, pageQueryAlarmCommentDTO.getContent());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmCommentDTO.getCreateUser())) {
+            queryWrapper.like(AlarmComment.PROP_CREATE_USER, pageQueryAlarmCommentDTO.getCreateUser());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmCommentDTO.getProjectId())) {
+            queryWrapper.like(AlarmComment.PROP_PROJECT_ID, pageQueryAlarmCommentDTO.getProjectId());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmCommentDTO.getGroupCode())) {
+            queryWrapper.like(AlarmComment.PROP_GROUP_CODE, pageQueryAlarmCommentDTO.getGroupCode());
+        }
+
+        if (pageQueryAlarmCommentDTO.getCreateTime() != null) {
+            queryWrapper.eq(AlarmComment.PROP_CREATE_TIME, pageQueryAlarmCommentDTO.getCreateTime());
+        }
+
+        if (pageQueryAlarmCommentDTO.getUpdateTime() != null) {
+            queryWrapper.eq(AlarmComment.PROP_UPDATE_TIME, pageQueryAlarmCommentDTO.getUpdateTime());
+        }
+
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmCommentDTO.getUpdateUser())) {
+            queryWrapper.like(AlarmComment.PROP_UPDATE_USER, pageQueryAlarmCommentDTO.getUpdateUser());
+        }
+
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 329 - 0
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmConfigServiceImpl.java

@@ -0,0 +1,329 @@
+package com.persagy.apm.dmpalarm.service.impl;
+
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.dmpalarm.dao.AlarmConfigMapper;
+import com.persagy.apm.dmpalarm.service.IAlarmConfigService;
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警定义(AlarmConfig) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+@Service
+public class AlarmConfigServiceImpl extends ServiceImpl<AlarmConfigMapper, AlarmConfig> 
+    implements IAlarmConfigService {
+    
+    /**
+    * 创建报警定义
+    * @return 报警定义主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public String createAlarmConfig(AddAlarmConfigDTO addAlarmConfigDTO) {
+        AlarmConfig alarmConfig = ConvertAlarmConfigTool.INSTANCE.convertAddDto2Entity(addAlarmConfigDTO);
+        // 设置默认值
+        setDefaultValue(alarmConfig);
+        save(alarmConfig);
+        return alarmConfig.getId();
+    }
+    
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param alarmConfig 报警定义实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AlarmConfig alarmConfig) {
+        alarmConfig.setCreator(PoemsContext.getContext().getUserId());
+        // todo 其他默认的属性
+        
+    }
+    
+    /**
+    * 报警定义详情
+    * @param id 主键
+    * @return 部门do类
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public AlarmConfig queryAlarmConfigDetail(String id) {
+        AlarmConfig alarmConfig = getById(id);
+        if (alarmConfig == null) {
+            throw new IllegalArgumentException("查看AlarmConfig详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return alarmConfig;
+    }
+    
+    /**
+    * 更新报警定义
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void updateAlarmConfig(UpdateAlarmConfigDTO updateAlarmConfigDTO) {
+        AlarmConfig alarmConfig = getById(updateAlarmConfigDTO.getId());
+        alarmConfig = ConvertAlarmConfigTool.INSTANCE.convertUpdateDto2Entity(alarmConfig, updateAlarmConfigDTO);
+        alarmConfig.setModifier(PoemsContext.getContext().getUserId());
+        updateById(alarmConfig);
+    }
+    
+    /**
+     * 校验报警定义是否可删除
+     *
+     * @param id 报警定义主键
+     * @return 报警定义do类
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    public AlarmConfig checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除AlarmConfig时发生异常,主键为空");
+        }
+
+        AlarmConfig alarmConfig = getById(id);
+
+        if (alarmConfig == null) {
+            throw new IllegalArgumentException("删除AlarmConfig时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return alarmConfig;
+    }
+    
+    /**
+    * 删除报警定义
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void deleteAlarmConfig(String id) {
+        // 校验是否可删除
+        AlarmConfig alarmConfig = checkDeletable(id);
+
+        alarmConfig.setValid(ValidEnum.FALSE.getType());
+        updateById(alarmConfig);
+    }
+    
+    /**
+    * 查询报警定义
+    * @return List<AlarmConfig>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public List<AlarmConfig> queryAlarmConfigList(QueryAlarmConfigDTO queryAlarmConfigDTO) {
+        QueryWrapper<AlarmConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmConfig.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, AlarmConfig.PROP_CREATIONTIME);
+        
+        if (queryAlarmConfigDTO != null) {
+                                
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getObjId())) {
+                queryWrapper.like(AlarmConfig.PROP_OBJ_ID, queryAlarmConfigDTO.getObjId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getClassCode())) {
+                queryWrapper.like(AlarmConfig.PROP_CLASS_CODE, queryAlarmConfigDTO.getClassCode());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getProjectId())) {
+                queryWrapper.like(AlarmConfig.PROP_PROJECT_ID, queryAlarmConfigDTO.getProjectId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getGroupCode())) {
+                queryWrapper.like(AlarmConfig.PROP_GROUP_CODE, queryAlarmConfigDTO.getGroupCode());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getItemCode())) {
+                queryWrapper.like(AlarmConfig.PROP_ITEM_CODE, queryAlarmConfigDTO.getItemCode());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getTargetId())) {
+                queryWrapper.like(AlarmConfig.PROP_TARGET_ID, queryAlarmConfigDTO.getTargetId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getCategory())) {
+                queryWrapper.like(AlarmConfig.PROP_CATEGORY, queryAlarmConfigDTO.getCategory());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getLevel())) {
+                queryWrapper.like(AlarmConfig.PROP_LEVEL, queryAlarmConfigDTO.getLevel());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getRemark())) {
+                queryWrapper.like(AlarmConfig.PROP_REMARK, queryAlarmConfigDTO.getRemark());
+            }
+                                            
+            if (queryAlarmConfigDTO.getCondition() != null) {
+                queryWrapper.eq(AlarmConfig.PROP_CONDITION, queryAlarmConfigDTO.getCondition());
+            }
+                                            
+            if (queryAlarmConfigDTO.getOpen() != null) {
+                queryWrapper.eq(AlarmConfig.PROP_OPEN, queryAlarmConfigDTO.getOpen());
+            }
+                                            
+            if (queryAlarmConfigDTO.getConcern() != null) {
+                queryWrapper.eq(AlarmConfig.PROP_CONCERN, queryAlarmConfigDTO.getConcern());
+            }
+                                            
+            if (queryAlarmConfigDTO.getUserDefined() != null) {
+                queryWrapper.eq(AlarmConfig.PROP_USER_DEFINED, queryAlarmConfigDTO.getUserDefined());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getCreateUser())) {
+                queryWrapper.like(AlarmConfig.PROP_CREATE_USER, queryAlarmConfigDTO.getCreateUser());
+            }
+                                            
+            if (queryAlarmConfigDTO.getCreateTime() != null) {
+                queryWrapper.eq(AlarmConfig.PROP_CREATE_TIME, queryAlarmConfigDTO.getCreateTime());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmConfigDTO.getUpdateUser())) {
+                queryWrapper.like(AlarmConfig.PROP_UPDATE_USER, queryAlarmConfigDTO.getUpdateUser());
+            }
+                                            
+            if (queryAlarmConfigDTO.getUpdateTime() != null) {
+                queryWrapper.eq(AlarmConfig.PROP_UPDATE_TIME, queryAlarmConfigDTO.getUpdateTime());
+            }
+                        
+        }
+        
+        return list(queryWrapper);
+    }
+    
+    /**
+    * 分页查询报警定义
+    * @return IPage<AlarmConfig>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public IPage<AlarmConfig> pageQueryAlarmConfig(PageQueryAlarmConfigDTO pageQueryAlarmConfigDTO) {
+        QueryWrapper<AlarmConfig> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmConfig.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<AlarmConfig> pageParam = new Page<>(pageQueryAlarmConfigDTO.getPage(), pageQueryAlarmConfigDTO.getSize(),true);
+        // 排序信息
+        if(CollectionUtils.isEmpty(pageQueryAlarmConfigDTO.getOrders())){
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, AlarmConfig.PROP_CREATIONTIME);
+        }else {
+            List<Sort> orders = pageQueryAlarmConfigDTO.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(pageQueryAlarmConfigDTO.getObjId())) {
+            queryWrapper.like(AlarmConfig.PROP_OBJ_ID, pageQueryAlarmConfigDTO.getObjId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getClassCode())) {
+            queryWrapper.like(AlarmConfig.PROP_CLASS_CODE, pageQueryAlarmConfigDTO.getClassCode());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getProjectId())) {
+            queryWrapper.like(AlarmConfig.PROP_PROJECT_ID, pageQueryAlarmConfigDTO.getProjectId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getGroupCode())) {
+            queryWrapper.like(AlarmConfig.PROP_GROUP_CODE, pageQueryAlarmConfigDTO.getGroupCode());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getItemCode())) {
+            queryWrapper.like(AlarmConfig.PROP_ITEM_CODE, pageQueryAlarmConfigDTO.getItemCode());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getTargetId())) {
+            queryWrapper.like(AlarmConfig.PROP_TARGET_ID, pageQueryAlarmConfigDTO.getTargetId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getCategory())) {
+            queryWrapper.like(AlarmConfig.PROP_CATEGORY, pageQueryAlarmConfigDTO.getCategory());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getLevel())) {
+            queryWrapper.like(AlarmConfig.PROP_LEVEL, pageQueryAlarmConfigDTO.getLevel());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getRemark())) {
+            queryWrapper.like(AlarmConfig.PROP_REMARK, pageQueryAlarmConfigDTO.getRemark());
+        }
+                            
+        if (pageQueryAlarmConfigDTO.getCondition() != null) {
+            queryWrapper.eq(AlarmConfig.PROP_CONDITION, pageQueryAlarmConfigDTO.getCondition());
+        }
+                            
+        if (pageQueryAlarmConfigDTO.getOpen() != null) {
+            queryWrapper.eq(AlarmConfig.PROP_OPEN, pageQueryAlarmConfigDTO.getOpen());
+        }
+                            
+        if (pageQueryAlarmConfigDTO.getConcern() != null) {
+            queryWrapper.eq(AlarmConfig.PROP_CONCERN, pageQueryAlarmConfigDTO.getConcern());
+        }
+                            
+        if (pageQueryAlarmConfigDTO.getUserDefined() != null) {
+            queryWrapper.eq(AlarmConfig.PROP_USER_DEFINED, pageQueryAlarmConfigDTO.getUserDefined());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getCreateUser())) {
+            queryWrapper.like(AlarmConfig.PROP_CREATE_USER, pageQueryAlarmConfigDTO.getCreateUser());
+        }
+                            
+        if (pageQueryAlarmConfigDTO.getCreateTime() != null) {
+            queryWrapper.eq(AlarmConfig.PROP_CREATE_TIME, pageQueryAlarmConfigDTO.getCreateTime());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmConfigDTO.getUpdateUser())) {
+            queryWrapper.like(AlarmConfig.PROP_UPDATE_USER, pageQueryAlarmConfigDTO.getUpdateUser());
+        }
+                            
+        if (pageQueryAlarmConfigDTO.getUpdateTime() != null) {
+            queryWrapper.eq(AlarmConfig.PROP_UPDATE_TIME, pageQueryAlarmConfigDTO.getUpdateTime());
+        }
+                
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 305 - 0
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmItemServiceImpl.java

@@ -0,0 +1,305 @@
+package com.persagy.apm.dmpalarm.service.impl;
+
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.dmpalarm.dao.AlarmItemMapper;
+import com.persagy.apm.dmpalarm.service.IAlarmItemService;
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警条目(AlarmItem) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+@Service
+public class AlarmItemServiceImpl extends ServiceImpl<AlarmItemMapper, AlarmItem> 
+    implements IAlarmItemService {
+    
+    /**
+    * 创建报警条目
+    * @return 报警条目主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public String createAlarmItem(AddAlarmItemDTO addAlarmItemDTO) {
+        AlarmItem alarmItem = ConvertAlarmItemTool.INSTANCE.convertAddDto2Entity(addAlarmItemDTO);
+        // 设置默认值
+        setDefaultValue(alarmItem);
+        save(alarmItem);
+        return alarmItem.getId();
+    }
+    
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param alarmItem 报警条目实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AlarmItem alarmItem) {
+        alarmItem.setCreator(PoemsContext.getContext().getUserId());
+        // todo 其他默认的属性
+        
+    }
+    
+    /**
+    * 报警条目详情
+    * @param id 主键
+    * @return 部门do类
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public AlarmItem queryAlarmItemDetail(String id) {
+        AlarmItem alarmItem = getById(id);
+        if (alarmItem == null) {
+            throw new IllegalArgumentException("查看AlarmItem详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return alarmItem;
+    }
+    
+    /**
+    * 更新报警条目
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void updateAlarmItem(UpdateAlarmItemDTO updateAlarmItemDTO) {
+        AlarmItem alarmItem = getById(updateAlarmItemDTO.getId());
+        alarmItem = ConvertAlarmItemTool.INSTANCE.convertUpdateDto2Entity(alarmItem, updateAlarmItemDTO);
+        alarmItem.setModifier(PoemsContext.getContext().getUserId());
+        updateById(alarmItem);
+    }
+    
+    /**
+     * 校验报警条目是否可删除
+     *
+     * @param id 报警条目主键
+     * @return 报警条目do类
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    public AlarmItem checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除AlarmItem时发生异常,主键为空");
+        }
+
+        AlarmItem alarmItem = getById(id);
+
+        if (alarmItem == null) {
+            throw new IllegalArgumentException("删除AlarmItem时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return alarmItem;
+    }
+    
+    /**
+    * 删除报警条目
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void deleteAlarmItem(String id) {
+        // 校验是否可删除
+        AlarmItem alarmItem = checkDeletable(id);
+
+        alarmItem.setValid(ValidEnum.FALSE.getType());
+        updateById(alarmItem);
+    }
+    
+    /**
+    * 查询报警条目
+    * @return List<AlarmItem>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public List<AlarmItem> queryAlarmItemList(QueryAlarmItemDTO queryAlarmItemDTO) {
+        QueryWrapper<AlarmItem> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmItem.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, AlarmItem.PROP_CREATIONTIME);
+        
+        if (queryAlarmItemDTO != null) {
+                                
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getCode())) {
+                queryWrapper.like(AlarmItem.PROP_CODE, queryAlarmItemDTO.getCode());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getName())) {
+                queryWrapper.like(AlarmItem.PROP_NAME, queryAlarmItemDTO.getName());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getCategory())) {
+                queryWrapper.like(AlarmItem.PROP_CATEGORY, queryAlarmItemDTO.getCategory());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getLevel())) {
+                queryWrapper.like(AlarmItem.PROP_LEVEL, queryAlarmItemDTO.getLevel());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getRemark())) {
+                queryWrapper.like(AlarmItem.PROP_REMARK, queryAlarmItemDTO.getRemark());
+            }
+                                            
+            if (queryAlarmItemDTO.getCondition() != null) {
+                queryWrapper.eq(AlarmItem.PROP_CONDITION, queryAlarmItemDTO.getCondition());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getDealFun())) {
+                queryWrapper.like(AlarmItem.PROP_DEAL_FUN, queryAlarmItemDTO.getDealFun());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getCreateUser())) {
+                queryWrapper.like(AlarmItem.PROP_CREATE_USER, queryAlarmItemDTO.getCreateUser());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getProjectId())) {
+                queryWrapper.like(AlarmItem.PROP_PROJECT_ID, queryAlarmItemDTO.getProjectId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getGroupCode())) {
+                queryWrapper.like(AlarmItem.PROP_GROUP_CODE, queryAlarmItemDTO.getGroupCode());
+            }
+                                            
+            if (queryAlarmItemDTO.getCreateTime() != null) {
+                queryWrapper.eq(AlarmItem.PROP_CREATE_TIME, queryAlarmItemDTO.getCreateTime());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getUpdateUser())) {
+                queryWrapper.like(AlarmItem.PROP_UPDATE_USER, queryAlarmItemDTO.getUpdateUser());
+            }
+                                            
+            if (queryAlarmItemDTO.getUpdateTime() != null) {
+                queryWrapper.eq(AlarmItem.PROP_UPDATE_TIME, queryAlarmItemDTO.getUpdateTime());
+            }
+                                            
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmItemDTO.getAppId())) {
+                queryWrapper.like(AlarmItem.PROP_APP_ID, queryAlarmItemDTO.getAppId());
+            }
+                    
+        }
+        
+        return list(queryWrapper);
+    }
+    
+    /**
+    * 分页查询报警条目
+    * @return IPage<AlarmItem>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public IPage<AlarmItem> pageQueryAlarmItem(PageQueryAlarmItemDTO pageQueryAlarmItemDTO) {
+        QueryWrapper<AlarmItem> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmItem.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<AlarmItem> pageParam = new Page<>(pageQueryAlarmItemDTO.getPage(), pageQueryAlarmItemDTO.getSize(),true);
+        // 排序信息
+        if(CollectionUtils.isEmpty(pageQueryAlarmItemDTO.getOrders())){
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, AlarmItem.PROP_CREATIONTIME);
+        }else {
+            List<Sort> orders = pageQueryAlarmItemDTO.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(pageQueryAlarmItemDTO.getCode())) {
+            queryWrapper.like(AlarmItem.PROP_CODE, pageQueryAlarmItemDTO.getCode());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getName())) {
+            queryWrapper.like(AlarmItem.PROP_NAME, pageQueryAlarmItemDTO.getName());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getCategory())) {
+            queryWrapper.like(AlarmItem.PROP_CATEGORY, pageQueryAlarmItemDTO.getCategory());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getLevel())) {
+            queryWrapper.like(AlarmItem.PROP_LEVEL, pageQueryAlarmItemDTO.getLevel());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getRemark())) {
+            queryWrapper.like(AlarmItem.PROP_REMARK, pageQueryAlarmItemDTO.getRemark());
+        }
+                            
+        if (pageQueryAlarmItemDTO.getCondition() != null) {
+            queryWrapper.eq(AlarmItem.PROP_CONDITION, pageQueryAlarmItemDTO.getCondition());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getDealFun())) {
+            queryWrapper.like(AlarmItem.PROP_DEAL_FUN, pageQueryAlarmItemDTO.getDealFun());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getCreateUser())) {
+            queryWrapper.like(AlarmItem.PROP_CREATE_USER, pageQueryAlarmItemDTO.getCreateUser());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getProjectId())) {
+            queryWrapper.like(AlarmItem.PROP_PROJECT_ID, pageQueryAlarmItemDTO.getProjectId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getGroupCode())) {
+            queryWrapper.like(AlarmItem.PROP_GROUP_CODE, pageQueryAlarmItemDTO.getGroupCode());
+        }
+                            
+        if (pageQueryAlarmItemDTO.getCreateTime() != null) {
+            queryWrapper.eq(AlarmItem.PROP_CREATE_TIME, pageQueryAlarmItemDTO.getCreateTime());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getUpdateUser())) {
+            queryWrapper.like(AlarmItem.PROP_UPDATE_USER, pageQueryAlarmItemDTO.getUpdateUser());
+        }
+                            
+        if (pageQueryAlarmItemDTO.getUpdateTime() != null) {
+            queryWrapper.eq(AlarmItem.PROP_UPDATE_TIME, pageQueryAlarmItemDTO.getUpdateTime());
+        }
+                                
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmItemDTO.getAppId())) {
+            queryWrapper.like(AlarmItem.PROP_APP_ID, pageQueryAlarmItemDTO.getAppId());
+        }
+            
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 269 - 0
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmLogServiceImpl.java

@@ -0,0 +1,269 @@
+package com.persagy.apm.dmpalarm.service.impl;
+
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.dmpalarm.dao.AlarmLogMapper;
+import com.persagy.apm.dmpalarm.service.IAlarmLogService;
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警日志(AlarmLog) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+@Service
+public class AlarmLogServiceImpl extends ServiceImpl<AlarmLogMapper, AlarmLog> 
+    implements IAlarmLogService {
+    
+    /**
+    * 创建报警日志
+    * @return 报警日志主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public String createAlarmLog(AddAlarmLogDTO addAlarmLogDTO) {
+        AlarmLog alarmLog = ConvertAlarmLogTool.INSTANCE.convertAddDto2Entity(addAlarmLogDTO);
+        // 设置默认值
+        setDefaultValue(alarmLog);
+        save(alarmLog);
+        return alarmLog.getId();
+    }
+    
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param alarmLog 报警日志实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AlarmLog alarmLog) {
+        alarmLog.setCreator(PoemsContext.getContext().getUserId());
+        // todo 其他默认的属性
+        
+    }
+    
+    /**
+    * 报警日志详情
+    * @param id 主键
+    * @return 部门do类
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public AlarmLog queryAlarmLogDetail(String id) {
+        AlarmLog alarmLog = getById(id);
+        if (alarmLog == null) {
+            throw new IllegalArgumentException("查看AlarmLog详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return alarmLog;
+    }
+    
+    /**
+    * 更新报警日志
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void updateAlarmLog(UpdateAlarmLogDTO updateAlarmLogDTO) {
+        AlarmLog alarmLog = getById(updateAlarmLogDTO.getId());
+        alarmLog = ConvertAlarmLogTool.INSTANCE.convertUpdateDto2Entity(alarmLog, updateAlarmLogDTO);
+        alarmLog.setModifier(PoemsContext.getContext().getUserId());
+        updateById(alarmLog);
+    }
+    
+    /**
+     * 校验报警日志是否可删除
+     *
+     * @param id 报警日志主键
+     * @return 报警日志do类
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    public AlarmLog checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除AlarmLog时发生异常,主键为空");
+        }
+
+        AlarmLog alarmLog = getById(id);
+
+        if (alarmLog == null) {
+            throw new IllegalArgumentException("删除AlarmLog时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return alarmLog;
+    }
+    
+    /**
+    * 删除报警日志
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void deleteAlarmLog(String id) {
+        // 校验是否可删除
+        AlarmLog alarmLog = checkDeletable(id);
+
+        alarmLog.setValid(ValidEnum.FALSE.getType());
+        updateById(alarmLog);
+    }
+    
+    /**
+    * 查询报警日志
+    * @return List<AlarmLog>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public List<AlarmLog> queryAlarmLogList(QueryAlarmLogDTO queryAlarmLogDTO) {
+        QueryWrapper<AlarmLog> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmLog.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, AlarmLog.PROP_CREATIONTIME);
+        
+        if (queryAlarmLogDTO != null) {
+                                
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmLogDTO.getRecordId())) {
+                queryWrapper.like(AlarmLog.PROP_RECORD_ID, queryAlarmLogDTO.getRecordId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmLogDTO.getType())) {
+                queryWrapper.like(AlarmLog.PROP_TYPE, queryAlarmLogDTO.getType());
+            }
+                                            
+            if (queryAlarmLogDTO.getNature() != null) {
+                queryWrapper.eq(AlarmLog.PROP_NATURE, queryAlarmLogDTO.getNature());
+            }
+                                            
+            if (queryAlarmLogDTO.getBefore() != null) {
+                queryWrapper.eq(AlarmLog.PROP_BEFORE, queryAlarmLogDTO.getBefore());
+            }
+                                            
+            if (queryAlarmLogDTO.getAfter() != null) {
+                queryWrapper.eq(AlarmLog.PROP_AFTER, queryAlarmLogDTO.getAfter());
+            }
+                                            
+            if (queryAlarmLogDTO.getRemark() != null) {
+                queryWrapper.eq(AlarmLog.PROP_REMARK, queryAlarmLogDTO.getRemark());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmLogDTO.getProjectId())) {
+                queryWrapper.like(AlarmLog.PROP_PROJECT_ID, queryAlarmLogDTO.getProjectId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmLogDTO.getGroupCode())) {
+                queryWrapper.like(AlarmLog.PROP_GROUP_CODE, queryAlarmLogDTO.getGroupCode());
+            }
+                                            
+            if (queryAlarmLogDTO.getCreateTime() != null) {
+                queryWrapper.eq(AlarmLog.PROP_CREATE_TIME, queryAlarmLogDTO.getCreateTime());
+            }
+                                            
+            if (queryAlarmLogDTO.getUpdateTime() != null) {
+                queryWrapper.eq(AlarmLog.PROP_UPDATE_TIME, queryAlarmLogDTO.getUpdateTime());
+            }
+                                            
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmLogDTO.getCreateUser())) {
+                queryWrapper.like(AlarmLog.PROP_CREATE_USER, queryAlarmLogDTO.getCreateUser());
+            }
+                    
+        }
+        
+        return list(queryWrapper);
+    }
+    
+    /**
+    * 分页查询报警日志
+    * @return IPage<AlarmLog>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public IPage<AlarmLog> pageQueryAlarmLog(PageQueryAlarmLogDTO pageQueryAlarmLogDTO) {
+        QueryWrapper<AlarmLog> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmLog.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<AlarmLog> pageParam = new Page<>(pageQueryAlarmLogDTO.getPage(), pageQueryAlarmLogDTO.getSize(),true);
+        // 排序信息
+        if(CollectionUtils.isEmpty(pageQueryAlarmLogDTO.getOrders())){
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, AlarmLog.PROP_CREATIONTIME);
+        }else {
+            List<Sort> orders = pageQueryAlarmLogDTO.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(pageQueryAlarmLogDTO.getRecordId())) {
+            queryWrapper.like(AlarmLog.PROP_RECORD_ID, pageQueryAlarmLogDTO.getRecordId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmLogDTO.getType())) {
+            queryWrapper.like(AlarmLog.PROP_TYPE, pageQueryAlarmLogDTO.getType());
+        }
+                            
+        if (pageQueryAlarmLogDTO.getNature() != null) {
+            queryWrapper.eq(AlarmLog.PROP_NATURE, pageQueryAlarmLogDTO.getNature());
+        }
+                            
+        if (pageQueryAlarmLogDTO.getBefore() != null) {
+            queryWrapper.eq(AlarmLog.PROP_BEFORE, pageQueryAlarmLogDTO.getBefore());
+        }
+                            
+        if (pageQueryAlarmLogDTO.getAfter() != null) {
+            queryWrapper.eq(AlarmLog.PROP_AFTER, pageQueryAlarmLogDTO.getAfter());
+        }
+                            
+        if (pageQueryAlarmLogDTO.getRemark() != null) {
+            queryWrapper.eq(AlarmLog.PROP_REMARK, pageQueryAlarmLogDTO.getRemark());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmLogDTO.getProjectId())) {
+            queryWrapper.like(AlarmLog.PROP_PROJECT_ID, pageQueryAlarmLogDTO.getProjectId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmLogDTO.getGroupCode())) {
+            queryWrapper.like(AlarmLog.PROP_GROUP_CODE, pageQueryAlarmLogDTO.getGroupCode());
+        }
+                            
+        if (pageQueryAlarmLogDTO.getCreateTime() != null) {
+            queryWrapper.eq(AlarmLog.PROP_CREATE_TIME, pageQueryAlarmLogDTO.getCreateTime());
+        }
+                            
+        if (pageQueryAlarmLogDTO.getUpdateTime() != null) {
+            queryWrapper.eq(AlarmLog.PROP_UPDATE_TIME, pageQueryAlarmLogDTO.getUpdateTime());
+        }
+                                
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmLogDTO.getCreateUser())) {
+            queryWrapper.like(AlarmLog.PROP_CREATE_USER, pageQueryAlarmLogDTO.getCreateUser());
+        }
+            
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 431 - 0
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmRecordServiceImpl.java

@@ -0,0 +1,431 @@
+package com.persagy.apm.dmpalarm.service.impl;
+
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.dmpalarm.dao.AlarmRecordMapper;
+import com.persagy.apm.dmpalarm.service.IAlarmRecordService;
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警记录(AlarmRecord) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+@Service
+public class AlarmRecordServiceImpl extends ServiceImpl<AlarmRecordMapper, AlarmRecord> 
+    implements IAlarmRecordService {
+    
+    /**
+    * 创建报警记录
+    * @return 报警记录主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public String createAlarmRecord(AddAlarmRecordDTO addAlarmRecordDTO) {
+        AlarmRecord alarmRecord = ConvertAlarmRecordTool.INSTANCE.convertAddDto2Entity(addAlarmRecordDTO);
+        // 设置默认值
+        setDefaultValue(alarmRecord);
+        save(alarmRecord);
+        return alarmRecord.getId();
+    }
+    
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param alarmRecord 报警记录实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AlarmRecord alarmRecord) {
+        alarmRecord.setCreator(PoemsContext.getContext().getUserId());
+        // todo 其他默认的属性
+        
+    }
+    
+    /**
+    * 报警记录详情
+    * @param id 主键
+    * @return 部门do类
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public AlarmRecord queryAlarmRecordDetail(String id) {
+        AlarmRecord alarmRecord = getById(id);
+        if (alarmRecord == null) {
+            throw new IllegalArgumentException("查看AlarmRecord详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return alarmRecord;
+    }
+    
+    /**
+    * 更新报警记录
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void updateAlarmRecord(UpdateAlarmRecordDTO updateAlarmRecordDTO) {
+        AlarmRecord alarmRecord = getById(updateAlarmRecordDTO.getId());
+        alarmRecord = ConvertAlarmRecordTool.INSTANCE.convertUpdateDto2Entity(alarmRecord, updateAlarmRecordDTO);
+        alarmRecord.setModifier(PoemsContext.getContext().getUserId());
+        updateById(alarmRecord);
+    }
+    
+    /**
+     * 校验报警记录是否可删除
+     *
+     * @param id 报警记录主键
+     * @return 报警记录do类
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    public AlarmRecord checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除AlarmRecord时发生异常,主键为空");
+        }
+
+        AlarmRecord alarmRecord = getById(id);
+
+        if (alarmRecord == null) {
+            throw new IllegalArgumentException("删除AlarmRecord时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return alarmRecord;
+    }
+    
+    /**
+    * 删除报警记录
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void deleteAlarmRecord(String id) {
+        // 校验是否可删除
+        AlarmRecord alarmRecord = checkDeletable(id);
+
+        alarmRecord.setValid(ValidEnum.FALSE.getType());
+        updateById(alarmRecord);
+    }
+    
+    /**
+    * 查询报警记录
+    * @return List<AlarmRecord>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public List<AlarmRecord> queryAlarmRecordList(QueryAlarmRecordDTO queryAlarmRecordDTO) {
+        QueryWrapper<AlarmRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmRecord.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, AlarmRecord.PROP_CREATIONTIME);
+        
+        if (queryAlarmRecordDTO != null) {
+                                
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getItemCode())) {
+                queryWrapper.like(AlarmRecord.PROP_ITEM_CODE, queryAlarmRecordDTO.getItemCode());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getProjectId())) {
+                queryWrapper.like(AlarmRecord.PROP_PROJECT_ID, queryAlarmRecordDTO.getProjectId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getObjId())) {
+                queryWrapper.like(AlarmRecord.PROP_OBJ_ID, queryAlarmRecordDTO.getObjId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getClassCode())) {
+                queryWrapper.like(AlarmRecord.PROP_CLASS_CODE, queryAlarmRecordDTO.getClassCode());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getLevel())) {
+                queryWrapper.like(AlarmRecord.PROP_LEVEL, queryAlarmRecordDTO.getLevel());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getRemark())) {
+                queryWrapper.like(AlarmRecord.PROP_REMARK, queryAlarmRecordDTO.getRemark());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getCreateUser())) {
+                queryWrapper.like(AlarmRecord.PROP_CREATE_USER, queryAlarmRecordDTO.getCreateUser());
+            }
+                                            
+            if (queryAlarmRecordDTO.getCreateTime() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_CREATE_TIME, queryAlarmRecordDTO.getCreateTime());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getUpdateUser())) {
+                queryWrapper.like(AlarmRecord.PROP_UPDATE_USER, queryAlarmRecordDTO.getUpdateUser());
+            }
+                                            
+            if (queryAlarmRecordDTO.getUpdateTime() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_UPDATE_TIME, queryAlarmRecordDTO.getUpdateTime());
+            }
+                                            
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getName())) {
+                queryWrapper.like(AlarmRecord.PROP_NAME, queryAlarmRecordDTO.getName());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getCategory())) {
+                queryWrapper.like(AlarmRecord.PROP_CATEGORY, queryAlarmRecordDTO.getCategory());
+            }
+                                            
+            if (queryAlarmRecordDTO.getConcern() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_CONCERN, queryAlarmRecordDTO.getConcern());
+            }
+                                            
+            if (queryAlarmRecordDTO.getState() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_STATE, queryAlarmRecordDTO.getState());
+            }
+                                            
+            if (queryAlarmRecordDTO.getEffectStartTime() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_EFFECT_START_TIME, queryAlarmRecordDTO.getEffectStartTime());
+            }
+                                            
+            if (queryAlarmRecordDTO.getEffectEndTime() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_EFFECT_END_TIME, queryAlarmRecordDTO.getEffectEndTime());
+            }
+                                            
+            if (queryAlarmRecordDTO.getNature() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_NATURE, queryAlarmRecordDTO.getNature());
+            }
+                                            
+            if (queryAlarmRecordDTO.getTreatMode() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_TREAT_MODE, queryAlarmRecordDTO.getTreatMode());
+            }
+                                            
+            if (queryAlarmRecordDTO.getTreatState() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_TREAT_STATE, queryAlarmRecordDTO.getTreatState());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getGroupCode())) {
+                queryWrapper.like(AlarmRecord.PROP_GROUP_CODE, queryAlarmRecordDTO.getGroupCode());
+            }
+                                            
+            if (queryAlarmRecordDTO.getCondition() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_CONDITION, queryAlarmRecordDTO.getCondition());
+            }
+                                            
+            if (queryAlarmRecordDTO.getTriggerInfo() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_TRIGGER_INFO, queryAlarmRecordDTO.getTriggerInfo());
+            }
+                                            
+            if (queryAlarmRecordDTO.getEndInfo() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_END_INFO, queryAlarmRecordDTO.getEndInfo());
+            }
+                                            
+            if (queryAlarmRecordDTO.getTriggerTime() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_TRIGGER_TIME, queryAlarmRecordDTO.getTriggerTime());
+            }
+                                            
+            if (queryAlarmRecordDTO.getEndTime() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_END_TIME, queryAlarmRecordDTO.getEndTime());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getOrderId())) {
+                queryWrapper.like(AlarmRecord.PROP_ORDER_ID, queryAlarmRecordDTO.getOrderId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getOrderState())) {
+                queryWrapper.like(AlarmRecord.PROP_ORDER_STATE, queryAlarmRecordDTO.getOrderState());
+            }
+                                            
+            if (queryAlarmRecordDTO.getSupplement() != null) {
+                queryWrapper.eq(AlarmRecord.PROP_SUPPLEMENT, queryAlarmRecordDTO.getSupplement());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmRecordDTO.getTargetId())) {
+                queryWrapper.like(AlarmRecord.PROP_TARGET_ID, queryAlarmRecordDTO.getTargetId());
+            }
+                    
+        }
+        
+        return list(queryWrapper);
+    }
+    
+    /**
+    * 分页查询报警记录
+    * @return IPage<AlarmRecord>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public IPage<AlarmRecord> pageQueryAlarmRecord(PageQueryAlarmRecordDTO pageQueryAlarmRecordDTO) {
+        QueryWrapper<AlarmRecord> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmRecord.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<AlarmRecord> pageParam = new Page<>(pageQueryAlarmRecordDTO.getPage(), pageQueryAlarmRecordDTO.getSize(),true);
+        // 排序信息
+        if(CollectionUtils.isEmpty(pageQueryAlarmRecordDTO.getOrders())){
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, AlarmRecord.PROP_CREATIONTIME);
+        }else {
+            List<Sort> orders = pageQueryAlarmRecordDTO.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(pageQueryAlarmRecordDTO.getItemCode())) {
+            queryWrapper.like(AlarmRecord.PROP_ITEM_CODE, pageQueryAlarmRecordDTO.getItemCode());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getProjectId())) {
+            queryWrapper.like(AlarmRecord.PROP_PROJECT_ID, pageQueryAlarmRecordDTO.getProjectId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getObjId())) {
+            queryWrapper.like(AlarmRecord.PROP_OBJ_ID, pageQueryAlarmRecordDTO.getObjId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getClassCode())) {
+            queryWrapper.like(AlarmRecord.PROP_CLASS_CODE, pageQueryAlarmRecordDTO.getClassCode());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getLevel())) {
+            queryWrapper.like(AlarmRecord.PROP_LEVEL, pageQueryAlarmRecordDTO.getLevel());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getRemark())) {
+            queryWrapper.like(AlarmRecord.PROP_REMARK, pageQueryAlarmRecordDTO.getRemark());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getCreateUser())) {
+            queryWrapper.like(AlarmRecord.PROP_CREATE_USER, pageQueryAlarmRecordDTO.getCreateUser());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getCreateTime() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_CREATE_TIME, pageQueryAlarmRecordDTO.getCreateTime());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getUpdateUser())) {
+            queryWrapper.like(AlarmRecord.PROP_UPDATE_USER, pageQueryAlarmRecordDTO.getUpdateUser());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getUpdateTime() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_UPDATE_TIME, pageQueryAlarmRecordDTO.getUpdateTime());
+        }
+                                
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getName())) {
+            queryWrapper.like(AlarmRecord.PROP_NAME, pageQueryAlarmRecordDTO.getName());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getCategory())) {
+            queryWrapper.like(AlarmRecord.PROP_CATEGORY, pageQueryAlarmRecordDTO.getCategory());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getConcern() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_CONCERN, pageQueryAlarmRecordDTO.getConcern());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getState() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_STATE, pageQueryAlarmRecordDTO.getState());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getEffectStartTime() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_EFFECT_START_TIME, pageQueryAlarmRecordDTO.getEffectStartTime());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getEffectEndTime() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_EFFECT_END_TIME, pageQueryAlarmRecordDTO.getEffectEndTime());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getNature() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_NATURE, pageQueryAlarmRecordDTO.getNature());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getTreatMode() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_TREAT_MODE, pageQueryAlarmRecordDTO.getTreatMode());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getTreatState() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_TREAT_STATE, pageQueryAlarmRecordDTO.getTreatState());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getGroupCode())) {
+            queryWrapper.like(AlarmRecord.PROP_GROUP_CODE, pageQueryAlarmRecordDTO.getGroupCode());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getCondition() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_CONDITION, pageQueryAlarmRecordDTO.getCondition());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getTriggerInfo() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_TRIGGER_INFO, pageQueryAlarmRecordDTO.getTriggerInfo());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getEndInfo() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_END_INFO, pageQueryAlarmRecordDTO.getEndInfo());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getTriggerTime() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_TRIGGER_TIME, pageQueryAlarmRecordDTO.getTriggerTime());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getEndTime() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_END_TIME, pageQueryAlarmRecordDTO.getEndTime());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getOrderId())) {
+            queryWrapper.like(AlarmRecord.PROP_ORDER_ID, pageQueryAlarmRecordDTO.getOrderId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getOrderState())) {
+            queryWrapper.like(AlarmRecord.PROP_ORDER_STATE, pageQueryAlarmRecordDTO.getOrderState());
+        }
+                            
+        if (pageQueryAlarmRecordDTO.getSupplement() != null) {
+            queryWrapper.eq(AlarmRecord.PROP_SUPPLEMENT, pageQueryAlarmRecordDTO.getSupplement());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmRecordDTO.getTargetId())) {
+            queryWrapper.like(AlarmRecord.PROP_TARGET_ID, pageQueryAlarmRecordDTO.getTargetId());
+        }
+            
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 281 - 0
src/main/java/com/persagy/apm/dmpalarm/service/impl/AlarmTargetServiceImpl.java

@@ -0,0 +1,281 @@
+package com.persagy.apm.dmpalarm.service.impl;
+
+import com.persagy.apm.common.context.poems.PoemsContext;
+import com.persagy.apm.dmpalarm.dao.AlarmTargetMapper;
+import com.persagy.apm.dmpalarm.service.IAlarmTargetService;
+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.dmpalarm.model.*;
+import com.persagy.apm.dmpalarm.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;
+
+/**
+ * 报警匹配条件(AlarmTarget) service层
+ *
+ * @author lixing
+ * @version V1.0 2021-12-09 10:44:19
+ */
+@Service
+public class AlarmTargetServiceImpl extends ServiceImpl<AlarmTargetMapper, AlarmTarget> 
+    implements IAlarmTargetService {
+    
+    /**
+    * 创建报警匹配条件
+    * @return 报警匹配条件主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public String createAlarmTarget(AddAlarmTargetDTO addAlarmTargetDTO) {
+        AlarmTarget alarmTarget = ConvertAlarmTargetTool.INSTANCE.convertAddDto2Entity(addAlarmTargetDTO);
+        // 设置默认值
+        setDefaultValue(alarmTarget);
+        save(alarmTarget);
+        return alarmTarget.getId();
+    }
+    
+    /**
+     * 如果某些字段没有赋值,使用默认的值
+     *
+     * @param alarmTarget 报警匹配条件实体
+     * @author lixing
+     * @version V1.0 2021/3/12 12:29 下午
+     */
+    private void setDefaultValue(AlarmTarget alarmTarget) {
+        alarmTarget.setCreator(PoemsContext.getContext().getUserId());
+        // todo 其他默认的属性
+        
+    }
+    
+    /**
+    * 报警匹配条件详情
+    * @param id 主键
+    * @return 部门do类
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public AlarmTarget queryAlarmTargetDetail(String id) {
+        AlarmTarget alarmTarget = getById(id);
+        if (alarmTarget == null) {
+            throw new IllegalArgumentException("查看AlarmTarget详情时发生异常,找不到要查看的记录,id=" + id);
+        }
+        return alarmTarget;
+    }
+    
+    /**
+    * 更新报警匹配条件
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void updateAlarmTarget(UpdateAlarmTargetDTO updateAlarmTargetDTO) {
+        AlarmTarget alarmTarget = getById(updateAlarmTargetDTO.getId());
+        alarmTarget = ConvertAlarmTargetTool.INSTANCE.convertUpdateDto2Entity(alarmTarget, updateAlarmTargetDTO);
+        alarmTarget.setModifier(PoemsContext.getContext().getUserId());
+        updateById(alarmTarget);
+    }
+    
+    /**
+     * 校验报警匹配条件是否可删除
+     *
+     * @param id 报警匹配条件主键
+     * @return 报警匹配条件do类
+     * @author lixing
+     * @version V1.0 2021-12-09 10:44:19
+     */
+    public AlarmTarget checkDeletable(String id) {
+        if (id == null) {
+            throw new IllegalArgumentException("删除AlarmTarget时发生异常,主键为空");
+        }
+
+        AlarmTarget alarmTarget = getById(id);
+
+        if (alarmTarget == null) {
+            throw new IllegalArgumentException("删除AlarmTarget时发生异常,找不到要删除的数据,id:" + id);
+        }
+
+        return alarmTarget;
+    }
+    
+    /**
+    * 删除报警匹配条件
+    * @param id 主键
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public void deleteAlarmTarget(String id) {
+        // 校验是否可删除
+        AlarmTarget alarmTarget = checkDeletable(id);
+
+        alarmTarget.setValid(ValidEnum.FALSE.getType());
+        updateById(alarmTarget);
+    }
+    
+    /**
+    * 查询报警匹配条件
+    * @return List<AlarmTarget>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public List<AlarmTarget> queryAlarmTargetList(QueryAlarmTargetDTO queryAlarmTargetDTO) {
+        QueryWrapper<AlarmTarget> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmTarget.PROP_VALID, ValidEnum.TRUE.getType());
+        // 默认按创建时间倒序排序
+        queryWrapper.orderBy(true, false, AlarmTarget.PROP_CREATIONTIME);
+        
+        if (queryAlarmTargetDTO != null) {
+                                
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmTargetDTO.getItemCode())) {
+                queryWrapper.like(AlarmTarget.PROP_ITEM_CODE, queryAlarmTargetDTO.getItemCode());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmTargetDTO.getClassCode())) {
+                queryWrapper.like(AlarmTarget.PROP_CLASS_CODE, queryAlarmTargetDTO.getClassCode());
+            }
+                                            
+            if (queryAlarmTargetDTO.getCondition() != null) {
+                queryWrapper.eq(AlarmTarget.PROP_CONDITION, queryAlarmTargetDTO.getCondition());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmTargetDTO.getLevel())) {
+                queryWrapper.like(AlarmTarget.PROP_LEVEL, queryAlarmTargetDTO.getLevel());
+            }
+                                            
+            if (queryAlarmTargetDTO.getConcern() != null) {
+                queryWrapper.eq(AlarmTarget.PROP_CONCERN, queryAlarmTargetDTO.getConcern());
+            }
+                                            
+            if (queryAlarmTargetDTO.getOpen() != null) {
+                queryWrapper.eq(AlarmTarget.PROP_OPEN, queryAlarmTargetDTO.getOpen());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmTargetDTO.getCreateUser())) {
+                queryWrapper.like(AlarmTarget.PROP_CREATE_USER, queryAlarmTargetDTO.getCreateUser());
+            }
+                                            
+            if (queryAlarmTargetDTO.getCreateTime() != null) {
+                queryWrapper.eq(AlarmTarget.PROP_CREATE_TIME, queryAlarmTargetDTO.getCreateTime());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmTargetDTO.getUpdateUser())) {
+                queryWrapper.like(AlarmTarget.PROP_UPDATE_USER, queryAlarmTargetDTO.getUpdateUser());
+            }
+                                            
+            if (queryAlarmTargetDTO.getUpdateTime() != null) {
+                queryWrapper.eq(AlarmTarget.PROP_UPDATE_TIME, queryAlarmTargetDTO.getUpdateTime());
+            }
+                                            
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmTargetDTO.getProjectId())) {
+                queryWrapper.like(AlarmTarget.PROP_PROJECT_ID, queryAlarmTargetDTO.getProjectId());
+            }
+                                        
+            // todo 需判断使用like还是eq
+            if (StringUtils.isNotEmpty(queryAlarmTargetDTO.getGroupCode())) {
+                queryWrapper.like(AlarmTarget.PROP_GROUP_CODE, queryAlarmTargetDTO.getGroupCode());
+            }
+                    
+        }
+        
+        return list(queryWrapper);
+    }
+    
+    /**
+    * 分页查询报警匹配条件
+    * @return IPage<AlarmTarget>
+    * @author lixing
+    * @version V1.0 2021-12-09 10:44:19
+    */
+    @Override
+    public IPage<AlarmTarget> pageQueryAlarmTarget(PageQueryAlarmTargetDTO pageQueryAlarmTargetDTO) {
+        QueryWrapper<AlarmTarget> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(AlarmTarget.PROP_VALID, ValidEnum.TRUE.getType());
+        // 这里认为pageQueryDTO是经过校验的,肯定包含分页信息
+        IPage<AlarmTarget> pageParam = new Page<>(pageQueryAlarmTargetDTO.getPage(), pageQueryAlarmTargetDTO.getSize(),true);
+        // 排序信息
+        if(CollectionUtils.isEmpty(pageQueryAlarmTargetDTO.getOrders())){
+            // 默认按创建时间倒序排序
+            queryWrapper.orderBy(true, false, AlarmTarget.PROP_CREATIONTIME);
+        }else {
+            List<Sort> orders = pageQueryAlarmTargetDTO.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(pageQueryAlarmTargetDTO.getItemCode())) {
+            queryWrapper.like(AlarmTarget.PROP_ITEM_CODE, pageQueryAlarmTargetDTO.getItemCode());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmTargetDTO.getClassCode())) {
+            queryWrapper.like(AlarmTarget.PROP_CLASS_CODE, pageQueryAlarmTargetDTO.getClassCode());
+        }
+                            
+        if (pageQueryAlarmTargetDTO.getCondition() != null) {
+            queryWrapper.eq(AlarmTarget.PROP_CONDITION, pageQueryAlarmTargetDTO.getCondition());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmTargetDTO.getLevel())) {
+            queryWrapper.like(AlarmTarget.PROP_LEVEL, pageQueryAlarmTargetDTO.getLevel());
+        }
+                            
+        if (pageQueryAlarmTargetDTO.getConcern() != null) {
+            queryWrapper.eq(AlarmTarget.PROP_CONCERN, pageQueryAlarmTargetDTO.getConcern());
+        }
+                            
+        if (pageQueryAlarmTargetDTO.getOpen() != null) {
+            queryWrapper.eq(AlarmTarget.PROP_OPEN, pageQueryAlarmTargetDTO.getOpen());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmTargetDTO.getCreateUser())) {
+            queryWrapper.like(AlarmTarget.PROP_CREATE_USER, pageQueryAlarmTargetDTO.getCreateUser());
+        }
+                            
+        if (pageQueryAlarmTargetDTO.getCreateTime() != null) {
+            queryWrapper.eq(AlarmTarget.PROP_CREATE_TIME, pageQueryAlarmTargetDTO.getCreateTime());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmTargetDTO.getUpdateUser())) {
+            queryWrapper.like(AlarmTarget.PROP_UPDATE_USER, pageQueryAlarmTargetDTO.getUpdateUser());
+        }
+                            
+        if (pageQueryAlarmTargetDTO.getUpdateTime() != null) {
+            queryWrapper.eq(AlarmTarget.PROP_UPDATE_TIME, pageQueryAlarmTargetDTO.getUpdateTime());
+        }
+                                
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmTargetDTO.getProjectId())) {
+            queryWrapper.like(AlarmTarget.PROP_PROJECT_ID, pageQueryAlarmTargetDTO.getProjectId());
+        }
+                            
+        // todo 需判断使用like还是eq
+        if (StringUtils.isNotEmpty(pageQueryAlarmTargetDTO.getGroupCode())) {
+            queryWrapper.like(AlarmTarget.PROP_GROUP_CODE, pageQueryAlarmTargetDTO.getGroupCode());
+        }
+            
+        return getBaseMapper().selectPage(pageParam, queryWrapper);
+    }
+}

+ 72 - 0
src/main/resources/bootstrap.yml

@@ -0,0 +1,72 @@
+server:
+  port:
+    9979
+
+spring:
+  application:
+    name: energy-dmp-alarm
+  jackson:
+    serialization:
+      # 统一将时间都转为时间戳
+      write-dates-as-timestamps: true
+    # 设置时间戳的时区
+    time-zone: Asia/Shanghai
+  datasource:
+    dynamic:
+      primary: master
+      strict: false
+      datasource:
+        master:
+          schema: classpath*:db/init/table.sql
+          data: classpath*:db/init/data.sql
+          continue-on-error: true
+          # MYSQL_SCHEMA建议使用默认值。如果有特殊需求,建议在环境变量中配置该值
+          url: jdbc:mysql://${mysql.ip}:${mysql.port}/${MYSQL_SCHEMA:dmp_alarm}?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
+          username: ${MYSQL_USERNAME:${spring.datasource.username}}
+          password: ${MYSQL_PASSWORD:${spring.datasource.password}}
+          driver-class-name: com.mysql.cj.jdbc.Driver
+
+
+feign:
+  compression:
+    response:
+      # feign返回结果不压缩
+      enabled: false
+    request:
+      # feign请求参数不压缩
+      enabled: false
+
+integrated:
+  swagger:
+    # 接口文档版本
+    version: v1.0.0
+    # 接口访问地址
+    termsOfServiceUrl: localhost
+    # 作者信息
+    contact:
+      name: lixing
+    # 只展示com.persagy包下的接口, 不展示swagger默认的接口
+    basePackage: com.persagy
+    # 接口文档简介
+    description: --
+    # 接口文档名称
+    title: energy-dmp-alarm 接口文档
+
+# 不打印sql
+mybatis-plus:
+  configuration:
+    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+#    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
+eureka:
+  client:
+    register-with-eureka: ${REGISTER_WITH_EUREKA:true}
+
+# com.persagy包的日志等级为info
+logging:
+  config: classpath:logback-spring.xml
+  level:
+    com:
+      persagy: info
+
+

File diff suppressed because it is too large
+ 1482 - 0
src/main/resources/db/init/data.sql


+ 154 - 0
src/main/resources/db/init/table.sql

@@ -0,0 +1,154 @@
+CREATE TABLE IF NOT EXISTS `alarm_comment`
+(
+    `id`          varchar(80) NOT NULL COMMENT '主键',
+    `record_id`   varchar(40) NOT NULL DEFAULT '' COMMENT '报警记录id',
+    `content`     text        NOT NULL COMMENT '批注内容',
+    `create_user` varchar(32) NOT NULL COMMENT '创建人',
+    `project_id`  varchar(50)          DEFAULT NULL COMMENT '项目id',
+    `group_code`  varchar(50)          DEFAULT NULL COMMENT '集团编码',
+    `create_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `update_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `update_user` varchar(32)          DEFAULT NULL COMMENT '更新人',
+    `valid`       int(11)              DEFAULT '1' COMMENT '删除标记 1:true,0:false',
+    PRIMARY KEY (`id`)
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='报警批注';
+
+CREATE TABLE IF NOT EXISTS `alarm_config`
+(
+    `id`           varchar(40) NOT NULL COMMENT '主键',
+    `obj_id`       varchar(50) NOT NULL COMMENT '对象id',
+    `class_code`   varchar(50)          DEFAULT NULL COMMENT '对象类型编码',
+    `project_id`   varchar(50)          DEFAULT NULL COMMENT '项目id',
+    `group_code`   varchar(50)          DEFAULT NULL COMMENT '集团编码',
+    `item_code`    varchar(40) NOT NULL COMMENT '报警条目编码',
+    `target_id`    varchar(50)          DEFAULT NULL COMMENT '报警匹配条件id',
+    `category`     varchar(10)          DEFAULT NULL COMMENT '报警分类',
+    `level`        varchar(10) NOT NULL COMMENT '严重程度',
+    `remark`       varchar(500)         DEFAULT NULL COMMENT '备注',
+    `condition`    json                 DEFAULT NULL COMMENT '触发条件',
+    `open`         int(11)              DEFAULT NULL COMMENT '屏蔽状态 1-open、0- 屏蔽',
+    `concern`      int(11)              DEFAULT NULL COMMENT '是否重点关注',
+    `user_defined` int(11)              DEFAULT NULL COMMENT '是否自定义',
+    `create_user`  varchar(80)          DEFAULT NULL COMMENT '创建用户',
+    `create_time`  timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `update_user`  varchar(80)          DEFAULT NULL COMMENT '更新用户',
+    `update_time`  timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `valid`        int(11)     NOT NULL DEFAULT '1' COMMENT '删除标记 1:true,0:false',
+    PRIMARY KEY (`id`),
+    KEY `index2` (`obj_id`),
+    KEY `index3` (`item_code`),
+    KEY `index4` (`class_code`)
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='报警定义';
+
+CREATE TABLE IF NOT EXISTS `alarm_item`
+(
+    `id`          varchar(40) NOT NULL COMMENT '主键',
+    `code`        varchar(40) NOT NULL COMMENT '报警条目编码',
+    `name`        varchar(50) NOT NULL DEFAULT '' COMMENT '报警条目名称',
+    `category`    varchar(10)          DEFAULT NULL COMMENT '报警分类',
+    `level`       varchar(10) NOT NULL COMMENT '严重程度',
+    `remark`      varchar(500)         DEFAULT NULL COMMENT '备注',
+    `condition`   json                 DEFAULT NULL COMMENT '触发条件',
+    `deal_fun`    varchar(40)          DEFAULT NULL COMMENT '处理算法',
+    `create_user` varchar(80)          DEFAULT NULL COMMENT '创建用户',
+    `project_id`  varchar(50)          DEFAULT '0' COMMENT '项目id,0代表通用',
+    `group_code`  varchar(50)          DEFAULT '0' COMMENT '集团编码,0代表通用',
+    `create_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `update_user` varchar(80)          DEFAULT NULL COMMENT '更新用户',
+    `update_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `valid`       int(11)              DEFAULT '1' COMMENT '删除标记 1:true,0:false',
+    `app_id`      varchar(50)          DEFAULT NULL COMMENT '应用id',
+    PRIMARY KEY (`id`)
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='报警条目';
+
+CREATE TABLE IF NOT EXISTS `alarm_log`
+(
+    `id`          varchar(80) NOT NULL COMMENT '主键',
+    `record_id`   varchar(40) NOT NULL DEFAULT '' COMMENT '报警记录id',
+    `type`        varchar(10) NOT NULL DEFAULT '' COMMENT '操作类型(报警状态、报警性质、报警处理方式、报警处理状态)',
+    `nature`      int(11)              DEFAULT NULL COMMENT '报警性质',
+    `before`      int(11)              DEFAULT NULL COMMENT '修改前报警记录的状态',
+    `after`       int(11)              DEFAULT NULL COMMENT '修改后报警记录的状态',
+    `remark`      json                 DEFAULT NULL COMMENT '备注',
+    `project_id`  varchar(50)          DEFAULT '' COMMENT '项目id',
+    `group_code`  varchar(50)          DEFAULT NULL COMMENT '集团编码',
+    `create_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `update_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `valid`       int(11)              DEFAULT '1' COMMENT '删除标记 1:true,0:false',
+    `create_user` varchar(50)          DEFAULT NULL COMMENT '创建人',
+    PRIMARY KEY (`id`)
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='报警日志';
+
+CREATE TABLE IF NOT EXISTS `alarm_record`
+(
+    `id`                varchar(50) NOT NULL DEFAULT '' COMMENT '主键',
+    `item_code`         varchar(40) NOT NULL COMMENT '报警条目编码',
+    `project_id`        varchar(50) NOT NULL DEFAULT '' COMMENT '项目id',
+    `obj_id`            varchar(50) NOT NULL DEFAULT '' COMMENT '对象id',
+    `class_code`        varchar(50)          DEFAULT NULL COMMENT '对象类型编码',
+    `level`             varchar(10) NOT NULL COMMENT '严重程度',
+    `remark`            text COMMENT '报警描述',
+    `create_user`       varchar(80)          DEFAULT NULL COMMENT '创建用户',
+    `create_time`       timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `update_user`       varchar(80)          DEFAULT NULL COMMENT '更新用户',
+    `update_time`       timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `valid`             int(11)     NOT NULL DEFAULT '1' COMMENT '删除标记 1:true,0:false',
+    `name`              varchar(200)         DEFAULT NULL COMMENT '报警名称',
+    `category`          varchar(80)          DEFAULT NULL COMMENT '报警分类',
+    `concern`           int(11)              DEFAULT NULL COMMENT '是否重点关注',
+    `state`             int(2)               DEFAULT NULL COMMENT '报警状态',
+    `effect_start_time` timestamp   NULL     DEFAULT NULL COMMENT '有效期开始时间',
+    `effect_end_time`   timestamp   NULL     DEFAULT NULL COMMENT '有效期结束时间',
+    `nature`            int(11)              DEFAULT NULL COMMENT '报警性质',
+    `treat_mode`        int(11)              DEFAULT NULL COMMENT '处理方式',
+    `treat_state`       int(11)              DEFAULT '1' COMMENT '处理状态',
+    `group_code`        varchar(50)          DEFAULT NULL COMMENT '集团编码',
+    `condition`         json                 DEFAULT NULL COMMENT '触发和恢复条件',
+    `trigger_info`      json                 DEFAULT NULL COMMENT '触发值信息',
+    `end_info`          json                 DEFAULT NULL COMMENT '恢复值信息',
+    `trigger_time`      timestamp   NULL     DEFAULT NULL COMMENT '报警触发时间',
+    `end_time`          timestamp   NULL     DEFAULT NULL COMMENT '恢复时间',
+    `order_id`          varchar(50)          DEFAULT NULL COMMENT '工单id',
+    `order_state`       varchar(10)          DEFAULT NULL COMMENT '工单状态',
+    `supplement`        json                 DEFAULT NULL COMMENT '补充说明',
+    `target_id`         varchar(100)         DEFAULT NULL COMMENT '匹配规则id',
+    PRIMARY KEY (`id`),
+    KEY `index2` (`item_code`),
+    KEY `index3` (`obj_id`),
+    KEY `index4` (`trigger_time`),
+    KEY `index5` (`class_code`),
+    KEY `project_id` (`project_id`) USING BTREE,
+    KEY `state` (`state`) USING BTREE,
+    KEY `treat_state` (`treat_state`) USING BTREE,
+    KEY `trigger_time` (`trigger_time`) USING BTREE,
+    KEY `group_code` (`group_code`) USING BTREE,
+    KEY `category` (`category`) USING BTREE,
+    KEY `valid` (`valid`) USING BTREE
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='报警记录';
+
+
+CREATE TABLE IF NOT EXISTS `alarm_target`
+(
+    `id`          varchar(40) NOT NULL COMMENT '主键',
+    `item_code`   varchar(40)          DEFAULT NULL COMMENT '报警条目id',
+    `class_code`  varchar(40)          DEFAULT NULL COMMENT '对象类型',
+    `condition`   json                 DEFAULT NULL COMMENT '触发条件',
+    `level`       varchar(10)          DEFAULT NULL COMMENT '报警等级',
+    `concern`     int(11)     NOT NULL DEFAULT '0' COMMENT '是否重点关注',
+    `open`        int(11)     NOT NULL DEFAULT '0' COMMENT '屏蔽状态(0:不屏蔽,1:屏蔽)',
+    `create_user` varchar(80)          DEFAULT NULL COMMENT '创建用户',
+    `create_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+    `update_user` varchar(80)          DEFAULT NULL COMMENT '更新用户',
+    `update_time` timestamp   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
+    `valid`       int(11)     NOT NULL DEFAULT '1' COMMENT '删除标记 1:true,0:false',
+    `project_id`  varchar(50)          DEFAULT NULL COMMENT '项目id',
+    `group_code`  varchar(50)          DEFAULT NULL COMMENT '集团编码',
+    PRIMARY KEY (`id`)
+) ENGINE = InnoDB
+  DEFAULT CHARSET = utf8mb4 COMMENT ='报警匹配条件';
+

+ 17 - 0
src/main/resources/mapper/AlarmCommentMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.persagy.apm.dmpalarm.dao.AlarmCommentMapper">
+    <resultMap id="AlarmCommentMap" type="com.persagy.apm.dmpalarm.model.AlarmComment">
+		<result column="id" property="id" />
+		<result column="record_id" property="recordId" />
+		<result column="content" property="content" />
+		<result column="create_user" property="createUser" />
+		<result column="project_id" property="projectId" />
+		<result column="group_code" property="groupCode" />
+		<result column="create_time" property="createTime" />
+		<result column="update_time" property="updateTime" />
+		<result column="update_user" property="updateUser" />
+		<result column="valid" property="valid" />
+	</resultMap>
+</mapper>
+

+ 26 - 0
src/main/resources/mapper/AlarmConfigMapper.xml

@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.persagy.apm.dmpalarm.dao.AlarmConfigMapper">
+    <resultMap id="AlarmConfigMap" type="com.persagy.apm.dmpalarm.model.AlarmConfig">
+		<result column="id" property="id" />
+		<result column="obj_id" property="objId" />
+		<result column="class_code" property="classCode" />
+		<result column="project_id" property="projectId" />
+		<result column="group_code" property="groupCode" />
+		<result column="item_code" property="itemCode" />
+		<result column="target_id" property="targetId" />
+		<result column="category" property="category" />
+		<result column="level" property="level" />
+		<result column="remark" property="remark" />
+		<result column="condition" property="condition" />
+		<result column="open" property="open" />
+		<result column="concern" property="concern" />
+		<result column="user_defined" property="userDefined" />
+		<result column="create_user" property="createUser" />
+		<result column="create_time" property="createTime" />
+		<result column="update_user" property="updateUser" />
+		<result column="update_time" property="updateTime" />
+		<result column="valid" property="valid" />
+	</resultMap>
+</mapper>
+

+ 23 - 0
src/main/resources/mapper/AlarmItemMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.persagy.apm.dmpalarm.dao.AlarmItemMapper">
+    <resultMap id="AlarmItemMap" type="com.persagy.apm.dmpalarm.model.AlarmItem">
+		<result column="id" property="id" />
+		<result column="code" property="code" />
+		<result column="name" property="name" />
+		<result column="category" property="category" />
+		<result column="level" property="level" />
+		<result column="remark" property="remark" />
+		<result column="condition" property="condition" />
+		<result column="deal_fun" property="dealFun" />
+		<result column="create_user" property="createUser" />
+		<result column="project_id" property="projectId" />
+		<result column="group_code" property="groupCode" />
+		<result column="create_time" property="createTime" />
+		<result column="update_user" property="updateUser" />
+		<result column="update_time" property="updateTime" />
+		<result column="valid" property="valid" />
+		<result column="app_id" property="appId" />
+	</resultMap>
+</mapper>
+

+ 20 - 0
src/main/resources/mapper/AlarmLogMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.persagy.apm.dmpalarm.dao.AlarmLogMapper">
+    <resultMap id="AlarmLogMap" type="com.persagy.apm.dmpalarm.model.AlarmLog">
+		<result column="id" property="id" />
+		<result column="record_id" property="recordId" />
+		<result column="type" property="type" />
+		<result column="nature" property="nature" />
+		<result column="before" property="before" />
+		<result column="after" property="after" />
+		<result column="remark" property="remark" />
+		<result column="project_id" property="projectId" />
+		<result column="group_code" property="groupCode" />
+		<result column="create_time" property="createTime" />
+		<result column="update_time" property="updateTime" />
+		<result column="valid" property="valid" />
+		<result column="create_user" property="createUser" />
+	</resultMap>
+</mapper>
+

+ 38 - 0
src/main/resources/mapper/AlarmRecordMapper.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.persagy.apm.dmpalarm.dao.AlarmRecordMapper">
+    <resultMap id="AlarmRecordMap" type="com.persagy.apm.dmpalarm.model.AlarmRecord">
+		<result column="id" property="id" />
+		<result column="item_code" property="itemCode" />
+		<result column="project_id" property="projectId" />
+		<result column="obj_id" property="objId" />
+		<result column="class_code" property="classCode" />
+		<result column="level" property="level" />
+		<result column="remark" property="remark" />
+		<result column="create_user" property="createUser" />
+		<result column="create_time" property="createTime" />
+		<result column="update_user" property="updateUser" />
+		<result column="update_time" property="updateTime" />
+		<result column="valid" property="valid" />
+		<result column="name" property="name" />
+		<result column="category" property="category" />
+		<result column="concern" property="concern" />
+		<result column="state" property="state" />
+		<result column="effect_start_time" property="effectStartTime" />
+		<result column="effect_end_time" property="effectEndTime" />
+		<result column="nature" property="nature" />
+		<result column="treat_mode" property="treatMode" />
+		<result column="treat_state" property="treatState" />
+		<result column="group_code" property="groupCode" />
+		<result column="condition" property="condition" />
+		<result column="trigger_info" property="triggerInfo" />
+		<result column="end_info" property="endInfo" />
+		<result column="trigger_time" property="triggerTime" />
+		<result column="end_time" property="endTime" />
+		<result column="order_id" property="orderId" />
+		<result column="order_state" property="orderState" />
+		<result column="supplement" property="supplement" />
+		<result column="target_id" property="targetId" />
+	</resultMap>
+</mapper>
+

+ 21 - 0
src/main/resources/mapper/AlarmTargetMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.persagy.apm.dmpalarm.dao.AlarmTargetMapper">
+    <resultMap id="AlarmTargetMap" type="com.persagy.apm.dmpalarm.model.AlarmTarget">
+		<result column="id" property="id" />
+		<result column="item_code" property="itemCode" />
+		<result column="class_code" property="classCode" />
+		<result column="condition" property="condition" />
+		<result column="level" property="level" />
+		<result column="concern" property="concern" />
+		<result column="open" property="open" />
+		<result column="create_user" property="createUser" />
+		<result column="create_time" property="createTime" />
+		<result column="update_user" property="updateUser" />
+		<result column="update_time" property="updateTime" />
+		<result column="valid" property="valid" />
+		<result column="project_id" property="projectId" />
+		<result column="group_code" property="groupCode" />
+	</resultMap>
+</mapper>
+