feat: freeze and propagate first-leg pallet labels
This commit is contained in:
@@ -348,6 +348,29 @@ CREATE TABLE IF NOT EXISTS fl_loading_plan_item (
|
||||
CONSTRAINT chk_loading_item_deleted CHECK (deleted IN (0, 1))
|
||||
) ENGINE=InnoDB COMMENT='智能装柜客户货物明细;客户归属仅在明细层';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS fl_loading_pallet_label (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '散货托盘标签ID(雪花ID)',
|
||||
loading_plan_id BIGINT UNSIGNED NOT NULL COMMENT '装柜计划ID',
|
||||
loading_plan_item_id BIGINT UNSIGNED NOT NULL COMMENT '标签归属装柜明细ID',
|
||||
account_id BIGINT UNSIGNED NOT NULL COMMENT '客户ID快照',
|
||||
inbound_id BIGINT UNSIGNED NOT NULL COMMENT '入仓单ID快照',
|
||||
inbound_code VARCHAR(40) NOT NULL COMMENT '入仓码快照',
|
||||
container_no VARCHAR(64) NOT NULL COMMENT '真实集装箱号快照',
|
||||
destination_warehouse_code VARCHAR(64) NOT NULL COMMENT 'FBA仓编码快照',
|
||||
destination_warehouse_name VARCHAR(128) NULL COMMENT 'FBA仓名称快照',
|
||||
pallet_index INT UNSIGNED NOT NULL COMMENT '当前柜当前FBA仓内从1开始的序号',
|
||||
pallet_code VARCHAR(128) NOT NULL COMMENT '托盘码:集装箱号-FBA仓编码-三位序号',
|
||||
created_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '生成时间',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY uk_loading_pallet_code (pallet_code),
|
||||
UNIQUE KEY uk_loading_pallet_index (loading_plan_id,destination_warehouse_code,pallet_index),
|
||||
KEY idx_loading_pallet_item (loading_plan_item_id,pallet_index),
|
||||
KEY idx_loading_pallet_inbound (account_id,inbound_id),
|
||||
CONSTRAINT fk_loading_pallet_plan FOREIGN KEY (loading_plan_id) REFERENCES fl_loading_plan(id),
|
||||
CONSTRAINT fk_loading_pallet_item FOREIGN KEY (loading_plan_item_id) REFERENCES fl_loading_plan_item(id),
|
||||
CONSTRAINT chk_loading_pallet_index CHECK (pallet_index BETWEEN 1 AND 999)
|
||||
) ENGINE=InnoDB COMMENT='散货按柜号和FBA仓冻结的可打印托盘码';
|
||||
|
||||
-- 柜次级简单文件仅承载目的港清关和提货单;PU资料作为数字码保存在货柜主表。
|
||||
CREATE TABLE IF NOT EXISTS fl_container_document (
|
||||
id BIGINT UNSIGNED NOT NULL COMMENT '货柜文件关联ID(雪花ID)',
|
||||
|
||||
@@ -74,6 +74,23 @@ paths:
|
||||
content: {application/json: {schema: {$ref: '#/components/schemas/ConfirmPreloadRequest'}}}
|
||||
responses:
|
||||
'200': {$ref: '#/components/responses/PreloadConfirmationResponse'}
|
||||
/api/platform/v1/first-leg/loading-plans/{planId}/pallet-labels/prepare:
|
||||
post:
|
||||
summary: 生成并查询散货托盘码清单
|
||||
description: 预装确认且已有真实柜号后,按柜号-FBA仓编码-三位序号生成稳定清单;一件代发不参与。
|
||||
parameters: [{$ref: '#/components/parameters/PlanId'}, {$ref: '#/components/parameters/WarehouseId'}]
|
||||
responses:
|
||||
'200': {description: 按 FBA 仓分组的散货托盘码清单, content: {application/json: {schema: {type: object}}}}
|
||||
/api/platform/v1/first-leg/loading-plans/{planId}/pallet-labels/print:
|
||||
post:
|
||||
summary: 打印散货托盘码
|
||||
description: 仓码和张数均为空时打印全部;均有值时打印该 FBA 仓从第1张开始的指定数量,用于补打。
|
||||
parameters: [{$ref: '#/components/parameters/PlanId'}, {$ref: '#/components/parameters/WarehouseId'}]
|
||||
requestBody:
|
||||
required: true
|
||||
content: {application/json: {schema: {$ref: '#/components/schemas/PalletLabelPrintRequest'}}}
|
||||
responses:
|
||||
'200': {description: 100mm × 100mm 托盘码 PDF, content: {application/pdf: {schema: {type: string, format: binary}}}}
|
||||
/api/platform/v1/first-leg/loading-lists:
|
||||
get:
|
||||
summary: 分页查询装柜清单
|
||||
@@ -430,3 +447,9 @@ components:
|
||||
voyageNo: {type: string, maxLength: 64, nullable: true, description: 航次}
|
||||
expectedVersion: {type: integer, format: int32, minimum: 0, description: 当前乐观锁版本}
|
||||
operationReason: {type: string, minLength: 1, maxLength: 500, nullable: true, description: 纠正已有真实集装箱号时必填;首次补录或保持当前柜号时可省略}
|
||||
PalletLabelPrintRequest:
|
||||
type: object
|
||||
additionalProperties: false
|
||||
properties:
|
||||
destinationWarehouseCode: {type: string, maxLength: 64, nullable: true}
|
||||
count: {type: integer, minimum: 1, maximum: 999, nullable: true}
|
||||
|
||||
Reference in New Issue
Block a user