139 lines
6.9 KiB
YAML
139 lines
6.9 KiB
YAML
openapi: 3.0.3
|
||
info:
|
||
title: File Domestic Warehouse Order Export Contract
|
||
version: 1.0.0
|
||
description: >-
|
||
File 只持有异步任务、XLSX 文件、任务归属和下载权限。订单筛选、数据权限、分页游标及行数据由
|
||
Order 的 DOMESTIC_WAREHOUSE_ORDER_LIST Provider 持有,File 不复制订单业务查询。
|
||
paths:
|
||
/api/platform/v1/files/export-tasks:
|
||
post:
|
||
summary: 创建国内仓订单 XLSX 导出任务
|
||
description: >-
|
||
exportType 固定 DOMESTIC_WAREHOUSE_ORDER_LIST,format 固定 XLSX,调用人必须具有
|
||
platform:order:export。selectedOrderNos 非空时导出勾选业务订单号;为空或省略时由 Order
|
||
按 parameters 中当前列表筛选导出全部匹配记录,parameters 不接受 page、size 或内部数据库 ID。
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema: {$ref: '#/components/schemas/CreateDomesticOrderExportTask'}
|
||
responses:
|
||
'200':
|
||
description: 返回异步任务,初始状态 PENDING
|
||
content:
|
||
application/json:
|
||
schema: {$ref: '#/components/schemas/ExportTaskRetryState'}
|
||
'403': {description: 缺少 platform:order:export}
|
||
/api/platform/v1/files/export-tasks/{taskId}/retry:
|
||
post:
|
||
summary: 人工重试订单导出任务
|
||
description: >-
|
||
FAILED 任务重新开始一次执行;PENDING 且已自动失败过的退避任务立即到期并复用当前投递消息,
|
||
不新增并发任务。RUNNING、初次等待消费及已完成任务不允许重复重试。
|
||
parameters:
|
||
- {name: taskId, in: path, required: true, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
|
||
responses:
|
||
'200':
|
||
description: 返回已重新进入立即执行队列的任务
|
||
content:
|
||
application/json:
|
||
schema: {$ref: '#/components/schemas/ExportTaskRetryState'}
|
||
'409': {description: 任务当前状态不允许重试或已进入执行队列}
|
||
/api/platform/v1/files/export-tasks/{taskId}/download:
|
||
get:
|
||
summary: 下载本人已完成的订单导出文件
|
||
parameters:
|
||
- {name: taskId, in: path, required: true, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
|
||
responses:
|
||
'200':
|
||
description: XLSX 文件;他人任务仅 platform:download:all 可下载
|
||
headers:
|
||
Cache-Control: {schema: {type: string, example: no-store}}
|
||
Content-Disposition: {schema: {type: string, example: attachment}}
|
||
content:
|
||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
|
||
schema: {type: string, format: binary}
|
||
components:
|
||
schemas:
|
||
ExportTaskRetryState:
|
||
type: object
|
||
required: [id, status, attemptCount, maxAttempts]
|
||
properties:
|
||
id: {type: string, pattern: '^[1-9][0-9]*$'}
|
||
status: {type: string, enum: [PENDING, RUNNING, SUCCEEDED, FAILED, EXPIRED]}
|
||
failureMessage: {type: string, nullable: true}
|
||
attemptCount: {type: integer, minimum: 0}
|
||
maxAttempts: {type: integer, minimum: 1}
|
||
nextRetryAt: {type: string, format: date-time, nullable: true}
|
||
CreateDomesticOrderExportTask:
|
||
type: object
|
||
required: [exportType, format, taskName, parameters]
|
||
properties:
|
||
exportType: {type: string, enum: [DOMESTIC_WAREHOUSE_ORDER_LIST]}
|
||
format: {type: string, enum: [XLSX]}
|
||
taskName: {type: string, minLength: 1, maxLength: 128}
|
||
parameters: {$ref: '#/components/schemas/DomesticOrderExportParameters'}
|
||
DomesticOrderExportParameters:
|
||
type: object
|
||
description: >-
|
||
透传给 Order Provider;selectedOrderNos 非空时优先,其余字段与平台订单列表当前筛选一致。
|
||
properties:
|
||
selectedOrderNos:
|
||
type: array
|
||
maxItems: 5000
|
||
uniqueItems: true
|
||
items: {type: string, minLength: 1, maxLength: 64, description: 订单业务编号}
|
||
tenantId: {type: string, pattern: '^[1-9][0-9]*$'}
|
||
keyword: {type: string, maxLength: 64}
|
||
orderNo: {type: string, maxLength: 64}
|
||
mainStatus: {type: string}
|
||
customerId: {type: string, pattern: '^[1-9][0-9]*$'}
|
||
receivingWarehouseId: {type: string, pattern: '^[1-9][0-9]*$'}
|
||
destinationWarehouseId: {type: string, pattern: '^[1-9][0-9]*$'}
|
||
inboundCode: {type: string, maxLength: 64}
|
||
internalOrderStatus: {type: string, maxLength: 32}
|
||
expectedArrivalDate: {type: string, format: date}
|
||
feeReviewStatus: {type: string}
|
||
channelName: {type: string, maxLength: 128}
|
||
containerNo: {type: string, maxLength: 64}
|
||
cabinetNo: {type: string, maxLength: 64}
|
||
sailingDate: {type: string, format: date}
|
||
loaded: {type: boolean}
|
||
fullContainer: {type: boolean}
|
||
measurementReviewStatus: {type: string}
|
||
fbaCode: {type: string, maxLength: 64}
|
||
createdFrom: {type: string, format: date-time}
|
||
createdTo: {type: string, format: date-time}
|
||
DomesticOrderExportColumns:
|
||
type: object
|
||
description: Provider schemaVersion=1 固定列顺序;不包含任何内部数据库 ID。
|
||
properties:
|
||
inboundCode: {type: string, title: 入仓码}
|
||
orderNo: {type: string, title: 订单号}
|
||
mainStatus: {type: string, title: 订单主状态}
|
||
customerName: {type: string, title: 客户}
|
||
channelName: {type: string, title: 渠道}
|
||
channelChanged: {type: string, title: 曾变更渠道, description: 是或否}
|
||
receivingWarehouseName: {type: string, title: 定位仓库}
|
||
destinationWarehouseName: {type: string, title: 交货仓}
|
||
expectedShipDate: {type: string, format: date, title: 预计出运日期}
|
||
expectedArrivalAt: {type: string, format: date-time, title: 预计到货时间}
|
||
expectedVolumeCbm: {type: number, title: 预计体积(m³)}
|
||
totalPackageCount: {type: integer, title: 箱数}
|
||
totalQuantity: {type: integer, title: 产品数量}
|
||
actualGrossWeightKg: {type: number, title: 实测毛重(kg)}
|
||
actualVolumeCbm: {type: number, title: 实测体积(m³)}
|
||
chargeableWeightKg: {type: number, title: 计费重量(kg)}
|
||
chargeableVolumeCbm: {type: number, title: 计费体积(m³)}
|
||
feeReviewStatus: {type: string, title: 费用审核状态}
|
||
skuNos: {type: string, title: SKU}
|
||
taxMode: {type: string, title: 报关方式}
|
||
containerMode: {type: string, title: 装柜方式}
|
||
customsInspection: {type: string, title: 是否商检, description: 是或否}
|
||
containerNo: {type: string, title: 集装箱号}
|
||
cabinetNo: {type: string, title: 柜次号}
|
||
vesselName: {type: string, title: 船名}
|
||
voyageNo: {type: string, title: 航次}
|
||
createdAt: {type: string, format: date-time, title: 创建时间}
|