User Manual · 使用说明书

小乔运费
结算系统v 1 . 0 9

一份写给运营、财务、客服同事的操作指南。
从安装激活、客户设置,到单条 / 批量运费计算、高级拉均重合同,再到结果诊断排错——
没有晦涩术语,只有一步步怎么做。

1.09
Established MMXXVI
小 乔 运 费
F u n c t i o n s  ·  功 能 全 景

桌面端的 6 个核心模块

单条运费计算

填目的省/市、实际重量、体积重量,选客户——立刻显示阶梯价 vs 拉均重价的并排对比。

01

批量运费测算

一次导入几千到几万条订单,表头智能匹配 + 进度条 + 导出 CSV,含 17 列标准输出 + 4 列诊断。

02

客户规则

客户清单、默认运费模板绑定、折扣率、进位模式、客户级拉均重合同优先级。

03

运费模板

分区(Zone)、阶梯(首重/续重 0.1kg 精度)、燃油、地区加价、进位模式 5 选 1。

04

拉均重合同

高级轻小件合同:min_tickets 票数门槛、约定基准 KG、加价封顶 KG、客户级/模板级双绑定。

05

系统设置

授权查看 / 机器码采集、全局性能、快递模板指纹识别开关、历史数据清理。

06
01I N S T A L L
Setup  ·  第一步 · 把小乔请进你的电脑

安装与激活 — 三步完成,耗时 60 秒

安装包只需要一个文件:xiaoqiao_freight_v1.09.app(约 180 MB)。不需要额外装数据库或 Java 环境。

首次运行会在 ~/Library/Application Support/杭州喵喵至家网络有限公司/小乔运费结算/ 自动创建规则库 rules.db,放心一切数据都在本地。

  1. 拖到「应用程序」文件夹 收到分发的 .dmg 或 .app 文件夹后,双击挂载 → 把图标拖到 Applications。
    如果系统提示「来自身份不明的开发者」,请右键 → 打开 → 再确认一次(macOS 12+ Gatekeeper 机制)。
    Finder → 应用程序 → xiaoqiao_freight_v1.09
  2. 启动,查看机器码并发送给销售 首次启动后会弹出「未激活」提示。点击 左下的「采集机器码」按钮 → 复制字符串 → 发给销售 / 发行商。
    同一台 Mac 机器码唯一不变;换硬件(主板/网卡)会变化,需要重新发授权。
    系统设置 → 授权 → 复制机器码
  3. 输入授权码(或先开启 7 天试用) 收到授权码后粘贴 → 激活。若未收到,可先「启用试用版 7 天」——7 天内可正常使用,到期后需要购买永久激活。 激活成功后窗口会显示「正式版」字样
系统设置 · 授 权 · Act i vat i on
MAC-8F4A · D31C · 725E · 6B02 · 9471
正式版 · 永久授权(当前:试用版剩余 6 天)
02C U S T O M E R S
Customer Rule  ·  第二步 · 把客户纳入到规则体系里

新建客户、绑定默认运费模板、折扣率 — 一切计算的起点

小乔的所有运费都是「先找客户 → 取客户的默认运费模板 → 查阶梯 → 叠加折扣 / 加价」。
所以第一步一定是:把你的客户先录入客户规则里,至少填好 客户名称 + 默认运费模板。

高级用户还可以给客户 单独绑定拉均重合同(优先于模板级绑定,见 Step 05)。

  1. 打开「客户规则」 主界面左栏 → 第 3 个图标「客户规则」,或按快捷键 ⌘2。列表会显示已有客户及其默认模板、折扣、绑定的拉均重合同。 快捷键 ⌘2 · Customer
  2. 点「新建客户」或「编辑」 新建时最关键的 3 项:客户名称(填 Excel 里常用的显示名,比如"品牌客户A")、默认运费模板(下拉选一张已配置的运费模板)、折扣率(默认 1.00 = 不打折;填 0.92 = 92 折)。 编辑客户时 ↓ 所有字段都会自动回填
  3. 选进位模式 + 选拉均重合同(如有) 进位模式 5 选 1:① 四舍五入 1kg ② 向上取整 1kg ③ 小数舍掉(整 kg) ④ 0.1kg 四舍五入 ⑤ 0.1kg 向上进。
    如果这个客户有专属的拉均重合同,在「拉均重合同」下拉里选上——客户级绑定优先级高于模板级。
    保存 · Save
