贴标申请,仓储转运
This commit is contained in:
@@ -272,11 +272,82 @@ paths:
|
||||
itemId: { type: string, pattern: '^[0-9]+$' }
|
||||
skuIndex: { type: integer, minimum: 0 }
|
||||
oldSku: { type: string, maxLength: 255 }
|
||||
cartonMark: { type: string, maxLength: 128, description: 退货SKU作业必填,须扫描当前实体来源包裹或箱 }
|
||||
newSkuCode: { type: string, maxLength: 128, description: 退货SKU作业必填,须与批准的目标标签一致 }
|
||||
quantity: { type: integer, minimum: 1, description: 退货SKU作业必填,须与本明细批准件数一致 }
|
||||
expectedVersion: { type: integer, minimum: 0 }
|
||||
idempotencyKey: { type: string, maxLength: 255 }
|
||||
responses:
|
||||
'200': { description: 更新后的任务, content: { application/json: { schema: { $ref: '#/components/schemas/RelabelDetailResponse' } } } }
|
||||
'409': { description: 已处理、映射不符、认领人或版本冲突 }
|
||||
/api/pda/v1/last-leg/relabel-tasks/{relabelNo}/return-skus/complete:
|
||||
post:
|
||||
summary: 扫描来源包裹或箱及SKU登记退货按件换标实际完成量
|
||||
parameters: [{ name: relabelNo, in: path, required: true, schema: { type: string } }]
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [itemId, quantity, expectedVersion, idempotencyKey, cartonMark, skuCode]
|
||||
properties:
|
||||
itemId: { type: string, pattern: '^[0-9]+$' }
|
||||
quantity: { type: integer, minimum: 1 }
|
||||
expectedVersion: { type: integer, minimum: 0 }
|
||||
idempotencyKey: { type: string, maxLength: 255 }
|
||||
cartonMark: { type: string, maxLength: 128 }
|
||||
skuCode: { type: string, maxLength: 128 }
|
||||
responses: { '200': { description: 更新后Detail;同键同请求重放 }, '409': { description: 来源、SKU、剩余件数或版本冲突 } }
|
||||
/api/pda/v1/last-leg/relabel-tasks/{relabelNo}/return-skus/complete-total:
|
||||
post:
|
||||
summary: 单一来源的退货SKU按件完成
|
||||
description: 同SKU涉及多个来源包裹或箱时拒绝自动分配,必须逐来源扫码。
|
||||
parameters: [{ name: relabelNo, in: path, required: true, schema: { type: string } }]
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [skuCode, quantity, expectedVersion, idempotencyKey]
|
||||
properties:
|
||||
skuCode: { type: string }
|
||||
quantity: { type: integer, minimum: 1 }
|
||||
expectedVersion: { type: integer, minimum: 0 }
|
||||
idempotencyKey: { type: string }
|
||||
responses: { '200': { description: 更新后Detail }, '409': { description: 多来源或数量冲突 } }
|
||||
/api/pda/v1/last-leg/relabel-tasks/{relabelNo}/return-cartons/pack:
|
||||
post:
|
||||
summary: 将本任务已完成的退货SKU件数隔离合箱为独立新箱
|
||||
description: 必须由认领人在PROCESSING阶段完成所有申请明细后执行;原包裹余量守恒,保留跨退货单追溯。响应Detail的items切换为新箱,history的RETURN_PACK.detail JSON含round、sourceCartonMarks、sourceDeductions、cartonMark、quantity和label.printableHtml。标签为仓库识别标签,与商品换标资料分开。同键重放原结果。
|
||||
parameters: [{ name: relabelNo, in: path, required: true, schema: { type: string } }]
|
||||
requestBody:
|
||||
required: true
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: object
|
||||
required: [sourceCartonMarks, idempotencyKey, length, width, height, weight]
|
||||
properties:
|
||||
sourceCartonMarks: { type: array, minItems: 1, maxItems: 100, items: { type: string } }
|
||||
targetCartonMark: { type: string, nullable: true, description: 必须为空,由系统生成独立新箱 }
|
||||
idempotencyKey: { type: string, maxLength: 255 }
|
||||
sourceDeductions:
|
||||
type: array
|
||||
description: 可省略由服务端生成;填写时按来源箱和SKU汇总必须与本任务完成明细一致
|
||||
items:
|
||||
type: object
|
||||
required: [cartonMark, skuCode, quantity]
|
||||
properties:
|
||||
cartonMark: { type: string }
|
||||
skuCode: { type: string }
|
||||
quantity: { type: integer, format: int64, minimum: 1 }
|
||||
length: { type: number, exclusiveMinimum: true, minimum: 0 }
|
||||
width: { type: number, exclusiveMinimum: true, minimum: 0 }
|
||||
height: { type: number, exclusiveMinimum: true, minimum: 0 }
|
||||
weight: { type: number, exclusiveMinimum: true, minimum: 0 }
|
||||
responses: { '200': { description: 更新后Detail含新箱识别标签 }, '409': { description: 未完成申请、来源变动或数量冲突 } }
|
||||
/api/pda/v1/last-leg/relabel-tasks/{relabelNo}/units/skip:
|
||||
post:
|
||||
summary: 登记一件有原因的跳过事实
|
||||
@@ -751,6 +822,8 @@ components:
|
||||
type: object
|
||||
required: [relabelNo, applicationStatus, operationType, taskStatus, expectedPackages, relabelledPackages, skippedPackages, exceptionPackages, version, completionPhotoFileIds, items, unitFacts, history]
|
||||
properties:
|
||||
deliveryMethod: { type: string, nullable: true, description: 申请真实运输方式,留仓为空 }
|
||||
requiresPalletBinding: { type: boolean, description: 退货任务仅TRUCK为true,留仓及快递为false }
|
||||
relabelNo: { type: string }
|
||||
customerOrderNo: { type: string, nullable: true }
|
||||
labelDeadline: { type: string, format: date-time, nullable: true }
|
||||
@@ -791,7 +864,7 @@ components:
|
||||
relabelFileUrl: { type: string, nullable: true }
|
||||
cartonMark: { type: string, nullable: true, description: 我方箱唛 }
|
||||
fbaCartonMark: { type: string, nullable: true, description: 新FBA箱唛 }
|
||||
operationType: { type: string, enum: [CARTON_LABEL, SKU_LABEL, CARTON_AND_SKU] }
|
||||
operationType: { type: string, enum: [CARTON_LABEL, SKU_LABEL, CARTON_AND_SKU, RETURN_BULK_SKU_LABEL] }
|
||||
skuItems: { type: array, items: { $ref: '#/components/schemas/RelabelSkuItem' } }
|
||||
expectedPackages: { type: integer }
|
||||
relabelledPackages: { type: integer }
|
||||
@@ -799,6 +872,8 @@ components:
|
||||
exceptionPackages: { type: integer }
|
||||
cartonProcessedPackages: { type: integer, description: 本轮箱唛作业已完成箱数,混合单独立计数 }
|
||||
skuProcessedPackages: { type: integer, description: 本轮SKU作业已完成箱数,两项均完成才增加整箱已换标数 }
|
||||
returnCartonId: { type: string, nullable: true, description: 真实退货包裹或箱ID }
|
||||
returnQuantity: { type: integer, format: int64, minimum: 0, description: 当前实物包裹或箱全部件数;不是申请量 }
|
||||
RelabelSkuItem:
|
||||
type: object
|
||||
required: [skuCode, newSkuCode, quantity]
|
||||
@@ -876,7 +951,7 @@ components:
|
||||
inventoryPositionId: { type: string, nullable: true, pattern: '^[0-9]+$', description: 普通库存使用真实仓位键;退货箱库存没有该仓位,提交 null,不提交空字符串或退货库存内部ID }
|
||||
packages: { type: integer, format: int64, minimum: 1 }
|
||||
productQuantity: { type: integer, format: int64, minimum: 1, nullable: true, description: 单SKU退货明细存在returnSkuQuantity时必填且必须等于计划件数;不接受小数。历史无快照明细可省略 }
|
||||
skuCode: { type: string, maxLength: 128, nullable: true, description: PARCEL散件单SKU扫码值;已装箱来源必须扫描箱唛 }
|
||||
skuCode: { type: string, maxLength: 128, nullable: true, description: 仅遗留已创建SKU任务使用;新退货任务必须扫描包裹或箱标签 }
|
||||
idempotencyKey: { type: string, minLength: 1, maxLength: 255 }
|
||||
cartonMarks:
|
||||
type: array
|
||||
|
||||
Reference in New Issue
Block a user