物流软件

申请、路线、货物与配送都在一套系统里

运输量少的时候,这些事装在脑子里、表格里和聊天记录里。量一上来就不行了:货在哪儿只有司机知道,谁对谁承诺了什么只有接单的人知道。物流软件把这种工作方式去掉:申请、路线、货物和配送状态都成为同一套系统里的记录,调度员在一个屏幕上就能看到。以下讲解它是怎么运作的——从申请进来,到确认收货。

物流管理系统

是什么

物流管理系统 — 一个用于运输核算的程序:接收申请、把申请编成路线、指派执行人、跟踪货物流转,并保存每一次配送发生过什么的历史。

一个例子就能看出区别。没有系统时,申请活在即时通讯里,路线在调度员桌上的一张纸上,货物状态在司机的脑子里。要回答客户「我的货在哪」,得给三个人打电话。谁也不知道明天装了多少车,因为这个数字从来没在任何地方算过。

在系统里,这一切都是记录。申请有编号、发货方、收货方、时限和当前状态。路线有站点清单、行车顺序和执行人。货物有状态,而状态的改变不是靠嘴说,而是靠程序里的一次动作。回答「货在哪」只要几秒钟,而且不取决于今天谁在班上。

举个例子。 客户周四提交了一份运输申请。业务员核对了地址和尺寸,把申请排进周五的路线,系统连同另外六个站点一起指派给了一名司机。早上司机打开任务清单,标记了取货,晚上标记了送达。与此同时客户那边的状态在不断更新,而到周五傍晚,公司手里已经有一份汇总:跑了多少站、多少按时完成、哪一单出了问题。

物流自动化 的起点,是当三个问题的答案再也装不进调度员的脑子时:现在手上有多少份申请、某一批货此刻在哪里,以及昨天为什么有两单配送拖到了第二天。

物流系统的链路从申请到确认收货
  • 1申请
  • 2验证
  • 3路线
  • 4执行人
  • 5发货
  • 6流转
  • 7配送
  • 8调度员

链路是双向的:任务从左往右走,执行人的标记和事件再回来。配送是否算完成,不看司机是不是离开了那个地址,而看收货是否得到确认。少了这一步,系统讲述的就是它相信的货物状态,而不是真实发生的事。

物流中心的员工在车旁核对货物,调度员则在办公室里管控发运

系统对每一次运输都知道什么

  • 运的是什么 — 货物名称、件数、重量、体积、特殊运输条件
  • 从哪到哪 — 取货地址、送货地址、两端的联系人
  • 什么时候 — 送达时限、收货方的时间窗、实际发出和签收时间
  • 谁负责 — 司机或配送员、车辆、路线、办公室里的负责人
  • 处于什么状态 — 当前状态,以及带操作者和时间的完整状态变更链
  • 有什么凭据 — 单据、照片、收货人签名、执行人的备注

系统自己不做什么

程序不开车,也不替代调度员。它去掉的是决策周围的手工活:把申请集中在一处、显示负荷情况、不让任何一个站点丢失、并记录每一次变更。急单给谁、要不要等迟到的客户,这些决定仍然由人来做——只是依据的是完整图景,而不是记忆。

同样,系统本身并不「知道」路况和天气:任何外部数据都要通过对接进来,其内容由项目确定。

通常从哪里开始

最先搬进系统的是申请的记录,而不是路线,也不是地图。原因很简单:只要申请还活在聊天记录里,任何路线都是按不完整的清单排的,任何报表也都是按谁没忘记记下来的东西算的。

哪些问题 由系统解决

下面列的不是功能清单,而是让物流被自动化的六个问题。每一个的表述方式都一样:没有程序时会发生什么,有了程序又会怎样。

申请不会丢

没有系统时,申请从即时通讯、邮件和电话三处进来,它的命运取决于有没有人把它记下来。在系统里,任何一份申请都是带编号、录入人和时限的记录:它要么在处理中,要么已关闭,没有第三种状态。丢掉的申请会立刻显形,而不是等客户打电话来。

