从业务流程角度:分析TMS系统各个功能模块
TMS的主要功能是协调承运商、运营商、货主三种角色人员分工合作共同完成运输任务,并实现对运输任务的跟踪管理。本文将按照业务流程顺序对TMS系统各个功能模块进行分析说明。
一、业务描述
新零售的兴起及“最后一公里”概念的提出,使物流这个传统行业获得空前巨大的市场前景,也受到越来越多企业的关注。
现代物流体量大又十分注重高效性,为了满足以上需求需要借助一些管理系统,常用的管理系统有TMS、OSS、PMS、CWS等,其中TMS(Transportation Management System)即运输管理系统,能高效、合理分配资源并处理管控运输任务,是现代物流运输企业使用的核心系统。
通常来讲运输业务流程分三个阶段完成:
- 第一阶段,货主提出运输需求,建立任务订单并推送给运营商;
- 第二阶段,运营商按照一定的规则处理订单,并将订单推送给合适的承运商;
- 第三阶段,承运商接收订单并将订单分配给司机,由司机执行完成运输任务。
下面将按照业务流程顺序对TMS系统各个功能模块进行分析说明。
二、TMS系统架构
三、功能模块
1. 基础信息管理
在TMS中需要对项目信息和用户信息进行维护,便于订单的生成和流转。项目就像订单的标签,项目信息的维护可确保每个订单都有归属项目,方便订单的分组管理。
TMS的用户包括:承运商、运营商、货主。
- 货主是有用车需求的角色,可创建任务订单;
- 承运商是有承运能力的角色,提供车辆和司机以完成运输任务;
- 运营商就像连接货主和承运商的桥梁,一边从货主方获取用车需求,合理分配给相应的承运商,另一边将从承运商获取的任务状态信息回传给货主。不同用户之间绑定合作关系,可协作完成配送任务。
基础信息管理模块主要功能:
- 添加用户、项目,维护基础信息;
- 在不同用户之间建立合作关系。
合作关系的建立对TMS开单和调度十分重要,只有建立起正确的合作关系,才能在开单的时候选择到正确(有合作关系)的商家,在调度的时候匹配到正确(有合作关系)的承运商。
2. 开单
在运输业务的第一阶段,通常以开单的方式提出用车需求。TMS开单的主要内容包括:发货人与收货人联系电话、发货人与收货人地址信息、订单信息、运输货物信息、用车时间、需求车型等。开单功能并非只是简单的填写信息提交,其中还包含许多其他功能,如信息关联、地图定位、里程预估、上下游价格预估等,具体的内容根据用户需求而定。
运输业务中的订单来源除了TMS开单,还有APP端的用户下单、其他系统的订单导入。APP端的用户通常是2C用户,在手机APP自主下单,目前市面上此类APP有货拉拉、快狗打车、桔瓣优送等。其他系统通常是指货主自有的系统,这些系统与TMS对接,直接将订单导入TMS。
3. 订单管理
订单创建成功后,进入运输业务的第二阶段,运营商按照一定的规则处理订单,并将订单推送给合适的承运商,一般的操作流程是:
(1)派单
订单审核通过后需要分派给合适的承运商,也就是派单,这个动作一般由运营商在TMS完成。派单方式分为手动派单和自动派单两种:
- 手动派单:由于货主与承运商之间已经建立了合作关系,因此在分派某个货主的订单时,会自动匹配有合作关系的承运商,运营商从中选择合适的承运商并将订单推送。
- 自动派单:在TMS设置一定的派单规则,当生成任务订单时,系统可根据派单规则自动选择承运商,并将订单推送给指定的司机,无需运营商人员手动选择。
(2)智能调度
TMS订单体量大,协调资源多,纯人力调度效率低、成本高,难以满足配送需求。智能调度针对以上痛点,利用算法围绕人、车、路线合理规划调度策略,实现最优资源分配方案,高效完成调度工作。
TMS智能调度的核心思想是“资源最优利用、货与车高效匹配、提高出行效率”,主要体现在以下三个环节:
- 合单——资源最优利用:在大体量的订单中,经常会出现装货地址相同或相近的订单,如果将这些订单合并为一个车次派发给司机,既能降低配送成本,又能提高装载率,增加司机单次配送的收入,从而实现人与车资源的最优利用。
- 派单——货与车高效匹配:订单按照一定的匹配规则会自动分派给符合条件的司机,匹配因子包括车型、城市、经验、司机到装货地距离、满载率等等。运输业务数据量特别大,货与车的高效匹配解决了人力调度效率低、成本高的问题,同时也最大限度的满足了司机与货主的需求,使双方达到互惠互利。
- 路径规划——提高出行效率:按照多个装货点和卸货点的地理位置,为司机规划合理的行车路线,避免漏装漏卸、绕远路的情况发生,降低行车成本,帮助司机快速完成订单任务。
(3)订单跟踪
事实上,订单跟踪已进入运输业务第三阶段,承运商开始执行配送任务,实时跟踪订单状态,并将状态信息回传给运营商,再由运营商回传给货主。订单跟踪可使货主实时获取订单当前状态,也方便平台管控司机,保障订单任务顺利完成。实现订单跟踪的方式有两种——人工更新、电子围栏。
1)人工更新订单状态
一般由承运商或者司机本人点击订单状态按钮来更改订单当前状态。承运商通常在运输系统中进行操作,司机需要在移动端APP或者小程序等软件上进行操作。
主动触发改变订单状态的方式虽然可实现订单状态跟踪,但订单状态的准确度却不高。这是因为如果司机规范操作,常常在到达某一节点一段时间后才更改状态,使得订单状态具有滞后性;如果司机不规范操作,随意更改状态,可造成订单实际状态与显示状态不符的情况,失去订单跟踪的意义。
2)电子围栏自动更新订单状态
由司机GPS定位获取司机当前位置,并估算司机位置到装货点、卸货点的距离,根据距离信息判断并更改订单状态。这种方式可实时跟踪订单并自动更改状态,无需人工操作,不足之处是偶尔可能获取不到司机的位置信息,由此造成订单状态信息不准确,这种情况下可进行人工干预,改变订单状态。
(4)签回单管理
判断一个运输任务是否完成,以货主是否签收订单为准。货主签收订单后,承运商需上传回单并更改订单状态以完结一个订单。
4. 价格管理
(1)计价方式
运输业务常用的计价方式有以下五种:
1)单一计价
通常选取一种计量方式,获取货物的计量值。运输业务一般按重量、按体积、按数量、按点位数、按整车、按订单等来计量。
2)分段计价
对计量值进行分段定价,判断货物计量值属于哪个区间,按照所属区间的单价计算价格。
3)梯度计价
对计量值进行分段定价,分别计算各个区间运费,最后将所有区间的运费相加。
4)比价计价
采用某种计价方式,选取不同的计量方式计价,例如分别按照重量和体积计价,比较两个价格的高低,选取符合需求的一个。
5)分段+梯度计价
分段+梯度计价方式是快递行业常用的计价方式,如下表是某快递公司的计价表:
当货物重量小于3KG时,按照分段计价方式计价;当货物重量大于3KG时,按照梯度计价方式计价。
(2)价格模板维护
对于不同商家、承运商,甚至于不同货物,运输的计价方式不同,根据不同的需求需要维护不同的价格模板,方便使用和管理。价格模板分为上游价格模板和下游价格模板两种,上游价格模板是对商家进行收款的计价规则,下游价格模板是对承运商进行付款的计价规则。
(3)价格模板应用
维护好价格模板,需要规定价格模板的应用条件,也就是对每一个价格模板设置一个调用条件,只有符合该条件才可调用相应的价格模板进行计费。可以从不同维度对价格模板设置调用条件,例如:线路(始发地、目的地)、商家、项目等等。
5. 结算管理
在结算管理中,完成对订单费用的调整和审核工作,然后由财务人员对照账单进行上下游的收款和付款。
- 费用清单:在费用清单中可对订单数据进行调整,审核无误后生成对账单。根据上下游价格模板的不同,费用清单分为上游清单和下游清单。
- 对账单:对账单也分为上游账单和下游账单,上游账单是应从商家收取的费用账单,下游账单是应付给承运商的费用账单。财务人员根据账单进行收款和付款。
6. 异常管理
在订单创建之后,签收之前,都可上报异常,上报异常时需对异常情况进行说明。上报异常的订单会流入异常管理,在异常管理中完成对异常工单的记录、处理、跟踪工作。
7. 2C业务
对于2C的运输业务,除了以上的功能模块,还需要有司机管理模块,与上面描述的用户管理的不同之处是,司机管理只需对用户信息进行维护,无需绑定合作关系。
个体司机加入平台,需要进行注册认证,只有认证通过后才可在平台接单拉货。司机的信息维护除了认证部分,还包括司机在平台活动的数据记录等。
原文地址:http://www.woshipm.com/it/1510658.html
本文由 @ 娜娜娜娜呢 原创发布于人人都是产品经理。未经许可,禁止转载
题图来自Unsplash,基于CC0协议
从业务流程角度:分析TMS系统各个功能模块的更多相关文章
- 什么是APS高级计划排程(生产计划排产)系统主要功能模块有哪些?
什么是APS高级计划排程(生产计划排产)系统? APS高级计划排程(高级计划排产)系统主要解决“在有限产能条件下,交期产能精确预测.工序生产与物料供应最优详细计划”的问题.APS高级计划排程(高级计划 ...
- 从系统的角度分析影响程序执行性能的因素——SA20225205 黄兴宇
实验总结分析报告:从系统的角度分析影响程序执行性能的因素 1.请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的.自洽 ...
- 从开发者的角度分析iOS应如何省电
从开发者的角度分析iOS应如何省电 说明 网上关于iPhone如何省电的文章很多.但是基本没有讲原理.而在生活中,很多人在使用iPhone中有着明显的错误的省电习惯. 本文从iOS开发者的角度,对iO ...
- 从源码的角度分析ViewGruop的事件分发
从源码的角度分析ViewGruop的事件分发. 首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别? 顾名思义,ViewGroup就是一组View的集合,它包含很多的子View ...
- 从不同的角度分析Flex的优缺点
从不同的角度分析Flex的优缺点 技术角度: (1)具备了RIA时代富客户端的优点(C/S+B/S) (2)支持多种服务器语言(JAVA..NET.PHP)及主流框架(Spring.Hibernate ...
- 第九节:从源码的角度分析MVC中的一些特性及其用法
一. 前世今生 乍眼一看,该标题写的有点煽情,最近也是在不断反思,怎么能把博客写好,让人能读下去,通俗易懂,深入浅出. 接下来几个章节都是围绕框架本身提供特性展开,有MVC程序集提供的,也有其它程序集 ...
- 深入浅出!从语义角度分析隐藏在Unity协程背后的原理
Unity的协程使用起来比较方便,但是由于其封装和隐藏了太多细节,使其看起来比较神秘.比如协程是否是真正的异步执行?协程与线程到底是什么关系?本文将从语义角度来分析隐藏在协程背后的原理,并使用C++来 ...
- LoadRunner 自带订票系统flights 功能空白、1080端口被占用的解决办法
LoadRunner 自带订票系统flights 功能空白.1080端口被占用的解决办法 安装LoadRunner8.1后运行Mercury Web Tours Application,点击fligh ...
- Entity Framework 数据并发访问错误原因分析与系统架构优化
博客地址 http://blog.csdn.net/foxdave 本文主要记录近两天针对项目发生的数据访问问题的分析研究过程与系统架构优化,我喜欢说通俗的白话,高手轻拍 1. 发现问题 系统新模块上 ...
随机推荐
- git sub module
https://github.com/ViRb3/de4dot-cex/blob/master/.gitmodules git submodule sync command - what is it ...
- js的基本数据类型
Undefined.Null.Boolean.Number.String.ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的数据类型 )
- Django 测试开发5 unittest测试用例
Django测试用例 Django默认Python的标准库unittest编写测试用例.Django的单元测试类django.test.TestCase 从unittest.TestCase继承而来. ...
- 记一次用WireShark抓包摆脱Si服后台限制的过程
背景:闲着无聊找了个小众的手游,因为手游都是比较吃金的,所以就找了个Si服,鉴于小时候宝可梦的情怀,就TB买了个GM后台.谁知这玩意有限制,到了100级之后升级超级难,最多只能发送99999W点经验, ...
- vue实现滚动条滚到相应高度触发动画的操作
一.vue项目引入animate.css 第一步:在命令行中执行: npm install animate.css --save 第二步:引入及使用: main.js中: import animate ...
- SQL-W3School-函数:SQL GROUP BY 语句
ylbtech-SQL-W3School-函数:SQL GROUP BY 语句 1.返回顶部 1. 合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROU ...
- osg::MatrixTransform 模型基本变换
VCNodeMatrix.h #pragma once #include <osgViewer/Viewer> #include <osgViewer/ViewerEventHand ...
- 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_02-Eureka注册中心-搭建Eureka单机环境
我们先搭建单机环境 govern是治理的意思, 这样就把工程创建好了 创建包 创建SpringBoot的启动类. 在父工程里面已经确定了Spring Cloud的版本了.相当于锁定了版本 接下里只需要 ...
- 阶段5 3.微服务项目【学成在线】_day18 用户授权_09-动态查询用户的权限-认证服务查询用户权限
认证服务查询用户权限 如果权限为空就New一个对象出来. 因为如果为空的话 下面 forEach就会报空指针的异常 启动服务测试 重新登陆 看到userExt已经获取到了用户的权限 权限的字符串 复制 ...
- mysql常用命令、非交互式mysql命令看29条
CentOS下mysql数据库常用命令总结1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆mysql服务器 mysql -uroo ...