客户规则 · 编辑客户 · Ed i t   Custome r
品牌客户A(示例客户,真实客户名已打码)
标准快递模板 · 华东三区 · 2026.07
0.92  (92 折)
④ 按 0.1 kg 向上进位
contract_demo_25q2  ·  客户A Q2 轻小件一口价
03S I N G L E
One-Click Calc  ·  第三步 · 先算一条,熟悉一下手感

单条运费计算 — 并排对比:阶梯价 vs 拉均重一口价

在批量导入前,先拿一条订单走一遍流程:选客户 → 填目的省/市 → 实际/体积重量 → 点「开始计算」。

计算后会同时给出「阶梯运费」和「拉均重合同运费」两张并排卡,谁更便宜一眼看出——绿色铜金色的那张就是最终采用价。

STANDARD · 阶梯运费(未采用)
¥8.00
阶梯模板:标准快递模板 · 华东 · zone1 · 首重 1kg 6 + 续重 2/kg
计费重量
0.50 kg
基础运费
¥ 6.00
燃油附加费
0.00(当前模板配置 0%)
地区加价
¥ 1.00(上海市 + 1 元 / 票)
其他附加费
¥ 1.00
客户折扣率
0.92 折
AVG WEIGHT · 拉均重一口价(最终采用 ✓)
¥2.94
合同 contract_demo_25q2 · 基础费 2.94 封顶 · 本票相比阶梯节省 ¥ 5.06
是否命中池
是
池平均重量
0.24 kg
进池票数
86 / 50 票阈值
约定基准 / 封顶
0.3 kg  /  1.0 kg
加价封顶
本票 0.24 kg < 基准 0.3,不额外加价
绑定来源
客户级绑定(品牌客户A → contract_demo_25q2)
04B A T C H
Batch Import & Export  ·  第四步 · 几千几万单一键跑完

批量运费计算 — 导入 CSV → 自动映射 → 74% 进度条 → 导出

Excel 另存 CSV(UTF-8 with BOM 兼容性最好),然后主界面 → 第 2 个标签「批量计算」 → 点左上角「选择文件」或直接拖进去。

支持的最少 4 列:客户编号 / 目的省份 / 目的城市 / 实际重量(KG);其他列可选,缺省用默认值。

正在计算 · 8 / 8 列已映射 · 拉均重:启用 74%
订单号 客户编号 省 / 市 计费重量 基础运费 总运费 币种 命中池 采用拉价
DEMO·7XXX·8XXX·A01品牌客户A上海 · 上海市 0.50 ¥ 2.94 ¥ 4.49 CNY是是
DEMO·7XXX·8XXX·A02品牌客户A上海 · 上海市 0.40 ¥ 2.94 ¥ 4.49 CNY是是
DEMO·7XXX·8XXX·A03品牌客户A上海 · 上海市 0.30 ¥ 2.94 ¥ 4.49 CNY是是
DEMO·7XXX·8XXX·A04品牌客户A北京 · 北京市 0.30 ¥ 2.94 ¥ 4.49 CNY是是
DEMO·7XXX·8XXX·A05品牌客户A上海 · 上海市 0.10 ¥ 2.94 ¥ 4.49 CNY是是
DEMO·7XXX·8XXX·A06品牌客户A北京 · 北京市 0.10 ¥ 2.94 ¥ 4.49 CNY是是
DEMO·7XXX·8XXX·A07品牌客户A北京 · 北京市 0.30 ¥ 2.94 ¥ 4.49 CNY是是
DEMO·7XXX·8XXX·A08品牌客户A上海 · 上海市 0.20 ¥ 2.94 ¥ 4.49 CNY是是
  1. 启用/关闭「拉均重合同」总开关 批量计算界面顶部有「启用拉均重合同定价」复选框,默认关闭(灰色 = 走纯阶梯),勾选后才会在结果中输出拉均重相关 9 列 + 4 列诊断。 建议:没签拉均重合同就不要勾,导出列会更干净。
  2. 自动映射表头(不对的可以手动改) 系统会自动把常见标题映射到 7 个标准列:订单号 / 客户编号 / 目的省份 / 目的城市 / 实际重量 KG / 体积重量 KG / 计费重量 KG。
    如果映射错了,点击下拉手动选正确的列名即可。
    列名映射会记住上次选择
  3. 点「开始计算」→ 等进度条 → 导出 进度条 100% 后会弹出「保存位置」对话框,默认文件名:小乔运费结果_YYYYMMDD_HHMM.csv。
    导出的 CSV 是 UTF-8 with BOM,Excel/WPS 双击打开中文不会乱码。
    ⌘E 一键导出 · Export
