feat(fleet): enforce reviewed trips and original fee coverage for dispatch

This commit is contained in:
2026-10-03 04:18:52 +08:00
parent c50e9f97d1
commit 5e683da3b9
162 changed files with 9642 additions and 218 deletions
@@ -0,0 +1,48 @@
openapi: 3.0.3
info: { title: Delivery fee coverage sources, version: 1.0.0 }
paths:
/internal/finance/v1/delivery-fee-coverage/sources:
post:
summary: 按实际客户及头程入仓单批量读取可引用的原费用版本
description: 仅内部服务身份,Gateway不公开。只返回该客户、指定原入仓单、FIRSTLEG来源的已审核有效应收最新版本;AVAILABLE或SETTLED不代表自动涵盖任何尾程服务,服务范围由运营明确确认。查询不冻结资金、不变更账务、不新增收费。
parameters:
- { in: header, name: X-Internal-Service-Token, required: true, schema: { type: string } }
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [customerId, inboundIds]
properties:
customerId: { type: string, pattern: '^[1-9][0-9]*$' }
inboundIds: { type: array, minItems: 1, maxItems: 2000, items: { type: string, pattern: '^[1-9][0-9]*$' } }
responses:
'200':
description: 原费用不可变来源版本;没有符合记录返回空数组
content:
application/json:
schema:
type: object
properties:
data: { type: array, items: { $ref: '#/components/schemas/FeeSource' } }
'400': { description: 请求字段无效 }
'401': { description: 内部服务令牌无效 }
components:
schemas:
FeeSource:
type: object
properties:
financeFeeId: { type: string }
sourceFeeId: { type: string }
sourceType: { type: string, enum: [INBOUND_FEE, CONTAINER_FEE] }
sourceVersion: { type: integer }
customerId: { type: string }
sourceInboundId: { type: string }
inboundCode: { type: string, nullable: true }
feeItemCode: { type: string }
feeItemName: { type: string }
currency: { type: string }
amount: { type: number }
sourceHash: { type: string }
status: { type: string, enum: [AVAILABLE, SETTLED] }