贴标申请,仓储转运
This commit is contained in:
@@ -3597,6 +3597,35 @@ PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
SET @ddl = IF(EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_return_inventory_carton' AND column_name='label_status'), 'SELECT 1', 'ALTER TABLE ll_return_inventory_carton ADD COLUMN label_status VARCHAR(32) NULL COMMENT ''WAIT_LABEL待贴标 CONFIRMED已扫码确认标签''');
|
||||
PREPARE stmt FROM @ddl; EXECUTE stmt; DEALLOCATE PREPARE stmt;
|
||||
|
||||
-- SKU 换标实物转换:先执行本增量,再部署服务。不会自动改写存量业务事实。
|
||||
SET @return_sku_ddl = (SELECT IF(EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_return_inventory_carton_item' AND column_name='relabelled_quantity'), 'SELECT 1', 'ALTER TABLE ll_return_inventory_carton_item ADD COLUMN relabelled_quantity BIGINT NOT NULL DEFAULT 0 COMMENT ''当前SKU已经换标的实物件数,不可二次换标'''));
|
||||
PREPARE return_sku_stmt FROM @return_sku_ddl; EXECUTE return_sku_stmt; DEALLOCATE PREPARE return_sku_stmt;
|
||||
CREATE TABLE IF NOT EXISTS ll_return_sku_conversion (
|
||||
id BIGINT NOT NULL COMMENT 'SKU库存转换记录ID',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||||
overseas_warehouse_id VARCHAR(128) NOT NULL COMMENT '操作海外仓ID',
|
||||
application_id BIGINT NOT NULL COMMENT '换标申请ID',
|
||||
relabel_no VARCHAR(64) NOT NULL COMMENT '换标单号',
|
||||
item_id BIGINT NOT NULL COMMENT '换标箱级明细ID',
|
||||
round_key VARCHAR(64) NOT NULL COMMENT '作业轮次,退回重做使用新轮次',
|
||||
carton_id BIGINT NOT NULL COMMENT '实物来源包裹或箱ID',
|
||||
carton_mark VARCHAR(128) NOT NULL COMMENT '完工时仓库识别码',
|
||||
old_sku_code VARCHAR(128) NOT NULL COMMENT '换标前SKU',
|
||||
new_sku_code VARCHAR(128) NOT NULL COMMENT '换标后SKU',
|
||||
product_name_zh VARCHAR(255) NULL COMMENT '中文品名快照',
|
||||
quantity BIGINT NOT NULL COMMENT '实际完成转换件数',
|
||||
status VARCHAR(32) NOT NULL COMMENT 'APPLIED待客户确认/CONFIRMED已确认/REVERSED退回冲回',
|
||||
ownership_json LONGTEXT NOT NULL COMMENT '本次转换件数的来源退货单快照,供精确冲回',
|
||||
completed_at DATETIME(3) NOT NULL COMMENT '实物SKU转换时间',
|
||||
confirmed_at DATETIME(3) NULL COMMENT '客户确认时间',
|
||||
reversed_at DATETIME(3) NULL COMMENT '退回冲回时间',
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE KEY uk_return_sku_conversion_round(item_id,round_key,old_sku_code,new_sku_code),
|
||||
KEY idx_return_sku_conversion_app(customer_id,application_id,status),
|
||||
KEY idx_return_sku_conversion_carton(customer_id,carton_id),
|
||||
CONSTRAINT chk_return_sku_conversion_quantity CHECK(quantity>0)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='退货实物SKU换标库存转换和冲回记录';
|
||||
|
||||
|
||||
-- 平台自营领星统计:独立事实与不可变发布版本;仅空库初始化,不自动执行。
|
||||
CREATE TABLE ll_selfop_outbound_discovery_scope (
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
-- SKU 换标实物转换:先执行本增量,再部署服务。不会自动改写存量业务事实。
|
||||
SET @return_sku_ddl = (SELECT IF(EXISTS(SELECT 1 FROM information_schema.columns WHERE table_schema=DATABASE() AND table_name='ll_return_inventory_carton_item' AND column_name='relabelled_quantity'), 'SELECT 1', 'ALTER TABLE ll_return_inventory_carton_item ADD COLUMN relabelled_quantity BIGINT NOT NULL DEFAULT 0 COMMENT ''当前SKU已经换标的实物件数,不可二次换标'''));
|
||||
PREPARE return_sku_stmt FROM @return_sku_ddl; EXECUTE return_sku_stmt; DEALLOCATE PREPARE return_sku_stmt;
|
||||
CREATE TABLE IF NOT EXISTS ll_return_sku_conversion (
|
||||
id BIGINT NOT NULL COMMENT 'SKU库存转换记录ID',
|
||||
customer_id VARCHAR(128) NOT NULL COMMENT '客户隔离键',
|
||||
overseas_warehouse_id VARCHAR(128) NOT NULL COMMENT '操作海外仓ID',
|
||||
application_id BIGINT NOT NULL COMMENT '换标申请ID',
|
||||
relabel_no VARCHAR(64) NOT NULL COMMENT '换标单号',
|
||||
item_id BIGINT NOT NULL COMMENT '换标箱级明细ID',
|
||||
round_key VARCHAR(64) NOT NULL COMMENT '作业轮次,退回重做使用新轮次',
|
||||
carton_id BIGINT NOT NULL COMMENT '实物来源包裹或箱ID',
|
||||
carton_mark VARCHAR(128) NOT NULL COMMENT '完工时仓库识别码',
|
||||
old_sku_code VARCHAR(128) NOT NULL COMMENT '换标前SKU',
|
||||
new_sku_code VARCHAR(128) NOT NULL COMMENT '换标后SKU',
|
||||
product_name_zh VARCHAR(255) NULL COMMENT '中文品名快照',
|
||||
quantity BIGINT NOT NULL COMMENT '实际完成转换件数',
|
||||
status VARCHAR(32) NOT NULL COMMENT 'APPLIED待客户确认/CONFIRMED已确认/REVERSED退回冲回',
|
||||
ownership_json LONGTEXT NOT NULL COMMENT '本次转换件数的来源退货单快照,供精确冲回',
|
||||
completed_at DATETIME(3) NOT NULL COMMENT '实物SKU转换时间',
|
||||
confirmed_at DATETIME(3) NULL COMMENT '客户确认时间',
|
||||
reversed_at DATETIME(3) NULL COMMENT '退回冲回时间',
|
||||
PRIMARY KEY(id),
|
||||
UNIQUE KEY uk_return_sku_conversion_round(item_id,round_key,old_sku_code,new_sku_code),
|
||||
KEY idx_return_sku_conversion_app(customer_id,application_id,status),
|
||||
KEY idx_return_sku_conversion_carton(customer_id,carton_id),
|
||||
CONSTRAINT chk_return_sku_conversion_quantity CHECK(quantity>0)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='退货实物SKU换标库存转换和冲回记录';
|
||||
@@ -1815,7 +1815,7 @@ paths:
|
||||
/api/merchant/v1/last-leg/return-inventory/summary:
|
||||
get:
|
||||
summary: 客户查询退货库存 SKU 汇总
|
||||
description: 客户范围只取认证 Token。按海外仓和 SKU 汇总 PDA 实收上架数量及可用箱数。
|
||||
description: 客户范围只取认证 Token。按海外仓和 SKU 汇总 PDA 实收上架数量及可用箱数。relabelLockedQuantity 为换标处理中整箱锁定的该 SKU 在库件数,包含同箱未申请换标但无法使用的余量;不包含合箱、待清点或出库占用,不等同于未完成换标任务件数。
|
||||
security: [{ bearerAuth: [] }]
|
||||
parameters:
|
||||
- { name: page, in: query, schema: { type: integer, minimum: 1, default: 1 } }
|
||||
@@ -3074,6 +3074,9 @@ components:
|
||||
customerConfirmedAt: { type: string, format: date-time, nullable: true }
|
||||
reviewChannel: { type: string, enum: [TAIL_ORDER, RELABEL_ORDER], description: TAIL_ORDER 表示客户直接贴标,RELABEL_ORDER 表示其他业务关联换标 }
|
||||
reviewRemark: { type: string, nullable: true, description: 当前驳回状态最近一次审核驳回原因 }
|
||||
reviewedAt: { type: string, format: date-time, nullable: true, description: 最近一次申请审核通过或驳回时间 }
|
||||
relabelCompletedAt: { type: string, format: date-time, nullable: true, description: 本轮贴标作业提交完成时间,退回重做后完成前为空 }
|
||||
outboundAt: { type: string, format: date-time, nullable: true, description: 实际出库时间,无需出库的纯 SKU 贴标完成不会产生出库时间 }
|
||||
createdAt: { type: string, format: date-time }
|
||||
RelabelDetail:
|
||||
type: object
|
||||
@@ -3104,6 +3107,7 @@ components:
|
||||
RelabelInventoryCandidate:
|
||||
type: object
|
||||
properties:
|
||||
skuConversions: { type: array, items: { $ref: '#/components/schemas/ReturnSkuConversion' }, description: 当前实物关联的旧新SKU转换、实际件数和客户确认状态 }
|
||||
relabelStatus: { type: string, nullable: true, enum: [UNLABELLED, PROCESSING, PARTIALLY_COMPLETED, COMPLETED], description: 退货实物按实际完成件数和未完成申请占用计算 }
|
||||
relabelledPackages: { type: integer, format: int64, description: 退货实际已完成商品换标件数,不从可用库存差值推导 }
|
||||
relabelledQuantity: { type: integer, format: int64, minimum: 0 }
|
||||
@@ -3122,7 +3126,7 @@ components:
|
||||
availablePackages: { type: integer, format: int64 }
|
||||
version: { type: integer, format: int64 }
|
||||
positions: { type: array, items: { $ref: '#/components/schemas/RelabelInventoryPosition' } }
|
||||
sourceType: { type: string, enum: [INBOUND, RETURN_CARTON, RETURN_PARCEL], description: RETURN_PARCEL与RETURN_CARTON均支持整实体箱唛、SKU或混贴,实物单位计1;SKU按件,部分数量先隔离为独立新箱 }
|
||||
sourceType: { type: string, enum: [INBOUND, RETURN_CARTON, RETURN_PARCEL], description: RETURN_PARCEL与RETURN_CARTON均支持整实体箱唛、SKU或混贴,实物单位计1;SKU按件,编码转换保留原识别码及总件数,部分出库需先隔离为独立新箱 }
|
||||
returnCartonId: { type: string, nullable: true, description: 退货合箱库存主键;sourceType=RETURN_CARTON 时提供 }
|
||||
cartonMark: { type: string, nullable: true, description: 仓库合箱后打印并贴箱的仓库唛头 }
|
||||
skuItems:
|
||||
@@ -3135,6 +3139,16 @@ components:
|
||||
newSkuCode: { type: string, nullable: true }
|
||||
quantity: { type: integer, minimum: 1 }
|
||||
remark: { type: string, nullable: true }
|
||||
ReturnSkuConversion:
|
||||
type: object
|
||||
properties:
|
||||
relabelNo: { type: string }
|
||||
cartonMark: { type: string, description: 完工时的包裹或箱识别码 }
|
||||
oldSkuCode: { type: string }
|
||||
newSkuCode: { type: string }
|
||||
quantity: { type: integer, format: int64, minimum: 1 }
|
||||
status: { type: string, enum: [APPLIED, CONFIRMED, REVERSED] }
|
||||
completedAt: { type: string, format: date-time }
|
||||
RelabelInventoryPosition:
|
||||
type: object
|
||||
properties:
|
||||
|
||||
@@ -2,7 +2,7 @@ openapi: 3.0.3
|
||||
info:
|
||||
title: 退货合箱计划与箱级上架
|
||||
version: 1.0.0
|
||||
description: 包裹可包含多个SKU并拥有独立标签;整包裹/箱可直接出库,部分数量须精确选择来源包裹/箱合箱成新标签箱。托盘仅为可选载体。合箱不新增订单货量。
|
||||
description: 包裹可包含多个SKU并拥有独立标签;整包裹/箱可直接出库,部分数量须精确选择来源包裹/箱合箱成新标签箱。托盘仅为可选载体。合箱不新增订单货量。SKU编码换标完工时原子扣旧SKU、加新SKU,总件数守恒;客户确认前保持RELABEL_PENDING占用,退回重做冲回本轮转换。CartonDetail返回skuConversions(换标单号、完工识别码、旧新SKU、实际数量、APPLIED/CONFIRMED/REVERSED状态和时间),items返回当前quantity、availableQuantity、relabelledQuantity、remainingRelabelQuantity;新SKU已换标件数不可二次换标。
|
||||
security: [{ bearerAuth: [] }]
|
||||
paths:
|
||||
/api/platform/v1/last-leg/return-packing-plans:
|
||||
|
||||
Reference in New Issue
Block a user