5.6 KiB
5.6 KiB
系统设计说明书实现映射
1. 架构落实情况
| 设计说明书要求 | 当前实现位置 |
|---|---|
| Java Spring Boot 业务平台 | platform/backend |
| Python FastAPI AI 推理服务 | ai-services/vision-inference |
| Python FastAPI 点云/TIF 分析服务 | ai-services/pointcloud-analysis |
| PostgreSQL + PostGIS | infra/docker-compose.yml、platform/backend/src/main/resources/db/migration |
| Redis | infra/docker-compose.yml |
| Kafka | infra/docker-compose.yml、后端 KafkaTemplate 事件发布 |
| MinIO/S3 | infra/docker-compose.yml、后端 MinIO 配置 |
| Vue3 + TypeScript 前端 | frontend |
| Nginx 前端反向代理 | frontend/nginx.conf |
| Prometheus 监控 | infra/prometheus.yml |
| Docker 化部署 | infra/docker-compose.yml、各服务 Dockerfile |
2. 模块落实情况
| 设计模块 | 当前实现 |
|---|---|
| 巡检任务管理 | PlatformController.createTask、PlatformService.createTask |
| 无人机数据接入 | /api/v1/inspection/resources/complete |
| 数据预处理 | AI 服务的资源标准化入口,后续可替换为 OpenCV/GDAL/PCL 处理链 |
| AI 算法引擎 | vision-inference、pointcloud-analysis |
| GIS 空间规则 | Flyway PostGIS schema + RuleEngine 业务规则,空间计算可继续扩展到 ST_DWithin/ST_Contains |
| 业务规则引擎 | platform/backend/.../RuleEngine.java |
| 告警中心 | PlatformService.insertAlarmAndMaybeWorkOrder、/api/v1/alarms |
| 工单闭环 | /api/v1/workorders/callbacks/status |
| 基线库与豁免区 | baseline_objects、exemption_areas 表结构和豁免接口 |
| 数据标注与模型迭代 | model_versions 表和模型版本接口,样本库可继续接 MinIO 路径 |
| 全链路可视化 | demo_runs、demo_run_events、SSE 事件流、前端运行看板 |
| 系统运维 | Actuator、Prometheus、Docker Compose |
3. 接口落实情况
| 接口 | 当前实现 |
|---|---|
| 创建巡检任务 | POST /api/v1/inspection/tasks |
| 无人机任务状态回调 | POST /api/v1/uav/callbacks/mission-status |
| 巡检数据上传完成 | POST /api/v1/inspection/resources/complete |
| 创建分析任务 | POST /api/v1/analysis/jobs |
| AI 推理服务 | POST /api/v1/inference/detect |
| 规则判定 | 内部 RuleEngine.evaluate |
| 告警查询 | GET /api/v1/alarms |
| 工单回调 | POST /api/v1/workorders/callbacks/status |
| 豁免区配置 | POST /api/v1/exemptions |
| 模型版本 | GET /api/v1/models |
| 全链路运行实例 | POST /api/v1/demo/runs |
| 全链路运行快照 | GET /api/v1/demo/runs/{run_id} |
| 全链路事件流 | GET /api/v1/demo/runs/{run_id}/events |
| 全链路历史事件 | GET /api/v1/demo/runs/{run_id}/events/history |
| 取消全链路运行 | POST /api/v1/demo/runs/{run_id}/cancel |
4. 部署方式
.\scripts\start_stack.ps1
启动后访问:
- 前端:
http://localhost:8088 - API 统一入口:
http://localhost:8088/api - 后端直连:
http://localhost:8080 - Swagger:
http://localhost:8080/swagger-ui.html - MinIO Console:
http://localhost:9001 - Prometheus:
http://localhost:9090
5. 验证方式
.\scripts\smoke_test.ps1
验证内容:
- 后端健康检查
- 全链路可视化运行实例
- 阶段事件与运行快照
- 统计接口
- 工单接口
- 前端页面
离线环境下,如果无法访问 Docker Hub 或 Maven/npm/PyPI 仓库,可先执行静态校验:
.\scripts\run_static_checks.ps1
该脚本验证:
- FastAPI 服务 Python 语法
- 前端 JSON 配置
- Docker Compose 配置合法性
5.1 全链路可视化实现
运行“全链路示例”时,前端不再等待同步接口结束后一次性刷新,而是创建运行实例并订阅 SSE 事件流。后端按阶段发布事件,前端实时更新阶段时间轴、GIS 态势、当前阶段详情、事件流和完成汇总。
已实现阶段包括:
- 运行初始化
- 巡检任务创建
- 航线任务下发
- 多源数据接入
- 数据预处理
- AI 推理分析
- GIS 规则判定
- 告警生成
- 工单派发
- 工单闭环
- 样本回流
- 完成汇总
5.2 离线镜像要求
完整部署默认使用已验证可用的华为云 SWR Docker Hub 代理 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io,并配置了阿里 PyPI、Maven 多源兜底、npmmirror npm 源。需要以下基础镜像可用:
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/postgis/postgis:16-3.4swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/redis:7-alpineswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/bitnami/kafka:3.8.1swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/minio/minio:RELEASE.2024-10-13T13-34-11Zswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/python:3.12-slimswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/maven:3-eclipse-temurin-17swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/node:22-alpineswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/library/nginx:alpineswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/prom/prometheus:v2.55.0
如果目标环境无法联网,需要先通过 docker save / docker load 预置上述镜像,或将 Dockerfile/Compose 的基础镜像替换为内网镜像仓库地址。
6. 后续真实算法接入点
- 视觉检测/分割:替换
ai-services/vision-inference/app/engines.py - 点云/TIF 分析:替换
ai-services/pointcloud-analysis/app/main.py - 业务规则:扩展
platform/backend/.../RuleEngine.java - PostGIS 空间计算:在
PlatformService中加入ST_DWithin、ST_Contains、里程映射函数