期现套保管理系统 · 上线盘点对账方案
v1.0 / 2026-08-24

上线盘点对账方案

原则:上线后第一件事是盘点对账——新系统数据与历史台账(PTA.xlsx 全量)完全核对无误后,方可开始生产。对账不通过,不开始生产。

对账范围与基准

双侧数据源 + 冻结约定,保证「同一时点、同一口径」可比。
数据源说明
基准侧(期望值)PTA.xlsx 全量台账(28 sheet,11.3MB)8-21 13:39 与 5-6 全量导入同一母本;用独立工具从 Excel 原始 sheet 重新解析计算,不复用导入产物,避免「用导入结果验证导入」
被检侧(实际值)线上 MySQL + NoSQL(只读查询)contract / fix_record / roll_record / shipment / payment_record / invoice / 主数据 / users / departments
冻结约定对账期间线上库不写入当前为备案前冻结态;备案通过后若数据有变动,重跑三步工具刷新基线
覆盖范围:合同 1,597(采购+销售,六种 trade×mode 分组)、点价 1,612、移仓 251、发运 13,440、收付款 6,279、发票 52、四类主数据、用户/部门,以及系统独有的台账外资产(6 条合同、线上建账主数据、1b 演示资产)。

方法:六层检查框架

从粗到细,任何一层卡壳先闭环再进下一层。
层级检查内容典型手段
L1 行数级各表条数、状态分布(approved/closed)、缺价保真条数计数比对
L2 分组勾稽采购/销售 × 基差/月均价/一口价 六分组的笔数、数量、已点价量分组求和比对
L3 业务一致性基差合同 approved_quantity = Σ点价;移仓终态 base_contract;发运 ≤ 合同量;分品种敞口业务规则 SQL + Excel 重算敞口
L4 财务勾稽收付款金额合计与合同命中、发票进销、发运量、运费、点价量、移仓量、物流三形态金额/数量合计比对(容差 ±0.01)
L5 抽样逐字段随机抽 5 笔合同,8 个字段(方向/对手方/品种/计价/状态/基准合约/数量/已点价)逐字段核对逐字段 diff
L6 独有资产归因线上有、台账无的每一行都要有出处:台账外合同 6 条、线上建账主数据、1b 演示资产、NoSQL 用户部门逐条归因说明
独立性原则:基准侧解析口径与导入 ETL(import_full_gen.py v4)一致,但代码独立实现——同一套业务过滤规则(数量无效跳过、合同号去重、点价脏数据剔除、收款按「合同号+日期+对手方+金额」判重),两套代码各自跑出同一个数,才是真核对。

本次基线对账结果(2026-08-24,备案前冻结态)

55 项检查:53 项通过,2 项未通过(均已精确归因,非导入错误)。

核心勾稽(全部一致)

对象期望(Excel 重算)实际(线上)结果
合同总数(含台账外 6 条)1,597 = approved 164 + closed 1,4331,597一致
六分组(笔数/量/已点价)buy|basis 295/421,360.80/396,822.00 · sell|basis 554/636,758.72/575,705.25 · buy|month_avg 134/412,298.20/0 …6/6 一致
点价记录 / 缺价保真1,612 / 21,612 / 2一致
移仓记录 / 涉及合同251 / 终态 0 差异251 / 0 差异一致
发运单 / 轨迹 / 三形态13,440 / 13,440 / 7·26·13,40713,440 / 13,440 / 7·26·13,407一致
收付款(笔数/金额)付 2,691 / ¥4,533,595,973.09 · 收 3,588 / ¥4,615,027,386.93同左分毫不差
发票 / 运费 / 点价量 / 移仓量52 张 · ¥22,304,241.21 · 972,527.25 吨 · 167,789.29 吨同左(移仓量 0.01 舍入差)一致
敞口(PTA / MEG 净额)PTA 净 -45,480.60(台账 -48,480.60 + 台账外逸普3000 +3,000)· MEG 净 -2,465.23同左精确闭环
抽样 5 笔 × 8 字段含移仓终态覆盖口径(base_contract 取移仓后合约)5/5 一致

2 项待修复(数据卫生,净额影响 0)建议 SQL 处置

