3. 车辆主数据模型:TMS侧车辆主数据字段定义
TMS(运输管理系统)侧的车辆主数据模型,是运输执行与调度优化的核心数据底座。与ERP侧重资产财务属性不同,TMS的车辆模型更关注运力状态、实时通信、司机绑定关系以及作业可用性。以下字段定义基于行业最佳实践与主流TMS产品(如OTM、蓝桥、G7、运匠等)的数据模型抽象。
3.1 核心字段总览
TMS车辆主数据通常包含以下五大类字段,共计约20-30个核心属性。下表列出最关键的必填与业务字段:
| 分类 | 字段名称 | 数据类型 | 业务说明 | 同步来源 |
|---|---|---|---|---|
| 标识 | 车辆ID (VehicleID) | VARCHAR(32) | TMS内部唯一主键,通常由ERP车辆编码映射生成 | ERP → TMS |
| 标识 | 车牌号 (LicensePlate) | VARCHAR(20) | 车辆唯一视觉标识,用于调度与门禁识别 | ERP → TMS |
| 标识 | ERP车辆编码 (ERPCode) | VARCHAR(32) | ERP侧资产编号,用于双向关联 | ERP → TMS |
| 司机绑定 | 默认司机ID (DefaultDriverID) | VARCHAR(32) | 与该车辆长期绑定的主司机,TMS司机主数据外键 | TMS维护 |
| 司机绑定 | 当前司机ID (CurrentDriverID) | VARCHAR(32) | 实际执行当前运输任务的司机,可动态变更 | TMS实时 |
| 司机绑定 | 副司机ID (CoDriverID) | VARCHAR(32) | 双驾模式下的副司机,可选字段 | TMS维护 |
| 设备 | GPS设备号 (GPSDeviceID) | VARCHAR(64) | 车载定位终端IMEI或设备序列号,用于轨迹与电子围栏 | TMS/物联平台 |
| 设备 | T-Box型号 (TBoxModel) | VARCHAR(32) | 远程信息处理终端型号,影响数据协议解析 | TMS维护 |
| 设备 | SIM卡号 (SIMCard) | VARCHAR(20) | 通信SIM卡ICCID,用于网络连接管理 | TMS维护 |
| 状态 | 车辆状态 (VehicleStatus) | ENUM | 可用/在途/维修/停用/报废,影响调度排班 | TMS实时 |
| 状态 | 运营状态 (OpsStatus) | ENUM | 空闲/已分配/满载/空驶,更细粒度的运力状态 | TMS实时 |
| 状态 | 上次维保日期 (LastMaintenance) | DATE | 用于触发维保预警,防止带病上路 | ERP → TMS |
实践要点: 车辆ID建议采用“车牌号+企业代码”的复合主键,避免多公司或多法人场景下的主键冲突。GPS设备号与车辆ID的绑定关系,建议在TMS侧独立维护,而非依赖ERP同步,因为物联设备变更频繁。
3.2 车辆状态枚举与业务含义
车辆状态是调度决策的核心依据。TMS侧通常维护两套状态体系:静态状态(由ERP同步或管理员维护)与动态状态(由GPS、任务执行、司机打卡等实时事件驱动)。
3.2.1 静态状态(生命周期状态)
- 正常(Active):车辆可参与调度,所有证件、保险、年检有效。
- 维修(Maintenance):车辆在维修厂,不可调度。通常由ERP维保工单触发。
- 停用(Inactive):车辆暂时封存,如季节性闲置。
- 报废(Scrapped):车辆已退出运营,TMS侧应归档或逻辑删除。
3.2.2 动态状态(运营状态)
- 空闲(Idle):无任务、无绑定运单,可立即调度。
- 已分配(Assigned):已绑定运单但未开始执行(未发车)。
- 在途(In Transit):已发车,GPS轨迹持续上报。
- 到达(Arrived):已到达目的地,等待签收或卸货。
- 待清洗/待加油(Pending Service):任务完成后需进行车辆服务。
状态转换规则: 动态状态由TMS事件引擎自动驱动,无需人工干预。例如:司机在TMS App点击“发车” → 状态自动从“已分配”变为“在途”;GPS信号丢失超过30分钟 → 状态自动标记为“离线异常”。
3.3 司机绑定模型:多对多 vs 一对多
车辆与司机的绑定关系,在TMS数据模型中存在两种主流设计模式:
| 模式 | 描述 | 适用场景 | 数据模型复杂度 |
|---|---|---|---|
| 默认绑定(1:N) | 一辆车绑定一个默认司机,但实际执行时可临时更换 | 自有车队、固定人车关系 | 低 |
| 灵活绑定(M:N) | 车辆与司机通过“排班表”或“任务单”动态关联,无固定绑定 | 外协车队、共享运力池、司机轮班制 | 高 |
在TMS车辆主数据中,默认司机ID字段用于支持1:N模式;对于M:N模式,则通过独立的VehicleDriverAssignment关联表实现,车辆主数据中仅保留当前司机ID作为冗余字段以提升查询性能。
3.4 GPS设备号与物联集成
GPS设备号是TMS车辆主数据中连接物理世界的关键字段。其数据流通常如下:
- 设备注册:GPS终端在物联平台(如G7、中交兴路)注册,生成唯一设备ID。
- 设备绑定:在TMS车辆编辑页面,通过设备号搜索并绑定到具体车辆。
- 数据同步:物联平台将GPS数据(经纬度、速度、方向、点火状态)实时推送至TMS。
- 状态映射:TMS根据GPS数据(如点火状态、连续停车时长)自动更新车辆动态状态。
常见问题: GPS设备号与车辆ID的绑定关系,在ERP中通常不存在。如果TMS完全依赖ERP同步车辆数据,会导致GPS设备号缺失。解决方案:在TMS侧建立独立的“车辆-设备关联表”,或通过物联平台API自动同步绑定关系。
3.5 车辆主数据模型关系图
下图展示了TMS侧车辆主数据与周边核心实体的关联关系:
3.6 字段定义规范与示例
在实际项目中,车辆主数据字段定义通常以数据字典形式输出。以下是一个JSON Schema示例,展示TMS侧车辆主数据的标准结构:
{
"vehicleId": "VH-2025-00128",
"licensePlate": "沪A·88888",
"erpCode": "AST-2024-VH-0128",
"vehicleType": "厢式货车",
"loadCapacityKg": 10000,
"volumeM3": 45,
"defaultDriverId": "DRV-2023-0567",
"currentDriverId": "DRV-2023-0567",
"coDriverId": null,
"gpsDeviceId": "GPS-IMEI-869742036145789",
"tBoxModel": "G7-S5 Pro",
"simCard": "8986112233445566778",
"vehicleStatus": "Active",
"opsStatus": "Idle",
"lastMaintenanceDate": "2025-02-15",
"nextMaintenanceDate": "2025-05-15",
"insuranceExpiry": "2025-12-31",
"annualInspectionExpiry": "2025-10-01",
"createdAt": "2024-06-01T08:00:00Z",
"updatedAt": "2025-03-10T14:30:00Z"
}
字段命名规范: 建议TMS侧统一使用驼峰命名法(camelCase),与ERP侧的下划线命名法(snake_case)通过映射层转换。例如:ERP字段
vehicle_status 映射为TMS字段 vehicleStatus。
3.7 车辆主数据同步策略要点
- 增量同步:车辆新增、修改、报废等变更,通过ERP接口实时或定时(如每15分钟)推送至TMS。
- 字段映射:ERP的“资产状态”需映射为TMS的“车辆状态”,例如ERP的“使用中”对应TMS的“Active”。
- 冲突处理:当TMS侧独立维护的字段(如GPS设备号、当前司机)与ERP同步字段冲突时,以TMS侧为准,并记录变更日志。
- 数据校验:车牌号格式校验、GPS设备号唯一性校验、司机ID有效性校验,在TMS入库前执行。
关键结论: TMS车辆主数据模型不是ERP车辆资产模型的子集,而是面向运输执行场景的增强模型。GPS设备号、司机绑定、动态状态等字段是TMS独有的核心能力,必须在TMS侧独立维护,才能支撑实时调度与在途监控。