Jelajahi Sumber

泰山运维系统云服务项目代码提交

dylan 3 tahun lalu
induk
melakukan
0d186cd70c
100 mengubah file dengan 7478 tambahan dan 0 penghapusan
  1. 600 0
      doc/galaxy.sql
  2. 309 0
      pom.xml
  3. 32 0
      src/main/java/org/springblade/Application.java
  4. 28 0
      src/main/java/org/springblade/config/GalaxyConfiguration.java
  5. 75 0
      src/main/java/org/springblade/constant/BusinessConstant.java
  6. 21 0
      src/main/java/org/springblade/constant/DictBusinessConstant.java
  7. 5 0
      src/main/java/org/springblade/constant/MyAppConstant.java
  8. 93 0
      src/main/java/org/springblade/enums/EquipmentActiveEnum.java
  9. 93 0
      src/main/java/org/springblade/enums/EquipmentStatusEnum.java
  10. 108 0
      src/main/java/org/springblade/enums/GenderEnum.java
  11. 103 0
      src/main/java/org/springblade/enums/IsValidEnum.java
  12. 93 0
      src/main/java/org/springblade/enums/OrderCloseEnum.java
  13. 93 0
      src/main/java/org/springblade/enums/OrderConfirmEnum.java
  14. 96 0
      src/main/java/org/springblade/enums/OrderFromEnum.java
  15. 104 0
      src/main/java/org/springblade/enums/OrderStatusEnum.java
  16. 93 0
      src/main/java/org/springblade/enums/RtuReportStatusEnum.java
  17. 125 0
      src/main/java/org/springblade/enums/WarnKindEnum.java
  18. 93 0
      src/main/java/org/springblade/enums/WarningActiveEnum.java
  19. 93 0
      src/main/java/org/springblade/enums/WarningStatusEnum.java
  20. 104 0
      src/main/java/org/springblade/enums/WhetherEnum.java
  21. 65 0
      src/main/java/org/springblade/etl/EtlGroundDataTask.java
  22. 81 0
      src/main/java/org/springblade/etl/EtlMvAttStBaseDataTask.java
  23. 55 0
      src/main/java/org/springblade/etl/EtlRainDataTask.java
  24. 51 0
      src/main/java/org/springblade/etl/EtlRegionDataTask.java
  25. 54 0
      src/main/java/org/springblade/etl/EtlRiverDataTask.java
  26. 55 0
      src/main/java/org/springblade/etl/EtlRsvrDataTask.java
  27. 194 0
      src/main/java/org/springblade/etl/EtlRtuDataTask.java
  28. 111 0
      src/main/java/org/springblade/etl/EtlTaskManager.java
  29. 73 0
      src/main/java/org/springblade/etl/EtlWarningTask.java
  30. 973 0
      src/main/java/org/springblade/etl/controller/TestController.java
  31. 28 0
      src/main/java/org/springblade/etl/dto/EtlAdCdDTO.java
  32. 49 0
      src/main/java/org/springblade/etl/dto/EtlGroundDataDTO.java
  33. 27 0
      src/main/java/org/springblade/etl/dto/EtlMvAttStBaseDTO.java
  34. 49 0
      src/main/java/org/springblade/etl/dto/EtlRainDataDTO.java
  35. 48 0
      src/main/java/org/springblade/etl/dto/EtlRiverDataDTO.java
  36. 49 0
      src/main/java/org/springblade/etl/dto/EtlRsvrDataDTO.java
  37. 31 0
      src/main/java/org/springblade/etl/dto/EtlWarningInfoDTO.java
  38. 51 0
      src/main/java/org/springblade/etl/entity/EtlAdCdEntity.java
  39. 145 0
      src/main/java/org/springblade/etl/entity/EtlGroundDataEntity.java
  40. 69 0
      src/main/java/org/springblade/etl/entity/EtlMvAttStBaseEntity.java
  41. 105 0
      src/main/java/org/springblade/etl/entity/EtlRainDataEntity.java
  42. 130 0
      src/main/java/org/springblade/etl/entity/EtlRiverDataEntity.java
  43. 124 0
      src/main/java/org/springblade/etl/entity/EtlRsvrDataEntity.java
  44. 81 0
      src/main/java/org/springblade/etl/entity/EtlTaskInfoEntity.java
  45. 155 0
      src/main/java/org/springblade/etl/entity/EtlWarningInfoEntity.java
  46. 27 0
      src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.java
  47. 27 0
      src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.xml
  48. 28 0
      src/main/java/org/springblade/etl/mapper/EtlGroundDataMapper.java
  49. 39 0
      src/main/java/org/springblade/etl/mapper/EtlGroundDataMapper.xml
  50. 27 0
      src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.java
  51. 32 0
      src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.xml
  52. 29 0
      src/main/java/org/springblade/etl/mapper/EtlRainDataMapper.java
  53. 37 0
      src/main/java/org/springblade/etl/mapper/EtlRainDataMapper.xml
  54. 28 0
      src/main/java/org/springblade/etl/mapper/EtlRiverDataMapper.java
  55. 30 0
      src/main/java/org/springblade/etl/mapper/EtlRiverDataMapper.xml
  56. 27 0
      src/main/java/org/springblade/etl/mapper/EtlRsvrDataMapper.java
  57. 29 0
      src/main/java/org/springblade/etl/mapper/EtlRsvrDataMapper.xml
  58. 24 0
      src/main/java/org/springblade/etl/mapper/EtlTaskInfoMapper.java
  59. 15 0
      src/main/java/org/springblade/etl/mapper/EtlTaskInfoMapper.xml
  60. 22 0
      src/main/java/org/springblade/etl/mapper/EtlWarningInfoMapper.java
  61. 67 0
      src/main/java/org/springblade/etl/mapper/EtlWarningInfoMapper.xml
  62. 27 0
      src/main/java/org/springblade/etl/service/IEtlAdCdService.java
  63. 28 0
      src/main/java/org/springblade/etl/service/IEtlGroundDataService.java
  64. 26 0
      src/main/java/org/springblade/etl/service/IEtlMvAttStBaseService.java
  65. 29 0
      src/main/java/org/springblade/etl/service/IEtlRainDataService.java
  66. 28 0
      src/main/java/org/springblade/etl/service/IEtlRiverDataService.java
  67. 28 0
      src/main/java/org/springblade/etl/service/IEtlRsvrDataService.java
  68. 24 0
      src/main/java/org/springblade/etl/service/IEtlTaskInfoService.java
  69. 27 0
      src/main/java/org/springblade/etl/service/IEtlWarningService.java
  70. 36 0
      src/main/java/org/springblade/etl/service/impl/EtlAdCdServiceImpl.java
  71. 37 0
      src/main/java/org/springblade/etl/service/impl/EtlGroundDataServiceImpl.java
  72. 37 0
      src/main/java/org/springblade/etl/service/impl/EtlMvAttStBaseServiceImpl.java
  73. 39 0
      src/main/java/org/springblade/etl/service/impl/EtlRainDataServiceImpl.java
  74. 37 0
      src/main/java/org/springblade/etl/service/impl/EtlRiverDataServiceImpl.java
  75. 34 0
      src/main/java/org/springblade/etl/service/impl/EtlRsvrDataServiceImpl.java
  76. 28 0
      src/main/java/org/springblade/etl/service/impl/EtlTaskInfoServiceImpl.java
  77. 29 0
      src/main/java/org/springblade/etl/service/impl/EtlWarningServiceImpl.java
  78. 30 0
      src/main/java/org/springblade/modules/baseinfo/dict/controller/BaseInfoDictController.java
  79. 75 0
      src/main/java/org/springblade/modules/baseinfo/dict/entity/DictInfoEntity.java
  80. 23 0
      src/main/java/org/springblade/modules/baseinfo/dict/mapper/DictInfoMapper.java
  81. 32 0
      src/main/java/org/springblade/modules/baseinfo/dict/mapper/DictInfoMapper.xml
  82. 22 0
      src/main/java/org/springblade/modules/baseinfo/dict/service/IBaseInfoDictService.java
  83. 30 0
      src/main/java/org/springblade/modules/baseinfo/dict/service/impl/BaseInfoDictServiceImpl.java
  84. 183 0
      src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java
  85. 30 0
      src/main/java/org/springblade/modules/baseinfo/org/dto/OrgInfoDTO.java
  86. 45 0
      src/main/java/org/springblade/modules/baseinfo/org/entity/DeptRegionEntity.java
  87. 21 0
      src/main/java/org/springblade/modules/baseinfo/org/mapper/DeptRegionMapper.java
  88. 11 0
      src/main/java/org/springblade/modules/baseinfo/org/mapper/DeptRegionMapper.xml
  89. 21 0
      src/main/java/org/springblade/modules/baseinfo/org/service/IDeptRegionService.java
  90. 25 0
      src/main/java/org/springblade/modules/baseinfo/org/service/impl/DeptRegionServiceImpl.java
  91. 44 0
      src/main/java/org/springblade/modules/baseinfo/org/vo/OrgInfoVO.java
  92. 82 0
      src/main/java/org/springblade/modules/baseinfo/org/wrapper/OrgInfoWrapper.java
  93. 255 0
      src/main/java/org/springblade/modules/baseinfo/project/controller/ProjectBaseInfoController.java
  94. 111 0
      src/main/java/org/springblade/modules/baseinfo/project/entity/ProjectInfoEntity.java
  95. 65 0
      src/main/java/org/springblade/modules/baseinfo/project/entity/ProjectTreeNodeEntity.java
  96. 51 0
      src/main/java/org/springblade/modules/baseinfo/project/entity/ProjectWarningSettingEntity.java
  97. 34 0
      src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectInfoMapper.java
  98. 55 0
      src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectInfoMapper.xml
  99. 22 0
      src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectWarningSettingMapper.java
  100. 15 0
      src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectWarningSettingMapper.xml

File diff ditekan karena terlalu besar
+ 600 - 0
doc/galaxy.sql


+ 309 - 0
pom.xml

