VWTVWT
← 全部文章

泰国运输:先做主数据,再买软件

发布于 2026年8月28日 · 阅读约 1 分钟

软件上线了,数据导入了,第一版计划跑出来了,然后这版计划是错的。两台车被派往一个一次只能进一台车的地点。一台十轮车被安排进一条掉不了头的巷子。一个交货点被排在11:30,而那家工厂11:00停止收货去吃午饭,13:00才重新开始。三周之内,调度员会在大部分线路上人工推翻系统;三个月之内,系统会变成一件人人抱怨的闲置资产。

这里面几乎没有一项是软件的错。计划系统就是一台计算器。它读取每一个卡车会去的地点的记录,套上规则,然后返回一份计划。记录错了,计划就错,而且错得很有把握,打印在纸上,还带着时间。

那份记录就是主数据。它是这份工作里没人想干的部分,要花上几周,也是换掉软件之后唯一还在起作用的部分。本文讲的是这份记录里应该有什么,为什么其中三个字段在泰国比教科书说的更难,以及如何用你的作业已经在产生的数据把它们填满。

一份计划实际在读什么

一份配送计划需要七类输入:走多少货、各点之间有多远、每个客户接受和不接受什么、车辆能做什么、驾驶员在法律上能做什么、整条线路可以长成什么样,以及货物本身施加了什么限制。

注意这份清单主要由什么构成。只有第一项,也就是需求量,每天都在变。其余六项描述的是地点、车辆和规则,明天和昨天一样。这种不对称就是做主数据的全部理由。你没法不录入明天的订单,但你只应该弄清楚一次:北榄府那个点大门宽3.8米,15:30停止收货。

所以真正管用的存法是:一个交货点一份记录,有人负责,让订单数据从它旁边流过,而不是流进它里面。每一位调度员、每一份发给运输公司的作业说明、以及你将来买的每一套系统,读的都是同一份记录。

这份记录里有四个字段,一旦出错造成的损失最大。

它在哪里,这和地址不是一回事

第一个字段是位置,而在泰国,地址并不是位置。

泰文地址从最小单位排到最大单位:门牌号、乡村地区的村号、巷、路、分区、县、府、邮政编码。问题不在顺序。问题在于门牌号并不沿街依次排列,而是散布着,尤其在私人区域和住宅小区内部,所以相差一号的两个门牌可能彼此毫不相邻。研究者的结论很直接:这套编号方式根本无法与街道线要素相匹配,这意味着地理编码赖以建立的插值方法在这里不成立。也没有一个全国性的地址点数据库可以退而求其次。泰国基础地理数据集发布了十三个图层,包括行政边界、道路、土地利用和高程,没有一个能把针插到某一栋建筑上。

结果可以从数字上看出来。纳黎萱大学的一个团队把1,511条泰文地址送进五家地理编码服务,其中1,100条进入比较。提交含邮政编码的完整地址时,Google 返回屋顶级匹配的比例是3.73%,返回插值匹配的比例是61.45%。Bing 的屋顶级匹配率最高,为17.82%,但有68.45%的地址完全匹配不上。MapQuest 有98.55%返回的是插值匹配,Yahoo! 是97.45%,OpenCage 是88.18%。

插值匹配才是危险的那一种。它不是一条错误提示。它是一个针,落在地图上,大致位置还对,而且你把它喂给哪套计划系统,哪套系统都会默默接受。

那项研究里有两个发现可以直接拿来用。

第一,去掉邮政编码会提高匹配率,同时降低精度。邮政编码拿掉之后,精确匹配率升到 MapQuest 21.64%、Bing 17.91%、Google 17.27%,但五家服务的定位精度全部变差。服务会退回到一个更大的范围,然后报告成功。如果你在批量做地理编码,并以返回匹配的行数来判断效果,你会选中那个可以量化证明更差的设置。

第二,是关于字符串怎么写。泰文地址通常带着成分标签书写,也就是把表示村号、分区、县、府的词写在数值前面。研究人员提交带这些标签的地址时,MapQuest 和 Yahoo! 返回了美国和日本的位置。同一个地址去掉标签、只留数值,就正确定位在了彭世洛府。你的 ERP 几乎肯定把地址存成一行带标签的自由文本,因为发票上就是那么印的。

这些都不构成放弃地理编码的理由。它们构成的理由是:把地理编码得到的针当作初稿,把核实过的坐标当作主数据。

该做的事:

  • 把纬度和经度存成独立字段,与邮寄地址分开。地址给发票和单证用,坐标给计划用。
  • 在大门口采集,不要在办公桌前采集。 你要的那个点是车辆停下的地方,也就是卡车使用的入口,不是建筑物的几何中心,也不是办公室的正门。一位站在大门口拿着手机的驾驶员,给出的坐标比任何服务都好。
  • 批量地理编码时,只发数值,不要带泰文标签,保留邮政编码,并把所有没有返回屋顶级匹配的结果都视为未经核实。
  • 绝不允许在没有坐标的情况下建立交货点。 这是唯一能阻止档案腐坏的控制手段,而且必须在建档那一刻强制执行,因为没有人会回头补。