05A V G   W E I G H T
Advanced · 第五步 · 0.x kg 轻小件的定价利器

拉均重合同定价 — 双绑定、两方案、加封顶

拉均重是一种「先把同一批 0.x kg 轻小件放一个池子里 → 算池平均重量 → 按平均重量给一口价」的合同模式。
通常比阶梯首重 6 元便宜 50%~70%,非常适合电商美妆/小样/药妆。

拉均重决策流程 · D e c i s i o n   T r e e

每一条订单都会依次跑过下面这 5 个节点,结果写入导出表最后 4 列「诊断」。

① 找到绑定合同? 客户级 → 模板级 → 未绑定 未绑定合同 fallback阶梯 NO ② 命中进池资格? 方案A分区 / 方案B白名单 不命中池 走阶梯价 NO YES ③ 进池票数 ≥ min_tickets? 阈值默认 50,合同里可改 YES NO · 够了就不用 采 用 ✓ 基础费 + 封顶 采用拉均重价 列:是否采用=是 列:诊断_最终=是 YES
  1. 绑定方式:客户级 / 模板级(客户级优先) 编辑客户时 → 「拉均重合同」下拉 = 客户级绑定;
    编辑拉均重合同时 → 「绑定运费模板」字段 = 模板级绑定(所有使用该模板的客户自动生效)。
    同一客户两者都配,客户级赢。
    优先级:客户级 > 模板级
  2. 进池方案 A / B 二选一 方案 A (90% 场景推荐):复用运费模板的分区组(Zone1/Zone2/…),再勾选哪些分区参与拉均重、哪些省份要排除(比如"Z1 里排除上海")。
    方案 B:自定义省白名单(比如江苏/浙江/上海 + 北京 + 广东,完全和模板分区无关,适合跨快递模板拉齐)。
    新建合同时单选方案 A 或 B,一旦保存不能改方案
  3. 设置 min_tickets / 约定基准 / 加价封顶 min_tickets = 50:本批进池的单票 ≥ 50 票才启用拉价(不够就算命中池,最后也走阶梯)。
    约定基准 KG = 0.3:池平均 ≤ 0.3 都按基准一口价。
    加价封顶 KG = 1.0:池平均若大于基准,每多 0.1kg 加 step_fee;但最多加到 1.0kg 那档为止。
    建议 0.x kg 轻小件:min 50 / 基准 0.3 / 封顶 1.0
05½
P R I O R I T Y
Rule Priority · 第五步半 · 所有规则的生效顺序

规则优先级全景 — 一张图看懂「先算谁、谁覆盖谁、谁和谁叠加」

小乔是一个「层层接力」的计算引擎:上面一层的输出是下面一层的输入,越靠下的层越"有最终话语权"(覆盖上层),而 燃油 / 地区 / 自定义策略 这三层永远是累加,不会互相覆盖。

碰到"为什么算出来和我想的不一样"?对照下面 10 层编号一条一条过,99% 的情况都能定位。

总览 · 10 层决策流(横向从左到右)