#问题建议处置
1收款 2 行(SF-20260227-007 +6,420 / SF-20260313-014 -6,420,南京星之辉运输)contract_id=990 为幽灵引用——该合同因数量无效导入时被跳过未入库contract_id 置 NULL
2付款 2 行(PF-20250331-004 ¥785,286.09 / PF-20250415-001 ¥911,250.00)引用合同「6680XS2405-0010-11(ZTXS-25-4月)逸普3000」在库 id=44,但导入映射缺失导致 contract_id 为 NULL补 contract_id = 44

2 项待业务确认(台账固有事实,非系统错误)老板确认

#合同合同量实发超发
11030PET-2404-001(0.64-0.65含0.64)QP844.00878.40+34.40 吨
26680XS2407-0056(ZTXS-24-7月-切片)33.0033.60+0.60 吨
确认口径:若属「补充协议未入台账」,业务侧补录变更记录后重跑对账;若属容许超装,在系统中登记备注即可闭环。

差异处理流程

发现差异 → 归因 → 分级处置 → 修复 → 复跑闭环。
  1. 发现:比对脚本输出未通过项(期望值 vs 实际值)。
  2. 归因:逐项定位到三类之一——数据缺陷(导入映射/脏数据)、台账固有事实(历史业务即如此)、口径容差(舍入/求和方式)。
  3. 分级处置:数据缺陷 → 修复 SQL(走变更流程、老板批准后执行);台账固有事实 → 业务确认留痕;容差 → 记入已知容差清单并在文档中修正基线。
  4. 复跑:修复后重跑三步工具,直至「检查 N 项:通过 N,未通过 0,待处置 0」。
  5. 留痕:每次对账的 expected/actual/result JSON + HTML 报告存档于 tmp-verify,可追溯、可复现。

放行标准(Go / No-Go)

以下全部打勾,才允许开始生产。
红线:任何一项核心勾稽(行数/分组/金额/敞口)不闭环,不得开始生产。

周度对账机制(常态化)

基线对账放行后转入常态化:每周一 15:30 定时任务自动执行,线上线下持续核对。
要素规则
频率每周一 15:30(收盘结算数据落定后),WorkBuddy 定时任务自动触发
范围六层框架全量核心勾稽 + 本周增量逐条核对(合同/点价/移仓/发运/收付款/发票新增记录,按上次对账日之后 created_at 增量)
基线PTA.xlsx 无更新(冻结期)→ 复用既有基线;有更新 → 独立重算,口径不得改动
产出reconcile-weekly-YYYYMMDD.html 上传 Hosting,云端链接汇报老板,结论先行(通过 / 待处置 N 项)
升级规则核心勾稽不闭环 → 报告红色警示 + 当周处置;连续两周异常 → 暂停生产写入排查,查明原因并复跑通过后恢复
留痕每次对账结果同步任务文档、断点指南、memory 日志三处
红线:周度对账对线上库只读;发现的修复项一律先列清单请示老板批准,批准后单独执行并留痕,绝不顺手改库。

工具与复现

  1. 独立重算:python reconcile_full_gen.py → 从 PTA.xlsx 独立重算,产出 reconcile-expected.json(含分组勾稽、敞口、抽样、质量备注)
  2. 线上取数:只读 SQL 查询线上库(合同状态/分组/点价/移仓/发运/收付款/发票/主数据/敞口/一致性/抽样/NoSQL 计数),结果手工落盘 reconcile-actual.json
  3. 比对出报告:python reconcile_compare.py "报告副标题" → 产出 reconcile-result.json + reconcile-baseline-report.html(结论卡片 + 逐项明细表)
存放位置:工具与三件套均在 tmp-verify/;线上取数一律只读,修复动作单独走变更流程,绝不在对账脚本里顺手改库。

角色分工

角色职责
老板放行决策人:审批 2 项修复 SQL、确认超发运口径、签字放行生产
小猪工具维护与执行:三步对账、差异归因、报告归档、复跑闭环;周一 15:30 周度对账常态化执行
财务(王劲宁侧)复核 L4 财务勾稽结果(收付款/发票金额与台账账面核对)
业务主管确认超发运等台账固有事实,必要时补录变更记录
南京盛庆和化工有限公司 · 盛庆和一体化管理平台上线盘点对账方案 v1.1(新增周度常态化机制) · 编制:小猪 · 2026-08-24