路线是用申请排出来的,不是靠记忆

调度员把明天所有站点列成一张清单:地址、时间窗、尺寸。站点被编成路线,路线有执行人和行车顺序。被遗忘的站点不会悄无声息地拖到第二天——它会保持未分配状态,并出现在一份单独的清单里。

人员和车辆的负荷一目了然

一辆车已经排了多少站、按重量和体积还剩多少空间、哪几名司机再过一小时就下班。没有这些数字,负荷就只能靠目测分配,结果一辆车半空跑出去,另一辆到傍晚都跑不完。

货物状态不必打电话去问

配送状态由执行它的人在动作发生的那一刻改变。调度员、业务员和客户看的是同一条记录。「我的货在哪」不再是三个人的工作量。

收货确认会被固定下来

谁收的货、什么时候收的、依据是什么,都是系统里的记录,而不是回忆。签名、照片或确认码都绑定到具体那一单配送。「送了没送」的争执,靠打开一张卡片就能解决,不用再去查。

出了问题按事实复盘

延误、取消、退回和配送失败,都会成为带原因的独立事件。到月底看到的不是一句「难免的」,而是一份具体的清单:出了多少次问题、发生在哪些线路上、原因是什么。

系统 由什么构成

系统由模块拼装而成。并不是每家公司都需要全部模块:市内配送公司不需要城际运次的核算,自有车队的生产企业也不需要订单交易平台。具体组合由需求决定,但模块之间是事先就能对接好的,而不是事后从旁边硬加。

接单办公室、备好货的仓库和运输车辆构成一套完整的物流系统

申请的接收与处理

系统的入口:一份运输申请,含发货方、收货方、货物内容、时限和条件。申请可以来自业务员、客户的个人中心,也可以通过 API 从外部系统进来——此后它们都按同一套规则运转。

路线与配送站点

把站点编成路线、行车顺序、指派车辆和执行人、当天调整路线。路线与申请一样是一个业务对象:它有日期、状态和变更历史。

货物台账

具体运的是什么:件数、重量、体积、包装、特殊条件。货物与申请、路线、单据和当前状态相关联,因此从任何一侧都能还原出其余各侧。

车辆与执行人

车和人的台账:载重、车厢容积、车型、工作时段、服务片区。负荷就是从这里来的——今天这辆车还能再排几个站点。

调度面板

员工的工作台:进行中的配送、路线、执行人、状态、延误和问题订单,都在一个屏幕上。在浏览器里打开,无需安装任何东西。

状态与事件

一组有限的配送状态,以及它们之间的流转规则。每一次变更都是一个带操作者、时间和依据的事件;这些事件汇成历史,日后据此复盘问题。

与仓库的衔接

与拣货和发货的接缝:拣了什么、备好了什么待交接、实际交给司机的是什么。没有它,仓库和配送就活在两套账里,到中午就对不上了。

执行人的工作台

司机和配送员的应用或移动界面:任务清单、地址、行车顺序、货物信息、变更状态、确认取货和送达、与调度员联络。

通知

发给客户和员工的消息:申请已受理、货物已取、配送员已出发、配送已改期、配送未完成。消息的下发渠道在落地时选定,并通过对接接入。

角色与权限

接单员、调度员、仓库员工、司机、负责人。修改路线、取消配送、修改地址和访问收货人个人数据,都是各自独立的权限,而不是打包成一个「员工」。

数据分析与报表

配送单量、按时完成占比、车辆和人员的负荷、路线效率、问题订单清单。报表可导出为文件,也可按计划自动生成。

API 与系统对接

系统对外的接口:创建申请、查询状态、获取路线、回传送达确认、拉取日志。网店、CRM、ERP 和仓储系统都通过它接入。

订单管理

从申请到送达