方框 = 取某张表配置;带 ⚖️ = "冲突时谁赢";带 Σ = "累加而不是覆盖";最右边铜金大框 = 最终总运费。

01 计费重量 02 客户匹配 ⚖️ 03 模板参数⚖️ 04 分区匹配 05 阶梯基础价 06 拉均重绑定⚖️ 07 进池+票数⚖️ 08 最终基础价⚖️ 09 燃油 Σ 10 地区 Σ 11 自定义 Σ 最终 · 总运费 ¥08+09+10+11
01
计费重量 — 每一票的「起点」
冲突谁赢 ⚖️实际重量 vs 体积重量,取较大者(抛比越大体积重越容易赢)。
叠加/覆盖独立输出,不覆盖任何值;只在 第 03 步进位模式 之后再取整一次。
兜底默认抛比系数兜底 6000(体积 = L×W×H / 抛比)。
02
客户匹配 — 找这张订单属于谁
冲突谁赢 ⚖️CSV「客户编号」同时匹配 ①客户内部ID 和 ②客户显示名(中文名)时,①内部ID精确匹配赢。
叠加/覆盖匹配成功 → 覆盖为该客户的模板/进位/折扣;匹配失败 → 走第 03 步兜底,不报错。
兜底默认客户找不到 → 默认运费模板 = zto_standard(中通标准);折扣 = 1.00;进位=ceil_0_1kg。
03
模板三参数 — 进位模式 · 续重单位 · 抛比
冲突谁赢 ⚖️每个参数独立竞争,都是客户级 > 模板级 > 系统兜底。
例:进位 = COALESCE(客户.进位, 模板.进位, 'ceil_0_1kg')
叠加/覆盖每个参数独立取一个最终有效值,不会再加多个。
兜底默认① 进位:ceil_0_1kg(0.1kg 向上进);② 续重单位:1.0 kg;③ 抛比系数:6000。
04
分区匹配 — 这票属于 Zone1 / Zone2 / Zone3 …
冲突谁赢 ⚖️省规范化后(去掉"省/市/自治区"后缀)精确匹配;一张票只属于一个分区;不存在多分区。
叠加/覆盖分区确定后,第 05 步阶梯就从该分区取阶梯表;不存在多分区叠加。
兜底默认该省在模板的分区表里查不到 → group_code=NULL → 第 05 步基础价 = 0(不参与阶梯)。
05
阶梯基础价 — 首重价 + 续重 × ceil((计费重 − 首重)/续重单位)
冲突谁赢 ⚖️每条阶梯有 sort_order(越靠后阶梯越重)。计费重量落在多条阶梯区间时,取 sort_order 最大的那条阶梯(tier_max)。
叠加/覆盖本层输出一个数字 base_fee__tier,是下面所有加减的"起点"。
兜底默认① 计费重 ≤ 0 → 取模板的 default_no_weight_fee(0 或某个小额);② 超出最高阶梯 → 按 tier_max.最高价 + 续重线性延长。
06
拉均重 — 合同绑定 — 这张订单能用哪份拉均重合同?
冲突谁赢 ⚖️(三层) 第①层:客户级绑定 > 模板级绑定(同一客户两者都配 → 永远取客户级)。
第②层:同一绑定(同 template_id / 同客户)下有多份合同 → version 号大的赢(GROUP BY MAX(version))。
第③层:生效日窗口:今天在 effective_from ~ effective_to 之间的才算 active;过期/未到效期的不算。
叠加/覆盖不是叠加,是"取一份最佳合同 + 它的 base_fee / min_tickets / 封顶kg";取不到就跳过拉均重(不影响阶梯)。
兜底默认没绑定 → 拉均重跳整段跳过;参数兜底:min_tickets=50、基准 0.3 kg、封顶 1.0 kg、基础价 2.7 元(几乎永远不会走到这层,建议手动配置)。
07
拉均重 — 进池资格 + 票数门槛 — 命中池 × 够票数 × 超封顶?三关都过才采用
冲突谁赢 ⚖️(三关) ① 进池资格:方案A=「勾选分区」AND「该省不在排除名单」;方案B=「该省在自定义白名单」;方案A/B 互斥(合同里二选一)。
② 票数门槛:池内票数 ≥ min_tickets 才进入下一关;批量是本批 CSV 内算,单条是客户全局统计。
③ over_cap_mode=1 时还得"池平均 ≤ 封顶 kg";0 时忽略封顶。
叠加/覆盖三关都过:lajz_used=TRUE,算一个拉价 per_ticket;否则 lajz_used=FALSE,最终还是用阶梯 base_fee__tier。
兜底默认① 合同没勾选任一分组 → 方案A视为「全部开放」;② 方案B白名单空 → 一票都进不了(很常见的坑)。
08
最终基础价 — 阶梯 vs 拉价,只留一个做 base_fee
冲突谁赢 ⚖️只有同时满足 ① 总开关「启用拉均重」勾了 并且 ② lajz_used=TRUE 时,才用 lajz_fee_per_ticket 替换 base_fee;其余所有情况一律保留阶梯价 base_fee__tier。
叠加/覆盖是整项替换(二选一)。替换后,lajz_save_vs_tier = 阶梯 − 拉价(正数=节省,负数=反超)。
兜底默认总开关没勾 → lajz_used 无论真假都无视,走阶梯(最常见的"我勾了吗?"排错入口)。
09
燃油附加费 Σ 在最终基础价上按百分比加
冲突谁赢 ⚖️先取「本订单 template_id 精确匹配」的燃油;取不出 → 再取通配 template_id='*' 的全局燃油;精确 > 通配 *。同一 template_id 有多条生效记录时 → effective_date 最大的赢(最新的一条)。
叠加/覆盖只取一条最佳燃油 rate;结果 = base_fee × rate(是一个金额,叠加到总运费里)。
兜底默认没配任何燃油 → 0 元。
10
地区加价 Σ 在上面再叠加一笔偏远/城市附加
冲突谁赢 ⚖️命中优先级:精确省+精确市+精确区 > 省+市 > 只市 > 只省;匹配上的记录每条都 SUM 累加(不是只取一条!比如你配了"上海 + 上海市 + 浦东"和 "上海全市 +2 元",浦东订单会两条都命中并相加)。
同样精确模板命中优先,取不到 → 取 template_id='*' 全局。
叠加/覆盖纯 Σ 累加。同一个省/市重复配多条 → 全加。
兜底默认没配 → 0 元。
11
自定义策略加价 Σ 最后一笔,fixed / % / per_weight / per_volume 四种
冲突谁赢 ⚖️命中条件越严格越"生效",但命中的每一条都 SUM 累加(同 10)。
scope 优先级从宽到严:global < template < province < customer,每条生效期+重量区间单独过,不冲突。
叠加/覆盖纯 Σ 累加:fixed 加一笔;percentage 按 base_fee 乘;per_weight 乘计费重;per_volume 乘(体积重 or 计费重兜底)。
兜底默认策略表全空 → 0 元。
Σ
最终 · 总运费
base_fee(08)  +  燃油(09)  +  地区(10)  +  自定义(11)
💡 注意:客户折扣率作用在 最外层 SELECT(四舍五入后 × 折扣再四舍五入);进位模式只作用于计费重量,不直接作用于金额。金额统一 ROUND(..., 2)。

