docs: 蚕房健康画像(#24)变更记录与开发交接记录

This commit is contained in:
weijuesen
2026-08-13 14:36:35 +08:00
parent 008a7b1d4c
commit e9991a2954
2 changed files with 28 additions and 0 deletions
+8
View File
@@ -243,6 +243,14 @@
- 小程序:不做;真正的乡镇/县级地图(GeoJSON 底图)本期未接入,先用统计图表表达热力趋势
- 测试:区域聚合 2 组单测(分组/降序/空区域剔除/空输入,TDD 红→绿);2026-08-13 第一次部署(schema 变更前 pg_dump `silk-20260813-0010.dump`);冒烟:SmokeTown 聚合 total=2、DiseaseA/B 各 1;回滚点见服务器 README(后端 `server-go-linux.old-20260813-1`、web `dist.old-20260813-1`
### 蚕房健康画像与年度发病统计(计划 #24)
- 后端:`GET /api/v1/health-profiles/:roomId`——聚合近 30 天巡检风险分布、分子检测结果、会诊/溯源事件、当前批次 → `ComputeHealthScore`(0-100,扣分制)与评级(优/良/中/差);`GET /api/v1/trace-records/monthly-stats?year=`(按月聚合发病数与病种分布)
- Web:蚕房管理「健康画像」抽屉(环形分数 + 详情);疫病溯源页新增「年度发病规律」折线图
- 测试:健康分计算(空输入/扣分/钳制)+ 月度聚合 3 组单测(TDD 红→绿)
- 部署与踩坑(2026-08-13 第二次发布):①Gin 路由 `/rooms/:id/health-profile` 与已有 `/rooms/:id` 冲突导致启动 panic → 改独立路径 `/health-profiles/:roomId`;②`RegisterHealthRoutes` 曾重复注册 panic;③新增 health.go 时覆盖了原 `/health` 路由导致 health 404 → 恢复原函数并拆分 `RegisterHealthProfileRoutes`;④handler 参数名由 `id` 改为 `roomId` 修正 404。最终冒烟:蚕房1# score=96 优(risk 黄 1
- 回滚点见服务器 README(后端 `server-go-linux.old-20260813-6`、web `dist.old-20260813-3`
## 2026-07-17 安全与界面优化整改
### 变更背景
+20
View File
@@ -517,6 +517,26 @@
---
## 2026-08-13 模块:蚕房健康画像与年度发病统计(计划 #24)
### 做了什么
- `/health-profiles/:roomId`(巡检/LAMP/事件聚合 → 健康分 + 评级);`/trace-records/monthly-stats`(年度按月发病);Web 蚕房「健康画像」抽屉 + 溯源页年度折线图。
### 思路与决策
- 健康分扣分制:红 -25/橙 -12/黄 -4、LAMP 阳性率 -30、会诊 -10、溯源 -8,钳制 0-100;评级 优≥85/良≥70/中≥55/差;
- 月度聚合复用 trace_records(发病事件)按 `to_char(created_at,'YYYY-MM')` 分组;
- 踩坑记录(重要):Gin 不允许在 `:id` 参数节点下再挂子路由(`/rooms/:id/health-profile``/rooms/:id` 冲突 panic)→ 独立路径;同名路由注册函数重复注册会 panic;用 `apply_patch` 新增文件时若文件已存在会覆盖旧文件(原 `health.go``/health` 路由被覆盖,已恢复);handler 读取路由参数必须与 `:param` 命名一致。
### 验证与部署
- 3 组单测(TDD 红→绿);三端构建通过;
- 2026-08-13 第二次发布(含 4 处修复);冒烟:蚕房1# score=96 优(risk 黄 1);
- 相关提交:`cbcb22e`/`ccda60e`(功能)、`725d98a`/`492d1ef`/`3e9916a`/`008a7b1`(修复);回滚见服务器 README。
---
## 环境与踩坑备忘(新同事必读)
- **VPN**:开发服务器经 NetBird 访问;服务 Running 后需 `netbird up`,登录走 SSO(管理端 `115.191.19.95:6680`)。