diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 00000000..f6d4ca1d
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,184 @@
+version: '3.8'
+
+services:
+ # ==================== 基础设施 ====================
+ postgres:
+ image: postgis/postgis:16-3.4
+ container_name: wm-postgres
+ environment:
+ POSTGRES_DB: water_management
+ POSTGRES_USER: water
+ POSTGRES_PASSWORD: water123
+ ports:
+ - "5432:5432"
+ volumes:
+ - pgdata:/var/lib/postgresql/data
+ healthcheck:
+ test: ["CMD-SHELL", "pg_isready -U water"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ tdengine:
+ image: tdengine/tdengine:3.3.3.0
+ container_name: wm-tdengine
+ ports:
+ - "6030:6030"
+ - "6041:6041"
+ - "6043:6043"
+ environment:
+ TAOS_FQDN: tdengine
+ volumes:
+ - tddata:/var/lib/taos
+ healthcheck:
+ test: ["CMD", "taos", "-s", "show databases"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ redis:
+ image: redis:7-alpine
+ container_name: wm-redis
+ ports:
+ - "6379:6379"
+ volumes:
+ - redisdata:/data
+ healthcheck:
+ test: ["CMD", "redis-cli", "ping"]
+ interval: 10s
+ timeout: 3s
+ retries: 5
+
+ # ==================== 消息队列 ====================
+ kafka:
+ image: bitnami/kafka:3.8
+ container_name: wm-kafka
+ ports:
+ - "9092:9092"
+ environment:
+ KAFKA_CFG_NODE_ID: 0
+ KAFKA_CFG_PROCESS_ROLES: controller,broker
+ KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 0@kafka:9093
+ KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
+ KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://${KAFKA_ADVERTISED:-localhost}:9092
+ KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
+ KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
+ KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: "true"
+ volumes:
+ - kafkadata:/bitnami/kafka
+ healthcheck:
+ test: ["CMD-SHELL", "kafka-topics.sh --bootstrap-server localhost:9092 --list"]
+ interval: 15s
+ timeout: 10s
+ retries: 5
+
+ # ==================== 物联网 MQTT ====================
+ emqx:
+ image: emqx/emqx:5.7.2
+ container_name: wm-emqx
+ ports:
+ - "1883:1883"
+ - "8083:8083"
+ - "18083:18083"
+ environment:
+ EMQX_DASHBOARD__DEFAULT_USERNAME: admin
+ EMQX_DASHBOARD__DEFAULT_PASSWORD: public
+ volumes:
+ - emqxdata:/opt/emqx/data
+ healthcheck:
+ test: ["CMD", "emqx", "ping"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ # ==================== 服务注册/配置 ====================
+ nacos:
+ image: nacos/nacos-server:v2.3.2
+ container_name: wm-nacos
+ environment:
+ MODE: standalone
+ PREFER_HOST_MODE: hostname
+ ports:
+ - "8848:8848"
+ - "9848:9848"
+ volumes:
+ - nacosdata:/home/nacos/data
+ healthcheck:
+ test: ["CMD-SHELL", "curl -s http://localhost:8848/nacos/v1/console/health/readiness"]
+ interval: 15s
+ timeout: 5s
+ retries: 5
+
+ # ==================== 搜索引擎 ====================
+ elasticsearch:
+ image: elasticsearch:8.15.0
+ container_name: wm-es
+ environment:
+ discovery.type: single-node
+ xpack.security.enabled: "false"
+ "ES_JAVA_OPTS": "-Xms512m -Xmx512m"
+ ports:
+ - "9200:9200"
+ volumes:
+ - esdata:/usr/share/elasticsearch/data
+
+ kibana:
+ image: kibana:8.15.0
+ container_name: wm-kibana
+ ports:
+ - "5601:5601"
+ environment:
+ ELASTICSEARCH_HOSTS: http://elasticsearch:9200
+ depends_on:
+ - elasticsearch
+
+ # ==================== 对象存储 ====================
+ minio:
+ image: minio/minio:latest
+ container_name: wm-minio
+ ports:
+ - "9000:9000"
+ - "9001:9001"
+ environment:
+ MINIO_ROOT_USER: minioadmin
+ MINIO_ROOT_PASSWORD: minioadmin
+ volumes:
+ - miniodata:/data
+ command: server /data --console-address ":9001"
+ healthcheck:
+ test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ # ==================== GIS 地图服务 ====================
+ geoserver:
+ image: docker.osgeo.org/geoserver:2.25.2
+ container_name: wm-geoserver
+ ports:
+ - "8081:8080"
+ environment:
+ INSTALL_EXTENSIONS: "true"
+ STABLE_EXTENSIONS: "wps,csw"
+ GEOSERVER_ADMIN_USER: admin
+ GEOSERVER_ADMIN_PASSWORD: geoserver
+ volumes:
+ - geoserverdata:/opt/geoserver_data
+ profiles:
+ - gis
+ healthcheck:
+ test: ["CMD-SHELL", "curl -s http://localhost:8080/geoserver/web/"]
+ interval: 20s
+ timeout: 10s
+ retries: 3
+
+volumes:
+ pgdata:
+ tddata:
+ redisdata:
+ kafkadata:
+ emqxdata:
+ nacosdata:
+ esdata:
+ miniodata:
+ geoserverdata:
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..abebbd81
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,121 @@
+
+
+ 4.0.0
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.3.5
+
+
+
+ com.water
+ wm-parent
+ 1.0.0-SNAPSHOT
+ pom
+ 智慧水务管理系统
+ 精河县供水工程综合管理平台
+
+
+ 17
+ 2023.0.3
+ 2023.0.1.0
+ 3.5.7
+ 1.39.0
+ 5.8.29
+ 4.5.0
+ 3.3.4
+ 2023.1.0
+ 8.5.10
+
+
+
+ wm-common
+ wm-gateway
+ wm-base
+ wm-iot
+ wm-data-engine
+ wm-bpm
+ wm-production
+ wm-revenue
+ wm-patrol
+ wm-bi
+ wm-notify
+ wm-job
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-dependencies
+ ${spring-cloud-alibaba.version}
+ pom
+ import
+
+
+ com.baomidou
+ mybatis-plus-spring-boot3-starter
+ ${mybatis-plus.version}
+
+
+ cn.dev33
+ sa-token-spring-boot3-starter
+ ${sa-token.version}
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+ com.github.xiaoymin
+ knife4j-openapi3-jakarta-spring-boot-starter
+ ${knife4j.version}
+
+
+ com.alibaba
+ easyexcel
+ ${easyexcel.version}
+
+
+ net.postgis
+ postgis-jdbc
+ ${postgis.version}
+
+
+ io.minio
+ minio
+ ${minio.version}
+
+
+ com.water
+ wm-common
+ ${project.version}
+
+
+
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
diff --git a/wm-base/pom.xml b/wm-base/pom.xml
new file mode 100644
index 00000000..aa839ba9
--- /dev/null
+++ b/wm-base/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-base
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.baomidoumybatis-plus-spring-boot3-starter
+ cn.dev33sa-token-spring-boot3-starter
+ org.postgresqlpostgresql
+
+
\ No newline at end of file
diff --git a/wm-base/src/main/java/com/water/base/BaseApplication.java b/wm-base/src/main/java/com/water/base/BaseApplication.java
new file mode 100644
index 00000000..cdb6dc1a
--- /dev/null
+++ b/wm-base/src/main/java/com/water/base/BaseApplication.java
@@ -0,0 +1,11 @@
+package com.water.base;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class BaseApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(BaseApplication.class, args);
+ }
+}
diff --git a/wm-base/src/main/resources/application.yml b/wm-base/src/main/resources/application.yml
new file mode 100644
index 00000000..cbafb52b
--- /dev/null
+++ b/wm-base/src/main/resources/application.yml
@@ -0,0 +1,31 @@
+server:
+ port: 8081
+
+spring:
+ application:
+ name: wm-base
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ driver-class-name: org.postgresql.Driver
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+sa-token:
+ token-name: Authorization
+ timeout: 86400
+ is-concurrent: false
+ is-share: false
+ token-style: uuid
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
+ global-config:
+ db-config:
+ id-type: auto
+ logic-delete-field: deleted
+ logic-delete-value: 1
+ logic-not-delete-value: 0
diff --git a/wm-bi/pom.xml b/wm-bi/pom.xml
new file mode 100644
index 00000000..87843b69
--- /dev/null
+++ b/wm-bi/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-bi
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.baomidoumybatis-plus-spring-boot3-starter
+ cn.dev33sa-token-spring-boot3-starter
+ org.postgresqlpostgresql
+
+
\ No newline at end of file
diff --git a/wm-bi/src/main/java/com/water/bi/BiApplication.java b/wm-bi/src/main/java/com/water/bi/BiApplication.java
new file mode 100644
index 00000000..117dd0a9
--- /dev/null
+++ b/wm-bi/src/main/java/com/water/bi/BiApplication.java
@@ -0,0 +1,11 @@
+package com.water.bi;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class BiApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(BiApplication.class, args);
+ }
+}
diff --git a/wm-bi/src/main/resources/application.yml b/wm-bi/src/main/resources/application.yml
new file mode 100644
index 00000000..6dc8bd21
--- /dev/null
+++ b/wm-bi/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8088
+
+spring:
+ application:
+ name: wm-bi
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
diff --git a/wm-bpm/pom.xml b/wm-bpm/pom.xml
new file mode 100644
index 00000000..1edcbfb4
--- /dev/null
+++ b/wm-bpm/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-bpm
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.baomidoumybatis-plus-spring-boot3-starter
+ cn.dev33sa-token-spring-boot3-starter
+ org.postgresqlpostgresql
+
+
\ No newline at end of file
diff --git a/wm-bpm/src/main/java/com/water/bpm/BpmApplication.java b/wm-bpm/src/main/java/com/water/bpm/BpmApplication.java
new file mode 100644
index 00000000..faadc406
--- /dev/null
+++ b/wm-bpm/src/main/java/com/water/bpm/BpmApplication.java
@@ -0,0 +1,11 @@
+package com.water.bpm;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class BpmApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(BpmApplication.class, args);
+ }
+}
diff --git a/wm-bpm/src/main/resources/application.yml b/wm-bpm/src/main/resources/application.yml
new file mode 100644
index 00000000..15f90edf
--- /dev/null
+++ b/wm-bpm/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8084
+
+spring:
+ application:
+ name: wm-bpm
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
diff --git a/wm-common/pom.xml b/wm-common/pom.xml
new file mode 100644
index 00000000..b9bd32ec
--- /dev/null
+++ b/wm-common/pom.xml
@@ -0,0 +1,15 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-common
+
+ org.springframework.bootspring-boot-starter-web
+ com.baomidoumybatis-plus-spring-boot3-starter
+ com.github.xiaoyminknife4j-openapi3-jakarta-spring-boot-starter
+ cn.hutoolhutool-all
+ com.alibabaeasyexcel
+
+
\ No newline at end of file
diff --git a/wm-common/src/main/java/com/water/common/core/exception/BusinessException.java b/wm-common/src/main/java/com/water/common/core/exception/BusinessException.java
new file mode 100644
index 00000000..e9de38b9
--- /dev/null
+++ b/wm-common/src/main/java/com/water/common/core/exception/BusinessException.java
@@ -0,0 +1,10 @@
+package com.water.common.core.exception;
+
+import lombok.Getter;
+
+@Getter
+public class BusinessException extends RuntimeException {
+ private final int code;
+ public BusinessException(int code, String message) { super(message); this.code = code; }
+ public BusinessException(String message) { this(400, message); }
+}
diff --git a/wm-common/src/main/java/com/water/common/core/exception/GlobalExceptionHandler.java b/wm-common/src/main/java/com/water/common/core/exception/GlobalExceptionHandler.java
new file mode 100644
index 00000000..bb33aa18
--- /dev/null
+++ b/wm-common/src/main/java/com/water/common/core/exception/GlobalExceptionHandler.java
@@ -0,0 +1,24 @@
+package com.water.common.core.exception;
+
+import com.water.common.core.result.R;
+import jakarta.servlet.http.HttpServletRequest;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+@Slf4j
+@RestControllerAdvice
+public class GlobalExceptionHandler {
+
+ @ExceptionHandler(BusinessException.class)
+ public R handleBusiness(BusinessException e, HttpServletRequest request) {
+ log.warn("Business exception: {} - {}", e.getCode(), e.getMessage());
+ return R.fail(e.getCode(), e.getMessage());
+ }
+
+ @ExceptionHandler(Exception.class)
+ public R handleException(Exception e, HttpServletRequest request) {
+ log.error("System exception: {}", e.getMessage(), e);
+ return R.fail(500, "系统内部错误");
+ }
+}
diff --git a/wm-common/src/main/java/com/water/common/core/result/R.java b/wm-common/src/main/java/com/water/common/core/result/R.java
new file mode 100644
index 00000000..d258e89b
--- /dev/null
+++ b/wm-common/src/main/java/com/water/common/core/result/R.java
@@ -0,0 +1,36 @@
+package com.water.common.core.result;
+
+import lombok.Data;
+import java.io.Serializable;
+
+@Data
+public class R implements Serializable {
+
+ private int code;
+ private String message;
+ private T data;
+ private long timestamp = System.currentTimeMillis();
+
+ public static R ok() {
+ return ok(null);
+ }
+
+ public static R ok(T data) {
+ R r = new R<>();
+ r.code = 200;
+ r.message = "success";
+ r.data = data;
+ return r;
+ }
+
+ public static R fail(int code, String message) {
+ R r = new R<>();
+ r.code = code;
+ r.message = message;
+ return r;
+ }
+
+ public static R fail(String message) {
+ return fail(500, message);
+ }
+}
diff --git a/wm-data-engine/pom.xml b/wm-data-engine/pom.xml
new file mode 100644
index 00000000..d56746cb
--- /dev/null
+++ b/wm-data-engine/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-data-engine
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ org.springframework.kafkaspring-kafka
+ org.springframework.bootspring-boot-starter-data-redis
+ org.postgresqlpostgresql
+ net.postgispostgis-jdbc
+
+
\ No newline at end of file
diff --git a/wm-data-engine/src/main/java/com/water/data_engine/DataEngineApplication.java b/wm-data-engine/src/main/java/com/water/data_engine/DataEngineApplication.java
new file mode 100644
index 00000000..f610a15f
--- /dev/null
+++ b/wm-data-engine/src/main/java/com/water/data_engine/DataEngineApplication.java
@@ -0,0 +1,11 @@
+package com.water.data_engine;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class DataEngineApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(DataEngineApplication.class, args);
+ }
+}
diff --git a/wm-data-engine/src/main/resources/application.yml b/wm-data-engine/src/main/resources/application.yml
new file mode 100644
index 00000000..26f88b2b
--- /dev/null
+++ b/wm-data-engine/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8083
+
+spring:
+ application:
+ name: wm-data-engine
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
diff --git a/wm-gateway/pom.xml b/wm-gateway/pom.xml
new file mode 100644
index 00000000..74280062
--- /dev/null
+++ b/wm-gateway/pom.xml
@@ -0,0 +1,14 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-gateway
+
+ org.springframework.cloudspring-cloud-starter-gateway
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-config
+ org.springframework.cloudspring-cloud-starter-loadbalancer
+
+
\ No newline at end of file
diff --git a/wm-gateway/src/main/java/com/water/gateway/GatewayApplication.java b/wm-gateway/src/main/java/com/water/gateway/GatewayApplication.java
new file mode 100644
index 00000000..96dfb3a1
--- /dev/null
+++ b/wm-gateway/src/main/java/com/water/gateway/GatewayApplication.java
@@ -0,0 +1,13 @@
+package com.water.gateway;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+@SpringBootApplication
+@EnableDiscoveryClient
+public class GatewayApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(GatewayApplication.class, args);
+ }
+}
diff --git a/wm-gateway/src/main/resources/application.yml b/wm-gateway/src/main/resources/application.yml
new file mode 100644
index 00000000..177df761
--- /dev/null
+++ b/wm-gateway/src/main/resources/application.yml
@@ -0,0 +1,54 @@
+server:
+ port: 8080
+
+spring:
+ application:
+ name: wm-gateway
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+ config:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+ gateway:
+ discovery:
+ locator:
+ enabled: true
+ lower-case-service-id: true
+ routes:
+ - id: wm-base
+ uri: lb://wm-base
+ predicates:
+ - Path=/api/base/**
+ filters:
+ - StripPrefix=1
+ - id: wm-iot
+ uri: lb://wm-iot
+ predicates:
+ - Path=/api/iot/**
+ filters:
+ - StripPrefix=1
+ - id: wm-production
+ uri: lb://wm-production
+ predicates:
+ - Path=/api/production/**
+ filters:
+ - StripPrefix=1
+ - id: wm-revenue
+ uri: lb://wm-revenue
+ predicates:
+ - Path=/api/revenue/**
+ filters:
+ - StripPrefix=1
+ - id: wm-patrol
+ uri: lb://wm-patrol
+ predicates:
+ - Path=/api/patrol/**
+ filters:
+ - StripPrefix=1
+ - id: wm-bi
+ uri: lb://wm-bi
+ predicates:
+ - Path=/api/bi/**
+ filters:
+ - StripPrefix=1
diff --git a/wm-iot/pom.xml b/wm-iot/pom.xml
new file mode 100644
index 00000000..6ebe218a
--- /dev/null
+++ b/wm-iot/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-iot
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ org.springframework.kafkaspring-kafka
+ org.springframework.bootspring-boot-starter-data-redis
+ org.postgresqlpostgresql
+ net.postgispostgis-jdbc
+
+
\ No newline at end of file
diff --git a/wm-iot/src/main/java/com/water/iot/IotApplication.java b/wm-iot/src/main/java/com/water/iot/IotApplication.java
new file mode 100644
index 00000000..cb2b42ba
--- /dev/null
+++ b/wm-iot/src/main/java/com/water/iot/IotApplication.java
@@ -0,0 +1,11 @@
+package com.water.iot;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class IotApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(IotApplication.class, args);
+ }
+}
diff --git a/wm-iot/src/main/resources/application.yml b/wm-iot/src/main/resources/application.yml
new file mode 100644
index 00000000..3af351be
--- /dev/null
+++ b/wm-iot/src/main/resources/application.yml
@@ -0,0 +1,22 @@
+server:
+ port: 8082
+
+spring:
+ application:
+ name: wm-iot
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ data:
+ redis:
+ host: ${REDIS_HOST:127.0.0.1}
+ port: 6379
+ kafka:
+ bootstrap-servers: ${KAFKA_HOST:127.0.0.1}:9092
+ consumer:
+ group-id: wm-iot-consumer
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
diff --git a/wm-job/pom.xml b/wm-job/pom.xml
new file mode 100644
index 00000000..9cdf37fb
--- /dev/null
+++ b/wm-job/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-job
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.baomidoumybatis-plus-spring-boot3-starter
+ cn.dev33sa-token-spring-boot3-starter
+ org.postgresqlpostgresql
+
+
\ No newline at end of file
diff --git a/wm-job/src/main/java/com/water/job/JobApplication.java b/wm-job/src/main/java/com/water/job/JobApplication.java
new file mode 100644
index 00000000..f885dcb0
--- /dev/null
+++ b/wm-job/src/main/java/com/water/job/JobApplication.java
@@ -0,0 +1,11 @@
+package com.water.job;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class JobApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(JobApplication.class, args);
+ }
+}
diff --git a/wm-job/src/main/resources/application.yml b/wm-job/src/main/resources/application.yml
new file mode 100644
index 00000000..eca83c64
--- /dev/null
+++ b/wm-job/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8090
+
+spring:
+ application:
+ name: wm-job
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
diff --git a/wm-notify/pom.xml b/wm-notify/pom.xml
new file mode 100644
index 00000000..d151d2ef
--- /dev/null
+++ b/wm-notify/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-notify
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ org.springframework.kafkaspring-kafka
+ org.springframework.bootspring-boot-starter-data-redis
+ org.postgresqlpostgresql
+ net.postgispostgis-jdbc
+
+
\ No newline at end of file
diff --git a/wm-notify/src/main/java/com/water/notify/NotifyApplication.java b/wm-notify/src/main/java/com/water/notify/NotifyApplication.java
new file mode 100644
index 00000000..214f9fc7
--- /dev/null
+++ b/wm-notify/src/main/java/com/water/notify/NotifyApplication.java
@@ -0,0 +1,11 @@
+package com.water.notify;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class NotifyApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(NotifyApplication.class, args);
+ }
+}
diff --git a/wm-notify/src/main/resources/application.yml b/wm-notify/src/main/resources/application.yml
new file mode 100644
index 00000000..375aedff
--- /dev/null
+++ b/wm-notify/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8089
+
+spring:
+ application:
+ name: wm-notify
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
diff --git a/wm-patrol/pom.xml b/wm-patrol/pom.xml
new file mode 100644
index 00000000..ee1cfb1c
--- /dev/null
+++ b/wm-patrol/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-patrol
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.baomidoumybatis-plus-spring-boot3-starter
+ cn.dev33sa-token-spring-boot3-starter
+ org.postgresqlpostgresql
+
+
\ No newline at end of file
diff --git a/wm-patrol/src/main/java/com/water/patrol/PatrolApplication.java b/wm-patrol/src/main/java/com/water/patrol/PatrolApplication.java
new file mode 100644
index 00000000..384ac273
--- /dev/null
+++ b/wm-patrol/src/main/java/com/water/patrol/PatrolApplication.java
@@ -0,0 +1,11 @@
+package com.water.patrol;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class PatrolApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(PatrolApplication.class, args);
+ }
+}
diff --git a/wm-patrol/src/main/resources/application.yml b/wm-patrol/src/main/resources/application.yml
new file mode 100644
index 00000000..343996a7
--- /dev/null
+++ b/wm-patrol/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8087
+
+spring:
+ application:
+ name: wm-patrol
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
diff --git a/wm-production/pom.xml b/wm-production/pom.xml
new file mode 100644
index 00000000..7c7b09d1
--- /dev/null
+++ b/wm-production/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-production
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.baomidoumybatis-plus-spring-boot3-starter
+ cn.dev33sa-token-spring-boot3-starter
+ org.postgresqlpostgresql
+
+
\ No newline at end of file
diff --git a/wm-production/src/main/java/com/water/production/ProductionApplication.java b/wm-production/src/main/java/com/water/production/ProductionApplication.java
new file mode 100644
index 00000000..04057ac3
--- /dev/null
+++ b/wm-production/src/main/java/com/water/production/ProductionApplication.java
@@ -0,0 +1,11 @@
+package com.water.production;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ProductionApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(ProductionApplication.class, args);
+ }
+}
diff --git a/wm-production/src/main/resources/application.yml b/wm-production/src/main/resources/application.yml
new file mode 100644
index 00000000..bc60a6d9
--- /dev/null
+++ b/wm-production/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8085
+
+spring:
+ application:
+ name: wm-production
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml
diff --git a/wm-revenue/pom.xml b/wm-revenue/pom.xml
new file mode 100644
index 00000000..134367c3
--- /dev/null
+++ b/wm-revenue/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+ com.waterwm-parent1.0.0-SNAPSHOT
+ wm-revenue
+
+ com.waterwm-common
+ org.springframework.bootspring-boot-starter-web
+ com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
+ com.baomidoumybatis-plus-spring-boot3-starter
+ cn.dev33sa-token-spring-boot3-starter
+ org.postgresqlpostgresql
+
+
\ No newline at end of file
diff --git a/wm-revenue/src/main/java/com/water/revenue/RevenueApplication.java b/wm-revenue/src/main/java/com/water/revenue/RevenueApplication.java
new file mode 100644
index 00000000..18b19909
--- /dev/null
+++ b/wm-revenue/src/main/java/com/water/revenue/RevenueApplication.java
@@ -0,0 +1,11 @@
+package com.water.revenue;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class RevenueApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(RevenueApplication.class, args);
+ }
+}
diff --git a/wm-revenue/src/main/resources/application.yml b/wm-revenue/src/main/resources/application.yml
new file mode 100644
index 00000000..e85cbe84
--- /dev/null
+++ b/wm-revenue/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8086
+
+spring:
+ application:
+ name: wm-revenue
+ datasource:
+ url: jdbc:postgresql://${PG_HOST:127.0.0.1}:5432/water_management
+ username: ${PG_USER:water}
+ password: ${PG_PASS:water123}
+ cloud:
+ nacos:
+ discovery:
+ server-addr: ${NACOS_HOST:127.0.0.1}:8848
+
+mybatis-plus:
+ mapper-locations: classpath*:/mapper/**/*.xml