常见冲突 · 四问四答

Q1我同时给「客户A」配了客户级拉均重合同 + 给「A 的模板」配了模板级合同,两份内容不一样,最后走哪一份?
客户级赢,100% 不看模板级那份。 这是硬编码的 COALESCE(客户级子查询, 模板级子查询),左边客户级只要有返回就把右边短路。所以最推荐的绑定方式就是:专属客户就绑客户级;通用大模板就绑模板级,各管各的不要重复。
Q2燃油附加费同时配了「template_id=圆通V3 的 12%」和「template_id=* 全局 8%」,同一票是加 12% 还是加 20%?
只加 12%。燃油逻辑是「精确匹配 + 最新生效日」取一条,取不到才 fallback 到通配 '*',不会两条一起加(和地区加价 / 自定义策略的"SUM 多条"刚好相反,这是设计差异,很容易踩坑)。
Q3地区加价里我配了「江苏省」+3 元,又配了「江苏省 + 苏州市」+5 元。苏州那一票会被加 8 元吗?
是的,两条全中,合计 +8 元。地区加价的设计是"命中的每条规则都 SUM 相加"。想让苏州走 +5、江苏其他市走 +3,正确配法是:第一条规则明确排除苏州(地区加价里加 city='苏州' 的反向规则 −3,或者干脆把江苏拆成「苏州 5 元」「江苏其他 3 元」两条独立规则)。
Q4拉均重价格比阶梯贵(出现负数「节省」),系统会自动选便宜的那份吗?
不会! 系统严格按优先级 08 的规则走:只要总开关勾了 + lajz_used=TRUE 就用拉价,即使拉价比阶梯贵也坚持采用(lajz_save_vs_tier 会显示负数,一眼看出)。这是因为拉均重合同本身是"约定价格",不管划算不划算都要履约。
所以运营配合同前务必先拿典型订单跑单条对比,确认拉价真的更便宜再签约。
06A D V A N C E D
Customization · 第六步 · 按你公司的玩法定制

