Files
LWLT-AIBOT/.project-docs/30-worklog/tasks/20260916-arrangement-ledger-01a0858b.md
T
2026-09-16 11:50:50 +08:00

5.4 KiB

团队安排记录与回执汇总

Scope / 用户决定

  • 当前账号 + 完整团号隔离汇总导游、用车、酒店、大交通、其他/备案五类安排。
  • 仅使用本系统成功执行记录,不查询或同步 ERP 外部修改;结果不确定不计作成功。
  • 保存安排明细及变更历史,回执展示已安排/未安排;多条安排的已安排表示至少一条有效记录。
  • 强制删除任务和归档均保留独立安排明细与历史;原任务删除后仍可保留来源编号和成功快照。
  • 本次实现服务端记录与回执汇总,详情展示入口后续扩展;不执行 ERP 写入、部署或重启。

Worktree gate

  • Mode: Feature
  • Branch: main
  • Worktree: /Users/andy/IdeaProjects/LWLT-AIBOT
  • Base commit: 364ef4ae30
  • Existing changes: untracked .idea/、dist/ltjt-order-assistant-0.5.185.zip,均保留且不触碰。
  • Other worktrees: 无。
  • Overlap result: Clear,既有改动与服务端记录/回执范围不重叠。
  • 单线程工作,无子 Agent。

Plan / Progress

  • 已完成。迁移 025_arrangement_ledger 新增按组织/不可变任务账号隔离的初始化记录与成功事件明细,源任务/执行编号不设置 task 外键;任务物理删除保留明细与成功快照,标注来源任务已删除。
  • 明细使用现有字段密钥加密,保存实际选中资源、已验证日期/项目/数量/备注、原始安排字段和成功依据;团号规范化后完整匹配,保留后缀差异。数据库复合外键限制组织归属,并禁止管理员作为明细 owner。
  • recordExecutionResult 通过原执行权、终态、回执验证后,在原事务内写入事件并冻结五类安排汇总。每个执行编号最多记录一次,结果不确定、失败或解析成功不计入;只读核验最终成功按原执行开始时间排序,避免迟到旧结果覆盖后续安排。
  • 酒店/用车/大交通/其他按已验证 ERP 行编号追踪,清除只影响对应行;导游按真实单例处理。窄变更保留未提供的旧详情,已验证空值仍能覆盖,历史快照不变。
  • 本账号首次成功入账或首次强制删除前,分页补入仍保留的历史成功安排(包含归档任务);不读取 ERP,不补入其他账号、失败或无成功依据的记录,不改写旧回执。已物理删除的历史任务无源数据,无法恢复;无 ERP 行编号的旧证据保留独立执行记录,不猜测其与其他行的关联。
  • 平台与 AgentBus 复用现有成功消息,追加“本系统安排情况(当前账号)”;同一类型至少一条有效记录即已安排,不表示行程覆盖齐全。回执读取重建保持生成时汇总且不重复追加。
  • 更新强制删除确认说明,明确安排明细、历史和成功凭据保留。详情页面/新查询入口未在本次扩展,数据已独立持久化,可供后续实现。
  • Chrome 插件、输入模板、Skill 和发布包均未修改;无需新插件版本。

Validation / Result

  • node --run check、node --run build、git diff --check 通过。
  • 控制面测试 266/266(新增 13 项安排记录测试);最终相关回归 21/21(包含 PG Date 毫秒精度、窄修改字段保留)。
  • 原工作区 check:repo 的 2 项失败来自既有 .idea/、.DS_Store 和旧证据 .log;这些文件保持原样。原 sandbox 的 legacy 另外 2 项 HTTP 测试因 localhost listen EPERM 失败。
  • 在只含当前 tracked 源码、新增文件和 release manifest 交付物的临时副本中复验:check:repo 10/10,允许临时 localhost 监听的 test:legacy 411/411;未修改检查规则、未清理未知用户文件。
  • 使用独立临时 PostgreSQL 16 数据库和随机 schema 执行现有 24 个迁移文件(编号 019 退役,最新 025),通过真实结果落库/平台和 AgentBus 消息、账号/组织隔离、重复结果去重、旧回执冻结、删除保留、按行清除、事务回滚、首次删除前归档历史补入以及管理员/跨组织 owner 约束验证。
  • 可复用验证入口:tools/arrangement-ledger-postgres-smoke.mjs,要求显式 LTJT_ARRANGEMENT_TEST_DATABASE_URL 指向 localhost 的 ledger_test,不读取 .env。测试 schema 和本次临时容器均已清理。
  • 证据:验证记录(仓库实际路径为 archive/evidence/2026-09-16/arrangement-ledger-01a0858b/)。
  • 未部署、未重启本地/生产服务、未运行项目数据库迁移、未触发 ERP 写入或外部发送。上线需先完成 025 迁移;当前 npm run dev/npm start 已含迁移与 schema readiness 门禁。

Promotion Candidates

  • 40-domain/business-rules.md / 20-architecture/data-flow.md:新增当前账号完整团号范围内的成功安排事件记录与五类回执汇总,明细加密独立存储。
  • AUTH-002 / 00-brief/success-criteria.md / 20-architecture/system-overview.md:强制删除仍删除任务所属运行记录,新增明确例外为用户授权保留的独立安排明细、历史与成功凭据;不可再笼统描述所有业务内容全部消失。用户已在本会话明确同意此例外。
  • 30-worklog/current-state.md:新 schema readiness 为 025,历史成功按账号延迟补入,旧回执不回写;插件仍为 0.5.185。本 Feature 未改 canonical 快照。