feat(order): add container cross-order fulfillment aggregation

This commit is contained in:
2026-08-10 13:16:40 +08:00
parent 3c44f3bd51
commit 88390f9401
8 changed files with 115 additions and 1 deletions
@@ -267,6 +267,26 @@ paths:
- { name: orderId, in: path, required: true, schema: { type: integer, format: int64 } }
responses: { '200': { description: 成功 }, '403': { description: 无权限 } }
/api/platform/v1/orders/container-bookings/{containerBookingId}/fulfillment-slices:
get:
summary: 平台按柜次查询全部订单分片
description: tenantId 可选;省略时跨客户汇总。响应不包含照片、锁码或内部审计字段。
parameters:
- {name: containerBookingId, in: path, required: true, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
- {name: tenantId, in: query, required: false, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
responses:
'200': {description: 成功;无分片时返回空数组}
'403': {description: 需要平台身份和 platform:order:list 权限}
/api/merchant/v1/orders/container-bookings/{containerBookingId}/fulfillment-slices:
get:
summary: 客户按柜次查询本客户订单分片
description: 客户范围来自登录态,不接受目标客户参数。
parameters:
- {name: containerBookingId, in: path, required: true, schema: {type: string, pattern: '^[1-9][0-9]*$'}}
responses:
'200': {description: 成功;无分片时返回空数组}
'403': {description: 需要 merchant:order:view 权限}
components:
securitySchemes:
bearerAuth:
@@ -385,6 +405,20 @@ components:
orderId: {type: string, pattern: '^[1-9][0-9]*$'}
orderNo: {type: string}
pricingTaxMode: {$ref: '#/components/schemas/PricingTaxMode'}
ContainerSlice:
type: object
properties:
containerBookingId: {type: string}
tenantId: {type: string}
parentOrderId: {type: string}
parentOrderNo: {type: string}
childOrderId: {type: string}
childOrderNo: {type: string}
sourceOrderId: {type: string}
sourceOrderNo: {type: string}
splitRole: {type: string, enum: [LOADED, REMAINDER]}
packageCount: {type: integer}
loadingPlanId: {type: string}
parameters:
InternalToken:
name: X-Internal-Service-Token