自定义策略 / 燃油加价 / 模板指纹 — 进阶三件套

Tip · per weight / per ticket

自定义加价策略

3 层自定义:① 按 每 kg 单价;② 按 每票;③ 按 每 m³(体积)。
同一张模板支持多条叠加,按顺序依次加在基础运费上。
适用于:大促附加费、偏远地区附加费、冷链附加费等场景。

Tip · fuel & region

燃油 / 地区加价

燃油附加费支持 % / 每票 / 每 kg 三种写法;
地区加价按「省份+城市」匹配,不填城市=全省生效,支持批量导入 50 条城市规则。
优先级:地区加价 → 燃油 → 自定义策略。

Tip · fingerprints 8 家

快递模板指纹识别

内置 8 家主流快递(圆通/中通/申通/韵达/极兔/京东/顺丰/邮政EMS)的模板指纹规则。
把客户发来的运费表 Excel 拖入「模板指纹」对话框,系统会按"首重列、续重列、省份布局"自动识别并生成模板。
支持自定义模板覆盖内置(下拉选「自定义」→ 逐条配置)。

07D I A G N O S E
FAQ & Diagnose · 第七步 · 结果不对?先读这里

诊断速查 & 常见问题 — 8 条 FAQ + 17 列字段含义

Q1批量算出来的结果里,「是否命中拉均重池」全部是 "否",拉均重开关明明勾了?
90% 的情况是下面 3 个原因,按顺序排查:
① 客户没匹配上:订单里「客户编号」列填的是中文名(如「品牌客户A」),但客户规则里没建这个客户(或客户名拼错)。去「客户规则」里确认客户名称是否一致。
② 没有绑定拉均重合同:合同建了,但没有绑到客户(编辑客户 → 拉均重合同下拉),也没有绑到运费模板(编辑拉均重合同 → 绑定运费模板字段)。
③ 进池资格没通过:比如方案 A 勾选了 Zone2,但订单省/市实际落 Zone1。打开最后 4 列「诊断」,看「诊断_是否命中拉均重池」的 NOTES。
+
Q2明明命中拉均重池了,为什么最后还是"是否采用拉均重价 = 否"?
拉均重有个票数门槛 min_tickets(合同里配,默认 50),本批进池的单票数量没达到就不会采用——这是为了防止池内票太少、平均重量不稳定。
此时「诊断_有效进池票数」列会显示具体数字,把阈值调小、或者凑够单量批次一起算即可。
+
Q3导出的 CSV 用 Excel 打开中文是乱码?
小乔导出的是标准 UTF-8 with BOM 格式,新版 Excel 2019/365 双击打开没问题。
若是旧版 Excel 或 WPS 乱码,请:Excel → 数据 → 从文本/CSV 导入 → 选择 UTF-8 编码 → 分隔符选逗号。
或者在导出对话框中选另一种导出格式:「CSV (GBK 兼容 Excel 2016 及以下)」。
+
Q4.app 打开提示「已损坏」「无法打开」?
macOS Gatekeeper 机制。两种方式任选其一:
① 右键 app → 打开 → 再点一次「打开」即可;
② 或「系统设置 → 隐私与安全性 → 往下滑点「仍要打开」。
若仍失败,请打开 终端,执行:xattr -d com.apple.quarantine /Applications/xiaoqiao_freight_v1.09.app
+
Q5换了一台电脑,授权码还能用吗?
不能。授权码和 4 维机器码(主板序列号 + MAC 地址 + 系统UUID + 硬盘序列号)绑定。
换电脑/换主板/换网卡都会变机器码,需要把新机器码发给销售/发行商做一次"换机",旧码会自动失效。
+
Q6同一客户同一张订单,单条算和批量算价格不一样?
99% 是拉均重的原因。单条计算时「进池票数」按当前客户全局统计;批量计算时「进池票数」按本批 CSV 内同客户且命中池的票数统计。
两者票量不一样,自然"是否采用拉价"结果会不同。这是正确设计:拉均重看的是同一批的"池子"。
+
Q7客户规则里「编辑客户」点进去客户名称是空?
这是 v1.07 / v1.08 的一个小 bug(两阶段查找时漏掉 q.exec()),v1.09 已修复。请把本说明书的 v1.09.app 覆盖安装即可。
原有数据不会丢失——规则库存在 ~/Library/Application Support/…/rules.db,独立于 .app 存在。
+
Q8如何清理历史结果 / 恢复出厂 / 迁移到新 Mac?
所有关键数据都在:/Users/你的用户名/Library/Application Support/杭州喵喵至家网络有限公司/小乔运费结算/
目录里的 rules.db 即规则库(客户/模板/拉均重合同),License.dat + License_2.dat 即授权信息。
✦ 迁移:把整个「小乔运费结算」目录拷贝到新 Mac 对应路径即可,不用重新激活。
✦ 恢复出厂:备份后,删掉该目录,重启 app 就会自动创建一个空的 rules.db。
+
Output C o l u m n s