运输申请 — 一份单据,记录要把什么送到哪里、什么时限之前、由谁承担费用、按什么条件。此后的一切——路线、执行人、状态、单据——都挂在它的编号上。

申请通过三种方式之一进入系统:由业务员创建、由客户自己在个人中心填写,或由公司的另一个程序通过 API 传入。来源不同,之后的路径相同——否则一部分订单就会形成自己那套不成文的处理顺序。

验证 — 是一个单独的步骤,而不是走形式。系统会检查:必填项是否填了、收货方是否在台账里、货物是否在允许的尺寸内、时限是否做得到。有疑问的申请不会悄悄进入路线:它会带着明确的原因留在待确认清单里。

一份申请包含什么:

  • 编号、创建日期、录入人和来源——谁在哪里建的
  • 客户和付款方,如果不是同一方
  • 取货地址和送货地址,含两端联系人
  • 货物内容:名称、件数、重量、体积、包装
  • 送达时限,以及收货方方便的时间窗
  • 条件:货到付款、易碎品、需要搬上楼、需要第二个人
  • 关联单据:送货单、发票、来自另一个系统的订单

指派到配送 — 申请从一个意向变成一项工作的那一刻。它进入某一天的路线,有了执行人,执行人的清单里也有了这项任务。从这一刻起,这份申请在调度面板里、司机应用里和客户的历史里都能看到。

有些修改会改变当天的计划:新地址可能落在路线之外,重量增加可能装不进已指派的车。这类申请不会被悄悄改掉——它会连同原因退回给调度员重新规划。

物流接单员在电话里核对申请,并查看待配送的订单队列

一份申请的全程

申请 № 4187 全过程系统界面截图
  • 已创建业务员录入了申请:两件、46 公斤、从仓库取货、周五 18:00 前送到收货方地址
  • 已校验地址在台账里找到了,尺寸符合车型,时限也做得到——申请获准进入排线
  • 已排入路线该站点加入周五的路线,行车顺序排在第四位
  • 已指派执行人路线绑定到某位司机和某辆车;任务出现在他明天的清单里
  • 货物已取司机在仓库标记了取货,系统记录了发出时间,并把申请转入在途
  • 已送达收货方接收了货物,确认凭据附在申请上,签收时间已记录
  • 已关闭单据已交回,没有差异;申请转入历史,并进入本期报表

系统界面截图,数据为演示用。第五步很关键:取货的标记由实际拿到货的人来打。如果由调度员「听电话」代打,系统描述的就不再是这次运输,而是关于这次运输的说法。

修改已指派的申请

修改是一项受控操作,而不是随意编辑。改地址、改时限或改货物内容都会保留上一版本并留下痕迹:谁改的、什么时候改的、改了什么。否则复盘一次有争议的配送,就会卡在「当初的地址到底是什么」这个问题上。

路线管理

站点、顺序与执行人

路线 — 一名执行人在一个班次内要跑完的站点清单,以及行车顺序。站点是指某个地址上的一次具体动作:取货、送货、收回退货。

创建路线 从选定日期上未分配的申请开始。调度员把它们列成清单:地址、片区、收货方的时间窗、重量和体积。站点可以手工编入路线,也可以按规则编入——例如「明天这个片区的全部配送」——路线随即显示总重量、总体积和站点数。

站点顺序 是显式设定的,并且对所有人可见:调度员在面板里看,司机在应用里看。顺序通过拖动站点来调整,与此同时系统会重算路线负荷并对冲突发出提示——例如某个「12:00 前」的站点被排到了第八位。

指派执行人 — 把路线绑定到司机或配送员以及一辆车上。系统会考虑载重和车厢容积:装不进所派车辆的路线,在出车之前就会被标出来,而不是到装车时才发现。

调整路线 发生在当天进行中,这是正常场景,不是事故。站点可以增加、撤下、转到另一条路线或另一天。执行人在自己的清单里会看到变化,而路线历史里留下一条记录:改了什么、谁改的、几点改的。

