1413 lines
39 KiB
YAML
1413 lines
39 KiB
YAML
openapi: 3.0.3
|
||
info:
|
||
title: 内部拼车车次余位发布与销售意向
|
||
version: 1.0.0
|
||
description: 首版统一我仓上车;Client不开放运力池。来源商业单、库存与费用沿唯一正式履约链,报价与实收款分开。
|
||
security:
|
||
- bearerAuth: []
|
||
paths:
|
||
/api/platform/v1/last-leg/fleet/capacity-offers:
|
||
get:
|
||
summary: 按当前身份分页查询可接运力
|
||
description: 权限:platform:fleet:capacity-offer:list 或 platform:fleet:capacity-offer:manage。普通列表数据库分页,只计算当前页。canConfirm动态筛选候选超过100时要求缩小范围,不返回伪总数。未知余位为null且给出待核对原因。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/OfferPage'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: page
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
minimum: 1
|
||
default: 1
|
||
- name: size
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
minimum: 1
|
||
maximum: 100
|
||
default: 20
|
||
- name: keyword
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
- name: origin
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
- name: destination
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
- name: tripNo
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
- name: departureFrom
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
format: date
|
||
- name: departureTo
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
format: date
|
||
- name: status
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
enum:
|
||
- DRAFT
|
||
- OPEN
|
||
- PAUSED
|
||
- CLOSED
|
||
- name: canConfirm
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: boolean
|
||
post:
|
||
summary: 创建每车次唯一发布草稿
|
||
description: 权限:platform:fleet:capacity-offer:manage。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/OfferResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OfferWrite'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/{offerNo}:
|
||
get:
|
||
summary: 读取发布及获准意向首20条
|
||
description: 权限:platform:fleet:capacity-offer:list 或 platform:fleet:capacity-offer:manage。销售非OPEN访问必须已有本人意向;不返回司机或他人客户货物。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/Detail'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
put:
|
||
summary: 维护公开交货信息
|
||
description: 权限:platform:fleet:capacity-offer:manage。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/OfferResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OfferWrite'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/{offerNo}/publish:
|
||
post:
|
||
summary: 发布运力发布
|
||
description: 权限:platform:fleet:capacity-offer:manage。CLOSED为终态。原成功请求同键同载荷在再次业务资格检查前重放;身份及权限仍校验。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/OfferResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OfferCommand'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/{offerNo}/pause:
|
||
post:
|
||
summary: 暂停运力发布
|
||
description: 权限:platform:fleet:capacity-offer:manage。CLOSED为终态。原成功请求同键同载荷在再次业务资格检查前重放;身份及权限仍校验。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/OfferResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OfferCommand'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/{offerNo}/resume:
|
||
post:
|
||
summary: 重新核对并恢复运力发布
|
||
description: 权限:platform:fleet:capacity-offer:manage。CLOSED为终态。原成功请求同键同载荷在再次业务资格检查前重放;身份及权限仍校验。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/OfferResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OfferCommand'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/{offerNo}/close:
|
||
post:
|
||
summary: 终止运力发布
|
||
description: 权限:platform:fleet:capacity-offer:manage。CLOSED为终态。原成功请求同键同载荷在再次业务资格检查前重放;身份及权限仍校验。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/OfferResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OfferCommand'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/inquiries:
|
||
get:
|
||
summary: 分页查询本人或获准的全部意向
|
||
description: 权限:platform:fleet:capacity-offer:list 或 platform:fleet:capacity-offer:manage。ALL只允许manage;销售负责人由登录身份过滤,历史不依赖发布仍OPEN。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/InquiryPage'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: page
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
minimum: 1
|
||
default: 1
|
||
- name: size
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
minimum: 1
|
||
maximum: 100
|
||
default: 20
|
||
- name: keyword
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
- name: offerNo
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
- name: status
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
- name: scope
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
enum:
|
||
- MINE
|
||
- ALL
|
||
default: MINE
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/inquiries/{bookingNo}:
|
||
get:
|
||
summary: 读取获准的单条意向
|
||
description: 权限:platform:fleet:capacity-offer:list 或 platform:fleet:capacity-offer:manage。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/Inquiry'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: bookingNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
put:
|
||
summary: 修改本人询价草稿
|
||
description: 权限:platform:fleet:capacity-offer:manage 或 (platform:fleet:capacity-offer:list 且 platform:fleet:capacity-offer:inquiry-edit)。询价不占位;未知预计箱数可空。确认前补足预报、路线、实托和报价。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/InquiryResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: bookingNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/InquiryWrite'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/{offerNo}/inquiries:
|
||
post:
|
||
summary: 登记本人询价草稿
|
||
description: 权限:platform:fleet:capacity-offer:manage 或 (platform:fleet:capacity-offer:list 且 platform:fleet:capacity-offer:inquiry-create)。询价不占位;未知预计箱数可空。确认前补足预报、路线、实托和报价。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/InquiryResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/InquiryWrite'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/inquiries/{bookingNo}/confirm:
|
||
post:
|
||
summary: 原子创建商业单并确认承运占位
|
||
description: 权限:platform:fleet:capacity-offer:manage。车次锁内复验最新车辆、计划、发布指纹、时间、三维容量和客户资格;同事务商业单、桥关联与占位,失败全部回滚。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/InquiryResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: bookingNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/InquiryCommand'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/inquiries/{bookingNo}/cancel:
|
||
post:
|
||
summary: 取消允许范围的意向
|
||
description: 权限:platform:fleet:capacity-offer:manage 或 (platform:fleet:capacity-offer:list 且 platform:fleet:capacity-offer:inquiry-cancel)。销售仅本人DRAFT;CONFIRMED仅调度且无来货时一体取消;已登记来货后拒绝快捷取消,不删除库存。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
$ref: '#/components/schemas/InquiryResult'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: bookingNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/InquiryCommand'
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/customer-options:
|
||
get:
|
||
summary: 选择公司共享有效客户最小目录
|
||
description: 权限:platform:fleet:capacity-offer:manage 或 (platform:fleet:capacity-offer:list 且 platform:fleet:capacity-offer:inquiry-create)。仅id/code/name,不能借此获得客户联系人或财务资料。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/CustomerOption'
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: keyword
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: string
|
||
maxLength: 128
|
||
/api/platform/v1/last-leg/fleet/capacity-offers/{offerNo}/quote-candidates:
|
||
get:
|
||
summary: 查询本车本客户适用销售报价
|
||
description: 权限:platform:fleet:capacity-offer:list 或 platform:fleet:capacity-offer:manage,并需platform:fleet:quote:list。
|
||
responses:
|
||
'200':
|
||
description: 统一业务响应;code=200成功,冲突或资格拒绝不得当成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
code:
|
||
type: string
|
||
message:
|
||
type: string
|
||
data:
|
||
type: object
|
||
properties:
|
||
records:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/QuoteSource'
|
||
page:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
size:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
total:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
pages:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
requestId:
|
||
type: string
|
||
nullable: true
|
||
traceId:
|
||
type: string
|
||
nullable: true
|
||
'401':
|
||
description: 未登录或会话失效
|
||
'403':
|
||
description: 无权限或非本人意向
|
||
parameters:
|
||
- name: offerNo
|
||
in: path
|
||
required: true
|
||
schema:
|
||
type: string
|
||
maxLength: 64
|
||
- name: page
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
minimum: 1
|
||
default: 1
|
||
- name: size
|
||
in: query
|
||
required: false
|
||
schema:
|
||
type: integer
|
||
minimum: 1
|
||
maximum: 100
|
||
default: 20
|
||
- name: customerId
|
||
in: query
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- name: destinationKey
|
||
in: query
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- name: currency
|
||
in: query
|
||
required: true
|
||
schema:
|
||
type: string
|
||
enum:
|
||
- CNY
|
||
- USD
|
||
- name: priceBasis
|
||
in: query
|
||
required: true
|
||
schema:
|
||
type: string
|
||
enum:
|
||
- PALLET
|
||
- ORDER
|
||
components:
|
||
securitySchemes:
|
||
bearerAuth:
|
||
type: http
|
||
scheme: bearer
|
||
bearerFormat: JWT
|
||
schemas:
|
||
Load:
|
||
type: object
|
||
properties:
|
||
palletSpaces:
|
||
type: integer
|
||
minimum: 0
|
||
weightKg:
|
||
type: number
|
||
minimum: 0
|
||
volumeCbm:
|
||
type: number
|
||
minimum: 0
|
||
Cargo:
|
||
$ref: ./fleet-trips-v1.yaml#/components/schemas/BookingCargo
|
||
QuoteRef:
|
||
$ref: ./fleet-trips-v1.yaml#/components/schemas/BookingQuoteRef
|
||
QuoteSource:
|
||
type: object
|
||
description: 已选择的销售报价来源快照;quotedUnitPrice是报价库来源价,不等于意向成交单价或已收金额。
|
||
required: [quoteNo, recordVersion, priceItem, customerId, customerName, originCity, destinationCode, currency, priceBasis, quotedUnitPrice, validFrom, validTo, effectiveOn]
|
||
properties:
|
||
quoteNo:
|
||
type: string
|
||
recordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
priceItem:
|
||
type: string
|
||
enum: [FULL_DELIVERY, LOOSE_DELIVERY]
|
||
customerId:
|
||
type: string
|
||
customerName:
|
||
type: string
|
||
originCity:
|
||
type: string
|
||
destinationCode:
|
||
type: string
|
||
distanceMiles:
|
||
type: number
|
||
nullable: true
|
||
currency:
|
||
type: string
|
||
enum: [CNY, USD]
|
||
priceBasis:
|
||
type: string
|
||
enum: [ORDER, PALLET]
|
||
quotedUnitPrice:
|
||
type: number
|
||
minimum: 0
|
||
validFrom:
|
||
type: string
|
||
format: date
|
||
validTo:
|
||
type: string
|
||
format: date
|
||
effectiveOn:
|
||
type: string
|
||
format: date
|
||
OfferActions:
|
||
type: object
|
||
properties:
|
||
canEdit:
|
||
type: boolean
|
||
canPublish:
|
||
type: boolean
|
||
canPause:
|
||
type: boolean
|
||
canResume:
|
||
type: boolean
|
||
canClose:
|
||
type: boolean
|
||
InquiryActions:
|
||
type: object
|
||
properties:
|
||
canEdit:
|
||
type: boolean
|
||
canConfirm:
|
||
type: boolean
|
||
canCancel:
|
||
type: boolean
|
||
blockReason:
|
||
type: string
|
||
nullable: true
|
||
Destination:
|
||
type: object
|
||
properties:
|
||
destinationKey:
|
||
type: string
|
||
name:
|
||
type: string
|
||
deliveryIndex:
|
||
type: integer
|
||
minimum: 1
|
||
remaining:
|
||
$ref: '#/components/schemas/Load'
|
||
nullable: true
|
||
Segment:
|
||
type: object
|
||
properties:
|
||
fromIndex:
|
||
type: integer
|
||
toIndex:
|
||
type: integer
|
||
fromName:
|
||
type: string
|
||
toName:
|
||
type: string
|
||
planned:
|
||
$ref: '#/components/schemas/Load'
|
||
reserved:
|
||
$ref: '#/components/schemas/Load'
|
||
remaining:
|
||
$ref: '#/components/schemas/Load'
|
||
CustomerOption:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
code:
|
||
type: string
|
||
name:
|
||
type: string
|
||
Offer:
|
||
type: object
|
||
properties:
|
||
offerNo:
|
||
type: string
|
||
tripNo:
|
||
type: string
|
||
warehouseId:
|
||
type: string
|
||
warehouseName:
|
||
type: string
|
||
status:
|
||
type: string
|
||
enum:
|
||
- DRAFT
|
||
- OPEN
|
||
- PAUSED
|
||
- CLOSED
|
||
recordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
tripRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
plannedDepartureAt:
|
||
type: string
|
||
format: date-time
|
||
cutoffAt:
|
||
type: string
|
||
format: date-time
|
||
contactName:
|
||
type: string
|
||
nullable: true
|
||
contactPhone:
|
||
type: string
|
||
nullable: true
|
||
remark:
|
||
type: string
|
||
nullable: true
|
||
destinations:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Destination'
|
||
segments:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Segment'
|
||
capacityKnown:
|
||
type: boolean
|
||
canCreateInquiry:
|
||
type: boolean
|
||
canConfirm:
|
||
type: boolean
|
||
blockReason:
|
||
type: string
|
||
nullable: true
|
||
actions:
|
||
$ref: '#/components/schemas/OfferActions'
|
||
Inquiry:
|
||
type: object
|
||
properties:
|
||
bookingNo:
|
||
type: string
|
||
offerNo:
|
||
type: string
|
||
tripNo:
|
||
type: string
|
||
salesOwnerUserId:
|
||
type: string
|
||
customerId:
|
||
type: string
|
||
customerCode:
|
||
type: string
|
||
customerName:
|
||
type: string
|
||
destinationLabel:
|
||
type: string
|
||
status:
|
||
type: string
|
||
enum:
|
||
- DRAFT
|
||
- CONFIRMED
|
||
- RECEIVED
|
||
- BOUND
|
||
- CANCELLED
|
||
recordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
offerRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
tripRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
businessType:
|
||
type: string
|
||
enum:
|
||
- LOCAL_LOOSEBOARD
|
||
- US_TRUCK
|
||
deliveryMode:
|
||
type: string
|
||
enum:
|
||
- SELF_DELIVERY
|
||
- MANUAL_PICKUP_TO_WAREHOUSE
|
||
estimatedArrivalAt:
|
||
type: string
|
||
format: date-time
|
||
nullable: true
|
||
expectedPalletCount:
|
||
type: integer
|
||
minimum: 1
|
||
nullable: true
|
||
cargo:
|
||
$ref: '#/components/schemas/Cargo'
|
||
agreedAmount:
|
||
type: number
|
||
nullable: true
|
||
quoteSource:
|
||
$ref: '#/components/schemas/QuoteSource'
|
||
nullable: true
|
||
businessOrderNo:
|
||
type: string
|
||
nullable: true
|
||
incomingNo:
|
||
type: string
|
||
nullable: true
|
||
dispatchNo:
|
||
type: string
|
||
nullable: true
|
||
updatedAt:
|
||
type: string
|
||
format: date-time
|
||
actions:
|
||
$ref: '#/components/schemas/InquiryActions'
|
||
OfferPage:
|
||
type: object
|
||
properties:
|
||
records:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Offer'
|
||
page:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
size:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
total:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
pages:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
InquiryPage:
|
||
type: object
|
||
properties:
|
||
records:
|
||
type: array
|
||
items:
|
||
$ref: '#/components/schemas/Inquiry'
|
||
page:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
size:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
total:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
pages:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
Detail:
|
||
type: object
|
||
properties:
|
||
offer:
|
||
$ref: '#/components/schemas/Offer'
|
||
inquiries:
|
||
$ref: '#/components/schemas/InquiryPage'
|
||
OfferResult:
|
||
type: object
|
||
properties:
|
||
offer:
|
||
$ref: '#/components/schemas/Offer'
|
||
replayed:
|
||
type: boolean
|
||
InquiryResult:
|
||
type: object
|
||
properties:
|
||
inquiry:
|
||
$ref: '#/components/schemas/Inquiry'
|
||
offer:
|
||
$ref: '#/components/schemas/Offer'
|
||
replayed:
|
||
type: boolean
|
||
OfferWrite:
|
||
type: object
|
||
required:
|
||
- tripNo
|
||
- tripRecordVersion
|
||
- cutoffAt
|
||
- idempotencyKey
|
||
properties:
|
||
tripNo:
|
||
type: string
|
||
maxLength: 64
|
||
tripRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
offerRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
nullable: true
|
||
cutoffAt:
|
||
type: string
|
||
format: date-time
|
||
contactName:
|
||
type: string
|
||
maxLength: 128
|
||
nullable: true
|
||
contactPhone:
|
||
type: string
|
||
maxLength: 128
|
||
nullable: true
|
||
remark:
|
||
type: string
|
||
maxLength: 1000
|
||
nullable: true
|
||
idempotencyKey:
|
||
type: string
|
||
minLength: 8
|
||
maxLength: 128
|
||
OfferCommand:
|
||
type: object
|
||
required:
|
||
- tripRecordVersion
|
||
- offerRecordVersion
|
||
- idempotencyKey
|
||
properties:
|
||
tripRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
offerRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
idempotencyKey:
|
||
type: string
|
||
minLength: 8
|
||
maxLength: 128
|
||
reason:
|
||
type: string
|
||
maxLength: 1000
|
||
nullable: true
|
||
InquiryCommand:
|
||
type: object
|
||
required:
|
||
- tripRecordVersion
|
||
- offerRecordVersion
|
||
- recordVersion
|
||
- idempotencyKey
|
||
properties:
|
||
tripRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
offerRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
idempotencyKey:
|
||
type: string
|
||
minLength: 8
|
||
maxLength: 128
|
||
reason:
|
||
type: string
|
||
maxLength: 1000
|
||
nullable: true
|
||
recordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
InquiryWrite:
|
||
type: object
|
||
required:
|
||
- tripRecordVersion
|
||
- offerRecordVersion
|
||
- customerId
|
||
- businessType
|
||
- deliveryMode
|
||
- cargo
|
||
- idempotencyKey
|
||
properties:
|
||
tripRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
offerRecordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
recordVersion:
|
||
oneOf:
|
||
- type: integer
|
||
format: int64
|
||
minimum: 0
|
||
- type: string
|
||
pattern: ^[0-9]+$
|
||
nullable: true
|
||
customerId:
|
||
type: string
|
||
pattern: ^[1-9][0-9]*$
|
||
businessType:
|
||
type: string
|
||
enum:
|
||
- LOCAL_LOOSEBOARD
|
||
- US_TRUCK
|
||
deliveryMode:
|
||
type: string
|
||
enum:
|
||
- SELF_DELIVERY
|
||
- MANUAL_PICKUP_TO_WAREHOUSE
|
||
estimatedArrivalAt:
|
||
type: string
|
||
format: date-time
|
||
nullable: true
|
||
expectedPalletCount:
|
||
type: integer
|
||
minimum: 1
|
||
nullable: true
|
||
cargo:
|
||
$ref: '#/components/schemas/Cargo'
|
||
quoteRef:
|
||
$ref: '#/components/schemas/QuoteRef'
|
||
nullable: true
|
||
idempotencyKey:
|
||
type: string
|
||
minLength: 8
|
||
maxLength: 128
|
||
FleetArrangement:
|
||
type: object
|
||
properties:
|
||
sourceType:
|
||
type: string
|
||
nullable: true
|
||
businessType:
|
||
type: string
|
||
nullable: true
|
||
businessOrderNo:
|
||
type: string
|
||
nullable: true
|
||
bookingNo:
|
||
type: string
|
||
nullable: true
|
||
tripNo:
|
||
type: string
|
||
nullable: true
|
||
originWarehouseName:
|
||
type: string
|
||
nullable: true
|
||
destinationLabel:
|
||
type: string
|
||
nullable: true
|
||
deliveryMode:
|
||
type: string
|
||
nullable: true
|
||
deliveryInstructions:
|
||
type: string
|
||
nullable: true
|
||
fulfillmentStage:
|
||
type: string
|
||
nullable: true
|
||
currency:
|
||
type: string
|
||
nullable: true
|
||
incomingNo:
|
||
type: string
|
||
nullable: true
|
||
dispatchNo:
|
||
type: string
|
||
nullable: true
|
||
deliveryNo:
|
||
type: string
|
||
nullable: true
|
||
exceptionSummary:
|
||
type: string
|
||
nullable: true
|
||
readOnlyReason:
|
||
type: string
|
||
nullable: true
|
||
plannedDepartureAt:
|
||
type: string
|
||
format: date-time
|
||
nullable: true
|
||
stageOccurredAt:
|
||
type: string
|
||
format: date-time
|
||
nullable: true
|
||
agreedFreightAmount:
|
||
type: number
|
||
nullable: true
|
||
signedPackages:
|
||
type: integer
|
||
minimum: 0
|
||
nullable: true
|
||
unsignedPackages:
|
||
type: integer
|
||
minimum: 0
|
||
nullable: true
|
||
returnedPackages:
|
||
type: integer
|
||
minimum: 0
|
||
nullable: true
|
||
description: 仅本客户本土单的实际承运摘要;约定金额不是实收,独立来源订单为null;禁止旧手工状态旁路。
|