diff --git a/变更记录.md b/变更记录.md index 8f094d9..b8270d6 100644 --- a/变更记录.md +++ b/变更记录.md @@ -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 安全与界面优化整改 ### 变更背景 diff --git a/开发交接记录.md b/开发交接记录.md index 2ce7e71..fff76ab 100644 --- a/开发交接记录.md +++ b/开发交接记录.md @@ -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`)。