执行管控 — 把计划和实际做对比:路线上有多少站点已关闭、还剩多少、执行人在哪里偏离了行车顺序、哪些站点已超出时间窗。当路线上的所有站点都关闭时,路线才关闭——包括那些以配送失败告终的站点。

物流规划员在两块屏幕上规划路线和配送站点顺序

自动排定行车顺序

自动生成最优路线是一个独立模块,而不是账务系统的内置功能。把它当作一种可选的实现方案来看待才合理:它需要道路数据源、计算规则,以及在公司真实车次上的验证。

可选的方案从简单地按片区和时间窗排序站点,到通过外部地图服务来计算,跨度很大。具体接什么、按什么数据算,在调研时确定:事先宣称已经有现成的优化,那是一句承诺,而不是一段描述。

没有它,基础链路照样能跑:站点、顺序、执行人和执行管控,并不取决于站点是人排的还是算法排的。

作为业务对象的路线

路线和申请一样,有日期、执行人、车辆、状态和变更历史。因此「昨天这个地址为什么拖到今天」这个问题,靠路线记录来复盘,而不是靠当班的记忆。

周五的路线调度员面板界面截图,数据为演示用
网点行动时间窗件数重量状态
1仓库,Promyshlennaya 街取货08:00–09:0014310 公斤已完成
2「中央」门店配送09:00–12:00486 公斤已完成
3客户办公室,4 楼配送10:00–13:00218 公斤在途
4自提点,Asanbay 小区配送18:00 前6142 公斤等待中
5「东方」门店送货 + 收退14:00–17:00264 公斤等待中

行车顺序调度员和司机都能看到,因此「我们俩换了一下」不会变成争执。第 3 行在执行人标记结果之前不会关闭:搬上楼是配送最容易被拖住的典型环节,而系统应当从站在门口的那个人那里得知这一点。

货物管理

运什么、从哪来、到哪去、谁负责

货物 — 实际发生位移的东西。在系统里它是一条与申请关联的独立记录:一份申请可以运多个货件,一趟车次也可以装多份申请的货。

这样拆开不是为了账目严谨。恰恰是在货物这一层,才能回答那些被问得最多的问题:发出去几件、是不是都到了、哪一件破损了、退回来的是什么。

货物状态的每一次变化都是一个带时间和操作者的事件。因此整段运输历史可以完整还原:几点取的货、在哪里在执行人之间做了交接、什么时候交给收货人、由谁确认的。

执行人之间的交接 — 是一项独立操作,而不是副产品。从仓库运到分拣、再从分拣送到地址的货,至少要换两次责任人。每一次交接都显式记录;否则东西丢了,根本说不清是在哪一段丢的。

「谁的责任」这个问题的答案也来自这里——不是为了找人背锅,而是为了定位到某一段路程。收货人发现的破损,会被归到货物记在某位具体执行人名下的那一段上。

员工在装车之前扫描货件

关联单据

送货单、交接单、包装照片、收货人签名,都跟货物放在一起。单据同时关联货物和申请,因此从客户一侧和从车次一侧都能找到——不必再去翻聊天记录。

收货时和交付时各拍一张照片,是了结破损争议最便宜的办法:它是在已知的时刻由已知的人拍的,而且就放在与收货人签名同一张卡片里。

货物和申请是两条不同的记录

一份申请可以运多个货件,一趟车次也可以装多份申请的货。只要它们还是一条记录,任何部分情况——五件收了三件、退回一件——就只能在备注里用文字描述。

