瀏覽代碼

chore: auto bump version and changelog [skip ci]

iwt 1 周之前
父節點
當前提交
352d6e1a12

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-e81e05beecd7341506d73b9277875b6cbe498297
+5ef327d61be5d2d8466a69dd16c22885eb5b07b5

+ 2 - 2
cfc-web/package-lock.json

@@ -1,12 +1,12 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1604",
+  "version": "1.0.1605",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
     "": {
       "name": "cfc-web",
-      "version": "1.0.1604",
+      "version": "1.0.1605",
       "dependencies": {
         "@wangeditor/editor": "^5.1.23",
         "@wangeditor/editor-for-vue": "^1.0.2",

+ 1 - 1
cfc-web/package.json

@@ -1,6 +1,6 @@
 {
   "name": "cfc-web",
-  "version": "1.0.1605",
+  "version": "1.0.1606",
   "private": true,
   "scripts": {
     "dev": "vue-cli-service serve",

+ 23 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,29 @@
 
 ---
 
+## v1.0.1606 (2026-10-13)
+
+### 文档
+- API_REFERENCE.md 三个打卡接口补 taskId 参数说明
+- 打卡接入任务完成链路状态更新为全栈完成
+
+### 新功能
+- 三个Controller补isDailyProgress二次分流、前端三个打卡页+tasks.vue透传taskId
+- 每日自动生成饮食/睡眠/运动打卡进度任务
+- 报告管理模块重组(合并健康报告/代传独立/详情合并/删除报告审核)
+
+### 其他
+- - cron 主流程接入,每日为所有能登录用户幂等生成 3 条 is_daily_progress 任务
+- - 新增实现计划文档 docs/superpowers/plans/2026-10-13-health-checkin-task-linkage-plan.md
+- 
+- - JS 方法 loadDanReports/goDanUpload/viewDanReport 与 CSS 一直在,仅模板缺失导致采集内容不显示
+- - 与 wisdom-detail L167-184 同构
+- 
+
+### Bug 修复
+- 恢复心智维度页 DAN 报告模板块(72f6e0693 误删,参照 wisdom-detail)
+
+
 ## v1.0.1605 (2026-10-13)
 
 ### 新功能

+ 24 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1605
+> 当前版本: v1.0.1606
 
 ## 历史版本
 
@@ -8,6 +8,29 @@
 
 ---
 
+## v1.0.1606 (2026-10-13)
+
+### 文档
+- API_REFERENCE.md 三个打卡接口补 taskId 参数说明
+- 打卡接入任务完成链路状态更新为全栈完成
+
+### 新功能
+- 三个Controller补isDailyProgress二次分流、前端三个打卡页+tasks.vue透传taskId
+- 每日自动生成饮食/睡眠/运动打卡进度任务
+- 报告管理模块重组(合并健康报告/代传独立/详情合并/删除报告审核)
+
+### 其他
+- - cron 主流程接入,每日为所有能登录用户幂等生成 3 条 is_daily_progress 任务
+- - 新增实现计划文档 docs/superpowers/plans/2026-10-13-health-checkin-task-linkage-plan.md
+- 
+- - JS 方法 loadDanReports/goDanUpload/viewDanReport 与 CSS 一直在,仅模板缺失导致采集内容不显示
+- - 与 wisdom-detail L167-184 同构
+- 
+
+### Bug 修复
+- 恢复心智维度页 DAN 报告模板块(72f6e0693 误删,参照 wisdom-detail)
+
+
 ## v1.0.1605 (2026-10-13)
 
 ### 新功能

+ 83 - 0
docs/superpowers/plans/2026-10-13-health-checkin-task-linkage.md

@@ -12,6 +12,89 @@
 
 ---
 
+## ⚠️ 执行状态盘点与增量任务(2026-10-14 对照代码核对)
+
+> 下方任务 1-9 为原始计划(2026-10-13 编写)。2026-10-14 对照当前代码逐项核对后:**任务 1/2/5/6/7 已完成落地**(实体 taskId 字段、Task/DTO 注释、RepeatTaskGenerator 生成、tasks.vue 分支、三打卡页 taskId 透传均已存在于代码中)。**仍有以下缺口未闭环**,执行者只需完成增量任务 A-D 即可:
+
+| 核对项 | 代码位置 | 状态 |
+|---|---|---|
+| 三实体 `taskId`(`@TableField(exist=false)`) | HealthMealRecord.java:57、HealthSleepRecord.java:41、HealthExerciseRecord.java:36 | ✅ 已完成 |
+| Task/CreateTaskDTO 注释含 diet/sleep/exercise | Task.java:130、CreateTaskDTO.java:66 | ✅ 已完成 |
+| RepeatTaskGenerator 内置打卡任务生成 | RepeatTaskGenerator.java:40-45,152,164-215 | ✅ 已完成(幂等,每日生成 [DIET]/[SLEEP]/[EXERCISE]) |
+| tasks.vue `getActionLabel`/`navigateByAction` 三分支 | tasks.vue:413-427,465-490 | ✅ 已完成 |
+| 三打卡页 onLoad/taskId 透传 | diet-checkin.vue:172,209; sleep-checkin.vue:99,111; exercise-checkin.vue:164,210 | ✅ 已完成 |
+| Controller 回写挂钩 **isDailyProgress 二次分流** | 三 Controller create() | ❌ **缺失**:当前 taskId≠null 时无条件走 completeTask,未按 spec 决策3 分流每日进度型任务 |
+| API_REFERENCE meal/sleep create 条目 | API_REFERENCE.md 4.7 节 | ❌ **缺失**(仅 exercise 有条目且未提 taskId) |
+| PROJECT-OVERVIEW 状态 | PROJECT-OVERVIEW.md:7 | ❌ 仍标"设计已提交" |
+
+**无 DDL 变更**:actionType 为 VARCHAR(32) 天然支持新值;taskId 非持久化;无需 DatabaseInitializer 迁移。
+
+### 增量任务 A:三 Controller 回写挂钩加 isDailyProgress 二次分流
+
+**文件:**
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/HealthMealController.java:250-274`
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/HealthSleepController.java:70-91`
+- `cfc-backend/src/main/java/com/etotem/cfc/controller/HealthExerciseController.java:92-114`
+
+三个 Controller 现有 try 块统一改为(以 Meal 为例;Sleep 的 taskKey 用 `SLEEP`、photoUrls 传 `""`、remark 兜底 `"睡眠打卡"`;Exercise 的 taskKey 用 `EXERCISE`、remark 兜底 `"运动打卡"`):
+
+```java
+// 分流规则(spec 决策3):taskId 指向的任务若为每日进度型(is_daily_progress=1) → updateProgress;
+// 一次性任务 → completeTask;不传 taskId → updateProgress 累计今日进度
+Task linkedTask = record.getTaskId() != null ? taskMapper.selectById(record.getTaskId()) : null;
+if (linkedTask != null && (linkedTask.getIsDailyProgress() == null || linkedTask.getIsDailyProgress() == 0)) {
+    // 一次性任务:直接完成
+    taskService.completeTask(record.getTaskId(), record.getMemberId(), record.getPhotoUrls(), record.getRemark(), "text");
+} else {
+    // 每日进度型任务(含未传 taskId):累计进度
+    com.etotem.cfc.entity.FamilyMember fm = familyMemberMapper.selectById(record.getMemberId());
+    if (fm != null && fm.getUserId() != null) {
+        taskService.updateProgress(fm.getUserId(), "DIET", 1); // Sleep→"SLEEP",Exercise→"EXERCISE"
+    }
+}
+```
+
+- Meal 保留外层 `if (!isBackfill)` 补打守卫;Sleep/Exercise 实体无 isBackfill 字段,**不要**新增该字段或守卫。
+- [ ] 步骤:三文件改完 → `cd cfc-backend && mvn clean compile` → `BUILD SUCCESS` → commit:`feat(health): 打卡回写支持每日进度型任务二次分流(is_daily_progress=1 走 updateProgress)`
+
+### 增量任务 B:API_REFERENCE.md 补记 meal/sleep create
+
+**文件:** `docs/superpowers/api/API_REFERENCE.md:588`(exercise create 行附近)
+
+在 `POST /api/health/exercise/create` 行下方插入,并将 exercise 行改写为含 taskId 说明:
+
+```markdown
+| `POST /api/health/meal/create` | 创建饮食打卡(支持补打 `recordDate+isBackfill`;可带 `taskId` 联动任务——一次性任务打卡即完成,每日任务(is_daily_progress=1, taskKey=DIET)累计进度;补打不触发任务回写与积分) |
+| `POST /api/health/sleep/create` | 创建睡眠打卡(可带 `taskId` 联动任务,规则同 meal/create;无补打概念) |
+| `POST /api/health/exercise/create` | 创建运动打卡(支持 stepCount 微信步数;可带 `taskId` 联动任务,规则同 meal/create;无补打概念) |
+```
+
+- [ ] 步骤:改完 → `grep -n 'health/meal/create' docs/superpowers/api/API_REFERENCE.md` 命中 → commit:`docs(api): 补记 health/meal/create 与 health/sleep/create,exercise 补 taskId 说明`
+
+### 增量任务 C:PROJECT-OVERVIEW.md 状态更新
+
+**文件:** `docs/superpowers/PROJECT-OVERVIEW.md:7`
+
+将 `(📐 设计已提交,见 ...)` 改为 `(✅ 已实现,specs/ + plans/2026-10-13-health-checkin-task-linkage.md:方案B双轨...)`。
+
+- [ ] 步骤:改完 → commit:`docs: 打卡接入任务链路实现完成,更新 PROJECT-OVERVIEW 状态`
+
+### 增量任务 D:全量验证(同任务 9)
+
+- [ ] `cd cfc-backend && mvn clean compile` → BUILD SUCCESS
+- [ ] 前端语法校验:对 tasks.vue + 三打卡页提取 `<script>` 块 `node --check`
+- [ ] `cd cfc-frontend && node scripts/audit-duplicate-api-calls.js` → 退出码 0
+
+### 增量联调清单(人工)
+
+1. 一次性任务(actionType=diet)→ 打卡 → 任务 completed + 发积分
+2. `[DIET]饮食打卡` 每日任务 → 不带 taskId 打卡 → 进度 1/1 自动完成
+3. **核心回归点**:从任务列表点击每日任务(带 taskId 且 is_daily_progress=1)→ 打卡 → 验证走 updateProgress 而非 completeTask(增量任务 A 的修复点)
+4. 补打(isBackfill=1)→ 不触发任务回写、不发积分
+5. 睡眠/运动不带 taskId 打卡 → 对应每日任务正常累计
+
+---
+
 ## 文件结构
 
 | 文件 | 操作 | 职责 |