Explorar o código

docs: record verified legacy review transfer reconciliation

彭峰 hai 8 horas
pai
achega
68b65244c6

+ 48 - 0
docs/operations/legacy-review-transfer-reconciliation-2026-11-02.md

@@ -0,0 +1,48 @@
+# 旧系统复习转交定向核对 · 2026-11-02
+
+## 问题与原因
+
+用户报告单名学员在旧系统切换过复习老师,新系统缺少接手老师的任务和复习收入。实时读取旧系统 `content_list`,以同一学员、业务编号、来源学习记录、预约和计划日期逐条比对,确认两个系统都保存了 300 条任务,问题是已有记录的归属和完成状态滞后,而非任务整批缺失。
+
+- 29 条旧系统已转交任务仍保留原老师,其中 16 条在旧系统已完成、13 条尚未完成。
+- 另有 16 条原老师的已完成任务仍显示未完成。
+- 另外 2 条任务已有新系统收入凭据,但旧系统返回不同完成时间,保留新系统凭据与完成时间。
+
+47 条差异均有同步冲突记录:26 条因「保留奖励凭据或复习身份」被拦截;21 条因「新系统已有修改、版本变化或来源不可确认」被拦截。直连同步明确禁止自动覆盖 `plid` 等复习身份字段,且无可信基线、更新时间变化的行亦不会自动刷新。该保护避免覆盖新系统操作,但旧系统转交须经过单独核对才能写入,不能把有保留冲突的批次回执理解为所有字段已一致。
+
+此外,2026-11-01 核查记录显示当天按用户要求停用夜间同步,当天新完成状态未由夜间任务补入。本次修复未操作调度、未启动全量同步;收尾只读检查已显示调度为 enabled,因此不把前一天的停用记录当作当前停用状态。
+
+## 定向修复
+
+执行前保存私有快照,再核对当前旧接口来源,确认无有效同步租约。先在生产事务中完整试算并回滚,逐项确认回滚后任务、计薪、核定、账户、工资单、其他学员及冲突均未改变,再正式执行。
+
+正式事务仅写入已核实的 45 条未完成、无计薪凭据、无新系统转交版本的旧来源任务:
+
+- 更新 29 条复习老师归属,增加转交版本和逐任务审计,防止页面旧快照回退。
+- 同时补齐其中 16 条完成状态,另补齐原老师 16 条完成状态;保留旧系统实际提供的完成时间。
+- 使用现有触发器生成 32 条零元历史凭据,再调用既有历史核定函数。历史实际操作账号仍记为未知,不将绑定老师或执行管理员冒充为实际完成者。
+- 已核实来源课均为 60 分钟,计划当天完成计 1 元;3 条逾期完成为零元。
+- 保存审计及最新同步基线;仅将本次已核实修复的 45 条同步冲突标为已解决。2 条已有凭据的时间差异继续保留。
+- 记录幂等执行回执,复跑返回已执行结果,不再次改任务或计薪。
+
+| 归属 | 月份 | 新增计薪条数 | 新增收入 |
+| --- | --- | ---: | ---: |
+| 接手老师 | 2026-10 | 14 | ¥14.00 |
+| 接手老师 | 2026-11 | 2 | ¥2.00 |
+| 原老师 | 2026-09 | 2 | ¥2.00 |
+| 原老师 | 2026-10 | 11 | ¥11.00 |
+| 合计 | — | 29 | ¥29.00 |
+
+另 3 条原老师的 10 月逾期任务核定不计薪。本次只补收入凭据,没有发放工资或刷新已有工资单,没有放开全局同步保护。
+
+## 验证
+
+- 300 条任务逐项回读,298 条的九个业务字段与旧系统一致;剩余 2 条仅完成时间不同,原有计薪凭据完整保留。
+- 接手老师名下 29 条任务,16 条已完成、13 条未完成;管理端真实 `ops/payroll/review-rewards` 接口回读,10 月 14 元、11 月 2 元,均显示「待结算」。
+- 本次新增 32 条凭据,其中 29 条可计薪、3 条逾期不计薪,计薪键唯一。
+- 原有 255 条收入原始凭据、59 条历史核定逐条一致;已有工资批次和明细、所有账户及其他学员任务均与执行前一致。
+- 正式操作再次执行返回 `alreadyApplied=true`,没有新增任务、凭据或收入。
+- 抗遗忘收入、计薪规则、旧接口拉取、转交访问及课次转交共 38 项相关回归测试通过。
+- 本次为数据纠正,无前后端代码或函数发布。浏览器及真机页面未验收;生产数据库和管理接口均已验收。
+
+私有审计目录:`/Users/mac/.local/state/xiaoshu/cloud-releases/2026-11-02-zeng-review/`。保存新旧来源、修复计划、执行前后快照、回滚试算、执行回执及接口核验结果。生产逐条数据及账号身份不提交 Git。