批量导出 17 列标准字段 · 含义速查

序号 列名 含义 / 说明
01订单号输入 CSV 的原始订单号列,原样透传。支持中通/圆通/京东格式。
02客户编号输入 CSV 的客户编号列,匹配客户规则时 同时匹配客户内部 ID 和客户名称。
03目的省份 / 目的城市输入 CSV 中省/市,计算时会归一化:去掉"省/市/自治区/壮族/回族"后缀。
04实际重量(KG)输入 CSV 的实重,保留 2 位小数。
05体积重量(KG)长×宽×高 / 抛比系数(默认 6000),模板里可改抛比。
06计费重量(KG)实际 / 体积取大,再按客户进位模式取整后的最终重量。
07基础运费阶梯的首重+续重,或拉均重的一口价(谁采用取谁)。
08燃油附加费模板配置,按 % 或 /每票 / 每 kg 三种之一。
09地区加价按省/市命中的多条地区加价之和。
10其他附加费自定义策略累加。
11总运费(基础 + 燃油 + 地区 + 其他) × 客户折扣率,四舍五入 2 位。
12币种默认 CNY,模板里可配置 HKD / USD / EUR。
13是否命中拉均重池合同绑定 + 进池资格 + 重量阈值 都通过才为"是"。
14是否采用拉均重价在命中池基础上,再通过 有效进池票数 ≥ min_tickets 才为"是"。
15拉均重合同编号 / 池平均重量 / 进池上限 / 约定基准 / 加价封顶 / 单票基础价 / 相比阶梯节省拉均重开关启用才输出;未启用时这些列会整体隐藏。
16诊断_命中的拉均重合同ID最终匹配到的 avg_tpl_id(空 = 根本没匹配到合同绑定)。
17诊断_是否命中池 / 有效进池票数 / 最终是否采用拉均重3 列诊断,排错时直接看这三列 + 合同ID 列,基本就能定位。