Install
openclaw skills install @chenqg618/courier-settlement-check-free网点运费结算单与代收货款明细表逐项核对(运费复算、代收货款扣减与应结金额复算、计费重量低于实际重量、同一运单号重复行、关键字段空缺),每条结论引用原文行号与运单号。本免费版执行引擎声明的 6 项免费检查。触发词包括 网点运费结算、代收货款对账、代收手续费、应结金额、网点与总部对账。
openclaw skills install @chenqg618/courier-settlement-check-free完全本地运行:引擎已经打包在本技能里(
engine/目录)。 核对过程不需要联网、不需要 API Key、没有调用次数上限。
谁会在什么时候用:快递 / 快运网络里网点的对账岗、财务,以及总部的结算岗, 在每月网点与总部结算(月结)时把这张网点运费结算单与代收货款明细表核一遍才能划款。 运费少收、代收货款少缴、重复导单,正是网点与总部每月都要吵的几件事。
这张表会逐项核对什么:
每条结论都带原文行号与网点 / 运单号,可被第三方用同一口径复算; 材料不齐时不给结论,会明确列出还缺什么。
(检查项由引擎的 CHECKS_GIVEN 导出,跑 --sample 会打印实际执行了哪些;
本版本不包含的 5 项列在 CHECKS_WITHHELD 里,不做也不假装做。)
数字会做归一化:1,240.00、千分位、带货币符号的写法、(1240)(会计负数)、1% 都被认成同一个口径
(1% 折成 0.01;费率列写 0.01 或 1% 都行,写 1 表示 100%,本工具不会替你猜)。
表头里的空格与括号会被忽略,所以「计费重量(kg)」和「计费重量」都认。
node scripts/run.mjs --sample # 先看样例
node scripts/run.mjs --input 你的材料.json # 跑自己的材料
node scripts/run.mjs --input 你的材料.json --json
入参就是含表头的一张表({"text": "结算期间\t网点编码\t运单号\t…"}):
从 Excel 或快递系统结算导出里直接复制成文本(Tab 分隔最稳)贴进去即可。
表头缺列会明确告诉你缺了哪一列;缺一列就不给结论,不会拿 0 替你假设"这笔没有代收货款"。
非代收货款运单请把「代收货款 / 代收手续费率 / 代收手续费 / 代收货款应缴」都填 0:
填 0 表示"确实没有",留空表示"不知道",这两者不能混。
| 码 | 含义 |
|---|---|
| 0 | 已执行检查 |
| 1 | 没给入参 |
| 3 | 材料不齐 —— 此时不给结论(既不说"对",也不说"错") |
| 4 | 入参文件读不到或无法解析 |
| 9 | 未预期错误 |
run.mjs --json(以及引擎 run() 返回值里的 result)的形状:
{
"status": "success",
"service_type": "COURIER_SETTLEMENT_CHECK",
"scope": {
"checks": [...], // 本次实际执行的检查项
"checks_not_run": [...], // 本版本未执行的检查项(= CHECKS_WITHHELD)
"rows": 6, "periods": 2, "sites": 2,
"totals_row": true, "totals_rows": 1,
"charge_weight_total": 71.9, "freight_total": 282.28,
"cod_amount_total": 2800, "cod_remit_total": 2772, "payable_total": -2510.22,
"tolerance": 0.01, "executed_locally": true, "network_used": false
},
"findings": [
{ "level": "P0", "category": "运费复算不符", "line": 2, "amount": 4,
"message": "网点「SH-A 沪东网点」运单 YD2026050001 的运费是 50.00,按 计费重量 12.5 × 计费单价 4 = 50.00,相差 0.00。",
"advice": "…" }
],
"summary": { "rows": 6, "periods": 2, "sites": 2, "total": 0, "p0": 0, "p1": 0, "p2": 0,
"verdict": "NO_ISSUE_FOUND", "omitted": 0 },
"checks_executed": [...], "checks_withheld": [...],
"checks_given": [...], "checks_out_of_scope": [...],
"note": "…", "disclaimer": "…"
}
findings[].line 是原文行号(含表头,从 1 起),level 是 P0(金额算错 / 缺关键格)或 P1(口径可疑);amount 是这条结论涉及的金额(元),0 表示这条不是金额差;{"status": "insufficient_input", "missing": [...], "advice": "…"},
没有 result,因此不会有任何"未发现问题"的结论。代收货款 − 代收手续费 ≠ 代收货款应缴)。0.01 或 1% 都认;写成 1 意思是 100%,
手续费会被算成"整笔代收货款",应结金额当场差出好几百。本工具不会替你猜你的意思。以下检查项不在本版本范围内,调用时也不会执行(列在引擎的 CHECKS_WITHHELD 里):
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准); 两档的差别就是上面这些,没有别的。
本免费版是完整可用的核心产出,本版本不包含下面这些项:
同名工具的完整档是另一个独立商品(条款与条件以它自己的商品页为准);两档的差别就是上面这些,没有别的。
本工具不做引擎 CHECKS_OUT_OF_SCOPE 里列的那些判断:单价该按什么合同档位、抛比(体积重)怎么取、
代收手续费率是否符合代收协议、代收货款是否真的收到并转付、回单是否齐全、账务与税额怎么处理
(那些以运价合同、代收协议、银行流水与业务凭证为准)。