This commit is contained in:
2026-10-30 18:46:18 +08:00
parent 51a93a69af
commit edd4b1cd38
6 changed files with 79 additions and 3 deletions
@@ -2309,6 +2309,16 @@ paths:
parameters: [{ name: exceptionNo, in: path, required: true, schema: { type: string } }]
requestBody: { required: true, content: { application/json: { schema: { $ref: '#/components/schemas/ExceptionComplete' } } } }
responses: { '200': { description: 异常处理与库存恢复结果 }, '409': { description: 版本、状态、归属、数量或幂等冲突 } }
/api/platform/v1/last-leg/exception-orders/{exceptionNo}/force-close:
post:
summary: 选择其他方式人工完结异常
description: 权限 platform:overseas-warehouse:exception-order:process;所有类型的 PENDING/PROCESSING 异常均可填写原因后转 COMPLETED,无需文件及实收信息。只更新异常处理方式、原因、处理人及完成时间,保留原有实收、证据和库存事实,不推进关联退回单、派送或车辆资源。expectedVersion 校验并在异常父锁内保存幂等结果。
security: [{ bearerAuth: [] }]
parameters:
- { name: exceptionNo, in: path, required: true, schema: { type: string } }
- { name: customerId, in: query, required: true, schema: { type: string } }
requestBody: { required: true, content: { application/json: { schema: { $ref: '#/components/schemas/ExceptionForceClose' } } } }
responses: { '200': { description: 人工完结结果 }, '400': { description: 未填写原因 }, '409': { description: 版本、状态或幂等冲突 } }
/api/platform/v1/last-leg/exception-orders/{exceptionNo}/cancel:
post:
summary: 取消未处理异常订单
@@ -4193,6 +4203,13 @@ components:
expectedVersion: { type: integer, format: int64, minimum: 0 }
idempotencyKey: { type: string, minLength: 1, maxLength: 255 }
reason: { type: string, minLength: 1, maxLength: 1000 }
ExceptionForceClose:
type: object
required: [expectedVersion, idempotencyKey, reason]
properties:
expectedVersion: { type: integer, format: int64, minimum: 0 }
idempotencyKey: { type: string, minLength: 1, maxLength: 255 }
reason: { type: string, minLength: 1, maxLength: 1000, description: 其他处理方式的人工完结原因 }
ExceptionComplete:
type: object
required: [expectedVersion, idempotencyKey, handlingResult, evidenceFileIds]
@@ -4218,7 +4235,7 @@ components:
targetLocationCode: { type: string, minLength: 1, maxLength: 128 }
ExceptionAllowedAction:
type: string
enum: [START_PROCESSING, COMPLETE_EXCEPTION, CANCEL_EXCEPTION]
enum: [START_PROCESSING, COMPLETE_EXCEPTION, CANCEL_EXCEPTION, GENERATE_RETURN_INBOUND, FORCE_CLOSE]
DeliveryFeeInput:
type: object
required: [feeType, feeName, direction, currency, amount]