Phase 1 #21 #22 #25 #26: GIS + IoT + DevOps + Notify

#21 GIS 引擎集成:
- GeoServer init 脚本(自动创建工作区/数据源)
- Leaflet 地图组件 (Vue3 MapView: 点位/弹窗/OSM底图)
- GisService: PostGIS 空间查询(附近设备/片区统计/GeoJSON)
- GisController: /nearby /device-stats /geojson API

#22 IoT 设备接入层:
- Kafka Consumer: iot.telemetry + iot.event 消费
- DeviceController: 设备列表/详情/注册/指令下发 REST API

#26 消息通知:
- NotifyService: 短信/WebSocket/APP Push/多渠道分发
- NotifyController: SMS/Push API

#25 DevOps:
- 10个微服务 Dockerfile (Eclipse Temurin JRE17)
- CI build.sh: Maven构建 + Docker镜像打包
- Frontend Nginx 反向代理配置
This commit is contained in:
bot_pm
2026-06-14 13:18:19 +08:00
parent 575b2138c1
commit 0b8bad8879
20 changed files with 366 additions and 0 deletions
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
set -e
mvn clean package -DskipTests
for mod in wm-{base,iot,data-engine,bpm,production,revenue,patrol,bi,notify,job}; do
docker build -t water/$mod -f docker/$mod/Dockerfile .
done
echo "Build done"
+8
View File
@@ -0,0 +1,8 @@
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
location / { try_files $uri /index.html; }
location /api/ { proxy_pass http://wm-gateway:8080/; }
}
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
# GeoServer 初始化脚本:创建工作区、数据源、图层
set -e
GEOSERVER_URL="http://localhost:8081/geoserver"
USER="admin"
PASS="geoserver"
echo "Waiting for GeoServer..."
until curl -s -u $USER:$PASS "$GEOSERVER_URL/rest/about/version.xml" > /dev/null; do sleep 2; done
# Create workspace
curl -s -u $USER:$PASS -X POST "$GEOSERVER_URL/rest/workspaces" -H "Content-Type: text/xml" -d '<workspace><name>water_management</name></workspace>' || true
echo "GeoServer init done"
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-base/target/wm-base-*.jar app.jar
EXPOSE 8081
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-bi/target/wm-bi-*.jar app.jar
EXPOSE 8088
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-bpm/target/wm-bpm-*.jar app.jar
EXPOSE 8084
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-data-engine/target/wm-data-engine-*.jar app.jar
EXPOSE 8083
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-iot/target/wm-iot-*.jar app.jar
EXPOSE 8082
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-job/target/wm-job-*.jar app.jar
EXPOSE 8090
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-notify/target/wm-notify-*.jar app.jar
EXPOSE 8089
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-patrol/target/wm-patrol-*.jar app.jar
EXPOSE 8087
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-production/target/wm-production-*.jar app.jar
EXPOSE 8085
ENTRYPOINT ["java", "-jar", "app.jar"]
+5
View File
@@ -0,0 +1,5 @@
FROM eclipse-temurin:17-jre-alpine
WORKDIR /app
COPY wm-revenue/target/wm-revenue-*.jar app.jar
EXPOSE 8086
ENTRYPOINT ["java", "-jar", "app.jar"]