三方物流平台-TMS 智慧运输管理系统
1. 架构概述
1.1 架构风格
基于 yudao-cloud 的微服务架构 + 事件驱动
1.2 设计原则
|
原则 |
说明 |
|---|---|
|
高可用 |
多活部署、故障自动转移 |
|
可扩展 |
水平扩展能力、弹性伸缩 |
|
安全性 |
数据加密、访问控制、审计日志 |
|
可观测 |
全链路追踪、监控告警、日志分析 |
|
一致性 |
遵循 yudao-cloud 技术规范 |
1.3 架构分层
┌─────────────────────────────────────────────────────────────┐
│ 接入层 (Access Layer) │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ PC端 │ │ 司机APP │ │ 移动端 │ │ 小程序 │ │
│ │(MateClaw)│ │(MateClaw)│ │(UniApp) │ │(UniApp) │ │
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
└───────┼───────────┼───────────┼───────────┼───────────────┘
│ │ │ │
┌───────▼───────────▼───────────▼───────────▼───────────────┐
│ 网关层 (API Gateway) │
│ 路由转发 | 负载均衡 | 认证授权 | 限流熔断 │
│ [yudao-gateway] │
└──────────────────────┬─────────────────────────────────────┘
│
┌──────────────────────▼─────────────────────────────────────┐
│ 业务服务层 (Service Layer) │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │tms-dispatch│ │tms-transport│ │tms-fleet│ │tms-billing│ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │tms-coldchain││tms-border││tms-reverse││tms-report │ │
│ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ tms-plan (计划物流模块) │ │
│ │ 需求预测 | 运力预排 | 路线优化 | 计划监控 │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ yudao-boot-starter 基础设施支撑 │ │
│ │ 权限认证 | 数据权限 | 异常处理 | 参数校验 | 日志 │ │
│ └─────────────────────────────────────────────────────┘ │
└──────────────────────┬─────────────────────────────────────┘
│
┌──────────────────────▼─────────────────────────────────────┐
│ 数据层 (Data Layer) │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL主库 │ │ Redis │ │ RocketMQ │ │
│ │ (业务数据) │ │ (缓存/会话) │ │ (消息队列) │ │
│ └──────┬──────┘ └─────────────┘ └─────────────┘ │
│ │ │
│ ┌──────▼──────┐ │
│ │ MySQL从库 │ │
│ │ (读写分离) │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
2. 技术选型
2.1 核心技术栈
|
分类 |
技术 |
版本 |
选型理由 |
|---|---|---|---|
|
语言 |
Java |
21 |
LTS 版本,yudao-cloud 标准 |
|
框架 |
Spring Boot |
3.2.x |
yudao-cloud 基础框架 |
|
微服务 |
Spring Cloud |
2023.x |
yudao-cloud 微服务体系 |
|
数据库 |
MySQL |
8.0+ |
yudao-cloud 默认数据库 |
|
缓存 |
Redis |
7.0+ |
yudao-cloud 缓存方案 |
|
消息队列 |
RocketMQ |
5.1.x |
yudao-cloud 默认消息队列 |
|
搜索 |
Elasticsearch |
8.13+ |
全文检索能力强 |
|
ORM |
MyBatis Plus |
3.5.x |
yudao-cloud ORM框架 |
|
网关 |
Spring Cloud Gateway |
4.0+ |
yudao-cloud 网关组件 |
|
配置中心 |
Nacos |
2.3+ |
配置与服务发现 |
|
链路追踪 |
SkyWalking |
9.7+ |
分布式链路追踪 |
|
前端框架 |
MateClaw |
2.x |
基于 Vue3 的企业级框架 |
2.2 yudao-cloud 核心组件集成
|
组件 |
说明 |
集成方式 |
|---|---|---|
|
yudao-common |
通用工具类、异常处理 |
Maven依赖 |
|
yudao-spring-boot-starter-security |
认证授权、JWT |
Maven依赖 |
|
yudao-spring-boot-starter-data-redis |
Redis配置、分布式锁 |
Maven依赖 |
|
yudao-spring-boot-starter-datasource |
多数据源、读写分离 |
Maven依赖 |
|
yudao-spring-boot-starter-web |
Web配置、全局异常处理 |
Maven依赖 |
3. 模块划分与职责
3.1 微服务模块划分
|
服务名称 |
模块名称 |
职责描述 |
核心功能 |
|---|---|---|---|
|
tms-dispatch |
智能调度模块 |
订单调度、派车管理 |
自动匹配、路线规划、批量派单 |
|
tms-transport |
运输跟踪模块 |
运单全周期管理 |
GPS追踪、在途监控、电子签收 |
|
tms-fleet |
运力管理模块 |
车辆/司机/承运商管理 |
运力池、评级体系、资质管理 |
|
tms-billing |
计费管理模块 |
运费计算与结算 |
差价协调、费用核算、对账 |
|
tms-coldchain |
冷链管控模块 |
冷链运输管理 |
温控监控、双温分区、封签追溯 |
|
tms-border |
跨境运输模块 |
跨境报关清关 |
报关申报、查验追踪、国际运输 |
|
tms-reverse |
逆向物流模块 |
退货召回管理 |
退货流程、召回执行、库存处理 |
|
tms-report |
数据分析模块 |
报表与KPI分析 |
运营报表、绩效分析、成本核算 |
|
tms-plan |
计划物流模块 |
ToB计划配送管理 |
需求预测、运力预排、路线优化 |
3.2 目录结构(遵循 yudao-cloud 规范)
backend/
├── yudao-module-tms/ # TMS 模块根目录
│ ├── yudao-module-tms-api/ # API 层(DTO、枚举、Feign接口)
│ │ ├── src/main/java/
│ │ │ └── com/yudao/module/tms/api/
│ │ │ ├── dispatch/ # 调度API
│ │ │ ├── transport/ # 运输API
│ │ │ ├── fleet/ # 运力API
│ │ │ └── plan/ # 计划物流API
│ │ └── src/main/resources/
│ ├── yudao-module-tms-service/ # Service 层(业务逻辑)
│ │ ├── src/main/java/
│ │ │ └── com/yudao/module/tms/service/
│ │ │ ├── dispatch/
│ │ │ ├── transport/
│ │ │ └── impl/ # 实现类
│ │ └── src/main/resources/
│ │ └── mapper/ # MyBatis Mapper XML
│ ├── yudao-module-tms-dal/ # DAL 层(数据访问)
│ │ └── src/main/java/
│ │ └── com/yudao/module/tms/dal/
│ │ ├── entity/ # 实体类
│ │ └── mapper/ # Mapper 接口
│ └── yudao-module-tms-biz/ # 启动模块
│ └── src/main/java/
│ └── com/yudao/module/tms/
│ ├── TmsApplication.java # 启动类
│ └── controller/ # REST Controller
└── pom.xml # Maven 依赖管理
3.3 前端架构(基于 MateClaw)
|
模块名称 |
说明 |
技术栈 |
|---|---|---|
|
tms-pc |
PC端管理后台 |
Vue3 + MateClaw + TypeScript |
|
tms-driver |
司机APP |
Vue3 + MateClaw |
|
tms-mini |
货主小程序 |
UniApp + Vue3 |
4. 关键数据库设计
4.1 核心数据表
|
表名 |
说明 |
核心字段 |
|---|---|---|
|
|
运单表 |
id, waybill_no, status, create_time |
|
|
车辆表 |
id, plate_no, model, capacity, status |
|
|
司机表 |
id, name, license_no, phone, status |
|
|
承运商表 |
id, name, rating, audit_status |
|
|
线路表 |
id, start_point, end_point, distance |
|
|
轨迹表 |
id, waybill_id, latitude, longitude, track_time |
|
|
电子围栏表 |
id, name, type, coordinates |
|
|
冷链记录表 |
id, waybill_id, temperature, humidity |
|
|
配送计划表 |
id, plan_no, customer_id, plan_date, status |
|
|
计划明细表 |
id, plan_id, order_id, delivery_point, time_window |
|
|
路线规划表 |
id, plan_id, vehicle_id, route_sequence, distance |
|
|
资源分配表 |
id, plan_id, vehicle_id, driver_id, carrier_id |
|
|
计划KPI表 |
id, plan_id, on_time_rate, load_rate, cost |
|
|
计划异常表 |
id, plan_id, exception_type, handle_status |
4.2 ER关系图
tms_vehicle 1 ─── * tms_driver
tms_carrier 1 ─── * tms_vehicle
tms_waybill 1 ─── * tms_track
tms_waybill 1 ─── * tms_coldchain_record
tms_fence 1 ─── * tms_waybill
tms_delivery_plan 1 ─── * tms_plan_detail
tms_delivery_plan 1 ─── * tms_route_plan
tms_delivery_plan 1 ─── * tms_resource_alloc
tms_delivery_plan 1 ─── * tms_plan_kpi
tms_delivery_plan 1 ─── * tms_plan_exception
4.3 索引设计
|
表名 |
索引字段 |
索引类型 |
用途 |
|---|---|---|---|
|
|
waybill_no, status |
复合索引 |
运单查询 |
|
|
waybill_id, track_time |
复合索引 |
轨迹查询 |
|
|
status, carrier_id |
复合索引 |
车辆查询 |
|
|
waybill_id |
普通索引 |
温控查询 |
5. API接口设计
5.1 调度管理接口
|
API路径 |
HTTP方法 |
功能描述 |
|---|---|---|
|
|
POST |
创建调度订单 |
|
|
GET |
查询订单详情 |
|
|
POST |
派车分配 |
|
|
POST |
批量派单 |
5.2 运输跟踪接口
|
API路径 |
HTTP方法 |
功能描述 |
|---|---|---|
|
|
GET |
查询轨迹 |
|
|
POST |
电子签收 |
|
|
POST |
异常上报 |
|
|
GET |
查询状态 |
5.3 运力管理接口
|
API路径 |
HTTP方法 |
功能描述 |
|---|---|---|
|
|
GET |
查询车辆列表 |
|
|
GET |
查询司机列表 |
|
|
GET |
查询承运商列表 |
|
|
POST |
运力分配 |
5.4 计划物流接口
|
API路径 |
HTTP方法 |
功能描述 |
|---|---|---|
|
|
POST |
创建配送计划 |
|
|
POST |
需求预测 |
|
|
POST |
路线优化规划 |
|
|
GET |
计划执行监控 |
|
|
GET |
计划KPI分析 |
|
|
GET |
计划异常列表 |
5.5 API响应格式(遵循 yudao-cloud 规范)
{
"code": 200,
"message": "操作成功",
"data": { ... },
"timestamp": 1704067200000,
"traceId": "abc123def456"
}
6. 部署架构
6.1 物理部署架构
┌─────────────────────────────────────────────────────────────────┐
│ 公网入口 │
│ [Nginx LB] │
└──────────────────────────────┬──────────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────────┐
│ 服务网关层 │
│ [yudao-gateway] x 3 (集群部署) │
└──────────────────────────────┬──────────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────────┐
│ 业务服务层 │
│ [tms-dispatch] [tms-transport] [tms-fleet] [tms-billing] │
│ x3 x3 x3 x3 │
└──────────────────────────────┬──────────────────────────────────┘
│
┌──────────────────────────────▼──────────────────────────────────┐
│ 数据存储层 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ MySQL (主) │ │ Redis │ │ RocketMQ │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ ┌──────▼──────┐ │ ┌─────────────┐ │
│ │ MySQL (从) │ │ │ Elasticsearch│ │
│ └─────────────┘ │ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
6.2 网络分区
|
区域 |
说明 |
安全级别 |
|---|---|---|
|
DMZ区 |
外网入口,Nginx负载均衡 |
低 |
|
服务区 |
网关与业务服务 |
中 |
|
数据区 |
数据库与缓存 |
高 |
6.3 配置与监控组件
|
组件 |
说明 |
|---|---|
|
Nacos |
配置中心 + 服务发现 |
|
SkyWalking |
分布式链路追踪 |
|
Prometheus + Grafana |
监控告警 |
|
ELK |
日志收集与分析 |
7. 安全架构
7.1 认证与授权
|
认证方式 |
适用场景 |
说明 |
|---|---|---|
|
JWT Token |
PC端、移动端、司机APP |
yudao-cloud 默认认证 |
|
OAuth 2.0 |
第三方系统对接 |
授权码模式 |
|
API Key |
内部系统调用 |
固定密钥认证 |
权限模型:RBAC + 数据权限(基于 yudao-cloud)
7.2 安全注解使用规范
|
注解 |
用途 |
示例 |
|---|---|---|
|
|
方法级权限校验 |
控制调度订单创建 |
|
|
数据权限过滤 |
过滤用户可见的承运商 |
|
|
获取当前登录用户 |
获取操作人信息 |
8. 业务流程图
8.1 调度派车流程
flowchart TD
A[订单创建] --> B[运力匹配]
B --> C[路线规划]
C --> D[派单确认]
D --> E[司机接单]
E --> F[装车确认]
F --> G[发车]
8.2 运输跟踪流程
flowchart TD
A[发车] --> B[GPS定位]
B --> C[轨迹记录]
C --> D{异常检测}
D -->|正常| E[到达目的地]
D -->|异常| F[异常上报]
E --> G[电子签收]
G --> H[回单归档]
8.3 逆向物流流程
flowchart TD
A[退货申请] --> B[上门取件]
B --> C[运输回仓]
C --> D[仓库质检]
D --> E{分类处理}
E -->|良品| F[重新入库]
E -->|不良品| G[退回供应商]
E -->|残次品| H[报废处理]
9. 性能指标与容量规划
9.1 性能指标
|
指标 |
目标值 |
|---|---|
|
接口响应时间 |
P95 < 200ms |
|
订单处理能力 |
50000单/天 |
|
GPS定位频率 |
1次/分钟/车辆 |
|
数据同步延迟 |
< 1秒 |
|
系统可用性 |
99.9% |
9.2 容量规划
10. ToB计划物流配送扩展
10.1 计划物流配送业务流程
flowchart TD
A[客户订单计划] --> B[需求预测]
B --> C[运力资源预排]
C --> D[路线优化规划]
D --> E[计划确认]
E --> F[计划执行调度]
F --> G[在途监控]
G --> H[异常预警]
H --> I[回单结算]
I --> J[KPI分析]
J --> K[计划优化迭代]
10.2 ToB计划物流核心功能模块
|
功能模块 |
核心能力 |
技术实现 |
|---|---|---|
|
需求预测 |
基于历史数据智能预测配送需求 |
AI机器学习算法、时间序列分析 |
|
运力预排 |
车辆、司机、承运商资源计划配置 |
资源优化算法、甘特图可视化 |
|
路线规划 |
多点配送路线智能优化 |
遗传算法、模拟退火、蚁群算法 |
|
时间窗管理 |
客户收货时间窗口约束优化 |
约束规划算法 |
|
多仓协同 |
多仓库、多网点联合配送 |
Milk-Run模型优化 |
|
计划监控 |
计划执行进度实时监控 |
看板系统、进度追踪 |
|
异常预警 |
计划偏差、配送异常智能预警 |
规则引擎、实时监控 |
|
KPI考核 |
准时率、装载率、成本等指标分析 |
数据看板、报表系统 |
10.3 ToB计划物流数据模型扩展
|
表名 |
说明 |
核心字段 |
|---|---|---|
|
|
配送计划表 |
id, plan_no, customer_id, plan_date, status |
|
|
计划明细表 |
id, plan_id, order_id, delivery_point, time_window |
|
|
路线规划表 |
id, plan_id, vehicle_id, route_sequence, distance |
|
|
资源分配表 |
id, plan_id, vehicle_id, driver_id, carrier_id |
|
|
计划KPI表 |
id, plan_id, on_time_rate, load_rate, cost |
|
|
计划异常表 |
id, plan_id, exception_type, handle_status |
10.4 ToB计划物流API扩展
|
API路径 |
HTTP方法 |
功能描述 |
|---|---|---|
|
|
POST |
创建配送计划 |
|
|
POST |
需求预测 |
|
|
POST |
路线优化规划 |
|
|
GET |
计划执行监控 |
|
|
GET |
计划KPI分析 |
|
|
GET |
计划异常列表 |
10.6 水平扩展
-
无状态服务:业务服务设计为无状态,支持弹性伸缩
-
数据库读写分离:主库写,从库读
-
缓存分片:Redis Cluster支持数据分片
10.7 事件驱动
-
RocketMQ消息队列:解耦业务流程,支持异步处理
-
事件溯源:记录所有状态变更事件
10.8 灰度发布
-
蓝绿部署:支持无停机发布
-
流量切分:按比例分配流量到新版本
更多推荐



所有评论(0)