一件货物会保存什么字段组合由项目细化
  • 运的是什么必填名称、件数、重量、体积、包装类型、特殊条件——易碎、温控、需要两个人
  • 从哪来必填取货地址、发货仓库或场地、发货方联系人
  • 到哪去必填送货地址、收货人、接收时间窗、关于进出和搬运的备注
  • 谁负责必填当前持有方:司机、配送员、仓库或分拣场地——附交接历史
  • 当前状态在作业中变化配送链路中的某一种状态;由执行人的动作改变,而不是手工改字段
  • 发出时间按事实记录货物被执行人接收并实际离开发货点的那一刻
  • 签收时间按事实记录交付给收货人的那一刻,连同确认方式一并记录
  • 单据与关联按需要送货单、交接单、照片、签名、申请编号、外部系统里的订单号

必填字段是最低限度:少了它们,货物就不能排进路线。其余都可以配置:家具运输和文件递送,重要字段完全不同;逼着人填不需要的东西,是让台账写满破折号最稳妥的办法。

配送管控: 状态与异常

状态不是屏幕上的一行字,而是一种状态,由它决定哪些动作是被允许的。状态的集合是有限的:只要没有把它明确列出来,每个员工对「处理中」的理解都不一样,报表也就无从谈起。

配送员把包裹交给收货人,并记录送达确认
主要的状态链正常的配送路径
  • 已创建申请已受理并通过校验。货还没备,执行人也没指派,但对客户的承诺已经落到了记录上
  • 已备货货已拣配完成、货件已贴标、单据已备齐。从这一刻起,货物内容不经过单独操作就不再变动
  • 已交配送货物已由执行人实际接收:标记由取走它的人来打。责任从仓库转移到执行人
  • 在途执行人正在跑路线。这里会出现中间事件:已抵达站点、开始卸货、在上一个地址被耽误
  • 已送达收货人接收了货物,确认凭据已附在这一单配送上。到这一刻配送才算完成——而不是离开地址的那一刻

顺序正是这样才有意义。每一次状态流转都由做出该动作的人、在动作发生的那一刻完成——否则系统显示的就不是运输的状态,而是调度员的意图。中间状态(「在分拣」「已交给承运商」)可以按公司流程添加,但集合始终是有限且明确的。

异常情况下系统会做什么默认行为,具体在项目中细化
发生了什么系统会做什么状态
延误:收货方的时间窗快到了把该站点标记为超时,在一份单独清单里呈现给调度员,并准备一条改期通知发给收货人待排查
客户在发货前取消了订单以取消原因关闭申请,把站点从路线中撤下,并把货物退回仓库库存正常
货已在途时客户取消了订单不会悄悄把这单配送关掉:它会转为退回,并在执行人的路线里加一个返程站点待排查
收货人不在记录一次配送失败,附原因和执行人备注,货物仍留在他手上,并把是否再送一次提上日程待排查
收货人只接收了一部分把这单配送拆开:接收的货件关闭,拒收的作为一条单独记录转入退回待排查
货物在运输中破损生成一个带照片和破损当时责任人的事件,并且不允许把这单配送按普通方式关闭待排查
执行人没来上班释放他的路线以便重新指派,并把受影响的全部站点用一份清单呈现给调度员提醒

总原则:失败的结果不会消失,也不会变成成功。这单配送保持打开状态并进入排查队列——这比一份「没有问题」的报表要便宜,因为那份报表之所以没有问题,只是因为问题无处记录。

公司到底需要哪些异常处理,在调研时决定。家具运输需要退回和破损核查,文件递送需要再送一次和收件人身份验证。状态集合可以配置,但规则不变:任何一单配送的结束都有一个原因,而这个原因会进入报表。

调度面板

调度员和管理员看到什么

调度面板 — 用来驾驭一整天的工作台。它的任务不是「把数据显示出来」,而是把此刻需要做决定的一切集中到一个屏幕上,同时不显示其余内容。

因此这个面板做得像一张当班的办公桌:紧急的在上面,当天的全局在下面,历史和台账在更深处。员工不必记住东西放在哪里,就能接起客户的电话。