@@ -0,0 +1,309 @@
+<?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>
+
+    <groupId>org.springblade.tsywxt</groupId>
+    <artifactId>tsywxtcloud</artifactId>
+    <name>${project.artifactId}</name>
+    <packaging>jar</packaging>
+    <version>1.0-SNAPSHOT</version>
+    <description>泰山运维系统云服务</description>
+
+    <properties>
+        <bladex.project.id>blade-api</bladex.project.id>
+        <bladex.project.version>2.9.1.RELEASE</bladex.project.version>
+
+        <java.version>1.8</java.version>
+        <maven.plugin.version>3.8.1</maven.plugin.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+        <spring.boot.version>2.3.12.RELEASE</spring.boot.version>
+        <spring.platform.version>Cairo-SR8</spring.platform.version>
+        <!--<poi.version>4.1.1</poi.version>-->
+        <!--<easypoi.version>4.1.2</easypoi.version>-->
+        <revision>3.1.1</revision>
+    </properties>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springblade.platform</groupId>
+                <artifactId>blade-bom</artifactId>
+                <version>${bladex.project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>io.spring.platform</groupId>
+                <artifactId>platform-bom</artifactId>
+                <version>${spring.platform.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+        </dependencies>
+    </dependencyManagement>
+
+
+    <dependencies>
+        <!-- lombok -->
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>edu.ucar</groupId>
+            <artifactId>netcdfAll</artifactId>
+            <version>5.5.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>BladeX-Boot-Common</artifactId>
+            <version>${bladex.project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springblade</groupId>
+                    <artifactId>blade-starter-report</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springblade</groupId>
+                    <artifactId>blade-starter-flowable</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springblade</groupId>
+                    <artifactId>blade-starter-oss</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>BladeX-Boot-Base</artifactId>
+            <version>${bladex.project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springblade</groupId>
+                    <artifactId>BladeX-Boot-Common</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>org.springblade</groupId>-->
+        <!--<artifactId>BladeX-Boot-Flow</artifactId>-->
+        <!--<version>${bladex.project.version}</version>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+        <!--<groupId>org.springframework.boot</groupId>-->
+        <!--<artifactId>spring-boot-starter-amqp</artifactId>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>org.springframework.kafka</groupId>
+            <artifactId>spring-kafka</artifactId>
+        </dependency>
+        <!--<dependency>-->
+        <!--<groupId>org.springframework.kafka</groupId>-->
+        <!--<artifactId>spring-kafka</artifactId>-->
+        <!--<version>2.5.14.RELEASE</version>-->
+        <!--<exclusions>-->
+        <!--<exclusion>-->
+        <!--<groupId>org.apache.kafka</groupId>-->
+        <!--<artifactId>kafka-clients</artifactId>-->
+        <!--</exclusion>-->
+        <!--</exclusions>-->
+        <!--</dependency>-->
+        <!--<dependency>-->
+        <!--<groupId>org.apache.kafka</groupId>-->
+        <!--<artifactId>kafka-clients</artifactId>-->
+        <!--<version>3.0.0</version>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-tomcat</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-oss</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.glassfish.jersey.core</groupId>
+            <artifactId>jersey-common</artifactId>
+            <version>2.28</version>
+        </dependency>
+
+        <!--<dependency>-->
+        <!--<groupId>cn.afterturn</groupId>-->
+        <!--<artifactId>easypoi-spring-boot-starter</artifactId>-->
+        <!--<version>4.1.2</version>-->
+        <!--</dependency>-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>${revision}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel-core</artifactId>
+            <version>${revision}</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel-support</artifactId>
+            <version>${revision}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml-schemas</artifactId>
+            <version>4.1.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>ooxml-schemas</artifactId>
+            <version>1.4</version>
+        </dependency>
+        <!-- 二维码生成 -->
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.rocksdb</groupId>
+            <artifactId>rocksdbjni</artifactId>
+            <version>5.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-net</groupId>
+            <artifactId>commons-net</artifactId>
+            <version>3.8.0</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.artifactId}</finalName>
+
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+        </resources>
+
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot.version}</version>
+                <configuration>
+                    <mainClass>org.springblade.Application</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>${maven.plugin.version}</version>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <encoding>UTF-8</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>2.12.4</version>
+                <configuration>
+                    <skipTests>true</skipTests>
+                </configuration>
+            </plugin>
+
+        </plugins>
+    </build>
+
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>nexus</id>
+            <url>http://nexus.zhkrc.com/repository/maven-public/</url>
+        </repository>
+        <!--<repository>-->
+        <!--<id>osgeo</id>-->
+        <!--<name>repo.osgeo.org</name>-->
+        <!--<url>https://repo.osgeo.org/repository/release/</url>-->
+        <!--<snapshots>-->
+        <!--<enabled>false</enabled>-->
+        <!--</snapshots>-->
+        <!--<releases><enabled>true</enabled></releases>-->
+        <!--</repository>-->
+    </repositories>
+
+    <pluginRepositories>
+        <pluginRepository>
+            <id>aliyun-plugin</id>
+            <url>https://maven.aliyun.com/repository/public/</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+
+    <distributionManagement>
+        <repository>
+            <id>maven-releases</id>
+            <name>Maven Release Repository</name>
+            <url>http://nexus.zhkrc.com/repository/maven-releases/</url>
+        </repository>
+    </distributionManagement>
+
+</project>

+ 32 - 0
src/main/java/org/springblade/Application.java

@@ -0,0 +1,32 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/29
+ */
+package org.springblade;
+
+import org.springblade.common.constant.CommonConstant;
+import org.springblade.core.launch.BladeApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/***
+ * Date:2022/3/29
+ * Title:启动器
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @Author: admin
+ * @Mender:(文件的修改者,文件创建者之外的人)
+ * @Version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@EnableScheduling
+@SpringBootApplication
+public class Application {
+
+	public static void main(String[] args) {
+		BladeApplication.run(CommonConstant.APPLICATION_NAME, Application.class, args);
+	}
+
+}
+

+ 28 - 0
src/main/java/org/springblade/config/GalaxyConfiguration.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022-03-04
+ */
+package org.springblade.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springblade.props.GalaxyProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+/***
+ * Date:2022-03-04
+ * Title:配置类(配置feign、mybatis包名、properties)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author Blade
+ * @mender:(文件的修改者,文件创建者之外的人)
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Configuration
+@EnableConfigurationProperties(GalaxyProperties.class)
+public class GalaxyConfiguration {
+
+}

+ 75 - 0
src/main/java/org/springblade/constant/BusinessConstant.java

@@ -0,0 +1,75 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/7
+ */
+package org.springblade.constant;
+
+/***
+ * Date:2022/3/7
+ * Title:业务常量类
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author admin
+ * @mender:(文件的修改者,文件创建者之外的人)
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class BusinessConstant {
+	/**
+	 * 超级管理员角色
+	 */
+	public static final  String ROLE_SUPER_ADMIN ="administrator";
+	/**
+	 * 系统管理员角色
+	 */
+	public static final  String ROLE_SYS_ADMIN ="sys_admin";
+	/**
+	 * 盟市机构管理员角色
+	 */
+	public static final  String ROLE_ORG_ADMIN ="org_admin";
+	/**
+	 * 运维公司管理员角色
+	 */
+	public static final  String ROLE_COMPANY_ADMIN ="company_admin";
+	/**
+	 * 运维公司技术人员角色
+	 */
+	public static final  String ROLE_COMPANY_SERVICE_PERSON ="company_servcie_person";
+	/**
+	 * 盟市机构管理员角色ID
+	 */
+	public static final  String ROLE_ORG_ADMIN_ID ="1641334028382662657";
+	/**
+	 * 公司运维管理员角色ID
+	 */
+	public static final  String ROLE_COMPANY_ADMIN_ID ="1641334149732265985";
+	/**
+	 * 公司运维人员角色ID
+	 */
+	public static final  String ROLE_COMPANY_SERVICE_PERSON_ID ="1641334272017199106";
+	/**
+	 * 管理岗位
+	 */
+	public static final  String POST_ADMIN_ID ="1562989286284906498";
+	/**
+	 * 技术员岗位
+	 */
+	public static final  String POST_SERVICE_PERSON_ID ="1562994107637354498";
+	/**
+	 * 系统管理员用户ID
+	 */
+	public static final Long SYS_ADMIN_ID =1499007300681326593L;
+	/**
+	 * 根行政区划编码
+	 */
+	public static final String REGION_ROOT_ADCODE="00";
+	/**
+	 * 自治区行政区划编码
+	 */
+	public static final String REGION_NM_ADCODE="150000000000000";
+	/**
+	 * 帐号密码后缀
+	 */
+	public static final String ACCOUNT_PW_SUFFIX="@8282";
+}

+ 21 - 0
src/main/java/org/springblade/constant/DictBusinessConstant.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/27
+ */
+package org.springblade.constant;
+
+/***
+ * Date:2022/3/27
+ * Title:字典常量定义类
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @Author: admin
+ * @Mender:(文件的修改者,文件创建者之外的人)
+ * @Version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class DictBusinessConstant {
+	public static final  String ORDER_STATUS_CODE ="rtu_check_order_status";
+	public static final  String ORDER_FROM_CODE ="rtu_check_order_from";
+}

+ 5 - 0
src/main/java/org/springblade/constant/MyAppConstant.java

@@ -0,0 +1,5 @@
+package org.springblade.constant;
+
+public interface MyAppConstant {
+	String APPLICATION_BUSINESS_NAME="galaxy-business";
+}

+ 93 - 0
src/main/java/org/springblade/enums/EquipmentActiveEnum.java

@@ -0,0 +1,93 @@
+package org.springblade.enums;
+
+public enum EquipmentActiveEnum {
+	/**
+	 * 关闭
+	 */
+	ACTIVE_OFF(0, "关闭"),
+
+	/**
+	 * 开启
+	 */
+	ACTIVE_OPEN(1, "开启");
+
+
+
+	private int code;
+
+	private String name;
+
+	private EquipmentActiveEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (EquipmentActiveEnum type : EquipmentActiveEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static EquipmentActiveEnum getEnumByCode(int code) {
+		for (EquipmentActiveEnum type : EquipmentActiveEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static EquipmentActiveEnum getEnumByName(String name) {
+		for (EquipmentActiveEnum type : EquipmentActiveEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 93 - 0
src/main/java/org/springblade/enums/EquipmentStatusEnum.java

@@ -0,0 +1,93 @@
+package org.springblade.enums;
+
+public enum EquipmentStatusEnum {
+	/**
+	 * 正常
+	 */
+	STATUS_RUN(0, "正常"),
+
+	/**
+	 * 故障
+	 */
+	STATUS_FAILURE(1, "故障");
+
+
+
+	private int code;
+
+	private String name;
+
+	private EquipmentStatusEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (EquipmentStatusEnum type : EquipmentStatusEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static EquipmentStatusEnum getEnumByCode(int code) {
+		for (EquipmentStatusEnum type : EquipmentStatusEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static EquipmentStatusEnum getEnumByName(String name) {
+		for (EquipmentStatusEnum type : EquipmentStatusEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 108 - 0
src/main/java/org/springblade/enums/GenderEnum.java

@@ -0,0 +1,108 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/7
+ */
+package org.springblade.enums;
+
+/***
+ * Date:2022/3/7
+ * Title:性别枚举类
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author admin
+ * @mender:(文件的修改者,文件创建者之外的人)
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public enum GenderEnum {
+
+    /** 男 */
+    SEX_M(1, "男"),
+
+    /** 女 */
+    SEX_W(2, "女"),
+
+	/** 未知 */
+	SEX_NONE(3, "未知"),
+
+	;
+
+	private int code;
+
+	private String name;
+
+    private GenderEnum(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    /**
+     * Function:根据code来获取对应的name
+     * Author: Admin
+     * Date:2021/6/26
+     * @param code
+     * @return java.lang.String
+     * @throws Exception
+     */
+    public static String getName(int code) {
+        for (GenderEnum type : GenderEnum.values()) {
+            if (type.code == code) {
+                return type.name;
+            }
+        }
+        return "";
+    }
+
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.IsValid
+	 * @throws Exception
+	 */
+	public static GenderEnum getEnumByCode(int code) {
+		for (GenderEnum type : GenderEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static GenderEnum getEnumByName(String name) {
+		for (GenderEnum type : GenderEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+}

+ 103 - 0
src/main/java/org/springblade/enums/IsValidEnum.java

@@ -0,0 +1,103 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/7
+ */
+package org.springblade.enums;
+
+/***
+ * Date:2022/3/7
+ * Title:是否有效枚举类
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author admin
+ * @mender:(文件的修改者,文件创建者之外的人)
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public enum IsValidEnum {
+
+    /** 无效 */
+    VALID_1(1, "无效"),
+
+    /** 有效 */
+    VALID_2(2, "有效");
+
+    private int code;
+
+    private String name;
+
+	private IsValidEnum(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    /**
+     * Function:根据code来获取对应的name
+     * Author: Admin
+     * Date:2021/6/26
+      * @param code
+     * @return java.lang.String
+     * @throws Exception
+     */
+    public static String getName(int code) {
+        for (IsValidEnum type : IsValidEnum.values()) {
+            if (type.code == code) {
+                return type.name;
+            }
+        }
+        return "";
+    }
+
+    /**
+     * Function:根据code来获取对应的枚举常量
+     * Author: Admin
+     * Date:2021/6/26
+      * @param code
+     * @return com.zhgzjg.web.enums.IsValid
+     * @throws Exception
+     */
+    public static IsValidEnum getEnumByCode(int code) {
+        for (IsValidEnum type : IsValidEnum.values()) {
+			if (type.code == code) {
+                return type;
+            }
+        }
+        return null;
+    }
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static IsValidEnum getEnumByName(String name) {
+		for (IsValidEnum type : IsValidEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+    public Integer getCode() {
+    return code;
+}
+
+    public void setCode(int code) {
+    this.code = code;
+}
+
+    public String getName() {
+    return name;
+}
+
+    public void setName(String name) {
+    this.name = name;
+}
+
+}

+ 93 - 0
src/main/java/org/springblade/enums/OrderCloseEnum.java

@@ -0,0 +1,93 @@
+package org.springblade.enums;
+
+public enum OrderCloseEnum {
+	/**
+	 * 进行中
+	 */
+	ACTIVE_OPEN(0, "进行中"),
+
+	/**
+	 * 关闭
+	 */
+	ACTIVE_CLOSE(1, "关闭");
+
+
+
+	private int code;
+
+	private String name;
+
+	private OrderCloseEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (OrderCloseEnum type : OrderCloseEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderCloseEnum getEnumByCode(int code) {
+		for (OrderCloseEnum type : OrderCloseEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderCloseEnum getEnumByName(String name) {
+		for (OrderCloseEnum type : OrderCloseEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 93 - 0
src/main/java/org/springblade/enums/OrderConfirmEnum.java

@@ -0,0 +1,93 @@
+package org.springblade.enums;
+
+public enum OrderConfirmEnum {
+	/**
+	 * 正常
+	 */
+	ACTIVE_CREATE(0, "正常"),
+
+	/**
+	 * 确认
+	 */
+	ACTIVE_CONFIRM(1, "确认");
+
+
+
+	private int code;
+
+	private String name;
+
+	private OrderConfirmEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (OrderConfirmEnum type : OrderConfirmEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderConfirmEnum getEnumByCode(int code) {
+		for (OrderConfirmEnum type : OrderConfirmEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderConfirmEnum getEnumByName(String name) {
+		for (OrderConfirmEnum type : OrderConfirmEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 96 - 0
src/main/java/org/springblade/enums/OrderFromEnum.java

@@ -0,0 +1,96 @@
+package org.springblade.enums;
+
+public enum OrderFromEnum {
+	/**
+	 * 人工添加
+	 */
+	FROM_MANUALLY("manually", "人工添加"),
+
+	/**
+	 * 设备预警
+	 */
+	FROM_WARNING("warning", "设备预警"),
+
+	/**
+	 * 设备巡检
+	 */
+	FROM_INSPECTION("inspection", "设备巡检");
+
+	private String code;
+
+	private String name;
+
+	private OrderFromEnum(String code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(String code) {
+		for (OrderFromEnum type : OrderFromEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderFromEnum getEnumByCode(String code) {
+		for (OrderFromEnum type : OrderFromEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderFromEnum getEnumByName(String name) {
+		for (OrderFromEnum type : OrderFromEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 104 - 0
src/main/java/org/springblade/enums/OrderStatusEnum.java

@@ -0,0 +1,104 @@
+package org.springblade.enums;
+
+public enum OrderStatusEnum {
+	/**
+	 * 工单创建
+	 */
+	STATUS_CREATE("1", "工单创建"),
+
+	/**
+	 * 工单接单
+	 */
+	STATUS_CONFIRM("2", "工单接单"),
+
+	/**
+	 * 工单处理
+	 */
+	STATUS_PROCESS("3", "工单处理"),
+
+	/**
+	 * 工单关闭
+	 */
+	STATUS_CLOSE("4", "工单关闭");
+
+	private String code;
+
+	private String name;
+
+	private OrderStatusEnum(String code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 *
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(String code) {
+		for (OrderStatusEnum type : OrderStatusEnum.values()) {
+			if (type.code.equals(code)) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 *
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderStatusEnum getEnumByCode(String code) {
+		for (OrderStatusEnum type : OrderStatusEnum.values()) {
+			if (type.code.equals(code)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 *
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static OrderStatusEnum getEnumByName(String name) {
+		for (OrderStatusEnum type : OrderStatusEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 93 - 0
src/main/java/org/springblade/enums/RtuReportStatusEnum.java

@@ -0,0 +1,93 @@
+package org.springblade.enums;
+
+public enum RtuReportStatusEnum {
+	/**
+	 * 未填报
+	 */
+	STATUS_0(0, "未填报"),
+
+	/**
+	 * 已提交
+	 */
+	STATUS_1(1, "已提交");
+
+
+
+	private int code;
+
+	private String name;
+
+	private RtuReportStatusEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (RtuReportStatusEnum type : RtuReportStatusEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static RtuReportStatusEnum getEnumByCode(int code) {
+		for (RtuReportStatusEnum type : RtuReportStatusEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static RtuReportStatusEnum getEnumByName(String name) {
+		for (RtuReportStatusEnum type : RtuReportStatusEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 125 - 0
src/main/java/org/springblade/enums/WarnKindEnum.java

@@ -0,0 +1,125 @@
+package org.springblade.enums;
+
+public enum WarnKindEnum {
+
+	/**
+	 * 测站离线
+	 */
+	WARN_OFFLINE(1, "测站离线"),
+
+	/**
+	 * 测站时钟异常
+	 */
+	WARN_CLOCK(2, "测站时钟异常"),
+
+	/**
+	 * 测站雨量小时报漏报
+	 */
+	WARN_RAIN_MISS_OUT(3, "测站雨量小时报漏报"),
+
+	/**
+	 * 测站水位小时报漏报
+	 */
+	WARN_WL_MISS_OUT(4, "测站水位小时报漏报"),
+
+	/**
+	 * 5分钟上报延时
+	 */
+	WARN_UP_MIN_DELAY(5, "雨量5分钟上报延时"),
+
+	/**
+	 * 小时上报延时
+	 */
+	WARN_RAIN_UP_HOUR_DELAY(6, "雨量站小时上报延时"),
+
+	/**
+	 * 水位站小时上报延时
+	 */
+	WARN_WL_UP_HOUR_DELAY(7, "水位站小时上报延时"),
+
+	/**
+	 * 雨量疑似异常值
+	 */
+	WARN_OUTLIER_VALUE(8, "雨量疑似异常值");
+
+	private int code;
+
+	private String name;
+
+	private WarnKindEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 *
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (WarnKindEnum type : WarnKindEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 *
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WarnKindEnum getEnumByCode(int code) {
+		for (WarnKindEnum type : WarnKindEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 *
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WarnKindEnum getEnumByName(String name) {
+		for (WarnKindEnum type : WarnKindEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 93 - 0
src/main/java/org/springblade/enums/WarningActiveEnum.java

@@ -0,0 +1,93 @@
+package org.springblade.enums;
+
+public enum WarningActiveEnum {
+	/**
+	 * 关闭
+	 */
+	ACTIVE_OFF(0, "关闭"),
+
+	/**
+	 * 开启
+	 */
+	ACTIVE_OPEN(1, "开启");
+
+
+
+	private int code;
+
+	private String name;
+
+	private WarningActiveEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (WarningActiveEnum type : WarningActiveEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WarningActiveEnum getEnumByCode(int code) {
+		for (WarningActiveEnum type : WarningActiveEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WarningActiveEnum getEnumByName(String name) {
+		for (WarningActiveEnum type : WarningActiveEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 93 - 0
src/main/java/org/springblade/enums/WarningStatusEnum.java

@@ -0,0 +1,93 @@
+package org.springblade.enums;
+
+public enum WarningStatusEnum {
+	/**
+	 * 关闭
+	 */
+	STATUS_HAPPEN(0, "预警中"),
+
+	/**
+	 * 开启
+	 */
+	STATUS_CLOSE(1, "恢复");
+
+
+
+	private int code;
+
+	private String name;
+
+	private WarningStatusEnum(int code, String name) {
+		this.code = code;
+		this.name = name;
+	}
+
+	/**
+	 * Function:根据code来获取对应的name
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return java.lang.String
+	 * @throws Exception
+	 */
+	public static String getName(int code) {
+		for (WarningStatusEnum type : WarningStatusEnum.values()) {
+			if (type.code == code) {
+				return type.name;
+			}
+		}
+		return "";
+	}
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WarningStatusEnum getEnumByCode(int code) {
+		for (WarningStatusEnum type : WarningStatusEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WarningStatusEnum getEnumByName(String name) {
+		for (WarningStatusEnum type : WarningStatusEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	public int getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+}

+ 104 - 0
src/main/java/org/springblade/enums/WhetherEnum.java

@@ -0,0 +1,104 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/7
+ */
+package org.springblade.enums;
+
+/***
+ * Date:2022/3/7
+ * Title:是否枚举类
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author admin
+ * @mender:(文件的修改者,文件创建者之外的人)
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public enum WhetherEnum {
+
+    /** 否 */
+    TYPE_1(1, "否"),
+
+    /** 是 */
+    TYPE_2(2, "是");
+
+    private int code;
+
+    private String name;
+
+    private WhetherEnum(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    /**
+     * Function:根据code来获取对应的name
+     * Author: Admin
+     * Date:2021/6/26
+     * @param code
+     * @return java.lang.String
+     * @throws Exception
+     */
+    public static String getName(int code) {
+        for (WhetherEnum type : WhetherEnum.values()) {
+            if (type.code == code) {
+                return type.name;
+            }
+        }
+        return "";
+    }
+
+	/**
+	 * Function:根据code来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param code
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WhetherEnum getEnumByCode(int code) {
+		for (WhetherEnum type : WhetherEnum.values()) {
+			if (type.code == code) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+	/**
+	 * Function:根据name来获取对应的枚举常量
+	 * Author: Admin
+	 * Date:2021/6/26
+	 * @param name
+	 * @return com.zhgzjg.web.enums.DeleteFlag
+	 * @throws Exception
+	 */
+	public static WhetherEnum getEnumByName(String name) {
+		for (WhetherEnum type : WhetherEnum.values()) {
+			if (type.name.equals(name)) {
+				return type;
+			}
+		}
+		return null;
+	}
+
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}
+

+ 65 - 0
src/main/java/org/springblade/etl/EtlGroundDataTask.java

@@ -0,0 +1,65 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.etl.dto.EtlGroundDataDTO;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springblade.etl.service.IEtlGroundDataService;
+import org.springblade.modules.business.data.entity.RtuDataGroundEntity;
+import org.springblade.modules.business.data.service.IRtuDataGroundService;
+
+import java.util.Date;
+import java.util.List;
+
+/***
+ * Date:2022/5/22
+ * Title: 墒情同步
+ * Description:
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+
+public class EtlGroundDataTask {
+
+	public static RtuDataGroundEntity dataSync(EtlGroundDataDTO etlGroundDataDTO, IEtlGroundDataService etlGroundDataService, IRtuDataGroundService rtuDataGroundService) {
+		List<EtlGroundDataEntity> groundDataEntityList = etlGroundDataService.selectLastList(etlGroundDataDTO);
+		if (null != groundDataEntityList && groundDataEntityList.size() > 0) {
+			EtlGroundDataEntity entity = groundDataEntityList.get(0);
+			LambdaQueryWrapper<RtuDataGroundEntity> dataWrapper = Wrappers.<RtuDataGroundEntity>query().lambda();
+			dataWrapper.eq(RtuDataGroundEntity::getRtuCode, entity.getRtuCode());
+			dataWrapper.eq(RtuDataGroundEntity::getIsDeleted, 0);
+			RtuDataGroundEntity groundDataEntity = rtuDataGroundService.getOne(dataWrapper);
+			if (null == groundDataEntity) {
+				groundDataEntity = new RtuDataGroundEntity();
+				groundDataEntity.setRtuCode(entity.getRtuCode());
+				groundDataEntity.setCreateTime(new Date());
+				groundDataEntity.setUpdateTime(new Date());
+				groundDataEntity.setStatus(1);
+				groundDataEntity.setIsDeleted(0);
+			}
+			groundDataEntity.setSlm10(entity.getMoco10cm());
+			groundDataEntity.setSlm20(entity.getMoco20cm());
+			groundDataEntity.setSlm30(entity.getMoco30cm());
+			groundDataEntity.setSlm40(entity.getMoco40cm());
+			groundDataEntity.setSlm50(entity.getMoco50cm());
+			groundDataEntity.setSlm60(entity.getMoco60cm());
+			groundDataEntity.setSlm80(entity.getMoco80cm());
+			groundDataEntity.setSlm100(entity.getMoco100cm());
+			groundDataEntity.setSrlslm(entity.getSurfMoco());
+			groundDataEntity.setVtavslm(entity.getVertAverMoco());
+			groundDataEntity.setTm(entity.getTm());
+			rtuDataGroundService.saveOrUpdate(groundDataEntity);
+
+			return groundDataEntity;
+		}
+		return null;
+	}
+}

+ 81 - 0
src/main/java/org/springblade/etl/EtlMvAttStBaseDataTask.java

@@ -0,0 +1,81 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+import org.springblade.etl.service.IEtlMvAttStBaseService;
+import org.springblade.modules.baseinfo.stbase.entity.MvAttStBaseEntity;
+import org.springblade.modules.baseinfo.stbase.service.IMvAttStBaseService;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.Callable;
+
+/***
+ * Date:2022/5/22
+ * Title: 测站基础数据
+ * Description:
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+public class EtlMvAttStBaseDataTask implements Callable<Integer> {
+
+	private IEtlMvAttStBaseService etlMvAttStBaseService;
+	private IMvAttStBaseService mvAttStBaseService;
+
+	EtlMvAttStBaseDataTask(IEtlMvAttStBaseService etlMvAttStBaseService, IMvAttStBaseService mvAttStBaseService) {
+		this.etlMvAttStBaseService = etlMvAttStBaseService;
+		this.mvAttStBaseService = mvAttStBaseService;
+	}
+
+	@Override
+	public Integer call() {
+		try {
+
+			log.info("测站数据抽取开始**************");
+			List<EtlMvAttStBaseEntity> list = etlMvAttStBaseService.selectList();
+			if (list != null && list.size() > 0) {
+				for (int i = 0; i < list.size(); i++) {
+					EtlMvAttStBaseEntity entity = list.get(i);
+					LambdaQueryWrapper<MvAttStBaseEntity> dataWrapper = Wrappers.<MvAttStBaseEntity>query().lambda();
+					dataWrapper.eq(MvAttStBaseEntity::getStCode, entity.getStCode());
+					MvAttStBaseEntity baseEntity = mvAttStBaseService.getOne(dataWrapper);
+					if (null == baseEntity) {
+						baseEntity = new MvAttStBaseEntity();
+						baseEntity.setCreateTime(new Date());
+						baseEntity.setUpdateTime(new Date());
+						baseEntity.setStatus(1);
+						baseEntity.setIsDeleted(0);
+					}
+					baseEntity.setStCode(entity.getStCode());
+					baseEntity.setStName(entity.getStName());
+					baseEntity.setAdCode(entity.getAdCode());
+					baseEntity.setAdName(entity.getAdName());
+					baseEntity.setRvCode(entity.getRvCode());
+					baseEntity.setRvName(entity.getRvName());
+					baseEntity.setStLong(entity.getStLong());
+					baseEntity.setStLat(entity.getStLat());
+					baseEntity.setIsRain(entity.getIsRain());
+					baseEntity.setIsRiver(entity.getIsRiver());
+					baseEntity.setIsRes(entity.getIsRes());
+					baseEntity.setRainStType(entity.getRainStType());
+					baseEntity.setUpdateTime(new Date());
+					mvAttStBaseService.saveOrUpdate(baseEntity);
+				}
+			}
+		} catch (Exception e) {
+			log.error("实时数据统计任务异常 {}", e.getMessage());
+		}
+		return 0;
+	}
+}

+ 55 - 0
src/main/java/org/springblade/etl/EtlRainDataTask.java

@@ -0,0 +1,55 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.etl.dto.EtlRainDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.service.IEtlRainDataService;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.data.service.IRtuDataRainService;
+
+import java.util.Date;
+import java.util.List;
+
+
+/***
+ * Date:2022/5/22
+ * Title: 降水抽取
+ * Description:每小时同步一次
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class EtlRainDataTask {
+
+	public static RtuDataRainEntity dataSync(EtlRainDataDTO etlRainDataDTO, IEtlRainDataService etlRainDataService, IRtuDataRainService rtuDataRainService) {
+		List<EtlRainDataEntity> rainDataEntityList = etlRainDataService.selectLastList(etlRainDataDTO);
+		if (null != rainDataEntityList && rainDataEntityList.size() > 0) {
+			EtlRainDataEntity entity = rainDataEntityList.get(0);
+			LambdaQueryWrapper<RtuDataRainEntity> dataWrapper = Wrappers.<RtuDataRainEntity>query().lambda();
+			dataWrapper.eq(RtuDataRainEntity::getRtuCode, entity.getRtuCode());
+			dataWrapper.eq(RtuDataRainEntity::getIsDeleted, 0);
+			RtuDataRainEntity rainEntity = rtuDataRainService.getOne(dataWrapper);
+			if (null == rainEntity) {
+				rainEntity = new RtuDataRainEntity();
+				rainEntity.setRtuCode(entity.getRtuCode());
+				rainEntity.setCreateTime(new Date());
+				rainEntity.setStatus(1);
+				rainEntity.setIsDeleted(0);
+			}
+			rainEntity.setUpdateTime(new Date());
+			rainEntity.setDrp(entity.getDrp());
+			rainEntity.setIntv(entity.getIntv());
+			rainEntity.setTm(entity.getTm());
+			rtuDataRainService.saveOrUpdate(rainEntity);
+			return rainEntity;
+		}
+		return null;
+	}
+}

+ 51 - 0
src/main/java/org/springblade/etl/EtlRegionDataTask.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springframework.data.redis.core.RedisTemplate;
+
+import java.util.concurrent.Callable;
+
+/***
+ * Date:2022/5/22
+ * Title: 行政区划数据抽取
+ * Description:
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+public class EtlRegionDataTask implements Callable<Integer> {
+
+	private RedisTemplate redisTemplate;
+	private IEtlAdCdService etlAdCdService;
+	private IBaseInfoRegionService regionService;
+
+
+	EtlRegionDataTask(RedisTemplate redisTemplate, IEtlAdCdService etlAdCdService, IBaseInfoRegionService regionService) {
+		this.redisTemplate = redisTemplate;
+		this.etlAdCdService = etlAdCdService;
+		this.regionService = regionService;
+	}
+
+	@Override
+	public Integer call() {
+		try {
+			log.info("行政区划数据抽取开始**************");
+
+
+
+		} catch (Exception e) {
+			log.error("实时数据统计任务异常 {}", e.getMessage());
+		}
+		return 0;
+	}
+}

+ 54 - 0
src/main/java/org/springblade/etl/EtlRiverDataTask.java

@@ -0,0 +1,54 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.etl.dto.EtlRiverDataDTO;
+import org.springblade.etl.entity.EtlRiverDataEntity;
+import org.springblade.etl.service.IEtlRiverDataService;
+import org.springblade.modules.business.data.entity.RtuDataRiverEntity;
+import org.springblade.modules.business.data.service.IRtuDataRiverService;
+
+import java.util.Date;
+import java.util.List;
+
+/***
+ * Date:2022/5/22
+ * Title: 河道水位抽取
+ * Description:
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class EtlRiverDataTask {
+
+	public static RtuDataRiverEntity dataSync(EtlRiverDataDTO etlRiverDataDTO, IEtlRiverDataService etlRiverDataService, IRtuDataRiverService rtuDataRiverService) {
+		List<EtlRiverDataEntity> riverDataEntityList = etlRiverDataService.selectLastList(etlRiverDataDTO);
+		if (null != riverDataEntityList && riverDataEntityList.size() > 0) {
+			EtlRiverDataEntity entity = riverDataEntityList.get(0);
+			LambdaQueryWrapper<RtuDataRiverEntity> dataWrapper = Wrappers.<RtuDataRiverEntity>query().lambda();
+			dataWrapper.eq(RtuDataRiverEntity::getRtuCode, entity.getRtuCode());
+			dataWrapper.eq(RtuDataRiverEntity::getIsDeleted, 0);
+			RtuDataRiverEntity riverEntity = rtuDataRiverService.getOne(dataWrapper);
+			if (null == riverEntity) {
+				riverEntity = new RtuDataRiverEntity();
+				riverEntity.setRtuCode(entity.getRtuCode());
+				riverEntity.setCreateTime(new Date());
+				riverEntity.setStatus(1);
+				riverEntity.setIsDeleted(0);
+			}
+			riverEntity.setUpdateTime(new Date());
+			riverEntity.setZ(entity.getZ());
+			riverEntity.setTm(entity.getTm());
+			rtuDataRiverService.saveOrUpdate(riverEntity);
+			return riverEntity;
+		}
+		return null;
+	}
+}

+ 55 - 0
src/main/java/org/springblade/etl/EtlRsvrDataTask.java

@@ -0,0 +1,55 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.etl.dto.EtlRsvrDataDTO;
+import org.springblade.etl.entity.EtlRsvrDataEntity;
+import org.springblade.etl.service.IEtlRsvrDataService;
+import org.springblade.modules.business.data.entity.RtuDataRsvrEntity;
+import org.springblade.modules.business.data.service.IRtuDataRsvrService;
+
+
+import java.util.Date;
+import java.util.List;
+
+/***
+ * Date:2022/5/22
+ * Title: 水库水位
+ * Description:
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class EtlRsvrDataTask {
+
+	public static RtuDataRsvrEntity dataSync(EtlRsvrDataDTO etlRsvrDataDTO, IEtlRsvrDataService etlRsvrDataService, IRtuDataRsvrService rtuDataRsvrService) {
+		List<EtlRsvrDataEntity> rsvrDataEntityList = etlRsvrDataService.selectLastList(etlRsvrDataDTO);
+		if (null != rsvrDataEntityList && rsvrDataEntityList.size() > 0) {
+			EtlRsvrDataEntity entity = rsvrDataEntityList.get(0);
+			LambdaQueryWrapper<RtuDataRsvrEntity> dataWrapper = Wrappers.<RtuDataRsvrEntity>query().lambda();
+			dataWrapper.eq(RtuDataRsvrEntity::getRtuCode, entity.getRtuCode());
+			dataWrapper.eq(RtuDataRsvrEntity::getIsDeleted, 0);
+			RtuDataRsvrEntity rsvrDataEntity = rtuDataRsvrService.getOne(dataWrapper);
+			if (null == rsvrDataEntity) {
+				rsvrDataEntity = new RtuDataRsvrEntity();
+				rsvrDataEntity.setRtuCode(entity.getRtuCode());
+				rsvrDataEntity.setCreateTime(new Date());
+				rsvrDataEntity.setUpdateTime(new Date());
+				rsvrDataEntity.setStatus(1);
+				rsvrDataEntity.setIsDeleted(0);
+			}
+			rsvrDataEntity.setRz(entity.getRz());
+			rsvrDataEntity.setTm(entity.getTm());
+			rtuDataRsvrService.saveOrUpdate(rsvrDataEntity);
+			return rsvrDataEntity;
+		}
+		return null;
+	}
+}

+ 194 - 0
src/main/java/org/springblade/etl/EtlRtuDataTask.java

@@ -0,0 +1,194 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2023/2/21
+ */
+package org.springblade.etl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.utils.ConcurrentDateFormat;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.etl.dto.EtlGroundDataDTO;
+import org.springblade.etl.dto.EtlRainDataDTO;
+import org.springblade.etl.dto.EtlRiverDataDTO;
+import org.springblade.etl.dto.EtlRsvrDataDTO;
+import org.springblade.etl.service.*;
+import org.springblade.modules.baseinfo.rtu.entity.RtuInfoEntity;
+import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
+import org.springblade.modules.business.data.entity.RtuDataGroundEntity;
+import org.springblade.modules.business.data.entity.RtuDataRainEntity;
+import org.springblade.modules.business.data.entity.RtuDataRiverEntity;
+import org.springblade.modules.business.data.entity.RtuDataRsvrEntity;
+import org.springblade.modules.business.data.service.IRtuDataGroundService;
+import org.springblade.modules.business.data.service.IRtuDataRainService;
+import org.springblade.modules.business.data.service.IRtuDataRiverService;
+import org.springblade.modules.business.data.service.IRtuDataRsvrService;
+import org.springblade.modules.business.rtumanage.entity.RtuStatusEntity;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.kafka.core.KafkaTemplate;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.Callable;
+
+/***
+ * Date:2023/2/21
+ * Title: ETL数据处理任务模块
+ * Description:处理雨情数据、河道水位数据、水库水位数据、墒情数据
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+public class EtlRtuDataTask implements Callable<Integer> {
+	private KafkaTemplate<String, String> kafkaTemplate;
+	private RedisTemplate redisTemplate;
+	private IRtuBaseInfoService rtuBaseInfoService;
+	private IEtlRainDataService etlRainDataService;
+	private IRtuDataRainService rtuDataRainService;
+	private IEtlRiverDataService etlRiverDataService;
+	private IRtuDataRiverService rtuDataRiverService;
+	private IEtlRsvrDataService etlRsvrDataService;
+	private IRtuDataRsvrService rtuDataRsvrService;
+	private IEtlGroundDataService etlGroundDataService;
+	private IRtuDataGroundService rtuDataGroundService;
+
+	EtlRtuDataTask(
+		KafkaTemplate<String, String> kafkaTemplate,
+		RedisTemplate redisTemplate,
+		IRtuBaseInfoService rtuBaseInfoService,
+		IEtlRainDataService etlRainDataService,
+		IRtuDataRainService rtuDataRainService,
+		IEtlRiverDataService etlRiverDataService,
+		IRtuDataRiverService rtuDataRiverService,
+		IEtlRsvrDataService etlRsvrDataService,
+		IRtuDataRsvrService rtuDataRsvrService,
+		IEtlGroundDataService etlGroundDataService,
+		IRtuDataGroundService rtuDataGroundService) {
+		this.kafkaTemplate = kafkaTemplate;
+		this.redisTemplate = redisTemplate;
+		this.rtuBaseInfoService = rtuBaseInfoService;
+		this.etlRainDataService = etlRainDataService;
+		this.rtuDataRainService = rtuDataRainService;
+		this.etlRiverDataService = etlRiverDataService;
+		this.rtuDataRiverService = rtuDataRiverService;
+		this.etlRsvrDataService = etlRsvrDataService;
+		this.rtuDataRsvrService = rtuDataRsvrService;
+		this.etlGroundDataService = etlGroundDataService;
+		this.rtuDataGroundService = rtuDataGroundService;
+	}
+
+	@Override
+	public Integer call() {
+		try {
+			log.info("测站定时报数据抽取开始**************");
+			long st = System.currentTimeMillis();
+			HashOperations<String, String, String> opsHash = redisTemplate.opsForHash();
+			LambdaQueryWrapper<RtuInfoEntity> wrapper = Wrappers.<RtuInfoEntity>query().lambda();
+			wrapper.eq(RtuInfoEntity::getIsDeleted, 0);
+			List<RtuInfoEntity> rtuInfoEntityList = rtuBaseInfoService.list(wrapper);
+			for (RtuInfoEntity rtuInfoEntity : rtuInfoEntityList) {
+				Date rtuUpTm = null;
+				//读取最新一条雨情数据
+				EtlRainDataDTO etlRainDataDTO = new EtlRainDataDTO();
+				etlRainDataDTO.setRtuCode(rtuInfoEntity.getRtuCode());
+				if (opsHash.hasKey("etl_rtu_rain_read_time", rtuInfoEntity.getRtuCode())) {
+					String dt = opsHash.get("etl_rtu_rain_read_time", rtuInfoEntity.getRtuCode());
+					Date lastDate = Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd HH:mm:ss"));
+					etlRainDataDTO.setLastTime(lastDate);
+				}
+				RtuDataRainEntity rtuDataRainEntity = EtlRainDataTask.dataSync(etlRainDataDTO, etlRainDataService, rtuDataRainService);
+				if (null != rtuDataRainEntity) {
+					//保存时间
+					String dt = Func.formatDateTime(rtuDataRainEntity.getTm());
+					opsHash.put("etl_rtu_rain_read_time", rtuInfoEntity.getRtuCode(), dt);
+					//最后上报时间
+					rtuUpTm = rtuDataRainEntity.getTm();
+				}
+				//读取最新一条河道数据
+				EtlRiverDataDTO etlRiverDataDTO = new EtlRiverDataDTO();
+				etlRiverDataDTO.setRtuCode(rtuInfoEntity.getRtuCode());
+				if (opsHash.hasKey("etl_rtu_river_read_time", rtuInfoEntity.getRtuCode())) {
+					String dt = opsHash.get("etl_rtu_river_read_time", rtuInfoEntity.getRtuCode());
+					Date lastDate = Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd HH:mm:ss"));
+					etlRiverDataDTO.setLastTime(lastDate);
+				}
+				RtuDataRiverEntity rtuDataRiverEntity = EtlRiverDataTask.dataSync(etlRiverDataDTO, etlRiverDataService, rtuDataRiverService);
+				if (null != rtuDataRiverEntity) {
+					//保存时间
+					String dt = Func.formatDateTime(rtuDataRiverEntity.getTm());
+					opsHash.put("etl_rtu_river_read_time", rtuInfoEntity.getRtuCode(), dt);
+					//最后上报时间
+					if (rtuUpTm != null) {
+						if (rtuDataRiverEntity.getTm().after(rtuUpTm)) {
+							rtuUpTm = rtuDataRiverEntity.getTm();
+						}
+					} else {
+						rtuUpTm = rtuDataRiverEntity.getTm();
+					}
+				}
+				//读取最新一条水库数据
+				EtlRsvrDataDTO etlRsvrDataDTO = new EtlRsvrDataDTO();
+				etlRsvrDataDTO.setRtuCode(rtuInfoEntity.getRtuCode());
+				if (opsHash.hasKey("etl_rtu_rsvr_read_time", rtuInfoEntity.getRtuCode())) {
+					String dt = opsHash.get("etl_rtu_rsvr_read_time", rtuInfoEntity.getRtuCode());
+					Date lastDate = Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd HH:mm:ss"));
+					etlRsvrDataDTO.setLastTime(lastDate);
+				}
+				RtuDataRsvrEntity rsvrDataEntity = EtlRsvrDataTask.dataSync(etlRsvrDataDTO, etlRsvrDataService, rtuDataRsvrService);
+				if (null != rsvrDataEntity) {
+					//保存时间
+					String dt = Func.formatDateTime(rsvrDataEntity.getTm());
+					opsHash.put("etl_rtu_rsvr_read_time", rtuInfoEntity.getRtuCode(), dt);
+					//最后上报时间
+					if (rtuUpTm != null) {
+						if (rsvrDataEntity.getTm().after(rtuUpTm)) {
+							rtuUpTm = rsvrDataEntity.getTm();
+						}
+					} else {
+						rtuUpTm = rsvrDataEntity.getTm();
+					}
+				}
+				//读取最新一条墒情数据
+				EtlGroundDataDTO groundDataDTO = new EtlGroundDataDTO();
+				groundDataDTO.setRtuCode(rtuInfoEntity.getRtuCode());
+				if (opsHash.hasKey("etl_rtu_ground_read_time", rtuInfoEntity.getRtuCode())) {
+					String dt = opsHash.get("etl_rtu_ground_read_time", rtuInfoEntity.getRtuCode());
+					Date lastDate = Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd HH:mm:ss"));
+					groundDataDTO.setLastTime(lastDate);
+				}
+				RtuDataGroundEntity groundDataEntity = EtlGroundDataTask.dataSync(groundDataDTO, etlGroundDataService, rtuDataGroundService);
+				if (null != groundDataEntity) {
+					//保存时间
+					String dt = Func.formatDateTime(groundDataEntity.getTm());
+					opsHash.put("etl_rtu_ground_read_time", rtuInfoEntity.getRtuCode(), dt);
+					//最后上报时间
+					if (rtuUpTm != null) {
+						if (groundDataEntity.getTm().after(rtuUpTm)) {
+							rtuUpTm = groundDataEntity.getTm();
+						}
+					} else {
+						rtuUpTm = groundDataEntity.getTm();
+					}
+				}
+				//更新测站最近上报时间
+				if (null != rtuUpTm) {
+					RtuStatusEntity statusEntity = new RtuStatusEntity();
+					statusEntity.setLastUpTime(rtuUpTm);
+					statusEntity.setRtuCode(rtuInfoEntity.getRtuCode());
+					kafkaTemplate.send("ywxt.rtu.status", JsonUtil.toJson(statusEntity));
+				}
+			}
+			long et = System.currentTimeMillis();
+			log.info("测站定时报数据抽取完成 {}", (et - st) / 1000);
+		} catch (Exception e) {
+			log.error("实时数据统计任务异常 {}", e.getMessage());
+		}
+		return 0;
+	}
+}

+ 111 - 0
src/main/java/org/springblade/etl/EtlTaskManager.java

@@ -0,0 +1,111 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/23
+ */
+package org.springblade.etl;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.kafka.core.KafkaTemplate;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.stereotype.Component;
+
+
+/***
+ * Date:2022/5/22
+ * Title:  ETL模块
+ * Description: 定时任务管理
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+@Component
+@EnableScheduling
+public class EtlTaskManager {
+
+	/**
+	 * 公共线程池
+	 **/
+//	private static ThreadFactory publicThreadFactory = new ThreadFactoryBuilder().setNameFormat("etl-thread-pool-%d").build();
+//	private static ExecutorService publicThreadPool = new ThreadPoolExecutor(1, 1,
+//		0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(1024), publicThreadFactory, new ThreadPoolExecutor.AbortPolicy());
+
+
+	@Autowired
+	private KafkaTemplate<String, String> kafkaTemplate;
+
+	@Autowired
+	private RedisTemplate redisTemplate;
+//
+//	@Resource
+//	private IEtlRainDataService etlRainDataService;
+//
+//	@Resource
+//	private IRtuDataRainService rtuDataRainService;
+//
+//	@Resource
+//	private IEtlRiverDataService etlRiverDataService;
+//
+//	@Resource
+//	private IRtuDataRiverService rtuDataRiverService;
+//
+//	@Resource
+//	private IEtlRsvrDataService etlRsvrDataService;
+//
+//	@Resource
+//	private IRtuDataRsvrService rtuDataRsvrService;
+//
+//	@Resource
+//	private IEtlGroundDataService etlGroundDataService;
+//
+//	@Resource
+//	private IRtuDataGroundService rtuDataGroundService;
+//
+//	@Resource
+//	private IEtlMvAttStBaseService etlMvAttStBaseService;
+//
+//	@Resource
+//	private IMvAttStBaseService mvAttStBaseService;
+//
+//	@Resource
+//	private IRtuBaseInfoService rtuBaseInfoService;
+
+	@Value("${spring.task-config.etl-task}")
+	boolean etlTask;
+//
+//	@Resource
+//	private TaskManager taskManager;
+
+//	@Scheduled(cron = "0 0 0/1 * * ?")
+//	public void attStBaseReadTask() {
+//		try {
+//			if (etlTask) {
+//				EtlMvAttStBaseDataTask mvAttStBaseDataTask = new EtlMvAttStBaseDataTask(etlMvAttStBaseService, mvAttStBaseService);
+//				FutureTask<Integer> futureTask = new FutureTask<>(mvAttStBaseDataTask);
+//				taskManager.submitTask(futureTask);
+//			}
+//		} catch (Exception e) {
+//			log.error("{}", e.getMessage());
+//		}
+//	}
+
+//	@Scheduled(cron = "0 0/5 * * * ?")
+//	public void rtuDataReadTask() {
+//		try {
+//			if (etlTask) {
+//				EtlRtuDataTask etlRtuDataTask = new EtlRtuDataTask(kafkaTemplate, redisTemplate, rtuBaseInfoService, etlRainDataService, rtuDataRainService, etlRiverDataService, rtuDataRiverService, etlRsvrDataService, rtuDataRsvrService, etlGroundDataService, rtuDataGroundService);
+//				FutureTask<Integer> futureTask = new FutureTask<>(etlRtuDataTask);
+//				taskManager.submitTask(futureTask);
+//			}
+//		} catch (Exception e) {
+//			log.error("{}", e.getMessage());
+//		}
+//	}
+
+}

+ 73 - 0
src/main/java/org/springblade/etl/EtlWarningTask.java

@@ -0,0 +1,73 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/5/22
+ */
+package org.springblade.etl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tool.utils.ConcurrentDateFormat;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.etl.entity.EtlWarningInfoEntity;
+import org.springblade.etl.service.IEtlWarningService;
+import org.springblade.modules.business.warning.entity.RtuWarningInfoEntity;
+import org.springblade.modules.business.warning.service.IRtuWarningService;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.Callable;
+
+/***
+ * Date:2022/5/22
+ * Title: 预警数据抽取
+ * Description:
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Slf4j
+public class EtlWarningTask implements Callable<Integer> {
+
+	private RedisTemplate redisTemplate;
+	private IEtlWarningService etlWarningService;
+	private IRtuWarningService rtuWarningService;
+
+	public EtlWarningTask(RedisTemplate redisTemplate, IEtlWarningService etlWarningService, IRtuWarningService rtuWarningService){
+		this.redisTemplate=redisTemplate;
+		this.etlWarningService=etlWarningService;
+		this.rtuWarningService=rtuWarningService;
+	}
+
+	@Override
+	public Integer call()  {
+		try {
+			log.info("预警数据抽取开始**************");
+			HashOperations<String, String, String> opsHash = redisTemplate.opsForHash();
+			Date date = new Date();
+			if (opsHash.hasKey("etl", "warn_update_time")) {
+				String dt = opsHash.get("etl", "warn_update_time");
+				date = Func.parse(dt, ConcurrentDateFormat.of("yyyy-MM-dd HH:mm:ss"));
+			}
+			LambdaQueryWrapper<EtlWarningInfoEntity> wrapper = Wrappers.<EtlWarningInfoEntity>query().lambda();
+			wrapper.gt(EtlWarningInfoEntity::getOriginalCreateTime,date);
+			wrapper.orderByAsc(EtlWarningInfoEntity::getOriginalCreateTime);
+			List<EtlWarningInfoEntity> list = etlWarningService.list(wrapper);
+			if (null != list && list.size() > 0) {
+				for (EtlWarningInfoEntity warningInfo : list) {
+					RtuWarningInfoEntity rtuWarningInfoEntity=new RtuWarningInfoEntity();
+					rtuWarningService.save(rtuWarningInfoEntity);
+				}
+			}
+			String dt = Func.formatDateTime(date);
+			opsHash.put("etl", "warn_update_time", dt);
+		} catch (Exception e) {
+			log.error("数据任务异常 {}", e.getMessage());
+		}
+		return 0;
+	}
+}

+ 973 - 0
src/main/java/org/springblade/etl/controller/TestController.java

@@ -0,0 +1,973 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.etl.controller;
+
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.etl.entity.EtlRainDataEntity;
+
+import org.springblade.etl.entity.EtlRsvrDataEntity;
+
+import org.springblade.etl.service.IEtlRainDataService;
+
+import org.springblade.modules.baseinfo.rtu.service.IRtuBaseInfoService;
+import org.springblade.modules.business.warning.service.IRtuWarningService;
+import org.springblade.task.SurfDataProcessTask;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.kafka.core.KafkaTemplate;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import ucar.nc2.NetcdfFile;
+import ucar.nc2.NetcdfFiles;
+
+import javax.annotation.Resource;
+
+import java.util.*;
+
+
+/***
+ * Date:2022/8/22
+ * Title:行政区划管理
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-test/test")
+@AllArgsConstructor
+@Api(value = "业务字典", tags = "业务字典")
+@Slf4j
+public class TestController extends BladeController {
+	private final IRtuBaseInfoService rtuBaseInfoService;
+	private final IEtlRainDataService etlRainDataService;
+
+	private final IRtuWarningService rtuWarningService;
+
+	@Resource
+	private RedisTemplate redisTemplate;
+	@Autowired
+	private KafkaTemplate<String, String> kafkaTemplate;
+
+	@Resource
+	private SurfDataProcessTask surfDataProcessTask;
+
+
+	@GetMapping("/data/rain")
+	@ApiOperationSupport(order = 1)
+	public R<String> addRain(@RequestParam(name = "rtuCode") String rtuCode) {
+		try {
+			String filename = "D:\\tmp\\test\\Z_SURF_C_BABJ_20230517112343_P_CMPA_RT_BEHT_0P01_HOR-PRE-2023051711.GRB2";
+
+
+
+			//NetcdfFile netcdfFile = NetcdfFiles.open(filename, null);
+			NetcdfFile netcdfFile = NetcdfFiles.open(filename);
+		///	ImmutableList<Variable> variables = netcdfFile.getVariables();
+		//	surfDataProcessTask.submit(filename,Func.formatDateTime(new Date()));
+
+//			log.info("***************************");
+//			log.info("{}",	netcdfFile.getFileTypeId());
+//			log.info("***************************");
+//			log.info("{}",	netcdfFile.getTitle());
+//			log.info("***************************");
+//			log.info("{}",	netcdfFile.getDetailInfo());
+//			log.info("***************************");
+//			log.info("{}",netcdfFile.getLocation());
+//			log.info("***************************");
+			//	ImmutableDescriptor
+			//ImmutableList<Variable> variables = netcdfFile.getVariables();
+//			ImmutableList<Attribute> attributeIterator =	netcdfFile.getGlobalAttributes();
+//			for(Attribute a:attributeIterator){
+//				log.info("***************************");
+//				log.info("Attribute {},{},{}",a.getName(),a.getStringValue(),a.getDataType().toString());
+//			}
+
+		//	List<String> lons = new LinkedList<>();
+//			List<String> lats = new LinkedList<>();
+//			List<String> times = new LinkedList<>();
+//
+//			List<Map<String, String>> values = new LinkedList<>();
+//
+//			for (Variable v : variables) {
+//				log.info("***************************");
+//				log.info("{},{},{}", v.getFullName(), v.getDataType().toString(), v.getDimensionsString());
+//				log.info("***************************");
+//				if (v.getFullName().equals("lon")) {
+//					log.info("lon size {}", v.getSize());
+//					Array datas = v.read();
+//					Index index = datas.getIndex();
+//					int[] shapelist = v.getShape();
+//					for (int i = 0; i < shapelist[0]; i++) {
+//						float lonv = datas.getFloat(index.set(i));
+//						lons.add(Func.toStr(lonv));
+//					}
+//				}
+//				log.info("***************************");
+//				if (v.getFullName().equals("lat")) {
+//					log.info("lat size {}", v.getSize());
+//					Array datas = v.read();
+//					Index index = datas.getIndex();
+//					int[] shapelist = v.getShape();
+//					for (int i = 0; i < shapelist[0]; i++) {
+//						float latv = datas.getFloat(index.set(i));
+//						lats.add(Func.toStr(latv));
+//					}
+//				}
+//				log.info("***************************");
+//				if (v.getFullName().equals("time")) {
+//					log.info("time size {}", v.getSize());
+//					Array datas = v.read();
+//					Index index = datas.getIndex();
+//					int[] shapelist = v.getShape();
+//					for (int i = 0; i < shapelist[0]; i++) {
+//						double timev = datas.getDouble(index.set(i));
+//						times.add(Func.toStr(timev));
+//					}
+//				}
+//				log.info("***************************");
+//				if (v.getFullName().equals("reftime")) {
+//					log.info("reftime size {}", v.getSize());
+////					Array datas = v.read();
+////					Index index= datas.getIndex();
+////					int[] shapelist= v.getShape();
+////					for (int i = 0; i < shapelist[0]; i++) {
+////						double timev=	datas.getDouble(index.set(i));
+////						times.add(Func.toStr(timev));
+////					}
+//				}
+//
+//
+//				log.info("***************************");
+//				if (v.getFullName().equals("Total_precipitation_surface")) {
+//					log.info("surface size {}", v.getSize());
+//					Array datas = v.read();
+//					int[] shapelist = v.getShape();
+//					Index index = datas.getIndex();
+//					//按时间
+//					for (int i = 0; i < shapelist[0]; i++) {
+//						// 按维度
+//						for (int n = 0; n < shapelist[1]; n++) {
+//							// 按经度
+//							for (int k = 0; k < 100; k++) {
+//								// 按照对应索引获取数据并转换为string类型添加到数组中
+//								float dval = datas.getFloat(index.set(i, n, k));
+//								log.info("shape {} {} {}", i, n, k);
+//								log.info("time,lat,lon,value:    {},{},{}", lats.get(n), lons.get(k), dval);
+//							}
+//						}
+//					}
+//				}
+//
+//			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/rain/1")
+	@ApiOperationSupport(order = 1)
+	public R<String> addRain1() {
+
+	//	surfDataProcessTask.submitTask("Z_SURF_C_BABJ_20230517080534_P_CMPA_RT_BEHT_0P01_HOR-PRE-2023051708.GRB2");
+//		EtlRainDataEntity etlRainDataEntity = new EtlRainDataEntity();
+//
+//		Calendar calendar = Calendar.getInstance();
+//		calendar.set(Calendar.HOUR_OF_DAY, 12);
+//		calendar.set(Calendar.MINUTE, 0);
+//		calendar.set(Calendar.SECOND, 0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//
+//		calendar.set(Calendar.MINUTE, 11);
+//
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+
+//		EtlRainDataEntity etlRainDataEntity=new EtlRainDataEntity();
+//		etlRainDataEntity.setRtuCode("01751300");
+//		etlRainDataEntity.setIntv(1.0);
+//		etlRainDataEntity.setDrp(2.0);
+//		etlRainDataEntity.setTm(new Date());
+//		etlRainDataEntity.setFromDate(new Date());
+
+		//rtuWarningService.checkRtuOutlierValueStatus(etlRainDataEntity);
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/rain/2")
+	@ApiOperationSupport(order = 1)
+	public R<String> addRain2() {
+		//	try {
+
+		//101.851139
+		//39.044694
+		//surf left top  0.0 39.039997  101.85
+		//surf left bottom  0.0 39.039997  101.86
+		//surf right top  0.0 39.05  101.85
+		//surf right bottom  0.0 39.05  101.86
+
+
+		String rtuCode = "01751300";
+
+		ValueOperations<String, String> ops = redisTemplate.opsForValue();
+		String key = rtuCode + ".surf.lefttop.value";
+		String value1 = ops.get(key);
+		key = rtuCode + ".surf.lefttop.lon";
+		String ltLon = ops.get(key);
+		key = rtuCode + ".surf.lefttop.lat";
+		String ltLat = ops.get(key);
+
+		key = rtuCode + ".surf.leftbottom.value";
+		String value2 = ops.get(key);
+		key = rtuCode + ".surf.leftbottom.lon";
+		String lbLon = ops.get(key);
+		key = rtuCode + ".surf.leftbottom.lat";
+		String lbLat = ops.get(key);
+
+		key = rtuCode + ".surf.righttop.value";
+		String value3 = ops.get(key);
+		key = rtuCode + ".surf.righttop.lon";
+		String rtLon = ops.get(key);
+		key = rtuCode + ".surf.righttop.lat";
+		String rtLat = ops.get(key);
+
+		key = rtuCode + ".surf.rightbottom.value";
+		String value4 = ops.get(key);
+		key = rtuCode + ".surf.rightbottom.lon";
+		String rbLon = ops.get(key);
+		key = rtuCode + ".surf.rightbottom.lat";
+		String rbLat = ops.get(key);
+
+		if (null != value1 && null != value2 && null != value3 && null != value4) {
+			float count = Func.toFloat(value1) + Func.toFloat(value2) + Func.toFloat(value3) + Func.toFloat(value4);
+			count = count / 4;
+			log.info("测站编码{} 纬度 {} 经度{}",rtuCode,39.044694,101.851139);
+			log.info("网格左上角 值  {} 纬度 {} 经度 {} ",value1,ltLat,ltLon);
+			log.info("网格左下角 值  {} 纬度 {} 经度 {} ",value2,lbLat,lbLon);
+			log.info("网格右上角 值  {} 纬度 {} 经度 {} ",value3,rtLat,rtLon);
+			log.info("网格右下角 值  {} 纬度 {} 经度 {} ",value4,rbLat,rbLon);
+
+			log.info("网格内降雨平均值 {}",count);
+
+		}else{
+			log.info("no surf info");
+		}
+
+
+		//surfDataProcessTask.getSurfValue("94.65","34.899998");
+//		} catch (RocksDBException e) {
+//			e.printStackTrace();
+//		} catch (IOException e) {
+//			e.printStackTrace();
+//		} catch (ClassNotFoundException e) {
+//			e.printStackTrace();
+//		}
+//		EtlRainDataEntity etlRainDataEntity = new EtlRainDataEntity();
+//
+//		Calendar calendar = Calendar.getInstance();
+//		calendar.set(Calendar.HOUR_OF_DAY, 12);
+//		calendar.set(Calendar.MINUTE, 5);
+//		calendar.set(Calendar.SECOND, 0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//
+//		calendar.set(Calendar.MINUTE, 5);
+//
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/rain/3")
+	@ApiOperationSupport(order = 1)
+	public R<String> addRain3() {
+		EtlRainDataEntity etlRainDataEntity = new EtlRainDataEntity();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 14);
+		calendar.set(Calendar.MINUTE, 0);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+
+	//	calendar.set(Calendar.MINUTE, 22);
+
+		etlRainDataEntity.setFromDate(calendar.getTime());
+
+		etlRainDataEntity.setRtuCode("01740030");
+		etlRainDataEntity.setIntv(1.0);
+		etlRainDataEntity.setDrp(3.0);
+
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/rain/4")
+	@ApiOperationSupport(order = 1)
+	public R<String> addRain4() {
+		EtlRainDataEntity etlRainDataEntity = new EtlRainDataEntity();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 12);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+
+		calendar.set(Calendar.MINUTE, 27);
+
+		etlRainDataEntity.setFromDate(calendar.getTime());
+
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/rain/5")
+	@ApiOperationSupport(order = 1)
+	public R<String> addRain5() {
+		EtlRainDataEntity etlRainDataEntity = new EtlRainDataEntity();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 12);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+
+		calendar.set(Calendar.MINUTE, 27);
+
+		etlRainDataEntity.setFromDate(calendar.getTime());
+
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(1.0);
+		etlRainDataEntity.setDrp(1.0);
+
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/river/0")
+	@ApiOperationSupport(order = 1)
+	public R<String> addriver0() {
+		ValueOperations<String, String> ops = redisTemplate.opsForValue();
+		String key = "etl.river.40516502.up.5min";
+		JSONArray array = new JSONArray();
+		ops.set(key, array.toJSONString());
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/river/1")
+	@ApiOperationSupport(order = 1)
+	public R<String> addriver1() {
+
+		EtlRsvrDataEntity etlRsvrDataEntity = new EtlRsvrDataEntity();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 9);
+		calendar.set(Calendar.MINUTE, 0);
+		calendar.set(Calendar.SECOND, 0);
+		etlRsvrDataEntity.setTm(calendar.getTime());
+
+		calendar.set(Calendar.HOUR_OF_DAY, 11);
+		calendar.set(Calendar.MINUTE, 0);
+		calendar.set(Calendar.SECOND, 0);
+		etlRsvrDataEntity.setFromDate(calendar.getTime());
+
+		etlRsvrDataEntity.setRtuCode("20911190");
+		etlRsvrDataEntity.setRz(0.05);
+
+
+		kafkaTemplate.send("topic-etl-rsvr-data", JSONObject.toJSONString(etlRsvrDataEntity));
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/river/2")
+	@ApiOperationSupport(order = 1)
+	public R<String> addriver2() {
+		EtlRsvrDataEntity etlRsvrDataEntity = new EtlRsvrDataEntity();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 9);
+		calendar.set(Calendar.MINUTE, 10);
+		calendar.set(Calendar.SECOND, 0);
+		etlRsvrDataEntity.setTm(calendar.getTime());
+
+		calendar.set(Calendar.HOUR_OF_DAY, 12);
+		calendar.set(Calendar.MINUTE, 0);
+		calendar.set(Calendar.SECOND, 0);
+
+		etlRsvrDataEntity.setFromDate(calendar.getTime());
+
+		etlRsvrDataEntity.setRtuCode("01718530");
+		etlRsvrDataEntity.setRz(0.05);
+
+
+		kafkaTemplate.send("topic-etl-rsvr-data", JSONObject.toJSONString(etlRsvrDataEntity));
+		return R.data("ok");
+
+
+	}
+
+	@GetMapping("/data/river/3")
+	@ApiOperationSupport(order = 1)
+	public R<String> addriver3() {
+		EtlRsvrDataEntity etlRsvrDataEntity = new EtlRsvrDataEntity();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 12);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRsvrDataEntity.setTm(calendar.getTime());
+
+		calendar.set(Calendar.MINUTE, 27);
+
+		etlRsvrDataEntity.setFromDate(calendar.getTime());
+
+		etlRsvrDataEntity.setRtuCode("20911190");
+		etlRsvrDataEntity.setRz(0.05);
+
+
+		kafkaTemplate.send("topic-etl-rsvr-data", JSONObject.toJSONString(etlRsvrDataEntity));
+		return R.data("ok");
+
+
+	}
+
+	@GetMapping("/data/river/4")
+	@ApiOperationSupport(order = 1)
+	public R<String> addriver4() {
+		EtlRsvrDataEntity etlRsvrDataEntity = new EtlRsvrDataEntity();
+
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 12);
+		calendar.set(Calendar.MINUTE, 20);
+		calendar.set(Calendar.SECOND, 0);
+		etlRsvrDataEntity.setTm(calendar.getTime());
+
+		calendar.set(Calendar.MINUTE, 35);
+
+		etlRsvrDataEntity.setFromDate(calendar.getTime());
+
+		etlRsvrDataEntity.setRtuCode("20911190");
+		etlRsvrDataEntity.setRz(0.05);
+
+
+		kafkaTemplate.send("topic-etl-rsvr-data", JSONObject.toJSONString(etlRsvrDataEntity));
+		return R.data("ok");
+
+
+	}
+
+	@GetMapping("/data/rain/hour/0")
+	@ApiOperationSupport(order = 1)
+	public R<String> addrainhour0() {
+		String key = "etl.rain.01751310.up.hour";
+
+		ValueOperations<String, String> ops = redisTemplate.opsForValue();
+
+		JSONArray array = new JSONArray();
+		ops.set(key, array.toJSONString());
+		return R.data("ok");
+	}
+
+	@GetMapping("/data/rain/hour")
+	@ApiOperationSupport(order = 1)
+	public R<String> addrainhour() {
+		EtlRainDataEntity etlRainDataEntity = new EtlRainDataEntity();
+		Calendar calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 12);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 13);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 13);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+//		 etlRainDataEntity= new EtlRainDataEntity();
+//		 calendar=Calendar.getInstance();
+//		calendar.set(Calendar.DAY_OF_MONTH,9);
+//		calendar.set(Calendar.HOUR_OF_DAY,14);
+//		calendar.set(Calendar.MINUTE,15);
+//		calendar.set(Calendar.SECOND,0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//		calendar.set(Calendar.MINUTE,27);
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+//		 etlRainDataEntity= new EtlRainDataEntity();
+//		 calendar=Calendar.getInstance();
+//		calendar.set(Calendar.DAY_OF_MONTH,9);
+//		calendar.set(Calendar.HOUR_OF_DAY,15);
+//		calendar.set(Calendar.MINUTE,15);
+//		calendar.set(Calendar.SECOND,0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//		calendar.set(Calendar.MINUTE,27);
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+//		 etlRainDataEntity= new EtlRainDataEntity();
+//		 calendar=Calendar.getInstance();
+//		calendar.set(Calendar.DAY_OF_MONTH,9);
+//		calendar.set(Calendar.HOUR_OF_DAY,16);
+//		calendar.set(Calendar.MINUTE,15);
+//		calendar.set(Calendar.SECOND,0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//		calendar.set(Calendar.MINUTE,27);
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 17);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 18);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+//		 etlRainDataEntity= new EtlRainDataEntity();
+//		 calendar=Calendar.getInstance();
+//		calendar.set(Calendar.DAY_OF_MONTH,9);
+//		calendar.set(Calendar.HOUR_OF_DAY,19);
+//		calendar.set(Calendar.MINUTE,15);
+//		calendar.set(Calendar.SECOND,0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//		calendar.set(Calendar.MINUTE,27);
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+//		 etlRainDataEntity= new EtlRainDataEntity();
+//		 calendar=Calendar.getInstance();
+//		calendar.set(Calendar.DAY_OF_MONTH,9);
+//		calendar.set(Calendar.HOUR_OF_DAY,20);
+//		calendar.set(Calendar.MINUTE,15);
+//		calendar.set(Calendar.SECOND,0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//		calendar.set(Calendar.MINUTE,27);
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 21);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 22);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.DAY_OF_MONTH, 9);
+		calendar.set(Calendar.HOUR_OF_DAY, 23);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 0);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 1);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 2);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 3);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 4);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 5);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 6);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 7);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+//		etlRainDataEntity= new EtlRainDataEntity();
+//		calendar=Calendar.getInstance();
+//		calendar.set(Calendar.HOUR_OF_DAY,8);
+//		calendar.set(Calendar.MINUTE,15);
+//		calendar.set(Calendar.SECOND,0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//		calendar.set(Calendar.MINUTE,27);
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 9);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 10);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 11);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 12);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 13);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+//
+//		etlRainDataEntity= new EtlRainDataEntity();
+//		calendar=Calendar.getInstance();
+//		calendar.set(Calendar.HOUR_OF_DAY,14);
+//		calendar.set(Calendar.MINUTE,15);
+//		calendar.set(Calendar.SECOND,0);
+//		etlRainDataEntity.setTm(calendar.getTime());
+//		calendar.set(Calendar.MINUTE,27);
+//		etlRainDataEntity.setFromDate(calendar.getTime());
+//		etlRainDataEntity.setRtuCode("01751310");
+//		etlRainDataEntity.setIntv(0.05);
+//		etlRainDataEntity.setDrp(1.0);
+//		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 15);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 16);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+//
+//
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 17);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 18);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 19);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+
+		etlRainDataEntity = new EtlRainDataEntity();
+		calendar = Calendar.getInstance();
+		calendar.set(Calendar.HOUR_OF_DAY, 20);
+		calendar.set(Calendar.MINUTE, 15);
+		calendar.set(Calendar.SECOND, 0);
+		etlRainDataEntity.setTm(calendar.getTime());
+		calendar.set(Calendar.MINUTE, 27);
+		etlRainDataEntity.setFromDate(calendar.getTime());
+		etlRainDataEntity.setRtuCode("01751310");
+		etlRainDataEntity.setIntv(0.05);
+		etlRainDataEntity.setDrp(1.0);
+		kafkaTemplate.send("topic-etl-rain-data", JSONObject.toJSONString(etlRainDataEntity));
+
+		return R.data("ok");
+	}
+}

+ 28 - 0
src/main/java/org/springblade/etl/dto/EtlAdCdDTO.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlAdCdDTO extends BaseEntity {
+
+
+}

+ 49 - 0
src/main/java/org/springblade/etl/dto/EtlGroundDataDTO.java

@@ -0,0 +1,49 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlGroundDataDTO extends EtlGroundDataEntity {
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date lastTime;
+
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date time;
+
+}

+ 27 - 0
src/main/java/org/springblade/etl/dto/EtlMvAttStBaseDTO.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlMvAttStBaseDTO extends BaseEntity {
+
+}

+ 49 - 0
src/main/java/org/springblade/etl/dto/EtlRainDataDTO.java

@@ -0,0 +1,49 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlRainDataDTO extends EtlRainDataEntity {
+
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date lastTime;
+
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date time;
+}

+ 48 - 0
src/main/java/org/springblade/etl/dto/EtlRiverDataDTO.java

@@ -0,0 +1,48 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springblade.etl.entity.EtlRiverDataEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlRiverDataDTO extends EtlRiverDataEntity {
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date lastTime;
+
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date time;
+}

+ 49 - 0
src/main/java/org/springblade/etl/dto/EtlRsvrDataDTO.java

@@ -0,0 +1,49 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springblade.etl.entity.EtlRsvrDataEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlRsvrDataDTO extends EtlRsvrDataEntity {
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date lastTime;
+
+	@ApiModelProperty("查询截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date time;
+
+}

+ 31 - 0
src/main/java/org/springblade/etl/dto/EtlWarningInfoDTO.java

@@ -0,0 +1,31 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.dto;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlWarningInfoDTO extends BaseEntity {
+
+}

+ 51 - 0
src/main/java/org/springblade/etl/entity/EtlAdCdEntity.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("etl_ad_cd_b")
+public class EtlAdCdEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("编码")
+	private String adcd;
+
+	@ApiModelProperty("行政区划名称")
+	private String adnm;
+
+	@ApiModelProperty("经度")
+	private String lgtd;
+
+	@ApiModelProperty("纬度")
+	private String lttd;
+
+	@ApiModelProperty("上级行政区划代码")
+	private String superioradcd;
+
+	@ApiModelProperty("政区类型")
+	private String addtype;
+
+}

+ 145 - 0
src/main/java/org/springblade/etl/entity/EtlGroundDataEntity.java

@@ -0,0 +1,145 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlGroundDataEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("GUID")
+	private String guid;
+
+	@ApiModelProperty("编码")
+	private String rtuCode;
+
+	@ApiModelProperty("降水量值截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date tm;
+
+	@ApiModelProperty("扩展关键字 ")
+	private String extKey;
+
+	/**
+	 * 垂线平均含水量
+	 */
+	@ApiModelProperty("垂线平均含水量")
+	private Double vertAverMoco;
+
+	/**
+	 * 表层含水量
+	 */
+	@ApiModelProperty("表层含水量")
+	private Double surfMoco;
+
+	/**
+	 * 10CM深度含水量
+	 */
+	@ApiModelProperty("10CM深度含水量")
+	private Double moco10cm;
+
+	/**
+	 * 20CM深度含水量
+	 */
+	@ApiModelProperty("20CM深度含水量")
+	private Double moco20cm;
+
+	/**
+	 * 30CM深度含水量
+	 */
+	@ApiModelProperty("30CM深度含水量")
+	private Double moco30cm;
+
+	/**
+	 * 40CM深度含水量
+	 */
+	@ApiModelProperty("40CM深度含水量")
+	private Double moco40cm;
+
+	/**
+	 * 50CM深度含水量
+	 */
+	@ApiModelProperty("50CM深度含水量")
+	private Double moco50cm;
+
+	/**
+	 * 60CM深度含水量
+	 */
+	@ApiModelProperty("60CM深度含水量")
+	private Double moco60cm;
+
+	/**
+	 * 80CM深度含水量
+	 */
+	@ApiModelProperty("80CM深度含水量")
+	private Double moco80cm;
+
+	/**
+	 * 100CM深度含水量
+	 */
+	@ApiModelProperty("100CM深度含水量")
+	private Double moco100cm;
+
+	@ApiModelProperty("作物种类 ")
+	private String cropType;
+
+	@ApiModelProperty("作物生长期 ")
+	private String cropGrow;
+
+	@ApiModelProperty("作物水分状态 ")
+	private String cropWat;
+
+	@ApiModelProperty("土壤含水量测法 ")
+	private String soilMocoMeth;
+
+	/**
+	 * 入库时间
+	 */
+	@ApiModelProperty("入库时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date fromDate;
+
+	/**
+	 * 终止时间
+	 */
+	@ApiModelProperty("终止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date toDate;
+}

+ 69 - 0
src/main/java/org/springblade/etl/entity/EtlMvAttStBaseEntity.java

@@ -0,0 +1,69 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("etl_mv_att_st_base")
+public class EtlMvAttStBaseEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+	@ApiModelProperty("测站编码")
+	private String stCode;
+
+	@ApiModelProperty("测站名称")
+	private String stName;
+
+	@ApiModelProperty("类型")
+	private String stType;
+
+	@ApiModelProperty("经度")
+	private Double stLong;
+
+	@ApiModelProperty("纬度")
+	private Double stLat;
+
+	@ApiModelProperty("站址")
+	private String stSite;
+
+	@ApiModelProperty("行政区划代码")
+	private String adCode;
+
+	@ApiModelProperty("行政区划名称")
+	private String adName;
+
+	@ApiModelProperty("流域代码")
+	private String rvCode;
+
+	@ApiModelProperty("流域名称")
+	private String rvName;
+
+	@ApiModelProperty("是否雨情站")
+	private Integer isRain;
+
+	@ApiModelProperty("是否河道")
+	private Integer isRiver;
+
+	@ApiModelProperty("是否水库")
+	private Integer isRes;
+
+	@ApiModelProperty("雨量站类型(QX, SH, SW)")
+	private String rainStType;
+}

+ 105 - 0
src/main/java/org/springblade/etl/entity/EtlRainDataEntity.java

@@ -0,0 +1,105 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlRainDataEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("GUID")
+	private String guid;
+
+	@ApiModelProperty("编码")
+	private String rtuCode;
+
+	@ApiModelProperty("降水量值截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date tm;
+
+	/**
+	 * 降水量
+	 */
+	@ApiModelProperty("降水量")
+	private Double drp;
+
+	/**
+	 * 累计降水量
+	 */
+	@ApiModelProperty("累计降水量")
+	private Double accDrp;
+
+	/**
+	 * 时段长
+	 */
+	@ApiModelProperty("时段长")
+	private Double intv;
+
+	/**
+	 * 降水历时,格式 HH.NN
+	 */
+	@ApiModelProperty("降水历时,格式 HH.NN")
+	private Double pdr;
+
+	/**
+	 * 日降水量,前一天8时到当前8时,24小时降水量
+	 */
+	@ApiModelProperty("日降水量,前一天8时到当前8时,24小时降水量")
+	private Double dyp;
+
+	/**
+	 * 天气状况
+	 */
+	@ApiModelProperty("天气状况")
+	private String wth;
+
+	/**
+	 * 入库时间
+	 */
+	@ApiModelProperty("入库时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date fromDate;
+
+	/**
+	 * 终止时间
+	 */
+	@ApiModelProperty("终止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date toDate;
+}

+ 130 - 0
src/main/java/org/springblade/etl/entity/EtlRiverDataEntity.java

@@ -0,0 +1,130 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlRiverDataEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("GUID")
+	private String guid;
+
+	@ApiModelProperty("编码")
+	private String rtuCode;
+
+	@ApiModelProperty("降水量值截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date tm;
+
+	/**
+	 * 河道水位
+	 */
+	@ApiModelProperty("河道水位")
+	private Double z;
+
+	/**
+	 * 流量
+	 */
+	@ApiModelProperty("流量")
+	private Double q;
+
+	/**
+	 * 断面过水面积
+	 */
+	@ApiModelProperty("断面过水面积")
+	private Double xsa;
+
+	/**
+	 * 断面平均流速
+	 */
+	@ApiModelProperty("断面平均流速")
+	private Double xsavv;
+
+	/**
+	 * 断面最大流速
+	 */
+	@ApiModelProperty("断面最大流速")
+	private Double xsnxv;
+
+	/**
+	 * 河水特征码
+	 */
+	@ApiModelProperty("河水特征码")
+	private String plwchrcd;
+
+	/**
+	 * 水势
+	 */
+	@ApiModelProperty("水势")
+	private String wptn;
+
+	/**
+	 * 测流方法
+	 */
+	@ApiModelProperty("测流方法")
+	private String msqmt;
+
+	/**
+	 * 测积方法
+	 */
+	@ApiModelProperty("测积方法")
+	private String msamt;
+
+	/**
+	 * 测速方法
+	 */
+	@ApiModelProperty("测速方法")
+	private String msvmt;
+
+	/**
+	 * 入库时间
+	 */
+	@ApiModelProperty("入库时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date fromDate;
+
+	/**
+	 * 终止时间
+	 */
+	@ApiModelProperty("终止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date toDate;
+}

+ 124 - 0
src/main/java/org/springblade/etl/entity/EtlRsvrDataEntity.java

@@ -0,0 +1,124 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class EtlRsvrDataEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty("GUID")
+	private String guid;
+
+	@ApiModelProperty("编码")
+	private String rtuCode;
+
+	@ApiModelProperty("降水量值截止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date tm;
+
+	/**
+	 * 库上水位
+	 */
+	@ApiModelProperty("库上水位")
+	private Double rz;
+
+	/**
+	 * 蓄水量
+	 */
+	@ApiModelProperty("蓄水量")
+	private Double w;
+
+	/**
+	 * 入库流量
+	 */
+	@ApiModelProperty("入库流量")
+	private Double inq;
+
+	/**
+	 * 库下水位
+	 */
+	@ApiModelProperty("库下水位")
+	private Double blrz;
+
+	/**
+	 * 出库流量
+	 */
+	@ApiModelProperty("出库流量")
+	private Double otq;
+
+	/**
+	 * 库水特征码
+	 */
+	@ApiModelProperty("库水特征码")
+	private String rwchrcd;
+
+	/**
+	 * 库水水势
+	 */
+	@ApiModelProperty("库水水势")
+	private String rwptn;
+
+	/**
+	 * 入流时段长
+	 */
+	@ApiModelProperty("入流时段长")
+	private Double inqdr;
+
+	/**
+	 * 测流方法
+	 */
+	@ApiModelProperty("测流方法")
+	private String msqmt;
+
+	/**
+	 * 入库时间
+	 */
+	@ApiModelProperty("入库时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date fromDate;
+
+	/**
+	 * 终止时间
+	 */
+	@ApiModelProperty("终止时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date toDate;
+}

+ 81 - 0
src/main/java/org/springblade/etl/entity/EtlTaskInfoEntity.java

@@ -0,0 +1,81 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2023/4/20
+ */
+package org.springblade.etl.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/***
+ * Date:2023/4/20
+ * Title: ETL模块-任务执行信息实体类
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("etl_task_info")
+public class EtlTaskInfoEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+	/**
+	 * 任务类型
+	 */
+	@ApiModelProperty("任务类型")
+	private String taskType;
+
+	/**
+	 * 执行时间
+	 */
+	@ApiModelProperty("执行时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss",
+		timezone = "GMT+8"
+	)
+	private Date taskExecuteTime;
+
+	/**
+	 * 执行时长
+	 */
+	@ApiModelProperty("执行时长")
+	private Integer taskExecuteLong;
+
+	/**
+	 * 基准测站数量
+	 */
+	@ApiModelProperty("基准测站数量")
+	private Integer rtuCount;
+
+	/**
+	 * 采集的数据数量
+	 */
+	@ApiModelProperty("采集的数据数量")
+	private Integer collectDataCount;
+
+	/**
+	 * 说明
+	 */
+	@ApiModelProperty("说明")
+	private String remark;
+}

+ 155 - 0
src/main/java/org/springblade/etl/entity/EtlWarningInfoEntity.java

@@ -0,0 +1,155 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("etl_st_warning_info")
+public class EtlWarningInfoEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+	@ApiModelProperty("id")
+	private Long id;
+
+	@ApiModelProperty("测站编码")
+	private String stcd;
+
+	@ApiModelProperty("预警名称")
+	private String warnName;
+
+	@ApiModelProperty("预警发生时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date warnTime;
+
+	@ApiModelProperty("预警等级")
+	private String warnLevelCode;
+
+	@ApiModelProperty("预警信息")
+	private String warnInfo;
+	/**
+	 * 预警状态,(-1审核未通过,0未审核,1待内部预警,2待外部预警,3待响应启动,4待响应反馈,5已启动响应)
+	 */
+	@ApiModelProperty("预警状态")
+	private Integer warnStatus;
+
+	/**
+	 * 审核状态(1关闭,2通过)
+	 */
+	@ApiModelProperty("审核状态")
+	private String reviewStatus;
+
+	/**
+	 * 站类(1雨量站2河道水情站3水库水情站,4政区.5人工)
+	 */
+	@ApiModelProperty("站类")
+	private String type;
+
+	@ApiModelProperty("备注")
+	private String remark;
+
+	/**
+	 * 雨量站预警频率(1,2,3,4,5,6)对应(30分钟,1小时,3小时,6小时,12小时,24小时)
+	 */
+	@ApiModelProperty("雨量站预警频率")
+	private Integer rainWarnRate;
+
+	/***
+	 * 预警类别(监测雨量、监测河道水位、监测水库水位、政区预警、河道洪水、泥石流、山体滑坡、工程险情、突发)
+	 */
+	@ApiModelProperty("预警类别")
+	private String warnSort;
+
+
+	@ApiModelProperty("预警定位(点,面)")
+	private String warnLocation;
+
+	@ApiModelProperty("预警政区")
+	private String warnAdcd;
+
+	@ApiModelProperty("用户政区")
+	private String userAdcd;
+
+	@ApiModelProperty("预警点经度")
+	private String warnLgtd;
+
+	@ApiModelProperty("预警点纬度")
+	private String warnLttd;
+
+	@ApiModelProperty("降雨时段")
+	private String intv;
+
+	@ApiModelProperty("降雨总量")
+	private Double drp;
+
+	@ApiModelProperty("河道水位")
+	private Double z;
+
+	@ApiModelProperty("河道流量")
+	private Double q;
+
+	@ApiModelProperty("河道水势")
+	private String wptn;
+
+	@ApiModelProperty("水库水位")
+	private Double rz;
+
+	@ApiModelProperty("水库水势")
+	private String rwptn;
+
+	@ApiModelProperty("水库流量")
+	private Double inq;
+
+	@ApiModelProperty("关联预警Id")
+	private String relWarnId;
+
+	@ApiModelProperty("原创建人")
+	private Long originalCreateUser;
+
+	@ApiModelProperty("原创建时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date originalCreateTime;
+
+	@ApiModelProperty("原表更新人")
+	private Long originalUpdateUser;
+
+	@ApiModelProperty("原表更新时间")
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
+	)
+	private Date originalUpdateTime;
+}

+ 27 - 0
src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlAdCdMapper extends BaseMapper<EtlAdCdEntity> {
+	List<EtlAdCdEntity> selectList(@Param("parentCode") String parentCode);
+}

+ 27 - 0
src/main/java/org/springblade/etl/mapper/EtlAdCdMapper.xml

@@ -0,0 +1,27 @@
+<?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="org.springblade.etl.mapper.EtlAdCdMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="adcdEntityResultMap" type="org.springblade.etl.entity.EtlAdCdEntity">
+        <result column="ADCD" property="adcd"/>
+        <result column="ADNM" property="adnm"/>
+        <result column="LGTD" property="lgtd"/>
+        <result column="LTTD" property="lttd"/>
+        <result column="SUPERIORADCD" property="superioradcd"/>
+        <result column="ADDTYPE" property="addtype"/>
+
+    </resultMap>
+
+    <select id="selectList" resultMap="adcdEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_ad_cd_b d
+        WHERE 1=1
+        <if test="parentCode!=null">
+            and d.SUPERIORADCD = #{parentCode}
+        </if>
+
+    </select>
+</mapper>

+ 28 - 0
src/main/java/org/springblade/etl/mapper/EtlGroundDataMapper.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.dto.EtlGroundDataDTO;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlGroundDataMapper extends BaseMapper<EtlGroundDataEntity> {
+	List<EtlGroundDataEntity> selectLastList(@Param("etlGroundDataDTO") EtlGroundDataDTO etlGroundDataDTO);
+}

+ 39 - 0
src/main/java/org/springblade/etl/mapper/EtlGroundDataMapper.xml

@@ -0,0 +1,39 @@
+<?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="org.springblade.etl.mapper.EtlGroundDataMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="groundDataEntityResultMap" type="org.springblade.etl.entity.EtlGroundDataEntity">
+        <result column="GUID" property="guid"/>
+        <result column="ST_CODE" property="rtuCode"/>
+        <result column="MEAS_DATE" property="tm"/>
+        <result column="VERT_AVER_MOCO" property="vtavslm"/>
+        <result column="SURF_MOCO" property="srlslm"/>
+        <result column="MOCO_10CM" property="slm10"/>
+        <result column="MOCO_20CM" property="slm20"/>
+        <result column="MOCO_30CM" property="slm30"/>
+        <result column="MOCO_40CM" property="slm40"/>
+        <result column="MOCO_50CM" property="slm50"/>
+        <result column="MOCO_60CM" property="slm60"/>
+        <result column="MOCO_80CM" property="slm80"/>
+        <result column="MOCO_10CM" property="slm100"/>
+
+    </resultMap>
+
+
+    <select id="selectLastList" resultMap="groundDataEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_att_st_somo d
+        WHERE 1=1
+        <if test="etlGroundDataDTO.rtuCode!=null">
+            and d.ST_CODE = #{etlGroundDataDTO.rtuCode}
+        </if>
+        <if test="etlGroundDataDTO.lastTime!=null">
+            and d.MEAS_DATE > #{etlGroundDataDTO.lastTime}
+        </if>
+        order  by d.MEAS_DATE desc
+        limit 1
+    </select>
+</mapper>

+ 27 - 0
src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlMvAttStBaseMapper extends BaseMapper<EtlMvAttStBaseEntity> {
+	List<EtlMvAttStBaseEntity> selectList();
+}

+ 32 - 0
src/main/java/org/springblade/etl/mapper/EtlMvAttStBaseMapper.xml

@@ -0,0 +1,32 @@
+<?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="org.springblade.etl.mapper.EtlMvAttStBaseMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="stBaseEntityResultMap" type="org.springblade.etl.entity.EtlMvAttStBaseEntity">
+        <result column="ST_CODE" property="stCode"/>
+        <result column="ST_NAME" property="stName"/>
+        <result column="AD_CODE" property="adCode"/>
+        <result column="AD_NAME" property="adName"/>
+        <result column="ST_TYPE" property="stType"/>
+        <result column="ST_LONG" property="stLong"/>
+        <result column="ST_LAT" property="stLat"/>
+        <result column="ST_SITE" property="stSite"/>
+        <result column="RV_CODE" property="rvCode"/>
+        <result column="RV_NAME" property="rvName"/>
+        <result column="IS_RAIN" property="isRain"/>
+        <result column="IS_RIVER" property="isRiver"/>
+        <result column="IS_RES" property="isRes"/>
+        <result column="RAIN_ST_TYPE" property="rainStType"/>
+    </resultMap>
+
+
+    <select id="selectList" resultMap="stBaseEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_mv_att_st_base d
+        WHERE 1=1
+        order  by d.ST_CODE
+    </select>
+</mapper>

+ 29 - 0
src/main/java/org/springblade/etl/mapper/EtlRainDataMapper.java

@@ -0,0 +1,29 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.dto.EtlRainDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlRainDataMapper extends BaseMapper<EtlRainDataEntity> {
+	List<EtlRainDataEntity> selectLastList(@Param("etlRainDataDTO") EtlRainDataDTO etlRainDataDTO);
+
+	boolean saveTestData(@Param("etlRainDataEntity") EtlRainDataEntity etlRainDataEntity);
+}

+ 37 - 0
src/main/java/org/springblade/etl/mapper/EtlRainDataMapper.xml

@@ -0,0 +1,37 @@
+<?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="org.springblade.etl.mapper.EtlRainDataMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="rainDataEntityResultMap" type="org.springblade.etl.entity.EtlRainDataEntity">
+        <result column="GUID" property="guid"/>
+        <result column="ST_CODE" property="rtuCode"/>
+        <result column="TM" property="tm"/>
+        <result column="DRP" property="drp"/>
+        <result column="INTV" property="intv"/>
+        <result column="PDR" property="pdr"/>
+        <result column="DYP" property="dyp"/>
+        <result column="WTH" property="wth"/>
+    </resultMap>
+
+
+    <select id="selectLastList" resultMap="rainDataEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_att_st_prec d
+        WHERE 1=1
+        <if test="etlRainDataDTO.rtuCode!=null">
+            and d.ST_CODE = #{etlRainDataDTO.rtuCode}
+        </if>
+        <if test="etlRainDataDTO.lastTime!=null">
+            and d.TM > #{etlRainDataDTO.lastTime}
+        </if>
+        order by d.TM desc
+        limit 1
+    </select>
+
+    <insert id="saveTestData">
+         insert  into  etl_att_st_prec(GUID,ST_CODE,TM,DRP,INTV) values (#{etlRainDataEntity.guid},#{etlRainDataEntity.rtuCode},#{etlRainDataEntity.tm},#{etlRainDataEntity.drp},#{etlRainDataEntity.intv})
+    </insert>
+</mapper>

+ 28 - 0
src/main/java/org/springblade/etl/mapper/EtlRiverDataMapper.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.dto.EtlRiverDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.entity.EtlRiverDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlRiverDataMapper extends BaseMapper<EtlRiverDataEntity> {
+	List<EtlRiverDataEntity> selectLastList(@Param("etlRiverDataDTO") EtlRiverDataDTO etlRiverDataDTO);
+}

+ 30 - 0
src/main/java/org/springblade/etl/mapper/EtlRiverDataMapper.xml

@@ -0,0 +1,30 @@
+<?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="org.springblade.etl.mapper.EtlRiverDataMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="riverDataEntityResultMap" type="org.springblade.etl.entity.EtlRiverDataEntity">
+        <result column="GUID" property="guid"/>
+        <result column="ST_CODE" property="rtuCode"/>
+        <result column="TM" property="tm"/>
+        <result column="Z" property="z"/>
+
+    </resultMap>
+
+
+    <select id="selectLastList" resultMap="riverDataEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_att_st_waco_ware d
+        WHERE 1=1
+        <if test="etlRiverDataDTO.rtuCode!=null">
+            and d.ST_CODE = #{etlRiverDataDTO.rtuCode}
+        </if>
+        <if test="etlRiverDataDTO.lastTime!=null">
+            and d.TM > #{etlRiverDataDTO.lastTime}
+        </if>
+        order by d.TM desc
+        limit 1
+    </select>
+</mapper>

+ 27 - 0
src/main/java/org/springblade/etl/mapper/EtlRsvrDataMapper.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.etl.dto.EtlRsvrDataDTO;
+import org.springblade.etl.entity.EtlRsvrDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlRsvrDataMapper extends BaseMapper<EtlRsvrDataEntity> {
+	List<EtlRsvrDataEntity> selectLastList(@Param("etlRsvrDataDTO") EtlRsvrDataDTO etlRsvrDataDTO);
+}

+ 29 - 0
src/main/java/org/springblade/etl/mapper/EtlRsvrDataMapper.xml

@@ -0,0 +1,29 @@
+<?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="org.springblade.etl.mapper.EtlRsvrDataMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="rsvrDataEntityResultMap" type="org.springblade.etl.entity.EtlRsvrDataEntity">
+        <result column="GUID" property="guid"/>
+        <result column="ST_CODE" property="rtuCode"/>
+        <result column="TM" property="tm"/>
+        <result column="RZ" property="rz"/>
+    </resultMap>
+
+
+    <select id="selectLastList" resultMap="rsvrDataEntityResultMap">
+        SELECT
+        d.*
+        FROM
+        etl_att_st_res_ware d
+        WHERE 1=1
+        <if test="etlRsvrDataDTO.rtuCode!=null">
+            and d.ST_CODE = #{etlRsvrDataDTO.rtuCode}
+        </if>
+        <if test="etlRsvrDataDTO.lastTime!=null">
+            and d.TM > #{etlRsvrDataDTO.lastTime}
+        </if>
+        order by d.TM desc
+        limit 1
+    </select>
+</mapper>

+ 24 - 0
src/main/java/org/springblade/etl/mapper/EtlTaskInfoMapper.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.etl.entity.EtlTaskInfoEntity;
+
+
+
+/***
+ * Date:2022/8/22
+ * Title:ETL模块-ETL任务执行信息映射
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlTaskInfoMapper extends BaseMapper<EtlTaskInfoEntity> {
+
+}

+ 15 - 0
src/main/java/org/springblade/etl/mapper/EtlTaskInfoMapper.xml

@@ -0,0 +1,15 @@
+<?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="org.springblade.etl.mapper.EtlTaskInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="taskInfoResultMap" type="org.springblade.etl.entity.EtlTaskInfoEntity">
+        <result column="task_type" property="taskType"/>
+        <result column="task_execute_time" property="taskExecuteTime"/>
+        <result column="task_execute_long" property="taskExecuteLong"/>
+        <result column="rtu_count" property="rtuCount"/>
+        <result column="collect_data_count" property="collectDataCount"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+</mapper>

+ 22 - 0
src/main/java/org/springblade/etl/mapper/EtlWarningInfoMapper.java

@@ -0,0 +1,22 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/24
+ */
+package org.springblade.etl.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.etl.entity.EtlWarningInfoEntity;
+
+
+/***
+ * Date:2022/8/24
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface EtlWarningInfoMapper extends BaseMapper<EtlWarningInfoEntity> {
+}

+ 67 - 0
src/main/java/org/springblade/etl/mapper/EtlWarningInfoMapper.xml

@@ -0,0 +1,67 @@
+<?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="org.springblade.etl.mapper.EtlWarningInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="etlWarningInfoEntityResultMap" type="org.springblade.etl.entity.EtlWarningInfoEntity">
+        <result column="id" property="id"/>
+        <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="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+
+        <result column="STCD" property="stcd"/>
+        <result column="WARN_NAME" property="warnName"/>
+        <result column="WARN_TIME" property="warnTime"/>
+        <result column="WARN_LEVEL_CODE" property="warnLevelCode"/>
+        <result column="WARN_INFO" property="warnInfo"/>
+        <result column="WARN_STATUS" property="warnStatus"/>
+        <result column="REVIEW_STATUS" property="reviewStatus"/>
+        <result column="TYPE" property="type"/>
+        <result column="REMARK" property="remark"/>
+        <result column="RAIN_WARN_RATE" property="rainWarnRate"/>
+        <result column="WARN_SORT" property="warnSort"/>
+        <result column="WARN_LOCATION" property="warnLocation"/>
+        <result column="WARN_ADCD" property="warnAdcd"/>
+        <result column="USER_ADCD" property="userAdcd"/>
+        <result column="WARN_LGTD" property="warnLgtd"/>
+        <result column="WARN_LTTD" property="warnLttd"/>
+        <result column="INTV" property="intv"/>
+        <result column="DRP" property="drp"/>
+        <result column="Z" property="z"/>
+        <result column="Q" property="q"/>
+        <result column="WPTN" property="wptn"/>
+        <result column="RZ" property="rz"/>
+        <result column="RWPTN" property="rwptn"/>
+        <result column="INQ" property="inq"/>
+        <result column="REL_WARN_ID" property="relWarnId"/>
+        <result column="ORIGINAL_CREATE_USER" property="originalCreateUser"/>
+        <result column="ORIGINAL_CREATE_TIME" property="originalCreateTime"/>
+        <result column="ORIGINAL_UPDATE_USER" property="originalUpdateUser"/>
+        <result column="ORIGINAL_UPDATE_TIME" property="originalUpdateTime"/>
+    </resultMap>
+
+
+
+
+    <!--<select id="selectPage" resultMap="checkOrderInfoVOResultMap">-->
+        <!--SELECT-->
+         <!--o.*,u.real_name,i.rtu_name,p.project_name,d2.dept_name AS org_name-->
+        <!--FROM-->
+        <!--rtu_failure_check_order o-->
+        <!--LEFT JOIN rtu_info i ON i.rtu_code = o.rtu_code-->
+        <!--LEFT JOIN blade_user u ON u.id = o.update_user-->
+        <!--LEFT JOIN  project_info p ON i.project_id = p.id-->
+        <!--LEFT JOIN  blade_dept d2 ON i.org_id = d2.id-->
+        <!--WHERE-->
+        <!--o.is_deleted = 0-->
+        <!--<if test="checkOrderInfoDTO.rtuCode!=null">-->
+            <!--and o.rtu_code like concat(concat('%', #{checkOrderInfoDTO.rtuCode}), '%')-->
+        <!--</if>-->
+        <!--<if test="checkOrderInfoDTO.rtuName!=null">-->
+            <!--and i.rtu_name like concat(concat('%', #{checkOrderInfoDTO.rtuName}), '%')-->
+        <!--</if>-->
+    <!--</select>-->
+</mapper>

+ 27 - 0
src/main/java/org/springblade/etl/service/IEtlAdCdService.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springblade.etl.entity.EtlWarningInfoEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlAdCdService extends BaseService<EtlAdCdEntity> {
+	List<EtlAdCdEntity> selectList(String parentCode);
+}

+ 28 - 0
src/main/java/org/springblade/etl/service/IEtlGroundDataService.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.dto.EtlGroundDataDTO;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springblade.etl.entity.EtlRainDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlGroundDataService extends BaseService<EtlGroundDataEntity> {
+
+	List<EtlGroundDataEntity> selectLastList(EtlGroundDataDTO etlGroundDataDTO);
+}

+ 26 - 0
src/main/java/org/springblade/etl/service/IEtlMvAttStBaseService.java

@@ -0,0 +1,26 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlMvAttStBaseService extends BaseService<EtlMvAttStBaseEntity> {
+	List<EtlMvAttStBaseEntity> selectList();
+}

+ 29 - 0
src/main/java/org/springblade/etl/service/IEtlRainDataService.java

@@ -0,0 +1,29 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.dto.EtlRainDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlRainDataService extends BaseService<EtlRainDataEntity> {
+
+	List<EtlRainDataEntity> selectLastList(EtlRainDataDTO etlRainDataDTO);
+
+	boolean saveTestData(EtlRainDataEntity etlRainDataEntity);
+}

+ 28 - 0
src/main/java/org/springblade/etl/service/IEtlRiverDataService.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.dto.EtlRiverDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.entity.EtlRiverDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlRiverDataService extends BaseService<EtlRiverDataEntity> {
+
+	List<EtlRiverDataEntity> selectLastList(EtlRiverDataDTO etlRiverDataDTO);
+}

+ 28 - 0
src/main/java/org/springblade/etl/service/IEtlRsvrDataService.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.dto.EtlRsvrDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.entity.EtlRsvrDataEntity;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlRsvrDataService extends BaseService<EtlRsvrDataEntity> {
+
+	List<EtlRsvrDataEntity> selectLastList(EtlRsvrDataDTO etlRsvrDataDTO);
+}

+ 24 - 0
src/main/java/org/springblade/etl/service/IEtlTaskInfoService.java

@@ -0,0 +1,24 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.entity.EtlTaskInfoEntity;
+
+
+
+/***
+ * Date:2022/9/8
+ * Title:ETL模块-ETL任务执行管理
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlTaskInfoService extends BaseService<EtlTaskInfoEntity> {
+
+}

+ 27 - 0
src/main/java/org/springblade/etl/service/IEtlWarningService.java

@@ -0,0 +1,27 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.etl.entity.EtlWarningInfoEntity;
+
+
+import java.util.Date;
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IEtlWarningService extends BaseService<EtlWarningInfoEntity> {
+
+}

+ 36 - 0
src/main/java/org/springblade/etl/service/impl/EtlAdCdServiceImpl.java

@@ -0,0 +1,36 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springblade.etl.mapper.EtlAdCdMapper;
+import org.springblade.etl.mapper.EtlGroundDataMapper;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.etl.service.IEtlGroundDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlAdCdServiceImpl extends BaseServiceImpl<EtlAdCdMapper, EtlAdCdEntity> implements IEtlAdCdService {
+
+	@Override
+	public List<EtlAdCdEntity> selectList(String parentCode) {
+		return baseMapper.selectList(parentCode);
+	}
+}

+ 37 - 0
src/main/java/org/springblade/etl/service/impl/EtlGroundDataServiceImpl.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.dto.EtlGroundDataDTO;
+import org.springblade.etl.entity.EtlGroundDataEntity;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.mapper.EtlGroundDataMapper;
+import org.springblade.etl.mapper.EtlRainDataMapper;
+import org.springblade.etl.service.IEtlGroundDataService;
+import org.springblade.etl.service.IEtlRainDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlGroundDataServiceImpl extends BaseServiceImpl<EtlGroundDataMapper, EtlGroundDataEntity> implements IEtlGroundDataService {
+
+	@Override
+	public List<EtlGroundDataEntity> selectLastList(EtlGroundDataDTO etlGroundDataDTO) {
+		return baseMapper.selectLastList(etlGroundDataDTO);
+	}
+}

+ 37 - 0
src/main/java/org/springblade/etl/service/impl/EtlMvAttStBaseServiceImpl.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.entity.EtlAdCdEntity;
+import org.springblade.etl.entity.EtlMvAttStBaseEntity;
+import org.springblade.etl.mapper.EtlAdCdMapper;
+import org.springblade.etl.mapper.EtlMvAttStBaseMapper;
+import org.springblade.etl.service.IEtlAdCdService;
+import org.springblade.etl.service.IEtlMvAttStBaseService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlMvAttStBaseServiceImpl extends BaseServiceImpl<EtlMvAttStBaseMapper, EtlMvAttStBaseEntity> implements IEtlMvAttStBaseService {
+
+
+	@Override
+	public List<EtlMvAttStBaseEntity> selectList() {
+		return this.baseMapper.selectList();
+	}
+}

+ 39 - 0
src/main/java/org/springblade/etl/service/impl/EtlRainDataServiceImpl.java

@@ -0,0 +1,39 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.dto.EtlRainDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.mapper.EtlRainDataMapper;
+import org.springblade.etl.service.IEtlRainDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlRainDataServiceImpl extends BaseServiceImpl<EtlRainDataMapper, EtlRainDataEntity> implements IEtlRainDataService {
+
+	@Override
+	public List<EtlRainDataEntity> selectLastList(EtlRainDataDTO etlRainDataDTO) {
+		return baseMapper.selectLastList(etlRainDataDTO);
+	}
+
+	@Override
+	public boolean saveTestData(EtlRainDataEntity etlRainDataEntity) {
+		return baseMapper.saveTestData(etlRainDataEntity);
+	}
+}

+ 37 - 0
src/main/java/org/springblade/etl/service/impl/EtlRiverDataServiceImpl.java

@@ -0,0 +1,37 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.dto.EtlRiverDataDTO;
+import org.springblade.etl.entity.EtlRainDataEntity;
+import org.springblade.etl.entity.EtlRiverDataEntity;
+import org.springblade.etl.mapper.EtlRainDataMapper;
+import org.springblade.etl.mapper.EtlRiverDataMapper;
+import org.springblade.etl.service.IEtlRainDataService;
+import org.springblade.etl.service.IEtlRiverDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlRiverDataServiceImpl extends BaseServiceImpl<EtlRiverDataMapper, EtlRiverDataEntity> implements IEtlRiverDataService {
+
+	@Override
+	public List<EtlRiverDataEntity> selectLastList(EtlRiverDataDTO etlRiverDataDTO) {
+		return baseMapper.selectLastList(etlRiverDataDTO);
+	}
+}

+ 34 - 0
src/main/java/org/springblade/etl/service/impl/EtlRsvrDataServiceImpl.java

@@ -0,0 +1,34 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.dto.EtlRsvrDataDTO;
+import org.springblade.etl.entity.EtlRsvrDataEntity;
+import org.springblade.etl.mapper.EtlRsvrDataMapper;
+import org.springblade.etl.service.IEtlRsvrDataService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlRsvrDataServiceImpl extends BaseServiceImpl<EtlRsvrDataMapper, EtlRsvrDataEntity> implements IEtlRsvrDataService {
+
+	@Override
+	public List<EtlRsvrDataEntity> selectLastList(EtlRsvrDataDTO etlRsvrDataDTO) {
+		return baseMapper.selectLastList(etlRsvrDataDTO);
+	}
+}

+ 28 - 0
src/main/java/org/springblade/etl/service/impl/EtlTaskInfoServiceImpl.java

@@ -0,0 +1,28 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.entity.EtlTaskInfoEntity;
+import org.springblade.etl.mapper.EtlTaskInfoMapper;
+import org.springblade.etl.service.IEtlTaskInfoService;
+import org.springframework.stereotype.Service;
+
+
+
+/***
+ * Date:2022/9/8
+ * Title:ETL模块-ETL任务执行管理
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlTaskInfoServiceImpl extends BaseServiceImpl<EtlTaskInfoMapper, EtlTaskInfoEntity> implements IEtlTaskInfoService {
+
+}

+ 29 - 0
src/main/java/org/springblade/etl/service/impl/EtlWarningServiceImpl.java

@@ -0,0 +1,29 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/9/8
+ */
+package org.springblade.etl.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.etl.entity.EtlWarningInfoEntity;
+import org.springblade.etl.mapper.EtlWarningInfoMapper;
+import org.springblade.etl.service.IEtlWarningService;
+
+import org.springframework.stereotype.Service;
+
+
+
+/***
+ * Date:2022/9/8
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class EtlWarningServiceImpl extends BaseServiceImpl<EtlWarningInfoMapper, EtlWarningInfoEntity> implements IEtlWarningService {
+
+}

+ 30 - 0
src/main/java/org/springblade/modules/baseinfo/dict/controller/BaseInfoDictController.java

@@ -0,0 +1,30 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.dict.controller;
+
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/***
+ * Date:2022/8/22
+ * Title:行政区划管理
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-business/baseinfo/dict")
+@AllArgsConstructor
+@Api(value = "业务字典", tags = "业务字典")
+public class BaseInfoDictController extends BladeController {
+
+}

+ 75 - 0
src/main/java/org/springblade/modules/baseinfo/dict/entity/DictInfoEntity.java

@@ -0,0 +1,75 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/9
+ */
+package org.springblade.modules.baseinfo.dict.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 运维单位实体
+ *
+ * @author swp
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_dict_biz")
+public class DictInfoEntity extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+	/**
+	 * 父主键
+	 */
+	@ApiModelProperty(value = "父主键")
+	private Long parentId;
+
+	/**
+	 * 字典码
+	 */
+	@ApiModelProperty(value = "字典码")
+	private String code;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 是否已封存
+	 */
+	@ApiModelProperty(value = "是否已封存")
+	private Integer isSealed;
+
+	/**
+	 * 字典值
+	 */
+	@ApiModelProperty(value = "字典值")
+	private String dictKey;
+
+	/**
+	 * 字典名称
+	 */
+	@ApiModelProperty(value = "字典名称")
+	private String dictValue;
+
+	/**
+	 * 部门全称
+	 */
+	@ApiModelProperty(value = "部门全称")
+	private String remark;
+}

+ 23 - 0
src/main/java/org/springblade/modules/baseinfo/dict/mapper/DictInfoMapper.java

@@ -0,0 +1,23 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.dict.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface DictInfoMapper extends BaseMapper<DictInfoEntity> {
+	DictInfoEntity getDict(@Param("code") String code, @Param("key") String key);
+}

+ 32 - 0
src/main/java/org/springblade/modules/baseinfo/dict/mapper/DictInfoMapper.xml

@@ -0,0 +1,32 @@
+<?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="org.springblade.modules.baseinfo.dict.mapper.DictInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="baseinfoDictResultMap" type="org.springblade.modules.baseinfo.dict.entity.DictInfoEntity">
+        <result column="parent_id" property="parentId"/>
+        <result column="code" property="code"/>
+        <result column="dict_key" property="dictKey"/>
+        <result column="dict_value" property="dictValue"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+        <result column="is_sealed" property="isSealed"/>
+    </resultMap>
+
+    <select id="getDict" resultMap="baseinfoDictResultMap">
+        SELECT
+        n.*
+        FROM
+        blade_dict_biz n
+        WHERE
+        n.is_deleted = 0
+        <if test="code!=null">
+            and n.code = #{code}
+        </if>
+        <if test="key!=null">
+            and n.dict_key = #{key}
+        </if>
+        limit 1
+
+    </select>
+</mapper>

+ 22 - 0
src/main/java/org/springblade/modules/baseinfo/dict/service/IBaseInfoDictService.java

@@ -0,0 +1,22 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.dict.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IBaseInfoDictService extends BaseService<DictInfoEntity> {
+	DictInfoEntity getDict(String code, String key);
+}

+ 30 - 0
src/main/java/org/springblade/modules/baseinfo/dict/service/impl/BaseInfoDictServiceImpl.java

@@ -0,0 +1,30 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.dict.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.baseinfo.dict.entity.DictInfoEntity;
+import org.springblade.modules.baseinfo.dict.mapper.DictInfoMapper;
+import org.springblade.modules.baseinfo.dict.service.IBaseInfoDictService;
+import org.springframework.stereotype.Service;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class BaseInfoDictServiceImpl extends BaseServiceImpl<DictInfoMapper, DictInfoEntity> implements IBaseInfoDictService {
+
+	@Override
+	public DictInfoEntity getDict(String code, String key) {
+		return this.baseMapper.getDict(code,key);
+	}
+}

+ 183 - 0
src/main/java/org/springblade/modules/baseinfo/org/controller/BaseInfoOrgController.java

@@ -0,0 +1,183 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.baseinfo.org.dto.OrgInfoDTO;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
+import org.springblade.modules.baseinfo.org.wrapper.OrgInfoWrapper;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.List;
+
+
+/***
+ * Date:2022/8/22
+ * Title: 组织机构管理
+ * Description:系统管理员管理盟市,盟市管理员管理运维单位
+ * @author swp
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-business/baseinfo/org")
+@AllArgsConstructor
+@Api(value = "运维单位管理", tags = "运维单位管理")
+public class BaseInfoOrgController extends BladeController {
+	private final IDeptService deptService;
+	private final IDeptRegionService deptRegionService;
+
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "分页")
+	public R<List<OrgInfoVO>> list() {
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+			wrapper.eq(Dept::getIsDeleted, 0);
+			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+			List<Dept> pages = deptService.list(wrapper);
+			return R.data(OrgInfoWrapper.build().listVO(pages));
+		} else {
+			return R.data(null);
+		}
+	}
+
+	/**
+	 * 多表联合查询自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "deptName", value = "机构名称", paramType = "query", dataType = "string"),
+	})
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "分页")
+	public R<IPage<OrgInfoVO>> page(@ApiIgnore Dept entity, Query query) {
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+			wrapper.eq(Dept::getIsDeleted, 0);
+			wrapper.eq(Dept::getParentId, Func.toLong(user.getDeptId()));
+			if (entity.getDeptName() != null && entity.getDeptName().length() > 0) {
+				wrapper.like(Dept::getDeptName, entity.getDeptName());
+			}
+			IPage<Dept> pages = deptService.page(Condition.getPage(query), wrapper);
+			return R.data(OrgInfoWrapper.build().pageVO(pages));
+		} else {
+			return R.data(null);
+		}
+	}
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "详情", notes = "传入 Dept")
+	public R<Dept> detail(Dept dept) {
+		Dept vo = deptService.getById(dept.getId());
+		return R.data(vo);
+	}
+
+
+	/**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增", notes = "传入 Dept")
+	@Transactional
+	public R save(@RequestBody OrgInfoDTO dept) {
+		BladeUser user = AuthUtil.getUser();
+		dept.setFullName(dept.getDeptName());
+		dept.setParentId(Func.toLong(user.getDeptId()));
+		Dept parentDept = deptService.getById(Func.toLong(user.getDeptId()));
+		dept.setAncestors(parentDept.getAncestors() + "," + parentDept.getId());
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+			dept.setDeptCategory(2);
+		} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+			dept.setDeptCategory(1);
+		}
+		if (deptService.save(dept)) {
+			DeptRegionEntity deptRegionEntity = new DeptRegionEntity();
+			deptRegionEntity.setDeptId(dept.getId());
+			if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+				deptRegionEntity.setAdcd(dept.getAdcd());
+			} else if (BusinessConstant.ROLE_ORG_ADMIN.equals(user.getRoleName())) {
+				LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+				deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, Func.toLong(user.getDeptId()));
+				DeptRegionEntity orgAdmindRegion = deptRegionService.getOne(deptRegionEntityLambdaQueryWrapper);
+				deptRegionEntity.setAdcd(orgAdmindRegion.getAdcd());
+			}
+			if (deptRegionService.save(deptRegionEntity)) {
+				return R.status(true);
+			} else {
+				return R.status(false);
+			}
+		} else {
+			return R.status(false);
+		}
+	}
+
+	/**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入 Dept")
+	public R update(@RequestBody Dept dept) {
+		return R.status(deptService.updateById(dept));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入 Dept")
+	public R submit(@RequestBody Dept dept) {
+		return R.status(deptService.saveOrUpdate(dept));
+	}
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ID数组")
+	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+		if (null == ids) {
+			return R.status(false);
+		}
+		List<Long> list = Func.toLongList(ids);
+		for (Long id : list) {
+			deptService.removeById(id);
+		}
+		return R.status(true);
+	}
+}

+ 30 - 0
src/main/java/org/springblade/modules/baseinfo/org/dto/OrgInfoDTO.java

@@ -0,0 +1,30 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2023/2/22
+ */
+package org.springblade.modules.baseinfo.org.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.system.entity.Dept;
+
+/***
+ * Date:2023/2/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrgInfoDTO extends Dept {
+	/**
+	 * 区划
+	 */
+	@ApiModelProperty(value = "区划")
+	private String adcd;
+}

+ 45 - 0
src/main/java/org/springblade/modules/baseinfo/org/entity/DeptRegionEntity.java

@@ -0,0 +1,45 @@
+/**
+ * Copyright
+ * All right reserved.
+ * 项目名称:
+ * 创建日期:2022/3/9
+ */
+package org.springblade.modules.baseinfo.org.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 机构与行政区划绑定信息实体类
+ *
+ * @author swp
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("blade_dept_region")
+public class DeptRegionEntity extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+	/**
+	 * 机构ID
+	 */
+	@ApiModelProperty(value = "机构ID")
+	private Long deptId;
+
+	/**
+	 * 行政区划编码
+	 */
+	@ApiModelProperty(value = "行政区划编码")
+	private String adcd;
+}

+ 21 - 0
src/main/java/org/springblade/modules/baseinfo/org/mapper/DeptRegionMapper.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2023/2/23
+ */
+package org.springblade.modules.baseinfo.org.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+
+/***
+ * Date:2023/2/23
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface DeptRegionMapper extends BaseMapper<DeptRegionEntity> {
+}

+ 11 - 0
src/main/java/org/springblade/modules/baseinfo/org/mapper/DeptRegionMapper.xml

@@ -0,0 +1,11 @@
+<?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="org.springblade.modules.baseinfo.org.mapper.DeptRegionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="baseinfoOrgResultMap" type="org.springblade.modules.baseinfo.org.entity.DeptRegionEntity">
+        <result column="dept_id" property="deptId"/>
+        <result column="adcd" property="adcd"/>
+    </resultMap>
+
+</mapper>

+ 21 - 0
src/main/java/org/springblade/modules/baseinfo/org/service/IDeptRegionService.java

@@ -0,0 +1,21 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2023/2/23
+ */
+package org.springblade.modules.baseinfo.org.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+
+/***
+ * Date:2023/2/23
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface IDeptRegionService extends BaseService<DeptRegionEntity> {
+}

+ 25 - 0
src/main/java/org/springblade/modules/baseinfo/org/service/impl/DeptRegionServiceImpl.java

@@ -0,0 +1,25 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2023/2/23
+ */
+package org.springblade.modules.baseinfo.org.service.impl;
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.mapper.DeptRegionMapper;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springframework.stereotype.Service;
+
+/***
+ * Date:2023/2/23
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Service
+public class DeptRegionServiceImpl  extends BaseServiceImpl<DeptRegionMapper, DeptRegionEntity> implements IDeptRegionService {
+}

+ 44 - 0
src/main/java/org/springblade/modules/baseinfo/org/vo/OrgInfoVO.java

@@ -0,0 +1,44 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.modules.system.entity.Dept;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrgInfoVO extends Dept {
+
+	/**
+	 * 机构名称
+	 */
+	@ApiModelProperty(value = "机构名称")
+	private String dictValue;
+
+	/**
+	 * 区划编码
+	 */
+	@ApiModelProperty(value = "区划编码")
+	private String adcd;
+
+
+	/**
+	 * 区划名称
+	 */
+	@ApiModelProperty(value = "区划名称")
+	private String adnm;
+}

+ 82 - 0
src/main/java/org/springblade/modules/baseinfo/org/wrapper/OrgInfoWrapper.java

@@ -0,0 +1,82 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.org.wrapper;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.modules.baseinfo.org.entity.DeptRegionEntity;
+import org.springblade.modules.baseinfo.org.service.IDeptRegionService;
+import org.springblade.modules.baseinfo.org.vo.OrgInfoVO;
+import org.springblade.modules.baseinfo.region.entity.RegionInfoEntity;
+import org.springblade.modules.baseinfo.region.service.IBaseInfoRegionService;
+import org.springblade.modules.baseinfo.region.vo.RegionInfoVO;
+import org.springblade.modules.system.entity.Dept;
+
+import java.util.Objects;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public class OrgInfoWrapper extends BaseEntityWrapper<Dept, OrgInfoVO> {
+
+	public static OrgInfoWrapper build() {
+		return new OrgInfoWrapper();
+	}
+
+	private static IBaseInfoRegionService baseInfoRegionService;
+
+	private static IBaseInfoRegionService getBaseInfoRegionService() {
+		if (baseInfoRegionService == null) {
+			baseInfoRegionService = SpringUtil.getBean(IBaseInfoRegionService.class);
+		}
+		return baseInfoRegionService;
+	}
+
+	private static IDeptRegionService deptRegionService;
+
+	private static IDeptRegionService getDeptRegionService() {
+		if (deptRegionService == null) {
+			deptRegionService = SpringUtil.getBean(IDeptRegionService.class);
+		}
+		return deptRegionService;
+	}
+
+
+	@Override
+	public OrgInfoVO entityVO(Dept entity) {
+		if(null != entity) {
+			OrgInfoVO orgInfoVO = Objects.requireNonNull(BeanUtil.copy(entity, OrgInfoVO.class));
+			orgInfoVO.setDictValue(entity.getDeptName());
+			LambdaQueryWrapper<DeptRegionEntity> deptRegionEntityLambdaQueryWrapper = Wrappers.<DeptRegionEntity>query().lambda();
+			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getIsDeleted, 0);
+			deptRegionEntityLambdaQueryWrapper.eq(DeptRegionEntity::getDeptId, entity.getId());
+			DeptRegionEntity deptRegionEntity = getDeptRegionService().getOne(deptRegionEntityLambdaQueryWrapper);
+			if (deptRegionEntity!= null){
+				LambdaQueryWrapper<RegionInfoEntity> regionInfoEntityLambdaQueryWrapper = Wrappers.<RegionInfoEntity>query().lambda();
+				regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getIsDeleted, 0);
+				regionInfoEntityLambdaQueryWrapper.eq(RegionInfoEntity::getAdcd, deptRegionEntity.getAdcd());
+				RegionInfoEntity regionInfoEntity = getBaseInfoRegionService().getOne(regionInfoEntityLambdaQueryWrapper);
+				if(null != regionInfoEntity) {
+					orgInfoVO.setAdcd(regionInfoEntity.getAdcd());
+					orgInfoVO.setAdnm(regionInfoEntity.getAdnm());
+				}
+			}
+			return orgInfoVO;
+		}
+		return null;
+	}
+
+}

+ 255 - 0
src/main/java/org/springblade/modules/baseinfo/project/controller/ProjectBaseInfoController.java

@@ -0,0 +1,255 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.project.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.constant.BusinessConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.modules.baseinfo.project.entity.ProjectInfoEntity;
+import org.springblade.modules.baseinfo.project.entity.ProjectTreeNodeEntity;
+import org.springblade.modules.baseinfo.project.service.IProjectBaseInfoService;
+import org.springblade.modules.baseinfo.project.service.IProjectWarningSettingService;
+import org.springblade.modules.baseinfo.project.vo.ProjectInfoVO;
+import org.springblade.modules.baseinfo.project.wrapper.ProjectInfoWrapper;
+import org.springblade.modules.system.entity.Dept;
+import org.springblade.modules.system.service.IDeptService;
+import org.springblade.modules.system.service.IUserService;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.LinkedList;
+import java.util.List;
+
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@RestController
+@RequestMapping("galaxy-business/project/base")
+@AllArgsConstructor
+@Api(value = "项目信息基础管理", tags = "项目信息基础管理")
+public class ProjectBaseInfoController extends BladeController {
+	private final IProjectBaseInfoService projectBaseInfoService;
+	private final IProjectWarningSettingService warningSettingService;
+	private final IDeptService deptService;
+	private final IUserService userService;
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页")
+	public R<IPage<ProjectInfoVO>> list(Query query) {
+		IPage<ProjectInfoEntity> pages = projectBaseInfoService.page(Condition.getPage(query));
+		return R.data(ProjectInfoWrapper.build().pageVO(pages));
+	}
+
+	@GetMapping("/org/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页")
+	public R<List<ProjectInfoVO>> orglist() {
+		LambdaQueryWrapper<ProjectInfoEntity> wrapper = Wrappers.<ProjectInfoEntity>query().lambda();
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+
+		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+			wrapper.eq(ProjectInfoEntity::getOrgId, user.getDeptId());
+		}
+		wrapper.eq(ProjectInfoEntity::getIsDeleted, 0);
+		List<ProjectInfoEntity> pages = projectBaseInfoService.list(wrapper);
+		return R.data(ProjectInfoWrapper.build().listVO(pages));
+	}
+
+	/**
+	 * 多表联合查询自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "projectName", value = "项目名称", paramType = "query", dataType = "string"),
+
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页")
+	public R<IPage<ProjectInfoVO>> page(@ApiIgnore  ProjectInfoEntity entity, Query query) {
+		BladeUser user = AuthUtil.getUser();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+
+		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+			entity.setOrgId(Func.toLong(user.getDeptId()));
+		}
+		IPage<ProjectInfoVO> pages = projectBaseInfoService.selectPage(entity, Condition.getPage(query));
+		return R.data(pages);
+	}
+
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入projectInfoEntity")
+	public R<ProjectInfoVO> detail(ProjectInfoEntity projectInfoEntity) {
+		ProjectInfoEntity detail = projectBaseInfoService.getOne(Condition.getQueryWrapper(projectInfoEntity));
+		return R.data(ProjectInfoWrapper.build().entityVO(detail));
+	}
+
+
+	/**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入ProjectInfoEntity")
+	public R save(@RequestBody ProjectInfoEntity projectInfoEntity) {
+		return R.status(projectBaseInfoService.save(projectInfoEntity));
+	}
+
+	/**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入ProjectInfoEntity")
+	public R update(@RequestBody ProjectInfoEntity projectInfoEntity) {
+		return R.status(projectBaseInfoService.updateById(projectInfoEntity));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入projectInfoEntity")
+	public R submit(@RequestBody ProjectInfoEntity projectInfoEntity) {
+		return R.status(projectBaseInfoService.saveOrUpdate(projectInfoEntity));
+	}
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入projectInfoEntity")
+	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+		boolean temp = projectBaseInfoService.deleteLogic(Func.toLongList(ids));
+		return R.status(temp);
+	}
+
+	/**
+	 * 项目预警配置保存或修改
+	 *
+	 * @param projectInfoEntity
+	 * @return
+	 */
+	@PostMapping("/setting/warning/submit")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "id", value = "项目ID", paramType = "query", dataType = "long"),
+		@ApiImplicitParam(name = "warnActive", value = "预警开关", paramType = "query", dataType = "int"),
+		@ApiImplicitParam(name = "delayTime", value = "延时", paramType = "query", dataType = "int")
+	})
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "项目预警配置新增或修改", notes = "传入warningSettingEntity")
+	public R warningSubmit(@ApiIgnore ProjectInfoEntity projectInfoEntity) {
+		//return R.status(warningSettingService.saveOrUpdate(warningSettingEntity));
+
+		LambdaUpdateWrapper<ProjectInfoEntity> wrapper = Wrappers.<ProjectInfoEntity>update().lambda();
+		wrapper.set(ProjectInfoEntity::getWarnActive, projectInfoEntity.getWarnActive());
+		wrapper.set(ProjectInfoEntity::getDelayTime, projectInfoEntity.getDelayTime());
+		wrapper.eq(ProjectInfoEntity::getId, projectInfoEntity.getId());
+
+		this.projectBaseInfoService.update(wrapper);
+
+		return R.success("预警设置操作成功");
+	}
+
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情")
+	public R<List<ProjectTreeNodeEntity>> projectTree() {
+		BladeUser user = AuthUtil.getUser();
+		List<ProjectTreeNodeEntity> tree = new LinkedList<>();
+		if (BusinessConstant.ROLE_SYS_ADMIN.equals(user.getRoleName())) {
+			LambdaQueryWrapper<Dept> wrapper = Wrappers.<Dept>query().lambda();
+			wrapper.eq(Dept::getParentId, 0);
+			Dept dept = this.deptService.getOne(wrapper);
+			ProjectTreeNodeEntity root = new ProjectTreeNodeEntity();
+			root.setText(dept.getDeptName());
+			root.setValue("" + dept.getId() + "-0");
+			root.setOrgId(dept.getId());
+
+			List<ProjectTreeNodeEntity> orgNode = new LinkedList<>();
+			root.setChildren(orgNode);
+			tree.add(root);
+			List<Dept> childs = this.deptService.getDeptChild(dept.getId());
+			if (null != childs && childs.size() > 0) {
+				for (Dept child : childs) {
+					ProjectTreeNodeEntity entity = new ProjectTreeNodeEntity();
+					entity.setText(child.getDeptName());
+					entity.setValue("" + child.getId() + "-0");
+					entity.setOrgId(child.getId());
+
+					List<ProjectTreeNodeEntity> projectNode = new LinkedList<>();
+					entity.setChildren(projectNode);
+					orgNode.add(entity);
+					LambdaQueryWrapper<ProjectInfoEntity> projectwrapper = Wrappers.<ProjectInfoEntity>query().lambda();
+					projectwrapper.eq(ProjectInfoEntity::getOrgId, child.getId());
+
+					List<ProjectInfoEntity> projectInfoEntities = this.projectBaseInfoService.list(projectwrapper);
+					for (ProjectInfoEntity p : projectInfoEntities) {
+						entity = new ProjectTreeNodeEntity();
+						entity.setText(p.getProjectName());
+						entity.setValue("" + child.getId() + "-" + p.getId());
+						entity.setOrgId(child.getId());
+						entity.setProjectId(p.getId());
+						projectNode.add(entity);
+					}
+				}
+			}
+
+		} else if (BusinessConstant.ROLE_COMPANY_ADMIN.equals(user.getRoleName()) || BusinessConstant.ROLE_COMPANY_SERVICE_PERSON.equals(user.getRoleName())) {
+
+			ProjectTreeNodeEntity root = new ProjectTreeNodeEntity();
+			root.setText("北京大恒");
+			root.setValue("0");
+			List<ProjectTreeNodeEntity> projectNode = new LinkedList<>();
+			root.setChildren(projectNode);
+			tree.add(root);
+
+			ProjectTreeNodeEntity entity = new ProjectTreeNodeEntity();
+			entity.setText("赤峰市");
+			entity.setValue("1");
+			projectNode.add(entity);
+
+			entity = new ProjectTreeNodeEntity();
+			entity.setText("锡盟");
+			entity.setValue("2");
+			projectNode.add(entity);
+
+		}
+
+		return R.data(tree);
+	}
+
+}

+ 111 - 0
src/main/java/org/springblade/modules/baseinfo/project/entity/ProjectInfoEntity.java

@@ -0,0 +1,111 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.project.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("project_info")
+public class ProjectInfoEntity extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+
+	/**
+	 * 项目名称
+	 */
+	@ApiModelProperty(value = "项目名称")
+	private String projectName;
+
+	/**
+	 * 机构ID
+	 */
+	@ApiModelProperty(value = "机构ID")
+	private Long orgId;
+
+	/**
+	 * 项目负责人
+	 */
+	@ApiModelProperty(value = "项目负责人")
+	private String manageName;
+
+	/**
+	 * 联系电话
+	 */
+	@ApiModelProperty(value = "联系电话")
+	private String contactPhone;
+
+	/**
+	 * 邮箱
+	 */
+	@ApiModelProperty(value = "邮箱")
+	private String mail;
+
+	/**
+	 * 规约ID
+	 */
+	@ApiModelProperty(value = "规约ID")
+	private Long agreementId;
+
+	/**
+	 * 供电方式ID
+	 */
+	@ApiModelProperty(value = "供电方式ID")
+	private Long powerTypeId;
+
+
+	/**
+	 * 备注说明
+	 */
+	@ApiModelProperty(value = "备注说明")
+	private String remark;
+
+	/**
+	 * 测站导入时间
+	 */
+	@DateTimeFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss"
+	)
+	@JsonFormat(
+		pattern = "yyyy-MM-dd HH:mm:ss",
+		timezone = "GMT+8"
+	)
+	@ApiModelProperty(value = "测站导入时间")
+	private String importTime;
+
+	/**
+	 * 预警开关
+	 */
+	@ApiModelProperty(value = "预警开关")
+	private Integer warnActive;
+
+	/**
+	 * 延时时长
+	 */
+	@ApiModelProperty(value = "延时时长")
+	private Integer delayTime;
+}

+ 65 - 0
src/main/java/org/springblade/modules/baseinfo/project/entity/ProjectTreeNodeEntity.java

@@ -0,0 +1,65 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/28
+ */
+package org.springblade.modules.baseinfo.project.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.util.List;
+
+/***
+ * Date:2022/8/28
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ProjectTreeNodeEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+	/**
+	 * 标题
+	 */
+	@ApiModelProperty("标题")
+	private String text;
+
+	/**
+	 * 值
+	 */
+	@ApiModelProperty("值")
+	private String value;
+
+	/**
+	 * 机构ID
+	 */
+	@ApiModelProperty("机构ID")
+	private Long orgId;
+
+
+	/**
+	 * 项目ID
+	 */
+	@ApiModelProperty("项目ID")
+	private Long projectId;
+
+
+	/**
+	 * 子列表
+	 */
+	@ApiModelProperty("子列表")
+	private List<ProjectTreeNodeEntity> children;
+}

+ 51 - 0
src/main/java/org/springblade/modules/baseinfo/project/entity/ProjectWarningSettingEntity.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/23
+ */
+package org.springblade.modules.baseinfo.project.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/***
+ * Date:2022/8/23
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("project_warning_setting")
+public class ProjectWarningSettingEntity extends BaseEntity {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty("租户ID")
+	private String tenantId;
+
+	/**
+	 * 项目ID
+	 */
+	@ApiModelProperty("项目ID")
+	private long projectId;
+
+	/**
+	 * 预警开关
+	 */
+	@ApiModelProperty("预警开关")
+	private int warningActive;
+
+	/**
+	 * 报文充许延时时长,单位分钟
+	 */
+	@ApiModelProperty("报文充许延时时长")
+	private int datagramDelayTime;
+}

+ 34 - 0
src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectInfoMapper.java

@@ -0,0 +1,34 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/22
+ */
+package org.springblade.modules.baseinfo.project.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.baseinfo.project.entity.ProjectInfoEntity;
+import org.springblade.modules.baseinfo.project.vo.ProjectInfoVO;
+
+
+import java.util.List;
+
+/***
+ * Date:2022/8/22
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface ProjectInfoMapper extends BaseMapper<ProjectInfoEntity> {
+	/**
+	 * 自定义分页
+	 *
+	 * @param page   分页
+	 * @return List<RtuInfoVO>
+	 */
+	List<ProjectInfoVO> selectPage(@Param("projectInfoEntity") ProjectInfoEntity projectInfoEntity, IPage page);
+}

+ 55 - 0
src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectInfoMapper.xml

@@ -0,0 +1,55 @@
+<?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="org.springblade.modules.baseinfo.project.mapper.ProjectInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="projectInfoResultMap" type="org.springblade.modules.baseinfo.project.entity.ProjectInfoEntity">
+        <result column="project_name" property="projectName"/>
+        <result column="org_id" property="orgId"/>
+        <result column="manage_name" property="manageName"/>
+        <result column="contact_phone" property="contactPhone"/>
+        <result column="mail" property="mail"/>
+        <result column="agreement_id" property="agreementId"/>
+        <result column="power_type_id" property="powerTypeId"/>
+        <result column="remark" property="remark"/>
+        <result column="import_time" property="importTime"/>
+        <result column="warn_active" property="warnActive"/>
+        <result column="delay_time" property="delayTime"/>
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="projectInfoVOResultMap" type="org.springblade.modules.baseinfo.project.vo.ProjectInfoVO">
+
+        <result column="project_name" property="projectName"/>
+        <result column="org_id" property="orgId"/>
+        <result column="dept_name" property="orgName"/>
+        <result column="manage_name" property="manageName"/>
+        <result column="contact_phone" property="contactPhone"/>
+        <result column="mail" property="mail"/>
+        <result column="agreement_id" property="agreementId"/>
+        <result column="power_type_id" property="powerTypeId"/>
+        <result column="remark" property="remark"/>
+        <result column="import_time" property="importTime"/>
+        <result column="warn_active" property="warnActive"/>
+        <result column="delay_time" property="delayTime"/>
+    </resultMap>
+
+
+    <select id="selectPage" resultMap="projectInfoVOResultMap">
+        SELECT
+        n.*
+        ,d.dept_name
+        FROM
+        project_info n
+        LEFT JOIN blade_dept d ON d.id = n.org_id
+        WHERE
+        n.is_deleted = 0
+        <if test="projectInfoEntity.projectName!=null">
+            and n.project_name like concat(concat('%', #{projectInfoEntity.projectName}), '%')
+        </if>
+        <if test="projectInfoEntity.orgId!=null">
+            and n.org_id = #{projectInfoEntity.orgId}
+        </if>
+
+    </select>
+</mapper>

+ 22 - 0
src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectWarningSettingMapper.java

@@ -0,0 +1,22 @@
+/**
+ * Copyright 2019 DH
+ * All right reserved.
+ * 项目名称: 大恒泰山系统
+ * 创建日期:2022/8/23
+ */
+package org.springblade.modules.baseinfo.project.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.modules.baseinfo.project.entity.ProjectWarningSettingEntity;
+
+/***
+ * Date:2022/8/23
+ * Title:文件所属模块(必须填写)
+ * Description:对本文件的详细描述,原则上不能少于30字
+ * @author dylan
+ * @version 1.0
+ * Remark:认为有必要的其他信息
+ */
+public interface ProjectWarningSettingMapper extends BaseMapper<ProjectWarningSettingEntity> {
+}

+ 15 - 0
src/main/java/org/springblade/modules/baseinfo/project/mapper/ProjectWarningSettingMapper.xml

@@ -0,0 +1,15 @@
+<?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="org.springblade.modules.baseinfo.project.mapper.ProjectWarningSettingMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="projectInfoResultMap" type="org.springblade.modules.baseinfo.project.entity.ProjectWarningSettingEntity">
+
+        <result column="project_id" property="projectId"/>
+        <result column="warning_active" property="warningActive"/>
+        <result column="datagram_delay_time" property="datagramDelayTime"/>
+
+    </resultMap>
+
+
+</mapper>

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini