feat(selfop): sync versioned owner and product directories

This commit is contained in:
2026-10-14 16:15:39 +08:00
parent 2b3b13913b
commit d311d9dc8d
47 changed files with 803 additions and 66 deletions
@@ -51,6 +51,40 @@ x-lastleg-egress-coordination:
security:
- InternalServiceToken: []
paths:
/internal/integrations/lingxing/wms/customers/query:
post:
summary: Query one page of customers using the existing account egress permit
description: Calls /openapi/v2/customer/list. BUSINESS MASTER_DATA tasks only; no retries or separate egress path. Dimensions and units remain separate; blanks are null.
parameters:
- {$ref: '#/components/parameters/LingxingEgressContext'}
requestBody:
required: true
content:
application/json:
schema: {$ref: '#/components/schemas/WarehouseQueryRequest'}
responses:
'200':
description: Standard envelope with one page or sanitized ProviderFailure.
content:
application/json:
schema: {$ref: '#/components/schemas/CustomerResponse'}
/internal/integrations/lingxing/wms/products/query:
post:
summary: Query one page of products using the existing account egress permit
description: Calls /openapi/v2/product/page. BUSINESS MASTER_DATA tasks only; no retries or separate egress path. Dimensions and units remain separate; blanks are null.
parameters:
- {$ref: '#/components/parameters/LingxingEgressContext'}
requestBody:
required: true
content:
application/json:
schema: {$ref: '#/components/schemas/ProductQueryRequest'}
responses:
'200':
description: Standard envelope with one page or sanitized ProviderFailure.
content:
application/json:
schema: {$ref: '#/components/schemas/ProductResponse'}
/internal/integrations/lingxing/wms/egress/runtime:
get:
operationId: lingxingEgressRuntime
@@ -175,6 +209,68 @@ components:
in: header
name: X-Internal-Service-Token
schemas:
CustomerPage:
allOf:
- {$ref: '#/components/schemas/Pagination'}
- type: object
required: [records]
properties:
records: {type: array, items: {$ref: '#/components/schemas/Customer'}}
CustomerResponse:
allOf:
- {$ref: '#/components/schemas/Envelope'}
- type: object
properties:
data:
nullable: true
oneOf:
- {$ref: '#/components/schemas/CustomerPage'}
- {$ref: '#/components/schemas/ProviderFailure'}
ProductPage:
allOf:
- {$ref: '#/components/schemas/Pagination'}
- type: object
required: [records]
properties:
records: {type: array, items: {$ref: '#/components/schemas/Product'}}
ProductResponse:
allOf:
- {$ref: '#/components/schemas/Envelope'}
- type: object
properties:
data:
nullable: true
oneOf:
- {$ref: '#/components/schemas/ProductPage'}
- {$ref: '#/components/schemas/ProviderFailure'}
ProductQueryRequest:
type: object
required: [current, size]
properties:
current: {type: integer, minimum: 1}
size: {type: integer, minimum: 1, maximum: 100}
Customer:
type: object
required: [customerCode]
properties:
customerCode: {type: string}
customerName: {type: string, nullable: true}
status: {type: string, nullable: true}
Product:
type: object
required: [customerCode, sku]
properties:
customerCode: {type: string}
sku: {type: string}
productName: {type: string, nullable: true}
length: {type: number, nullable: true}
width: {type: number, nullable: true}
height: {type: number, nullable: true}
wmsLength: {type: number, nullable: true}
wmsWidth: {type: number, nullable: true}
wmsHeight: {type: number, nullable: true}
sizeUnit: {type: string, nullable: true}
wmsSizeUnit: {type: string, nullable: true}
EgressRuntimeSnapshot:
type: object
additionalProperties: false
@@ -219,7 +315,7 @@ components:
{"current":1,"size":2,"whCode":"WH-DEMO","isHideInventory":0}
EgressOperation:
type: string
enum: [WAREHOUSES, OUTBOUND_QUERY, OUTBOUND_LOCATE, OUTBOUND_DETAIL, PRODUCT_INVENTORY]
enum: [WAREHOUSES, OUTBOUND_QUERY, OUTBOUND_LOCATE, OUTBOUND_DETAIL, PRODUCT_INVENTORY, CUSTOMERS, PRODUCTS]
EgressMetadata:
type: object
required: [attemptId, actualHttpAttempts, accountPaused]