优化
This commit is contained in:
@@ -3,27 +3,16 @@ info:
|
||||
title: 平台运输车次与资源分配
|
||||
version: 1.0.0
|
||||
description: >-
|
||||
车次是一次实际运输的稳定业务编号,客户排车、库存和派送单继续保留各自客户归属。
|
||||
本文件定义计划、资源分配及客户排车单关联命令;分配或关联不会扣库存或标记发车。
|
||||
创建可暂不指定车与司机,幂等键按创建人隔离;相同键相同内容返回同一车次,不同内容拒绝。
|
||||
正式分配要求在役海外车辆及已确认的托位/载重/容积,以及海外司机;司机按预计任务结束时间重新核验且验证证照文件。
|
||||
发车预览与实际发车重新核对司机当前海外区域和身份;分配后档案变更不能沿用原分配时的资格结果。
|
||||
一个车辆或司机同时只能占用一个未释放车次;当前不提供多个未来时段的并行预约。
|
||||
改派先取得新资源,成功后释放旧资源;整次写入与历史处于同一事务。
|
||||
司机预计结束包含承担的返程/转场;修改预计结束须重新核验司机,所有写命令使用recordVersion。
|
||||
普通计划接口不提供修改发车或签收状态的入口;PDA统一发车,结案检查所有客户派送终态及实发数量。
|
||||
货物结案不释放车辆或司机;结束各资源任务独立提交实际结束时间、地点和原因,车辆另确认可用/维修/停用/已归还状态。
|
||||
结案和结束任务命令携带版本及幂等键;结束司机任务不要求其证照仍有效,也不自动恢复其派车资格。
|
||||
关联要求已分配车和司机,客户排车单同起运仓且未开始拣货;可跨客户关联但不改变客户数据归属。
|
||||
同一排车单唯一关联一个车次;关联、改派、解除及尚未执行的派送单车/司机快照同步使用同一事务。
|
||||
关联后子排车不能独立编辑、取消或单独发车;取消车次前须解除关联,已开工不允许直接解除或变更路线。
|
||||
发车前允许在车次统一换车、换司机或调整时间,保留全部拣货事实与客户归属;已确认装载须能容纳于替换车辆。
|
||||
改派或调整计划使原装载确认失效,发车前须重新确认;不支持用计划接口处理在途换车或撤销已执行货物。
|
||||
关联只建立执行单据关系,不代表实际装载量、容量核验或审核已完成。
|
||||
每张客户排车单调度审核通过后允许新拣货;整车确认实际装载并通过理货审核后允许发车。
|
||||
审核仅通过或打回,通过意见选填、打回原因必填;无需额外提交或不同审核人。
|
||||
换车换司机、修改路线或时间使调度与理货审核待审;仅修改备注保留审核及装载。
|
||||
关联变更、重新确认装载或重新审核客户排车单使理货审核待审;保留全部拣货事实及历史审核快照。
|
||||
排车列表是一趟整车作业的唯一主入口,一张排车单对应唯一车次资源记录;同一起运仓允许多个客户和目的地。
|
||||
整车主单与任务不属于单一客户,货物明细、扫码归属、出库和派送单分别保留真实客户边界。
|
||||
本文件保留资源占用查询、历史详情、计划容量、外接预订、结案及车辆/司机任务结束等附加能力。
|
||||
不提供独立派送车次创建、多排车单手工绑定、旧调度/理货审核或装车写入口;审核和装发使用排车主单接口。
|
||||
已绑定排车主单的资源与路线调整由排车主单执行;零真实扫码时显式退回装车前,修改后重新两级审核。
|
||||
车辆和司机资格、容量与实际占用由服务端复验;候选可用不表示已预留,临时外配证据依排车主单规则核验。
|
||||
调度审核后经理货审核才可真实扫码;PDA拣货核平后,平台和PDA均可确认装车完成及实际发车。
|
||||
发车前整车派送安排须完整,正常签收汇总推进排车派送完成;既有异常业务和附加资源能力保留。
|
||||
货物结案不自动释放车辆或司机;各资源任务分别提交实际结束时间、地点和原因,车辆另确认结束状态。
|
||||
版本、幂等、客户隔离及事务要求以各实际端点及排车公共契约为准;历史数量不授权当前分配。
|
||||
security:
|
||||
- bearerAuth: []
|
||||
paths:
|
||||
@@ -350,7 +339,7 @@ components:
|
||||
dispatches: {type: array, items: {$ref: '#/components/schemas/DispatchBinding'}}
|
||||
previousDispatches:
|
||||
type: array
|
||||
description: 原绑定历史中已不在当前绑定的批次、客户及来源引用,按最新有效证据去重;历史数量不作为当前装载或可分配数量
|
||||
description: 原绑定历史中已不在当前绑定的批次及其客户、来源引用,按最新有效证据去重;历史数量不作为当前装载或可分配数量
|
||||
items: {$ref: '#/components/schemas/PreviousDispatch'}
|
||||
appointmentHistoryUnavailableReason:
|
||||
type: string
|
||||
@@ -656,20 +645,6 @@ components:
|
||||
manifestHash: {type: string, pattern: '^[0-9a-f]{64}$'}
|
||||
pallets: {type: array, minItems: 1, maxItems: 1000, items: {$ref: '#/components/schemas/Measurement'}}
|
||||
reason: {type: string, minLength: 1, maxLength: 1000}
|
||||
BindingCommand:
|
||||
type: object
|
||||
required: [recordVersion, dispatchNo, reason]
|
||||
properties:
|
||||
recordVersion: {type: integer, format: int64, minimum: 0}
|
||||
dispatchNo: {type: string, minLength: 1, maxLength: 64}
|
||||
reason: {type: string, minLength: 1, maxLength: 1000}
|
||||
Review:
|
||||
type: object
|
||||
required: [recordVersion, decision]
|
||||
properties:
|
||||
recordVersion: {type: integer, format: int64, minimum: 0}
|
||||
decision: {type: string, enum: [APPROVED, REJECTED]}
|
||||
reason: {type: string, nullable: true, maxLength: 1000, description: 通过选填;打回必填}
|
||||
ReviewState:
|
||||
type: object
|
||||
required: [status]
|
||||
@@ -685,17 +660,15 @@ components:
|
||||
properties:
|
||||
appointmentBatches: {type: array, items: {$ref: 'overseas-business-v1.yaml#/components/schemas/DispatchBatchReference'}}
|
||||
dispatchNo: {type: string}
|
||||
customerId: {type: string, description: 排车单自身客户归属,由服务端解析}
|
||||
packageCount: {type: integer, description: 关联时待发运箱数,不是实物托位数}
|
||||
boundBy: {type: string}
|
||||
boundAt: {type: string, format: date-time}
|
||||
review: {$ref: '#/components/schemas/ReviewState'}
|
||||
PreviousDispatch:
|
||||
type: object
|
||||
required: [dispatchNo, customerId, recordVersion, recordedAt, appointmentBatches]
|
||||
required: [dispatchNo, recordVersion, recordedAt, appointmentBatches]
|
||||
properties:
|
||||
dispatchNo: {type: string}
|
||||
customerId: {type: string}
|
||||
recordVersion: {type: integer, format: int64, description: 原绑定历史的车次版本}
|
||||
recordedAt: {type: string, format: date-time}
|
||||
appointmentBatches: {type: array, items: {$ref: 'overseas-business-v1.yaml#/components/schemas/DispatchBatchReference'}}
|
||||
@@ -712,16 +685,6 @@ components:
|
||||
name: {type: string, minLength: 1, maxLength: 128}
|
||||
address: {type: string, nullable: true, maxLength: 500}
|
||||
destinationKey: {type: string, nullable: true, maxLength: 160, description: 卸货站匹配Loading货物的destinationKey;未配置时可以保存计划但不能确认装载}
|
||||
Create:
|
||||
type: object
|
||||
required: [warehouseId, plannedDepartureAt, expectedDriverEndAt, stops, idempotencyKey]
|
||||
properties:
|
||||
warehouseId: {type: string, pattern: '^[1-9][0-9]*$'}
|
||||
plannedDepartureAt: {type: string, format: date-time}
|
||||
expectedDriverEndAt: {type: string, format: date-time}
|
||||
stops: {type: array, minItems: 2, maxItems: 200, items: {$ref: '#/components/schemas/Stop'}}
|
||||
remark: {type: string, nullable: true, maxLength: 1000}
|
||||
idempotencyKey: {type: string, minLength: 8, maxLength: 128}
|
||||
Plan:
|
||||
type: object
|
||||
required: [recordVersion, plannedDepartureAt, expectedDriverEndAt, stops, reason]
|
||||
|
||||
Reference in New Issue
Block a user