面板里能看到什么:

  • 进行中的配送 — 此刻正在处理的全部站点,含执行人和当前状态
  • 当天的路线 — 关闭了多少站点、还剩多少、哪条路线落后于计划
  • 执行人 — 谁在班上、谁在路线上、谁已经空出来、谁的工作时间快到了
  • 状态 — 配送在各状态上的分布,一张清单看完,不必手工统计
  • 延误 — 收货方时间窗即将到期或已经到期的站点
  • 问题订单 — 配送失败、退回、破损、收货人拒收
  • 使用率 — 一辆车已分配了多少重量和体积,还剩多少空间
  • 未分配 — 还没有进入任何一条路线的申请
  • 操作历史 — 任何一份申请、路线或货物身上发生过什么,含操作者和时间

访问权限 把面板按角色区分开。调度员看到自己的片区,负责人看到所有方向,呼叫中心坐席看到状态和联系方式,但看不到财务数据。

这种区分由角色设定,而不是给每个员工勾一堆复选框。否则半年之后,新人的权限就是「照着 Ivanov 那样配」,再也没人说得清他到底能看到什么。

调度员在管控进行中的路线、偏差和车辆状态

当班概览

当天,6 条路线面板界面截图
118单配送 处理中
9个站点 有超时风险
4个问题订单
12份申请 未分配

系统界面截图,数字为演示用。磁贴的顺序不是随手排的:排在最前的不是总量,而是需要做决定的事。未分配的申请排在最后,因为那是调度员唯一能自己彻底做完的一块。

操作历史

历史不是「以防万一」的存档,而是复盘工具。记录不做编辑:更正以新增一条记录的方式写入。因此「谁把这单配送挪到了明天」这个问题有答案,而不是有几个版本。

通常从三头之一去看它:按申请看——它身上发生过什么;按执行人看——他这个班次做了什么;按路线看——它一天里是怎么变的。

与仓库的衔接

从拣货到交付配送

仓库和物流不是两个共用一个群聊的部门,而是同一个流程的两段。「已拣配但未交接」的货和「已交接但未标记」的货,是两种不同的状态,混起来代价很高。

统一的数字化流程只意味着一件事:仓库与配送之间的每一次交接,都由动作而不是由消息来记录。仓库员工标记拣配,司机标记接收货物,收货人标记签收。在这些标记之间,货物任何时刻都记在某个具体的环节上。

这个接缝给仓库带来什么: 它能看到什么已经运走了,什么在发货区已经放了第二天。 给物流带来什么: 不会为还没拣配好的货去排线,司机也不会在没东西可装的时候就开到门口。

完整的仓储核算——收货、上架、盘点、批次和保质期——是另一个页面的主题。这里只讲接缝:仓库交给物流什么,又从物流拿回什么。

仓库与配送的统一流程六次交接,每一次都是一个员工动作
  • 1订单
  • 2拣货
  • 3备货
  • 4交接
  • 5配送
  • 6确认

第四次交接是唯一一次货物更换责任人的地方。正因如此,它被做成一项有双方的独立操作:仓库交出、执行人接收。少了这一步,货件丢失时就说不清是哪一段丢的,复盘也就变成了挨个问当班的人。

仓库员工在仓库门口把备好的货交给司机

仓库与物流之间传递什么

  • 从仓库到物流 — 已拣配订单的内容、件数、重量和体积、是否可发货、标签编号
  • 从物流到仓库 — 车辆预计到场时间、谁来取货、这批货进入哪条路线
  • 退回仓库 — 退货、拒收的货件和未送达的货物,附上它们退回的原因
  • 双方共有 — 货件的流转历史:它去过哪里、谁接收的、责任人什么时候换的

如果仓库跑在另一个程序里

这是常见情况:仓储核算已经在既有系统里做了,没有人打算换掉它。这时接缝以数据交换的方式搭建——物流取到订单是否备好和货件构成,回传状态和确认。

交换的内容和频率,取决于外部系统能对外提供什么。具体某个程序能做到什么,在调研时确认——事先宣称已有现成的对接,那是在替别人的产品做承诺。

申请与路线

