feat(dispatch): 从当前排车提供内部散板需求池

This commit is contained in:
2026-10-21 18:50:56 +08:00
parent 632d35faaf
commit e2ad7857b4
27 changed files with 302 additions and 24 deletions
@@ -0,0 +1,3 @@
-- 本次仅新增排车内部余位发布选项;执行需单独授权,不回填、清理或重置业务数据。
ALTER TABLE ll_dispatch_order
ADD COLUMN publish_looseboard_demand TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否向内部散板需求池发布余位' AFTER task_type;
@@ -1895,6 +1895,7 @@ CREATE TABLE IF NOT EXISTS ll_dispatch_order (
id BIGINT NOT NULL COMMENT '整车排车主单内部主键',
dispatch_no VARCHAR(64) NOT NULL COMMENT '真实排车业务号',
task_type VARCHAR(32) NOT NULL DEFAULT 'DELIVERY' COMMENT '任务类型:仓库派送、到仓取货、本土卡车',
publish_looseboard_demand TINYINT(1) NOT NULL DEFAULT 1 COMMENT '是否向内部散板需求池发布余位',
trip_id BIGINT NOT NULL COMMENT '本趟唯一车辆资源记录ID',
overseas_warehouse_id VARCHAR(128) NOT NULL COMMENT '真实起运海外仓ID',
overseas_warehouse_code VARCHAR(128) NULL COMMENT '起运海外仓编码快照',
@@ -4,6 +4,35 @@ info:
description: 派送资料完整契约见同目录 delivery-documents-v1.yaml;派送列表/详情行返回 bolNo、documentSummary(三类状态与x/3),状态仍使用 version 和 allowedActions。
version: 1.0.0
paths:
/api/platform/v1/last-leg/dispatches/capacity-demands:
get:
summary: 读取有效派送排车的内部散板余位需求
description: 仅平台内部capacity-offer:list或manage可读;返回运输摘要,不返回客户、司机私人资料。实时排除未勾选、取货、本土卡车、已发车、取消及已知满载排车;缺测余位明确未知。
operationId: listDispatchCapacityDemands
security: [{ bearerAuth: [] }]
parameters:
- { name: page, in: query, schema: { type: integer, minimum: 1, default: 1 } }
- { name: size, in: query, schema: { type: integer, minimum: 1, maximum: 100, default: 20 } }
- { name: origin, in: query, schema: { type: string } }
- { name: destination, in: query, schema: { type: string } }
responses:
'200':
description: 统一业务响应,data为包含records、page、size、total和pages的分页结果。
content:
application/json:
schema:
type: object
properties:
code: { type: string }
data:
type: object
properties:
records: { type: array, items: { $ref: '#/components/schemas/DispatchCapacityDemand' } }
page: { oneOf: [{ type: string, pattern: '^[0-9]+$' }, { type: integer }] }
size: { oneOf: [{ type: string, pattern: '^[0-9]+$' }, { type: integer }] }
total: { oneOf: [{ type: string, pattern: '^[0-9]+$' }, { type: integer }] }
pages: { oneOf: [{ type: string, pattern: '^[0-9]+$' }, { type: integer }] }
/api/merchant/v1/last-leg/warehouse-transfers/{transferNo}/increase-forecast-cartons:
post:
summary: 测量完成前增加预报箱数并补充箱唛
@@ -3961,6 +3990,10 @@ components:
type: object
x-java-record: DispatchCommands.Update
properties:
publishLooseboardDemand:
type: boolean
description: 是否向内部散板需求池发布本车余位;新建默认勾选。
recordVersion:
oneOf:
- type: string
@@ -3990,6 +4023,7 @@ components:
type: string
nullable: true
required:
- publishLooseboardDemand
- recordVersion
- idempotencyKey
DeliveryStatusChange:
@@ -5783,10 +5817,31 @@ components:
required:
- sourceType
- sourceVersion
DispatchCapacityDemand:
type: object
x-java-record: DispatchCapacityDemands.Demand
properties:
dispatchNo: { type: string }
warehouseName: { type: string, nullable: true }
route: { type: string, nullable: true }
plannedDepartureAt: { type: string, format: date-time, nullable: true }
vehiclePalletSpaces: { type: integer, nullable: true }
scheduledPalletCount: { type: integer, nullable: true }
remainingPalletSpaces: { type: integer, nullable: true }
remainingWeightKg: { type: number, nullable: true }
remainingVolumeCbm: { type: number, nullable: true }
capacityKnown: { type: boolean }
capacityReason: { type: string, nullable: true }
required: [dispatchNo, capacityKnown]
DispatchCreate:
type: object
x-java-record: DispatchCommands.Create
properties:
publishLooseboardDemand:
type: boolean
description: 是否向内部散板需求池发布本车余位;新建默认勾选。
default: true
idempotencyKey:
type: string
warehouseId:
@@ -6475,6 +6530,10 @@ components:
type: object
x-java-record: DispatchViews.Detail
properties:
publishLooseboardDemand:
type: boolean
description: 是否向内部散板需求池发布本车余位;新建默认勾选。
dispatchNo:
type: string
nullable: true
@@ -6530,6 +6589,7 @@ components:
$ref: '#/components/schemas/DispatchOrderDetail'
nullable: true
required:
- publishLooseboardDemand
- dispatchNo
- status
- stage