docs: 同步 README 说明文档与后续工作计划进度状态(2026-08-13)

This commit is contained in:
weijuesen
2026-08-13 17:39:09 +08:00
parent c55e954368
commit 0c67c2d428
4 changed files with 140 additions and 31 deletions
+89 -5
View File
@@ -4,6 +4,8 @@
系统提供 **Web 后台**、**React Native 移动端 APP**、**微信小程序** 三端界面,后端统一由 **Go 服务**提供 API。
> **最新进度**:AI 巡检闭环、知识库、分子检测、专家会诊、疫病溯源、天气预警、健康画像等已完成,详见根目录 `AGENTS.md`「已完成功能(截至 2026-08-13)」与 `开发交接记录.md`。
## 1. 核心能力
### 1.1 环境实时监测
@@ -41,7 +43,7 @@
### 1.5 RBAC 权限管理
- 4 个角色:`admin`(管理员)、`operator`(操作员)、`viewer`(查看者)、`farmer`(养殖员)
- 15 个权限码:涵盖看板蚕房设备阈值告警视频能耗日志用户审计
- 36 个权限码:基础看板/蚕房/设备/阈值/告警/视频/能耗/日志/用户/审计,并扩展知识库、巡检、蚕匾批次、分子检测、耗材、会诊、溯源、天气、订阅等
- 后端 `RequirePermission` 中间件校验权限码,admin 自动放行
- 前端路由守卫 + 菜单动态过滤 + `<HasPermission>` 按钮级控制
- 新用户注册默认角色为 `viewer`
@@ -58,6 +60,62 @@
- 设备能耗数据采集与统计
- 能耗趋势图表展示
### 1.8 蚕匾 / 批次 / 饲养记录(计划 #7)
- 蚕匾(`trays`)、蚕种批次(`batches`,含品种/蚕种来源/批次号/检疫证明/龄期/入房/上蔟)、饲养记录(`rearing_records`)三表 + CRUD
- Web「批次管理」页(批次 + 蚕匾 + 饲养记录);小程序蚕房详情展示蚕匾与当前批次
### 1.9 AI 拍照巡检闭环(计划 #5/#6/#8/#9
- `ai-service/`FastAPI + ONNX Runtime(默认 mock 模式;`POST /detect` 返回框/类别/置信度,`POST /stream-detect` 拉流抽帧骨架,`GET /metrics` 监控指标)
- 拍照上传 → AI 检测 → 风险评分(0-100 分,绿/黄/橙/红四级)→ 巡检记录(`inspection_records``Idempotency-Key` 幂等)
- 小程序「拍照巡检」页;Web「巡检记录」页(技术员复查)
### 1.10 知识库与阶段风险提示(计划 #10/#13)
- 蚕病百科(9 病种 + 「其它/未知」)、AI 风险分级解读、LAMP/SERS 教程、四季防控提醒
- 症状图谱图片上传(S3 `silk-images`);饲养阶段风险提示(`/knowledge/stage-hints`
- Web「知识库」页 + 小程序知识库(列表/详情/阶段选择)
### 1.11 分子检测与交叉验证(计划 #14/#15/#19/#20
- LAMP 检测任务单 + 标准 5 步流程 + 结果照片 + 结果录入
- qPCR Ct 值自动判读(阈值可配);SERS 光谱数据上传与光谱库;高光谱方式预留
- 交叉验证:AI 结果 vs 检测结果(一致→确认诊断;不一致→建议专家会诊)
- 多检测方式推荐引擎(设备条件/紧急程度/操作者水平/成本偏好)
- Web「分子检测」页 + 小程序 LAMP 录入
### 1.12 专家会诊(计划 #18
- 会诊单 + 病例快照(照片/AI/检测/环境/批次/天气)+ 状态机(受理/出方案/归档)+ 专家意见与防控方案
- Web「专家会诊」页
### 1.13 疫病溯源与区域统计(计划 #21/#22)
- 三级溯源:一级自动(环境回溯/历史关联/传播推断→初报)、二级分病种排查清单(→分析报告)、三级专家/实验室记录
- 区域发病统计(按蚕房区域聚合,柱状图/饼图)与年度发病规律
- Web「疫病溯源」页
### 1.14 耗材管理(计划 #16
- 耗材库存、低库存/临期预警、采购建议(补足安全阈值)
- Web「耗材管理」页
### 1.15 天气与高发病预警(计划 #12)
- 和风天气接入(实时 + 3 天预报);按规格书 3.2.3 规则评估白僵病/核型多角体病/软化病风险
- 定时(30 分钟)评估写入 `weather_alerts`Web 告警中心与小程序告警页展示
### 1.16 蚕房健康画像与年度发病规律(计划 #24)
- 单蚕房健康分(0-100)与评级(优/良/中/差):聚合巡检风险、检测结果、会诊/溯源事件
- Web 蚕房「健康画像」抽屉 + 年度发病折线图
### 1.17 微信订阅消息(计划 #11,骨架)
- 用户 openid 绑定与订阅授权(`/wechat/bind|subscribe`);巡检风险非绿异步触发
- 真实推送需配置 `WECHAT_APPID/SECRET/TEMPLATE_*` 并申请订阅消息模板
## 2. 技术架构
```text
@@ -70,6 +128,8 @@
┌────────────────┐ ┌──────────────────┐ ┌──────────────┐
│ Go 后端 :3000 │ │ recorder-go :9090 │ │ WVP :18080 │
│ (Gin + GORM) │ │ (连续录制服务) │ │ ZLM :8081 │
│ ai-service:8000 │ │ │ │ │
│ (FastAPI+ONNX) │ │ │ │ │
└───┬────┬───┬───┘ └────────┬─────────┘ └──────┬───────┘
│ │ │ │ │
┌───────┘ │ └──────┐ │ │
@@ -91,14 +151,15 @@
| 层级 | 技术 |
|---|---|
| Go 后端 | Go 1.22+、Gin、GORM、JWT、slog、WebSocket |
| Go 后端 | Go 1.23、Gin、GORM、JWT、slog、WebSocket |
| 录制服务 | Go、AWS SDK v2S3)、HTTP 拉流 |
| Web 前端 | React 18、Vite、Ant Design、Ant Design Pro、Axios、ECharts |
| Web 前端 | React 18、Vite、Ant Design、Ant Design Pro、Axios、ECharts、Vitest |
| 移动端 APP | React Native 0.74、React Navigation、React Native Paper、Zustand |
| 微信小程序 | Taro 4、React、TypeScript、SCSS |
| 业务数据库 | PostgreSQL 16 |
| 业务数据库 | PostgreSQL(开发服务器为 14 |
| 时序数据库 | Apache IoTDB 2.0.8REST API |
| 缓存/通知 | ValkeyRedis 兼容 |
| AI 推理服务 | Python 3.10+、FastAPI、ONNX Runtime、OpenCV`ai-service/` |
| 缓存/通知 | Redis / ValkeyRedis 兼容) |
| 设备通信 | VerneMQMQTT 3.1.1 |
| 视频流媒体 | WVP-PRO 2.7.4、ZLMediaKitGB28181 |
| 对象存储 | Ceph RGWS3 兼容) |
@@ -156,6 +217,10 @@ silk/
│ │ ├─ components/ # StatCard、MiniChart
│ │ └─ app.config.ts # 小程序配置(页面、TabBar)
│ └─ package.json
├─ ai-service/ # Python AI 推理服务(FastAPI + ONNX Runtime,端口 8000
│ ├─ app/ # main.py/health、/detect、/stream-detect、/metrics
│ ├─ tests/ # pytest 用例
│ └─ requirements.txt
├─ tools/
│ ├─ simulator/ # MQTT 设备模拟器
│ └─ iotdb/ # 本地 Apache IoTDB 部署
@@ -188,6 +253,17 @@ silk/
| Permission | `handler/permission.go` | 权限码查询、角色权限查询 |
| Audit | `handler/audit.go` | 审计日志(权限码 `audit:read` |
| Health | `handler/health.go` | PostgreSQL、Redis、IoTDB 健康检查 |
| Knowledge | `handler/knowledge.go` | 知识库(蚕病百科/文章/阶段提示/图片上传) |
| Inspection | `handler/inspection.go` | AI 巡检记录(上传→检测→评分,幂等) |
| TrayBatch | `handler/tray_batch.go` | 蚕匾/批次/饲养记录 CRUD |
| Lamp | `handler/lamp.go` | 分子检测(LAMP/qPCR/SERS)、步骤、光谱库 |
| Weather | `handler/weather.go` | 和风天气与高发病天气预警 |
| Wechat | `handler/wechat.go` | 微信订阅消息绑定与授权 |
| Consultation | `handler/consultation.go` | 专家会诊(病例快照/意见/方案) |
| Trace | `handler/trace.go` | 疫病溯源(三级)、区域/月度发病统计 |
| HealthProfile | `handler/health.go` | 蚕房健康画像(健康分/评级) |
| DetectionMethod | `handler/detection_method.go` | 多检测方式推荐 |
| Consumable | `handler/consumable.go` | 耗材库存、预警与采购建议 |
| WebSocket | `ws/gateway.go` | `/ws` 实时通道,广播遥测与告警 |
## 6. 前端页面
@@ -407,6 +483,13 @@ C:\msys64\usr\bin\sshpass.exe -p "pan" C:\msys64\usr\bin\ssh.exe -o StrictHostKe
| `S3_ACCESS_KEY` | `silk-app` | S3 Access Key |
| `S3_SECRET_KEY` | `Silk-App-Secret-2026!` | S3 Secret Key |
| `S3_BUCKET` | `silk-video-events` | S3 Bucket |
| `S3_BUCKET_IMAGES` | `silk-images` | 知识库/巡检/检测图片桶(对象公开读) |
| `AI_SERVICE_BASE` | `http://localhost:8000` | AI 推理服务地址 |
| `WECHAT_APPID` | (空) | 微信小程序 AppID(订阅消息,占位) |
| `WECHAT_SECRET` | (空) | 微信小程序 AppSecret(占位) |
| `WECHAT_TEMPLATE_ALARM` / `WECHAT_TEMPLATE_INSPECTION` | (空) | 订阅消息模板 ID(占位) |
| `QWEATHER_API_KEY` / `QWEATHER_LOCATION` | (空) | 和风天气 Key 与位置(经纬度或 LocationID,占位) |
| `QWEATHER_INTERVAL_MIN` | `30` | 天气预警定时评估间隔(分钟) |
| `PORT` | `3000` | 监听端口 |
| `DEFAULT_ADMIN_USERNAME` | `admin` | 默认管理员 |
| `DEFAULT_ADMIN_PASSWORD` | `silk@123` | 默认密码 |
@@ -420,6 +503,7 @@ cd e:\silk\web
npm install
npm run dev # 开发模式,端口 5173,代理 /api 到 :3000
npm run build # 生产构建
npm test # Vitest 单元测试
```
### 12.2 React Native APP