Răsfoiți Sursa

feat(task-plan): 迁移295补齐task_plan_instances审核/确认/激活列

iwt 2 săptămâni în urmă
părinte
comite
5b71f33d91

+ 12 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -10346,6 +10346,18 @@ public class DatabaseInitializer implements CommandLineRunner {
         ensureColumn("articles", "sort_order", "INT NOT NULL DEFAULT 0 COMMENT '推荐排序值(越小越靠前)'");
         log.info("已添加 articles.sort_order 列(迁移294)");
 
+        // 迁移295: task_plan_instances 补齐实体已含但 DB 缺失的审核/确认/激活列(review/activate 写字段报 Unknown column)
+        ensureColumn("task_plan_instances", "source", "VARCHAR(20) DEFAULT NULL COMMENT '来源: manual/assessment/template'");
+        ensureColumn("task_plan_instances", "source_result_id", "BIGINT DEFAULT NULL COMMENT '关联测评结果ID(source=assessment时)'");
+        ensureColumn("task_plan_instances", "remark", "TEXT COMMENT '方案备注(含指导意见摘要)'");
+        ensureColumn("task_plan_instances", "reviewed_by", "BIGINT DEFAULT NULL COMMENT '审核人(规划师ID)'");
+        ensureColumn("task_plan_instances", "reviewed_at", "DATETIME DEFAULT NULL COMMENT '审核时间'");
+        ensureColumn("task_plan_instances", "review_comment", "TEXT COMMENT '审核意见'");
+        ensureColumn("task_plan_instances", "confirmed_by", "BIGINT DEFAULT NULL COMMENT '确认人(家长ID)'");
+        ensureColumn("task_plan_instances", "confirmed_at", "DATETIME DEFAULT NULL COMMENT '确认时间'");
+        ensureColumn("task_plan_instances", "activated_at", "DATETIME DEFAULT NULL COMMENT '激活时间'");
+        log.info("迁移295: 已补齐 task_plan_instances 审核/确认/激活列");
+
         // ===== 生产库对账候选风险记录(已核对生产库,2026-09,按用户决定不迁移/暂不动,仅记录)=====
         // 注:以下为 entity 期望但生产库未对齐.项目,用户已决定保持现状或记为候选,勿重复迁移。
         // 1. children 表缺 phone、id_card(Child 实体+ChildMapper 仍活跃,AccountCleanupService

+ 9 - 0
cfc-backend/src/main/resources/schema.sql

@@ -633,6 +633,15 @@ CREATE TABLE IF NOT EXISTS task_plan_instances (
     status VARCHAR(20) DEFAULT 'active',
     total_days INT,
     completed_days INT DEFAULT 0,
+    source VARCHAR(20) DEFAULT NULL COMMENT '来源: manual/assessment/template',
+    source_result_id BIGINT DEFAULT NULL COMMENT '关联测评结果ID',
+    remark TEXT COMMENT '方案备注',
+    reviewed_by BIGINT DEFAULT NULL COMMENT '审核人(规划师ID)',
+    reviewed_at DATETIME DEFAULT NULL COMMENT '审核时间',
+    review_comment TEXT COMMENT '审核意见',
+    confirmed_by BIGINT DEFAULT NULL COMMENT '确认人(家长ID)',
+    confirmed_at DATETIME DEFAULT NULL COMMENT '确认时间',
+    activated_at DATETIME DEFAULT NULL COMMENT '激活时间',
     created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
     updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
     INDEX idx_family_id (family_id),