什么车进得去

第二个字段是进出条件,它有两半,常被混为一谈:地点本身能接受什么,以及通往地点的道路能接受什么。

地点这一半没有人公布。没有人会公布工厂大门的宽度、场地里的转弯半径、卸货位雨棚的高度、有没有月台还是驾驶员要用尾板、有没有叉车以及有没有持证操作的人,或者场内同时能容纳几台车。没有哪个机构可以查这些。要么你自己掌握,要么谁也不掌握。

道路这一半有公告,但不在同一个地方。根据公路法第61条,某条道路的公路主管可以在政府公报上发布公告,禁止重量、载重或轴重超过规定值的车辆使用该道路,或禁止可能损坏该道路的车辆通行。该公告须由哪个部门批准,取决于道路属于哪一类:高速公路、国道和特许公路由公路厅厅长批准,乡村公路由乡村公路厅厅长批准,地方公路由府尹批准。

从调度员的位置再读一遍。一台在国道上完全合法的车,可能在岔出去的府道上超限,又在最后一段地方道路上触到另一个限值,而这三个限值是由三个不同的部门定的。全国性的轴重表告诉你车能有多重。它不告诉你这条路能承受多少。

同一条的第二款才是坑人的那一款。在紧急情况或事故已经损坏道路或使通行不安全时,负责管控该公路的官员可以立即施加同样的禁令,办法是在现场公开张贴告示,限定期限。这项限制是真实的,是可执行的,而在张贴的那一天,它除了路边的一块牌子之外不存在于任何地方。它进入你的计划档案的唯一途径,是看到它的驾驶员告诉了某个人,而某个人把它记了下来。

每个地点要记录的内容:

  • 实际在这里送过货的最大车型,以及日期。不是客户说他们能收什么。地点常常说自己能收十轮车,因为有一台来过一次,在夜里,倒了二十分钟车。
  • 真正起约束作用的那一项,以及它的数值。 大门宽度多少米、限高多少米,或者过不去的是哪个弯。一份写着"只能小车"的记录,调度员拿不出任何可以替代计算的东西。
  • 卸货方式和由谁来卸。 月台、尾板、叉车,还是人工。这是成本,是时间,也是经常争执的事。
  • 最后一段的道路限制,挂在路线上而不是挂在地点上,并注明日期,因为它会变。

什么时候才真的收货

第三个字段是时间,陷阱在于"营业时间"是三件不同的事。

有地点开门的时间。有它愿意让车进场的时间,通常更窄。还有你的货实际被期望到达的时间窗,可能更窄,而且是由采购部门某个从未和门卫说过话的人定的。

配送计划的标准约束清单,比大多数人的数据能承载的更长:指定的交货时刻、两个钟点之间的交货时间窗、提早关门日、午休、按车型设定的进出限制、无叉车时的卸货限制、一次只能收若干托盘的收货量上限、车辆不能停在路边的停车问题,以及驾驶员必须等待查验和签字的单证规则。

其中每一项都是地点的属性。而典型的客户主档里几乎一项都没有,那里通常只存名称、地址、付款条件和电话号码。

有两件泰国特有的事,值得各占一个字段。

在相当多的地点,午休是硬性中断,而且不是打个电话就能推过去的软限制,因为签字的人不在。如果一个地点在12:00到13:00之间停止收货,这一小时在计划里就是一堵墙,不知情的调度员会直接撞上去,白白损失一台车一小时。

收货时间窗和门口排队是两回事。 一个08:00到16:00收货、但只有一个大门一次放一台车、且08:00就有十五台车排队的地点,并不等于一个八小时的时间窗。你要写进记录的是时间窗,加上历史上哪个到达时间能最快放行,而这是可以测量的,不必去问。

一次停靠要多久

第四个字段是大多数作业根本没有存的那一个,而它决定了一天能送几个点。

一次停靠不是一个数字。它是无论送多少都会发生的固定部分,加上随交货量增长的可变部分。固定部分是大门、排队、单证、倒车入位、走去找人。可变部分才是真正的装卸。

教科书的模型按进出难易把地点分组,给每组一对数字。在书里那个算例中,容易的地点是固定10分钟加每件0.025分钟,中等的是20分钟加0.050,困难的是25分钟加0.075。这些具体数值来自英国按箱作业的例子,不是泰国的托盘作业,但要点在于它的形状,而这个形状正是你应该把自己的数字套进去的。

用两个观测值就能拟合。假设你自己的时间记录显示,在某个客户处,约6个托盘的交货平均耗时34分钟,约18个托盘的交货平均耗时70分钟。可变率就是差值除以差值:70减34,除以18减6,等于36分钟除以12个托盘,即每托盘3分钟。固定部分就是从任一个观测值里减去可变部分之后剩下的:34减去6乘3,等于16分钟。用另一个点验算,18乘3加16,得70。

