Bladeren bron

需求变更:健康方案制定流程重构(R1-R6, HL-02~05, 2026-11-07)

Agnes Agent 5 dagen geleden
bovenliggende
commit
f8e457b15b
1 gewijzigde bestanden met toevoegingen van 102 en 0 verwijderingen
  1. 102 0
      docs/superpowers/specs/2026-11-07-health-plan-flow-rework-change.md

+ 102 - 0
docs/superpowers/specs/2026-11-07-health-plan-flow-rework-change.md

@@ -0,0 +1,102 @@
+# 健康方案制定流程重构·需求变更(2026-11-07)
+
+> 主理人 2026-11-07 晚补充需求。本变更为对「方案制定」既有流程(选人→问卷→签名→方案)的重构,扩展为「归因→对话调整→解决方案→产品多选一购买→执行任务」分层闭环。
+> 依赖:HL-01(方案默认选本人+问卷代入自己+健康阅卷)先行合入,避免同文件冲突。
+
+## 一、需求变更清单
+
+| # | 需求 | 目标 |
+|---|---|---|
+| R1 | 方案可点开修改 | 制定新方案完成后展示的饮食/运动/营养素方案(含水、益生元、益生菌、营养素),**每个板块可点击进入修改**(现状点不进去) |
+| R2 | 先出归因方案 | 解决方案生成**之前**,先出「归因方案」讲清楚要解决的问题;确认后才进入解决方案 |
+| R3 | 特殊问题对话补充 | 生成方案时不确定的点,通过**对话方式补充提问**(问卷未涉及但需了解的特殊问题) |
+| R4 | 对话式调整方案 | 用户可通过**对话方式**对方案进行调整,调整无误后才进入解决方案 |
+| R5 | 产品多选一购买任务 | 调整方案中针对某一类产品,方案按**推荐产品效果+价格给出多选一**;用户选择确认后**生成购买任务**(本平台有的产品直接加入购物车) |
+| R6 | 购买后生成执行任务 | 用户**完成购买任务后**,根据方案建议**生成执行任务** |
+
+## 二、现状(只读核查,文件+行号)
+
+### R1:方案预览板块点不进去
+
+- `cfc-frontend/pages/health/health-plan-summary.vue`
+  - 方案预览(行 138-147):`section-preview-item` v-for 展示三个板块(`sectionKeys=['nutrition','diet','exercise']`,行 299;`sectionTitles=['营养补充建议','饮食建议','运动计划']`,行 300),**预览项无 `@click`** → 点不进去
+  - 仅「修改确认」按钮(行 151 `startEdit`)进入编辑;编辑为**逐板块递增**(`editIndex`,行 273)
+  - 编辑模式(行 158-177):`textarea` 编辑 `sections[currentSectionKey].content` + 「重新生成」/「保存」
+
+### R2:无归因方案步骤
+
+- 后端已有归因能力:`cfc-backend/.../controller/AttributionController.java` + `service/AttributionPlanService.java`
+- 前端方案制定流程(health-plan-summary)**未接入归因方案**——签名后直接 `confirmAndGenerate` 生成解决方案(overview + 三板块)
+
+### R3:无特殊问题对话补充
+
+- 生成方案(`confirmAndGenerate` / `generatePlan`)无对话式补充提问环节;`sectionFeedback`(行 169)仅为编辑意见文本,非流程化对话
+
+### R4:无对话式调整
+
+- 现有调整为 `textarea` 直接编辑 + 「重新生成」(行 166-174),**非对话式**(自然语言对话调整)
+
+### R5/R6:无产品多选一购买任务 → 执行任务分层
+
+- 现有任务分解:`confirmPlanTasks`(行 214「确定」)→ 方案直接分解为日常任务(任务在首页/任务中心查看)
+- 无「产品多选一 → 购买任务/加购物车 → 购买完成 → 执行任务」分层
+- 后端相关:`service/HealthPlanService.java`(方案)、`service/PackagePurchaseService.java`(购买)、`service/PlanActivationService.java`(激活)、`service/GrowthTaskService.java`(任务)
+
+## 三、变更方案(目标流程)
+
+重构后方案制定完整流程:
+
+```
+选人 → 问卷 → 签名
+   → [R2] 归因方案(讲清要解决的问题,确认)
+   → [R3] 特殊问题对话补充(生成时不确定点,对话提问,可选)
+   → [R4] 解决方案(对话式调整,可多轮;每个板块可点开修改[R1])
+   → [R5] 产品多选一(每类产品按效果+价格多选一,确认→购买任务/加购物车)
+   → 用户完成购买任务
+   → [R6] 生成执行任务(按方案建议)
+```
+
+### R1 改动(前端)
+- `health-plan-summary.vue`:`section-preview-item` 加 `@click="startEditAt(i)"` → 直接打开第 i 板块编辑(`editIndex=i`);保留「修改确认」整体逐板块入口
+
+### R2 改动(前端+后端)
+- 前端:签名确认后先调归因接口(`AttributionPlanService` 既有)生成并展示「归因方案」步骤(讲清问题),用户确认后才进入解决方案生成
+- 后端:归因接口如缺「按成员/方案生成归因」端点则补齐(复用既有 attribution 逻辑)
+
+### R3 改动(前端+后端)
+- 前端:生成方案时若后端返回「不确定点/需补充问题」列表 → 插入对话式问答步骤,用户回答后回传后端再生成
+- 后端:方案生成接口返回 `followUpQuestions`(不确定点),并接受用户补充答案
+
+### R4 改动(前端+后端)
+- 前端:新增「对话式调整」入口(自然语言输入调整意图 → 调后端调整接口 → 刷新方案板块);与现有 textarea 编辑并存或替换
+- 后端:方案调整接口(输入调整意图 → 返回调整后方案板块)
+
+### R5/R6 改动(前端+后端)
+- 后端:方案返回「产品推荐组」(每类产品:效果评分/价格/多选一选项);新增「确认产品选择→生成购买任务(或加入购物车)」接口;「购买完成→生成执行任务」接口
+- 前端:方案板块展示产品多选一(效果+价格对比)→ 用户确认 → 购买任务/加购物车 → 购买完成回调 → 展示执行任务
+
+## 四、验收标准
+
+1. **R1**:方案预览点击「营养补充建议/饮食建议/运动计划」任一板块 → 直接进入该板块编辑,保存后返回预览,内容已更新
+2. **R2**:签名后先展示「归因方案」(讲清要解决的问题),用户确认后才进入解决方案生成
+3. **R3**:生成方案时存在不确定点 → 弹出对话提问,用户回答后方案生成携带补充信息
+4. **R4**:用户可用自然语言对话调整方案(如「睡眠建议改温和一点」),调整后板块内容更新,确认后进入下一步
+5. **R5**:每类产品展示「效果+价格多选一」,用户选择确认 → 生成购买任务;本平台产品直接加入购物车
+6. **R6**:购买任务完成后自动生成执行任务(按方案建议)
+7. 既有流程(选人/问卷/签名/查看模式/选择规划师)零破坏;前后端编译通过
+
+## 五、任务拆分(入任务池)
+
+| id | 范围 | 优先级 | 依赖 |
+|---|---|---|---|
+| HL-02 | R1:方案预览板块可点击进入编辑 | P1 | HL-01 合入 |
+| HL-03 | R2+R3:归因方案步骤 + 特殊问题对话补充 | P1 | HL-01 合入 |
+| HL-04 | R4:方案对话式调整 | P1 | HL-02 后 |
+| HL-05 | R5+R6:产品多选一购买任务 + 购买后执行任务 | P1 | HL-03/HL-04 后 |
+
+## 六、边界与依赖
+
+- 本变更是**产品流程重构**,涉及前端 `health-plan-summary.vue` 大改 + 后端归因/方案/购买/任务接口扩展
+- **依赖 HL-01 先行合入**(同文件 health-plan-summary.vue 改动,避免冲突)
+- 不改既有「定期调研/健康自检」问卷流程;不改 health_status 覆盖语义
+- 产品多选一「效果+价格」数据源需后端方案生成器产出(如尚无,需一并扩展)