货物与状态

调度面板

配送报表

员工如何 使用这套系统

每个角色都有自己的工作台和自己的一组动作。这不是为了限制而限制:屏幕上多余的东西越少,当班出错就越少,新人上手也越快。

接单员

从所有渠道接收申请,核对地址和货物内容,有疑问就跟客户确认。他看到的是待确认队列和自己的申请;路线和车辆负荷他不碰。

调度员

编排路线、指派执行人、驾驭一整天:挪站点、应对延误、处理问题配送。他是面板的主要使用者,也是当天变更的主要来源。

仓库员工

标记拣配和是否可发货,办理把货交给执行人以及接收退货。他打交道的是货件和标签,而不是路线。

司机

领取当班路线,标记取货和送达,若站点没能关闭则记录原因。他只看到自己当天的任务,以及完成任务所需的数据。

配送员

同样的流程,只是换成移动界面,而且一个班次里的短站点更多。他确认签收、附上照片或签名、就地址写备注。

负责人

他看的不是一个班次,而是一段时间:配送量、按时完成占比、负荷、反复出现的问题清单。他不需要操作动作——他需要的是可以依靠的数字。

配送员与司机

执行人的作业界面

执行人需要的不是「系统的访问权」,而是一份现在该做什么的短清单。因此他的工作台是一个单独的界面:移动应用或适配过的网页,而不是调度员用的那个面板。

它包含:

  • 按行车顺序排列的当班任务清单
  • 地址,附关于进出、楼层和入口的备注
  • 订单信息:运的是什么、几件、收货人是谁、是否货到付款
  • 一步改状态:已到达、已取货、已送达
  • 在发货点确认货物已接收
  • 送达确认:签名、照片或收货人提供的验证码
  • 当事情没有按计划进行时,对该站点写备注
  • 从任务卡片直接联系调度员,不必在手机里翻号码

对这类界面的一个重要要求是:网络不好时也能用。离线做的标记先存在设备上,等有网络时再补传;重发不会生成第二单配送。

执行人工作的详细解析,是「配送员解决方案」那个页面的主题。这里要紧的是另一件事:这个界面里的标记,是实际状态的唯一来源,因此它是最先设计的,而不是最后。

司机在车和包裹旁用手机查看任务清单

现场标记给公司带来什么

执行人在动作发生的那一刻做标记,不是为了管控而管控。实际送达时间、在站点停留的时长和出问题的原因,都来自它。没有它,这三项指标都要在一天结束时靠记忆还原,也就是根本还原不了。

第二个效果是给调度员减负:只要状态还是由他听着电话代填,半个班次就会花在把别人的工作抄进系统里。

为什么这是一个单独的界面

执行人的工作条件不一样:一手拿手机,一手抱箱子,屏幕在太阳底下,网络时有时无。调度员的面板在这种条件下没法用——需要的是大号元素、尽量少的字段,以及断网时可预期的行为。

因此他的工作台是围绕班次来设计的,而不是围绕数据的完整性:屏幕上只有当前站点和下一个,其余都收进更深处。

数据分析

哪些数据可以度量

只有当数据在动作发生的那一刻进入系统时,报表才有意义。如果状态是晚上「按当天结果」补填的,那么任何报表都会呈现一幅整洁的画面,与实际发生的事毫无关系。

依据积累的数据可以算出什么:

  • 配送单量 — 按日、周、月;按方向、客户和执行人统计
  • 已完成与问题订单 — 按时送达的占比,以及以其他方式结束的清单,附原因
  • 配送时长 — 从申请到交付、以及从转入配送到签收的实际时长
  • 使用率 — 每辆车、每位执行人摊到多少站点、多少重量和体积,还剩多少空间
  • 路线效率 — 每班的站点数、按计划关闭的占比、两站之间的用时
  • 操作历史 — 它既是汇总数字的来源,也是复盘某一个具体案例的依据

