2026-10-20 15:48:38 +08:00
|
|
|
|
openapi: "3.0.3"
|
|
|
|
|
|
info:
|
|
|
|
|
|
title: "原排车自有车辆运营视图"
|
|
|
|
|
|
version: "1.0.0"
|
2026-10-20 23:34:22 +08:00
|
|
|
|
description: "装车完成时冻结车辆OWNED/DISPATCHED;所有主单事实来自原dispatch。新增数据仅附加运营记录、命令、历史及归属证据。油耗L/100km手工登记,金额CNY/USD不默认、不换汇;零与未登记不同。响应遵循NON_NULL:可空属性可省略,省略与null均表示空值,0仍是明确登记值;请求必填项仍以required及DTO校验为准。"
|
2026-10-20 15:48:38 +08:00
|
|
|
|
security:
|
|
|
|
|
|
-
|
|
|
|
|
|
bearerAuth: []
|
|
|
|
|
|
paths:
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business":
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "listOwnedBusiness"
|
|
|
|
|
|
summary: "自有车辆装车后视图及同筛选四项统计"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:list。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:list"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "统一ApiResponse:成功code=200;业务错误保留A0400/A0403/A0404/A0409及诊断requestId/traceId。"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
data:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/ListResult"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
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: 200
|
|
|
|
|
|
default: 20
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "plannedDepartureFrom"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "plannedDepartureTo"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "keyword"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "stage"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/Stage"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "warehouseId"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
x-filter-contract: "plannedDepartureAt [from,to),统计同全部过滤、不带分页;无归属快照不降级按当前主档推断。"
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business/{dispatchNo}":
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "dispatchNo"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "getOwnedBusiness"
|
|
|
|
|
|
summary: "组合原排车详情及附加运营信息"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:list。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:list"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "统一ApiResponse:成功code=200;业务错误保留A0400/A0403/A0404/A0409及诊断requestId/traceId。"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
data:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Detail"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business/{dispatchNo}/history":
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "dispatchNo"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "historyOwnedBusiness"
|
|
|
|
|
|
summary: "原排车及附加真实流水聚合分页"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:list。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:list"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "统一ApiResponse:成功code=200;业务错误保留A0400/A0403/A0404/A0409及诊断requestId/traceId。"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
data:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/HistoryPage"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
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: 200
|
|
|
|
|
|
default: 20
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business/{dispatchNo}/operations":
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "dispatchNo"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
put:
|
|
|
|
|
|
operationId: "saveOwnedBusinessOperations"
|
|
|
|
|
|
summary: "按附加版本登记、更正或清空运营信息"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:edit。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:edit"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "统一ApiResponse:成功code=200;业务错误保留A0400/A0403/A0404/A0409及诊断requestId/traceId。"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
data:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Detail"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/SaveOperations"
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business/{dispatchNo}/photos/{slot}/uploads":
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "dispatchNo"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "slot"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/PhotoSlot"
|
|
|
|
|
|
post:
|
|
|
|
|
|
operationId: "uploadOwnedBusinessPhoto"
|
|
|
|
|
|
summary: "逐框准备照片,尚未保存绑定"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:upload。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:upload"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "统一ApiResponse:成功code=200;业务错误保留A0400/A0403/A0404/A0409及诊断requestId/traceId。"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
data:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Photo"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
"multipart/form-data":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "file"
|
2026-10-20 23:34:22 +08:00
|
|
|
|
- "idempotencyKey"
|
2026-10-20 15:48:38 +08:00
|
|
|
|
properties:
|
2026-10-20 23:34:22 +08:00
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 8
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
description: "原上传请求键,以multipart表单字段提交,绑定使用独立请求键。"
|
2026-10-20 15:48:38 +08:00
|
|
|
|
file:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "binary"
|
|
|
|
|
|
description: "真实JPG/PNG,非空,最大10MiB;与独立绑定命令使用不同请求键。"
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business/{dispatchNo}/photos/{slot}":
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "dispatchNo"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "slot"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/PhotoSlot"
|
|
|
|
|
|
put:
|
|
|
|
|
|
operationId: "bindOwnedBusinessPhoto"
|
|
|
|
|
|
summary: "保存原上传fileId;失败保留原键恢复,不重新上传"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:upload。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:upload"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "统一ApiResponse:成功code=200;业务错误保留A0400/A0403/A0404/A0409及诊断requestId/traceId。"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
data:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Detail"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/BindPhoto"
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business/{dispatchNo}/photos/{slot}/files/{fileId}/content":
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "dispatchNo"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "slot"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/PhotoSlot"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "fileId"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^[1-9][0-9]*$"
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "readOwnedBusinessPhoto"
|
|
|
|
|
|
summary: "授权读取当前或原历史绑定图片"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:list。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:list"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "仅当前或指定历史引用的图片字节,Cache-Control:no-store,X-Content-Type-Options:nosniff"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"image/jpeg":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "binary"
|
|
|
|
|
|
"image/png":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "binary"
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "revisionVersion"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
format: "int64"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
"/api/platform/v1/last-leg/fleet/owned-business/{dispatchNo}/commands/{idempotencyKey}":
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "dispatchNo"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "idempotencyKey"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 8
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "recoverOwnedBusinessCommand"
|
|
|
|
|
|
summary: "恢复本操作者原命令,未知结果不得换键重发"
|
|
|
|
|
|
description: "权限:platform:fleet:owned-business:list。仅可信平台主体;只读原排车事实,不改变其状态/版本,不发布费用。"
|
|
|
|
|
|
x-permission-code: "platform:fleet:owned-business:list"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "统一ApiResponse:成功code=200;业务错误保留A0400/A0403/A0404/A0409及诊断requestId/traceId。"
|
|
|
|
|
|
content:
|
|
|
|
|
|
"application/json":
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
data:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Command"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
components:
|
|
|
|
|
|
securitySchemes:
|
|
|
|
|
|
bearerAuth:
|
|
|
|
|
|
type: "http"
|
|
|
|
|
|
scheme: "bearer"
|
|
|
|
|
|
bearerFormat: "JWT"
|
|
|
|
|
|
schemas:
|
|
|
|
|
|
Stage:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "AFTER_LOADING"
|
|
|
|
|
|
- "DELIVERING"
|
|
|
|
|
|
- "DELIVERED"
|
|
|
|
|
|
PhotoSlot:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "LOADING_SCENE"
|
|
|
|
|
|
- "LOADING_LIST"
|
|
|
|
|
|
- "PRE_DEPARTURE_CHECK"
|
|
|
|
|
|
- "DRIVER_LICENSE"
|
|
|
|
|
|
- "RECEIPT"
|
|
|
|
|
|
- "FUEL_START"
|
|
|
|
|
|
- "FUEL_END"
|
|
|
|
|
|
Money:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Money"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "currency"
|
|
|
|
|
|
- "amount"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
currency:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "CNY"
|
|
|
|
|
|
- "USD"
|
|
|
|
|
|
amount:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]{0,15})(\\.[0-9]{1,2})?$"
|
|
|
|
|
|
Arrival:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Arrival"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "destinationKey"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
destinationKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 256
|
|
|
|
|
|
actualArrivedAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
Operations:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Operations"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "arrivals"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
money:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Money"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
actualDistanceMiles:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]{0,8})(\\.[0-9]{1,3})?$"
|
|
|
|
|
|
fuelConsumptionLitresPer100Km:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]{0,8})(\\.[0-9]{1,3})?$"
|
|
|
|
|
|
arrivals:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Arrival"
|
|
|
|
|
|
SaveOperations:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.SaveOperations"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "recordVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "operations"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
recordVersion:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]*)$"
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 8
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
operations:
|
|
|
|
|
|
"$ref": "#/components/schemas/Operations"
|
|
|
|
|
|
reason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
BindPhoto:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.BindPhoto"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "recordVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "fileId"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
recordVersion:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]*)$"
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 8
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
fileId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^[1-9][0-9]*$"
|
|
|
|
|
|
Gate:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Gate"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "allowed"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
allowed:
|
|
|
|
|
|
type: "boolean"
|
|
|
|
|
|
blockReason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
Actions:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Actions"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "edit"
|
|
|
|
|
|
- "upload"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
edit:
|
|
|
|
|
|
"$ref": "#/components/schemas/Gate"
|
|
|
|
|
|
upload:
|
|
|
|
|
|
"$ref": "#/components/schemas/Gate"
|
|
|
|
|
|
Origin:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Origin"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "warehouseId"
|
|
|
|
|
|
- "warehouseCode"
|
|
|
|
|
|
- "warehouseName"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
warehouseId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
warehouseCode:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
warehouseName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
Vehicle:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Vehicle"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "vehicleId"
|
|
|
|
|
|
- "plate"
|
|
|
|
|
|
- "ownership"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
vehicleId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
plate:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
ownership:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "OWNED"
|
|
|
|
|
|
Driver:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Driver"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
name:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
phone:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
Appointment:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Appointment"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "appointmentNo"
|
|
|
|
|
|
- "allocatedPackages"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
appointmentNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
confirmationNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
scheduledAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
allocatedPackages:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^[1-9][0-9]*$"
|
|
|
|
|
|
Destination:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Destination"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "destinationKey"
|
|
|
|
|
|
- "appointments"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
destinationKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
warehouseCode:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
warehouseName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
address:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
appointments:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Appointment"
|
|
|
|
|
|
actualArrivedAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
Photo:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Photo"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "slot"
|
|
|
|
|
|
- "category"
|
|
|
|
|
|
- "fileId"
|
|
|
|
|
|
- "fileName"
|
|
|
|
|
|
- "contentType"
|
|
|
|
|
|
- "sizeBytes"
|
|
|
|
|
|
- "uploadedAt"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
slot:
|
|
|
|
|
|
"$ref": "#/components/schemas/PhotoSlot"
|
|
|
|
|
|
category:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "LOADING"
|
|
|
|
|
|
- "FUEL"
|
|
|
|
|
|
fileId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
fileName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
contentType:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "image/jpeg"
|
|
|
|
|
|
- "image/png"
|
|
|
|
|
|
sizeBytes:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^[1-9][0-9]*$"
|
|
|
|
|
|
uploadedAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
savedAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
description: "上传回执savedAt为空;绑定成功才填写savedAt。File类型分别为OVERSEAS_DISPATCH_LOADING_PHOTO和OVERSEAS_DISPATCH_FUEL_PHOTO,平台0、原dispatch内部ID,最多10MiB。"
|
|
|
|
|
|
PhotoSummary:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.PhotoSummary"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "loadingCount"
|
|
|
|
|
|
- "fuelCount"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
loadingCount:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
fuelCount:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
Row:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Row"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "dispatchNo"
|
|
|
|
|
|
- "stage"
|
|
|
|
|
|
- "plannedDepartureAt"
|
|
|
|
|
|
- "loadingCompletedAt"
|
|
|
|
|
|
- "origin"
|
|
|
|
|
|
- "vehicle"
|
|
|
|
|
|
- "driver"
|
|
|
|
|
|
- "destinations"
|
|
|
|
|
|
- "operations"
|
|
|
|
|
|
- "recordVersion"
|
|
|
|
|
|
- "dispatchRecordVersion"
|
|
|
|
|
|
- "photoSummary"
|
|
|
|
|
|
- "actions"
|
|
|
|
|
|
- "sourceIssues"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
dispatchNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
stage:
|
|
|
|
|
|
"$ref": "#/components/schemas/Stage"
|
|
|
|
|
|
plannedDepartureAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
loadingCompletedAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
departedAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
deliveryCompletedAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
origin:
|
|
|
|
|
|
"$ref": "#/components/schemas/Origin"
|
|
|
|
|
|
vehicle:
|
|
|
|
|
|
"$ref": "#/components/schemas/Vehicle"
|
|
|
|
|
|
driver:
|
|
|
|
|
|
"$ref": "#/components/schemas/Driver"
|
|
|
|
|
|
destinations:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Destination"
|
|
|
|
|
|
actualPalletCount:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
operations:
|
|
|
|
|
|
"$ref": "#/components/schemas/Operations"
|
|
|
|
|
|
unitPrice:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]{0,15})(\\.[0-9]{1,2})?$"
|
|
|
|
|
|
recordVersion:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]*)$"
|
|
|
|
|
|
dispatchRecordVersion:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]*)$"
|
|
|
|
|
|
photoSummary:
|
|
|
|
|
|
"$ref": "#/components/schemas/PhotoSummary"
|
|
|
|
|
|
actions:
|
|
|
|
|
|
"$ref": "#/components/schemas/Actions"
|
|
|
|
|
|
sourceIssues:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
Summary:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Summary"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "dispatchCount"
|
|
|
|
|
|
- "afterLoadingCount"
|
|
|
|
|
|
- "deliveringCount"
|
|
|
|
|
|
- "deliveredCount"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
dispatchCount:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
afterLoadingCount:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
deliveringCount:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
deliveredCount:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
ListResult:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.ListResult"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "records"
|
|
|
|
|
|
- "page"
|
|
|
|
|
|
- "size"
|
|
|
|
|
|
- "total"
|
|
|
|
|
|
- "summary"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
records:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Row"
|
|
|
|
|
|
page:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
size:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
maximum: 200
|
|
|
|
|
|
total:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
summary:
|
|
|
|
|
|
"$ref": "#/components/schemas/Summary"
|
|
|
|
|
|
Cargo:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Cargo"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "sourceKey"
|
|
|
|
|
|
- "customerId"
|
|
|
|
|
|
- "palletNo"
|
|
|
|
|
|
- "destinationKey"
|
|
|
|
|
|
- "packages"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
sourceKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
customerId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
customerName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
orderNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
inboundCode:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
palletNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
destinationKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
packages:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
Detail:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Detail"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "row"
|
|
|
|
|
|
- "dispatch"
|
|
|
|
|
|
- "cargo"
|
|
|
|
|
|
- "photos"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
row:
|
|
|
|
|
|
"$ref": "#/components/schemas/Row"
|
|
|
|
|
|
dispatch:
|
|
|
|
|
|
"$ref": "./overseas-business-v1.yaml#/components/schemas/DispatchDetail"
|
|
|
|
|
|
cargo:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Cargo"
|
|
|
|
|
|
photos:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Photo"
|
|
|
|
|
|
History:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.History"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "eventSource"
|
|
|
|
|
|
- "action"
|
|
|
|
|
|
- "occurredAt"
|
|
|
|
|
|
- "photos"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
eventSource:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "DISPATCH"
|
|
|
|
|
|
- "OPERATIONS"
|
|
|
|
|
|
recordVersion:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]*)$"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
dispatchRecordVersion:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]*)$"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
action:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
operatorName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
occurredAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
reason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
operations:
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Operations"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
photos:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Photo"
|
|
|
|
|
|
description: "UNION ALL读取原排车真实流水与附加流水,一次排序分页;DISPATCH事件recordVersion=null、operations=null、photos=[];OPERATIONS事件dispatchRecordVersion=null。"
|
|
|
|
|
|
HistoryPage:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.HistoryPage"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "records"
|
|
|
|
|
|
- "page"
|
|
|
|
|
|
- "size"
|
|
|
|
|
|
- "total"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
records:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/History"
|
|
|
|
|
|
page:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
size:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
maximum: 200
|
|
|
|
|
|
total:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
Command:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
x-java-record: "OwnedBusinessModels.Command"
|
2026-10-20 23:34:22 +08:00
|
|
|
|
description: "SAVE_OPERATIONS/BIND_PHOTO成功时recordVersion和result必须有值;UPLOAD_PHOTO成功时result必须含fileId,recordVersion可空。仅可空的未确定或拒绝结果字段允许省略,不放宽成功回执的关联要求。"
|
2026-10-20 15:48:38 +08:00
|
|
|
|
required:
|
|
|
|
|
|
- "dispatchNo"
|
|
|
|
|
|
- "action"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "state"
|
|
|
|
|
|
- "replayed"
|
|
|
|
|
|
- "retryAllowed"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
dispatchNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
action:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "SAVE_OPERATIONS"
|
|
|
|
|
|
- "UPLOAD_PHOTO"
|
|
|
|
|
|
- "BIND_PHOTO"
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
state:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "SUCCEEDED"
|
|
|
|
|
|
- "PENDING"
|
|
|
|
|
|
- "UNKNOWN_RESULT"
|
|
|
|
|
|
- "REJECTED"
|
|
|
|
|
|
recordVersion:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(0|[1-9][0-9]*)$"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
replayed:
|
|
|
|
|
|
type: "boolean"
|
|
|
|
|
|
result:
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
oneOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Detail"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/Photo"
|
|
|
|
|
|
errorCode:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
retryAllowed:
|
|
|
|
|
|
type: "boolean"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- false
|