于是这个地点的记录写成:固定16分钟,可变每托盘3分钟。在那里送12个托盘,应该花52分钟。

再看第二个客户,同样送12个托盘,但门口有排队、没有月台、要用尾板,实测下来是固定45分钟、每托盘5分钟。这一趟停靠要105分钟。货一样,数量一样,占用的车辆时间是两倍,而差别完全是地点的属性。

把它放到一天里。如果扣掉行驶和休息之后,一个班次还剩六小时用于停靠,第一类地点能排下六到七个点,第二类只能排三个。任何对所有客户使用同一个平均停靠时间的调度员,都会在档案的一端排出根本做不到的线路,在另一端排出过于宽松的线路,并且两头都要挨骂。

这些数据你已经在产生

主数据项目之所以停滞,是因为它看上去像一个数据采集项目。多数情况下它不是。你需要的东西大部分已经被记录下来了,只是没有人去读。

车辆行程数据记录器。 属于陆运厅公告覆盖范围的车辆装有记录器,记录位置、速度和时间,至少每五分钟传输一次,并保存六个月。那就是在一组坐标上的静止时段,每天若干次,覆盖范围内的每一台车都有,无论是你自己的车队还是运输公司的车队。也就是在你客户处的到达和放行时间,已经测量好,回溯半年。这项强制规定是按车辆类别逐条书写的,并未覆盖每一台货车,所以在假定历史数据存在之前,先确认哪一条适用于为你干活的车辆。同样这六个月的证据,也正是用来检验你的线路是否真的重复的依据,而那是在固定线路与每日排线之间做选择背后的问题。

你自己的送达凭证时间戳,前提是驾驶员除了签收时间之外也记录到达时间。每个停靠点两个时间给出停靠时长,与送货单匹配给出数量,把这些数对散布开来,就能为每一个去得够频繁的地点算出上面那组固定值和可变值。

你自己的大门。 同样的算术适用于入场车辆,而你自己月台上从到达到放行的时间分布,正是设定合理免费等待时间应当依据的东西,而不是运输公司标准条款里的某个数字。这就是等待时间费用如何计算里的论点。

驾驶员。 关于进出条件的一切未成文信息,都只存在于他们脑子里。一张一页纸的表格,每个地点填一次,让驾驶员标出走哪个门、进得去的最大车型是什么、什么会出问题、在几点出问题,两周内带来的收获会超过任何问卷调查。

这换来的不只是一份更好的计划。为你的业务报价的运输公司,只会按你能描述清楚的部分定价,并把空白处按最坏情况定价。运输公司理应拿到的招标数据,包括按地点划分的交货量、交货时间约束和特定地点的已知问题。一份能回答这些的档案,就是"依据你真实作业算出的价格"与"依据猜测算出的价格"之间的差别,这一点在运输公司报价前需要你提供什么里有详述。

该按什么顺序做

不要从第一条记录开始往下做。档案很长,价值很集中。

  1. 按占用车辆时间给交货点排序,不是按收入,也不是按字母。停靠次数乘以平均时长。前五十个才是计划真正崩掉的地方。
  2. 先修位置,因为下游的一切都要读它。在大门口采集、核实过的坐标,先做前五十个,再做下一个五十个。
  3. 然后是时间窗,依据地点实际的做法,而不是客户主档上写的。
  4. 然后是进出条件,依据驾驶员,以及真正送过货的最大车型。
  5. 然后是停靠时长,用你自己的时间记录拟合,并且只对去得足够频繁、平均值才有意义的地点做。一年去两次的地点给一个估计值并打上标记。
  6. 然后设定那条闭环的规则。 没有坐标不得新建交货点,并有一条长期指令:驾驶员遇到限制,当天上报。主数据不是慢慢衰败的。它是在有人赶时间建了一条记录的那一刻开始衰败的。

老实说,它值多少

关于这件事的回报有多大,值得说得直白些,因为主数据通常是跟着软件一起卖的,而软件通常是带着一个节省百分比一起卖的。

一家在2023年被研究过的运输公司,此前一直靠员工经验而不是记录来安排工作。研究团队把计划工作重建在一个存放车辆、驾驶员和客户资料的数据库之上后,查找一项信息的耗时从每单1.05分钟降到0.13分钟,计算一单成本的耗时从2.10分钟降到0.30分钟。这些是分钟,发生在一家小公司身上,单靠它们支付不了任何东西。

这就是文书节省的真实量级,而它并不是做这件事的理由。理由是:在这份记录存在之前,它上面的每一个决定都建立在某个人的记忆之上。你无法比较两个线路方案、无法检验配送频率、无法准确地向运输公司说明作业、也无法让任何人对交货时间窗负责,因为没有可供比对的东西。一套好系统建立在一份坏档案上跑出来的计划,并不比调度员的猜测更好。它就是调度员的猜测,只不过带了时间戳,而且更难反驳。

先把档案建起来,再去买软件。