指标的定义设定一次,所有报表都用它。「按时送达」在调度员的报表里和在负责人的报表里必须是同一个意思——否则同一天的两份汇总对不上,而两份都会失去可信度。

报表可导出为文件、按计划生成,也可以通过 API 送到外部分析系统——导出的内容由项目确定。

负责人在屏幕上和报表里分析一段时期的配送指标

本周概览

本周,4 个方向报表界面截图
612单配送 本期
27已完成 非正常结束
  • 市内,当日达41%
  • 市内,计划送达32%
  • 州内19%
  • 城际8%

系统界面截图,数字为演示用。第二块磁贴比第一块更重要:在没有拆解非正常结束的构成——取消、退回、配送失败——之前,总量只说明了负荷,说明不了工作质量。

系统对接 与数据交换

物流系统很少独自存在:订单来自一个程序,客户在第二个程序里维护,库存在第三个里。以下是最常搭建交换的几个方向。某项对接的具体范围,取决于外部系统能对外提供什么,并在调研时确认。

网店

已生成的订单可以自动作为申请传给物流,而配送状态可以回传到顾客的个人中心。橱窗本身和订单核算是怎么做的,见 电子商务.

CRM

可以与客户台账和成交历史对接:从客户卡片创建申请,配送结果回传给业务员。交换按客户标识进行,以免产生重复的往来单位。

ERP 与财务系统

它可以与公司的账务体系协同:订单、送货单、往来结算。交换方向和单据组合,取决于哪一套账被认定为主账。

仓储系统

订单是否备好、货件构成和标签从仓库进来,状态和退货回传过去。如果仓库跑在外部程序里,接缝就以数据交换的方式搭建——见上面关于与仓库衔接的那一节。

配送员软件

执行人的工作台可以是系统的一部分,也可以是通过 API 接入的独立应用:它接收任务,回传状态和确认。第二种方案用在已经有在用应用的场合。

支付系统

在有货到付款的场合,可以与支付服务或执行人手里的终端对接:应付金额来自申请,支付结果回传到这单配送。具体范围取决于服务商。

外部服务

地图与地址地理编码、车辆远程信息处理、通知服务、外包承运商。每一项这样的接入都是一个独立的交换模块;我们不会事先宣称已经有现成的连接器。

API

系统自己的接口:创建申请、获取状态和路线、回传送达确认、拉取操作日志。凡是没有专门模块的,都通过它接入。

交换规则到哪里都一样:每个操作都带一个键,因此重复传输不会生成第二份申请;差异不会消失,而是进入排查队列;每一次发送和每一次应答都写入数据交换日志。没有这三条规则,对接能撑到的正好是第一次断网。

落地实施的 顺序

物流不会在一天之内整体搬进系统:只要员工还按老办法维护状态,报表里的数据就毫无意义。因此上线是分段推进的,后一段建立在已经跑通的前一段之上。

1. 调研

申请现在是怎么进来的、谁在排路线、状态用什么维护、已经装了哪些程序、它们能对外提供什么。产出是一份流程描述,以及一份「优先自动化什么」的清单。

2. 单一方向试点

一个城市、一家配送服务或一个仓库。申请、路线、状态和执行人的标记,在真实运输上跑完整整一圈——然后再把这套流程铺到整个公司。

3. 角色与规则

谁能改什么、需要哪些异常处理、退回和配送失败怎么处理、通知发给谁。权限和手工调整路线的流程也在这一步配置。

4. 推广与对接

其余方向按已跑通的方案铺开,各项对接作为独立的交换模块接入。此后历史逐渐积累,跨周期的报表和用于车辆规划的数据也就有了。

聊聊贵公司的物流

立即联系我们

请写明每天有多少单配送、申请从哪里来、用自有车队还是外包、有没有仓库,以及贵公司的数据现在躺在哪些程序里。我们会回答:优先自动化什么、有哪些可以接到现有系统上,以及试点从哪里开始比较合理。