2026-10-15 16:55:57 +08:00
|
|
|
|
openapi: "3.0.3"
|
|
|
|
|
|
info:
|
|
|
|
|
|
title: "预约工作事项"
|
|
|
|
|
|
version: "1.0.0"
|
|
|
|
|
|
description: "工作事项只保存需求、路线、责任、跟进及影响基线。提柜/还空、预约、PDA和Fleet计划与执行事实由原业务提供。独立DDL仍需总控集成。"
|
|
|
|
|
|
security:
|
|
|
|
|
|
-
|
|
|
|
|
|
bearerAuth: []
|
|
|
|
|
|
paths:
|
2026-10-16 15:43:04 +08:00
|
|
|
|
/api/platform/v1/last-leg/appointment-work/items/resolve:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: appointmentWorkResolveBatch
|
|
|
|
|
|
summary: 按当前权威批次精确进入送仓事项
|
|
|
|
|
|
description: "要求platform:appointment:list及原来源读取资格。batchKey使用原业务返回的完整稳定键;customerId来自所选客户货源。精确匹配返回detail,未传客户且存在多个客户时detail为空并返回candidates,必须选择后重新解析;不得选首项或回退已替代旧批次。需求关系未同步返回409,未生成返回404。"
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- name: batchKey
|
|
|
|
|
|
in: query
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: string
|
|
|
|
|
|
pattern: '^(FBA_APPOINTMENT|DISPATCH):[1-9][0-9]*$'
|
|
|
|
|
|
- name: customerId
|
|
|
|
|
|
in: query
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema: {type: string, minLength: 1}
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: data为客户送仓精确解析结果或可见客户候选
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [code, data]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code: {type: string}
|
|
|
|
|
|
message: {type: string, nullable: true}
|
|
|
|
|
|
data:
|
|
|
|
|
|
$ref: '#/components/schemas/BatchWorkResolution'
|
|
|
|
|
|
400:
|
|
|
|
|
|
description: 批次键无效
|
|
|
|
|
|
403:
|
|
|
|
|
|
description: 缺少平台或原来源读取资格
|
|
|
|
|
|
404:
|
|
|
|
|
|
description: 当前批次未生成活动送仓事项
|
|
|
|
|
|
409:
|
|
|
|
|
|
description: 需求关系尚未同步或存在不唯一的事项关系
|
2026-10-15 16:55:57 +08:00
|
|
|
|
/api/platform/v1/last-leg/appointment-work/calendar:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "appointmentWorkCalendar"
|
|
|
|
|
|
summary: "完整日期区间的工作聚合"
|
|
|
|
|
|
description: "platform:appointment:list并逐事项核验来源读取资格;最大62个当地日期;五个桶互斥;到港参考不计工作量。完整扫描未就绪、scopeVersion变化或任一权威事实失败均拒绝伪造统计。"
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "from"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "to"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "flow"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/Flow"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "types"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "PICKUP"
|
|
|
|
|
|
- "WAREHOUSE_RECEIPT"
|
|
|
|
|
|
- "DELIVERY"
|
|
|
|
|
|
- "TRANSPORT"
|
|
|
|
|
|
- "EMPTY_RETURN"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "code为字符串200时成功;data为业务结果"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "code"
|
|
|
|
|
|
- "data"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
data:
|
|
|
|
|
|
"$ref": "#/components/schemas/CalendarResult"
|
|
|
|
|
|
400:
|
|
|
|
|
|
description: "参数、时区或判别式payload不合法"
|
|
|
|
|
|
403:
|
|
|
|
|
|
description: "非平台或缺少关联来源/命令权限"
|
|
|
|
|
|
404:
|
|
|
|
|
|
description: "事项不存在"
|
|
|
|
|
|
409:
|
|
|
|
|
|
description: "版本、来源集合、影响版本或并发冲突;必须刷新"
|
|
|
|
|
|
503:
|
|
|
|
|
|
description: "权威来源/原域适配/目录未就绪;不得显示零值或假成功"
|
|
|
|
|
|
/api/platform/v1/last-leg/appointment-work/summary:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "appointmentWorkSummary"
|
|
|
|
|
|
summary: "全部活动事项全局统计"
|
|
|
|
|
|
description: "不接收月份/流程/类型条件。集合可重叠;无日期有跟进日仍是未定日期。未知地点提醒按America/Los_Angeles业务默认时区判断并在missingFields说明。"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "code为字符串200时成功;data为业务结果"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "code"
|
|
|
|
|
|
- "data"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
data:
|
|
|
|
|
|
"$ref": "#/components/schemas/Summary"
|
|
|
|
|
|
400:
|
|
|
|
|
|
description: "参数、时区或判别式payload不合法"
|
|
|
|
|
|
403:
|
|
|
|
|
|
description: "非平台或缺少关联来源/命令权限"
|
|
|
|
|
|
404:
|
|
|
|
|
|
description: "事项不存在"
|
|
|
|
|
|
409:
|
|
|
|
|
|
description: "版本、来源集合、影响版本或并发冲突;必须刷新"
|
|
|
|
|
|
503:
|
|
|
|
|
|
description: "权威来源/原域适配/目录未就绪;不得显示零值或假成功"
|
|
|
|
|
|
/api/platform/v1/last-leg/appointment-work/items:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "appointmentWorkItems"
|
|
|
|
|
|
summary: "工作明细"
|
|
|
|
|
|
description: "ALL不传date时排除已完成;传date时包含当日已完成。共享车次按稳定车次键仅一项,containers中任一柜均可命中。"
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "view"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "ALL"
|
|
|
|
|
|
- "FOLLOW_TODAY"
|
|
|
|
|
|
- "OVERDUE"
|
|
|
|
|
|
- "UNDATED"
|
|
|
|
|
|
- "REVIEW"
|
|
|
|
|
|
default: "ALL"
|
|
|
|
|
|
-
|
|
|
|
|
|
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: "date"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "flow"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/Flow"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "types"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Type"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "containerBookingId"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "bucket"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "PENDING"
|
|
|
|
|
|
- "CONFIRMED"
|
|
|
|
|
|
- "NO_BOOKING_REQUIRED"
|
|
|
|
|
|
- "REVIEW"
|
|
|
|
|
|
- "COMPLETED"
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "keyword"
|
|
|
|
|
|
in: "query"
|
|
|
|
|
|
required: false
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "code为字符串200时成功;data为业务结果"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "code"
|
|
|
|
|
|
- "data"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
data:
|
|
|
|
|
|
"$ref": "#/components/schemas/Page"
|
|
|
|
|
|
400:
|
|
|
|
|
|
description: "参数、时区或判别式payload不合法"
|
|
|
|
|
|
403:
|
|
|
|
|
|
description: "非平台或缺少关联来源/命令权限"
|
|
|
|
|
|
404:
|
|
|
|
|
|
description: "事项不存在"
|
|
|
|
|
|
409:
|
|
|
|
|
|
description: "版本、来源集合、影响版本或并发冲突;必须刷新"
|
|
|
|
|
|
503:
|
|
|
|
|
|
description: "权威来源/原域适配/目录未就绪;不得显示零值或假成功"
|
|
|
|
|
|
/api/platform/v1/last-leg/appointment-work/items/{workItemKey}:
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "workItemKey"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: "appointmentWorkDetail"
|
|
|
|
|
|
summary: "事项、业务引用、关联与历史"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "code为字符串200时成功;data为业务结果"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "code"
|
|
|
|
|
|
- "data"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
data:
|
|
|
|
|
|
"$ref": "#/components/schemas/WorkDetail"
|
|
|
|
|
|
400:
|
|
|
|
|
|
description: "参数、时区或判别式payload不合法"
|
|
|
|
|
|
403:
|
|
|
|
|
|
description: "非平台或缺少关联来源/命令权限"
|
|
|
|
|
|
404:
|
|
|
|
|
|
description: "事项不存在"
|
|
|
|
|
|
409:
|
|
|
|
|
|
description: "版本、来源集合、影响版本或并发冲突;必须刷新"
|
|
|
|
|
|
503:
|
|
|
|
|
|
description: "权威来源/原域适配/目录未就绪;不得显示零值或假成功"
|
|
|
|
|
|
/api/platform/v1/last-leg/appointment-work/items/{workItemKey}/commands:
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
-
|
|
|
|
|
|
name: "workItemKey"
|
|
|
|
|
|
in: "path"
|
|
|
|
|
|
required: true
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
post:
|
|
|
|
|
|
operationId: "appointmentWorkCommand"
|
|
|
|
|
|
summary: "执行事项自有数据命令"
|
|
|
|
|
|
description: "SAVE_FOLLOWUP/RESOLVE_REVIEW要求platform:appointment:followup;其他命令要求platform:appointment:manage-work,同时核验list与来源资格。USER本人接手;外部责任方须运营记录明确反馈。只确认责任,不写实际还空。事务幂等键按事项唯一,同操作者同内容重放原响应;未知字段拒绝;不支持标为完成。"
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/CommandRequest"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "code为字符串200时成功;data为业务结果"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "code"
|
|
|
|
|
|
- "data"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
data:
|
|
|
|
|
|
"$ref": "#/components/schemas/CommandResult"
|
|
|
|
|
|
400:
|
|
|
|
|
|
description: "参数、时区或判别式payload不合法"
|
|
|
|
|
|
403:
|
|
|
|
|
|
description: "非平台或缺少关联来源/命令权限"
|
|
|
|
|
|
404:
|
|
|
|
|
|
description: "事项不存在"
|
|
|
|
|
|
409:
|
|
|
|
|
|
description: "版本、来源集合、影响版本或并发冲突;必须刷新"
|
|
|
|
|
|
503:
|
|
|
|
|
|
description: "权威来源/原域适配/目录未就绪;不得显示零值或假成功"
|
|
|
|
|
|
/internal/lastleg/appointment-work/synchronize:
|
|
|
|
|
|
post:
|
|
|
|
|
|
operationId: "synchronizeAppointmentWork"
|
|
|
|
|
|
summary: "服务端分页同步完整已开船事项"
|
|
|
|
|
|
description: "仅X-Internal-Service-Token,不经公网Gateway。由后台编排分页调用;GET不写库。afterContainerBookingId为空开始完整扫描,逐页回传nextCursor直到complete。跨页scopeVersion漂移拒绝;首次完整扫描前查询拒绝零值。未出现在新候选页的旧未还空工作保留。"
|
|
|
|
|
|
security:
|
|
|
|
|
|
-
|
|
|
|
|
|
internalToken: []
|
|
|
|
|
|
requestBody:
|
|
|
|
|
|
required: true
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
"$ref": "#/components/schemas/SyncRequest"
|
|
|
|
|
|
responses:
|
|
|
|
|
|
200:
|
|
|
|
|
|
description: "code为字符串200时成功;data为业务结果"
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "code"
|
|
|
|
|
|
- "data"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
message:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
data:
|
|
|
|
|
|
"$ref": "#/components/schemas/SyncResult"
|
|
|
|
|
|
400:
|
|
|
|
|
|
description: "参数、时区或判别式payload不合法"
|
|
|
|
|
|
403:
|
|
|
|
|
|
description: "非平台或缺少关联来源/命令权限"
|
|
|
|
|
|
404:
|
|
|
|
|
|
description: "事项不存在"
|
|
|
|
|
|
409:
|
|
|
|
|
|
description: "版本、来源集合、影响版本或并发冲突;必须刷新"
|
|
|
|
|
|
503:
|
|
|
|
|
|
description: "权威来源/原域适配/目录未就绪;不得显示零值或假成功"
|
|
|
|
|
|
/internal/lastleg/appointment-work/containers/{id}/route:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: readAppointmentWorkContainerRoute
|
|
|
|
|
|
summary: 读取本地已确认路线,不锁工作守卫或回调Firstleg
|
|
|
|
|
|
security: [{internalToken: []}]
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- {name: id, in: path, required: true, schema: {type: string}}
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: ApiResponse包装的本地持久路线
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code: {type: string}
|
|
|
|
|
|
message: {type: string, nullable: true}
|
|
|
|
|
|
data:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [flow]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
flow: {type: string, enum: [TRANSFER, DIRECT, UNKNOWN]}
|
|
|
|
|
|
'403': {description: 内部身份无效}
|
|
|
|
|
|
'409': {description: 当前有效事项路线冲突}
|
|
|
|
|
|
/api/platform/v1/last-leg/appointment-planning/batches/{batchKey}/dispatch-candidates:
|
|
|
|
|
|
get:
|
|
|
|
|
|
operationId: appointmentWorkBatchDispatchCandidates
|
|
|
|
|
|
summary: 按不可变FBA预约批次读取逐票实物排车候选
|
|
|
|
|
|
description: 客户仓使用原排车单批次键DISPATCH:<id>,逐票实物由原排车事务生成;按工作项batchNo进入原排车单并关联车次,不调用本FBA候选接口。平台主体且同时具有platform:appointment:list、platform:overseas-warehouse:last-mile-order:list、platform:overseas-warehouse:inbound-order:list。候选不足不补造数量;超过500托拒绝截断。写入沿用dispatches/pre-arrange及drafts/pre-arrange的batchAllocations,跨客户分别生成排车单后绑定同一车次。
|
|
|
|
|
|
security: [{bearerAuth: []}]
|
|
|
|
|
|
parameters:
|
|
|
|
|
|
- {name: batchKey, in: path, required: true, schema: {type: string}}
|
|
|
|
|
|
responses:
|
|
|
|
|
|
'200':
|
|
|
|
|
|
description: ApiResponse包装的完整候选及阻断原因
|
|
|
|
|
|
content:
|
|
|
|
|
|
application/json:
|
|
|
|
|
|
schema:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code: {type: string}
|
|
|
|
|
|
message: {type: string, nullable: true}
|
|
|
|
|
|
data: {$ref: '#/components/schemas/BatchDispatchCandidates'}
|
|
|
|
|
|
'403': {description: 非平台主体或无来源读取权限}
|
|
|
|
|
|
'409': {description: 批次或实物范围不能完整读取}
|
|
|
|
|
|
'503': {description: 原来源目录不可用}
|
|
|
|
|
|
components:
|
|
|
|
|
|
securitySchemes:
|
|
|
|
|
|
bearerAuth:
|
|
|
|
|
|
type: "http"
|
|
|
|
|
|
scheme: "bearer"
|
|
|
|
|
|
bearerFormat: "JWT"
|
|
|
|
|
|
internalToken:
|
|
|
|
|
|
type: "apiKey"
|
|
|
|
|
|
in: "header"
|
|
|
|
|
|
name: "X-Internal-Service-Token"
|
|
|
|
|
|
schemas:
|
|
|
|
|
|
Flow:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "TRANSFER"
|
|
|
|
|
|
- "DIRECT"
|
|
|
|
|
|
- "UNKNOWN"
|
|
|
|
|
|
Type:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "ROUTE"
|
|
|
|
|
|
- "PICKUP"
|
|
|
|
|
|
- "WAREHOUSE_RECEIPT"
|
|
|
|
|
|
- "DELIVERY"
|
|
|
|
|
|
- "TRANSPORT"
|
|
|
|
|
|
- "EMPTY_RETURN"
|
|
|
|
|
|
Command:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "CONFIRM_ROUTE"
|
|
|
|
|
|
- "SAVE_FOLLOWUP"
|
|
|
|
|
|
- "RESOLVE_REVIEW"
|
|
|
|
|
|
- "SAVE_REQUIREMENT"
|
|
|
|
|
|
- "HANDOFF_RETURN"
|
|
|
|
|
|
- "ACCEPT_RETURN"
|
|
|
|
|
|
ActionCode:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "VIEW_DETAIL"
|
|
|
|
|
|
- "SAVE_PLAN"
|
|
|
|
|
|
- "REQUEST_BOOKING"
|
|
|
|
|
|
- "RECORD_CONFIRMATION"
|
|
|
|
|
|
- "CHANGE_BOOKING"
|
|
|
|
|
|
- "CANCEL_BOOKING"
|
|
|
|
|
|
- "VERIFY_CARGO"
|
|
|
|
|
|
- "EDIT_BATCH"
|
|
|
|
|
|
- "ARRANGE_TRANSPORT"
|
|
|
|
|
|
- "RECORD_EXECUTION"
|
|
|
|
|
|
- "CONFIRM_ROUTE"
|
|
|
|
|
|
- "SAVE_FOLLOWUP"
|
|
|
|
|
|
- "RESOLVE_REVIEW"
|
|
|
|
|
|
- "SAVE_REQUIREMENT"
|
|
|
|
|
|
- "HANDOFF_RETURN"
|
|
|
|
|
|
- "ACCEPT_RETURN"
|
|
|
|
|
|
- "VIEW_HISTORY"
|
|
|
|
|
|
Slot:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "date"
|
|
|
|
|
|
- "startTime"
|
|
|
|
|
|
- "endDate"
|
|
|
|
|
|
- "endTime"
|
|
|
|
|
|
- "timezone"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
date:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
startTime:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?$"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
endDate:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
description: "与endTime同时为空或同时填写;不推断次日"
|
|
|
|
|
|
endTime:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^\\d{2}:\\d{2}(:\\d{2}(\\.\\d{1,9})?)?$"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
timezone:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
description: "原业务缺失时区可为空并标SOURCE_TIMEZONE;SAVE_REQUIREMENT写入仍须有效IANA时区"
|
|
|
|
|
|
Actual:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
description: "occurredAt与localOccurredAt至少一个非空;未知时区按原始当地日期展示,不推断UTC"
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "occurredAt"
|
|
|
|
|
|
- "localOccurredAt"
|
|
|
|
|
|
- "timezone"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
occurredAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
localOccurredAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
description: "无偏移的原始当地日期时间"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
timezone:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
Owner:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "id"
|
|
|
|
|
|
- "name"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
id:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
name:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
ContainerReference:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "containerBookingId"
|
|
|
|
|
|
- "bookingNo"
|
|
|
|
|
|
- "containerNo"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
containerBookingId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
bookingNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
containerNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
SourceReference:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "customerId"
|
|
|
|
|
|
- "sourceKey"
|
|
|
|
|
|
- "destinationKey"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
customerId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
sourceKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
pattern: "^(ORDER|BOOKING):.+$"
|
|
|
|
|
|
destinationKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
BusinessReference:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "key"
|
|
|
|
|
|
- "businessNo"
|
|
|
|
|
|
- "label"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
key:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
businessNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
label:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
Responsibility:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "id"
|
|
|
|
|
|
- "name"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "USER"
|
|
|
|
|
|
- "SUPPLIER"
|
|
|
|
|
|
- "EXTERNAL"
|
|
|
|
|
|
id:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
name:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 200
|
|
|
|
|
|
WorkTarget:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "command"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "WORK_COMMAND"
|
|
|
|
|
|
command:
|
|
|
|
|
|
"$ref": "#/components/schemas/Command"
|
|
|
|
|
|
CargoTarget:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "source"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "CARGO_VERIFICATION"
|
|
|
|
|
|
source:
|
|
|
|
|
|
"$ref": "#/components/schemas/SourceReference"
|
|
|
|
|
|
AppointmentTarget:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "appointmentId"
|
|
|
|
|
|
- "batchKey"
|
|
|
|
|
|
- "sources"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "FBA_APPOINTMENT"
|
|
|
|
|
|
appointmentId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
batchKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
sources:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/SourceReference"
|
|
|
|
|
|
ContainerTarget:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "containerBookingId"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "FIRSTLEG_CONTAINER"
|
|
|
|
|
|
containerBookingId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
TripTarget:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
description: FLEET_TRIP动作。tripId存在时维护原车次,业务车次号取工作项businessNo。未绑定车次的客户仓批次以DISPATCH:<原排车单不可变ID>放入batchKeys,原排车业务号取工作项batchNo;直接进入该原排车单关联车次,不能解析为FBA预约或再建立排车。FBA批次仍通过实物候选及batchAllocations安排。
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "tripId"
|
|
|
|
|
|
- "batchKeys"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "FLEET_TRIP"
|
|
|
|
|
|
tripId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
batchKeys:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
ReceiptTarget:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "inboundPlanId"
|
|
|
|
|
|
- "inboundPlanNo"
|
|
|
|
|
|
- "customerId"
|
|
|
|
|
|
- "containerBookingId"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "WAREHOUSE_RECEIPT"
|
|
|
|
|
|
inboundPlanId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
inboundPlanNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
customerId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
containerBookingId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
ReadTarget:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
description: 原业务只读入口。客户仓派送使用DELIVERY引用(key与businessNo均为派送业务号);DISPATCH引用的key为DISPATCH:<原排车单ID>,businessNo为原排车单号。仅供导航,不代表已经执行写入动作。
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "kind"
|
|
|
|
|
|
- "references"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
kind:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "READ_ONLY"
|
|
|
|
|
|
references:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/BusinessReference"
|
|
|
|
|
|
ActionTarget:
|
|
|
|
|
|
oneOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/WorkTarget"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/CargoTarget"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/AppointmentTarget"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/ContainerTarget"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/TripTarget"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/ReceiptTarget"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/ReadTarget"
|
|
|
|
|
|
discriminator:
|
|
|
|
|
|
propertyName: "kind"
|
|
|
|
|
|
mapping:
|
|
|
|
|
|
WORK_COMMAND: "#/components/schemas/WorkTarget"
|
|
|
|
|
|
CARGO_VERIFICATION: "#/components/schemas/CargoTarget"
|
|
|
|
|
|
FBA_APPOINTMENT: "#/components/schemas/AppointmentTarget"
|
|
|
|
|
|
FIRSTLEG_CONTAINER: "#/components/schemas/ContainerTarget"
|
|
|
|
|
|
FLEET_TRIP: "#/components/schemas/TripTarget"
|
|
|
|
|
|
WAREHOUSE_RECEIPT: "#/components/schemas/ReceiptTarget"
|
|
|
|
|
|
READ_ONLY: "#/components/schemas/ReadTarget"
|
|
|
|
|
|
Action:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "code"
|
|
|
|
|
|
- "label"
|
|
|
|
|
|
- "targetWorkItemKey"
|
|
|
|
|
|
- "target"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
code:
|
|
|
|
|
|
"$ref": "#/components/schemas/ActionCode"
|
|
|
|
|
|
label:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
targetWorkItemKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
target:
|
|
|
|
|
|
"$ref": "#/components/schemas/ActionTarget"
|
|
|
|
|
|
WorkItem:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "workItemKey"
|
|
|
|
|
|
- "version"
|
|
|
|
|
|
- "type"
|
|
|
|
|
|
- "flow"
|
|
|
|
|
|
- "title"
|
|
|
|
|
|
- "businessNo"
|
|
|
|
|
|
- "containers"
|
|
|
|
|
|
- "requirementKey"
|
|
|
|
|
|
- "batchKey"
|
|
|
|
|
|
- "batchNo"
|
|
|
|
|
|
- "originName"
|
|
|
|
|
|
- "destinationName"
|
|
|
|
|
|
- "planStatus"
|
|
|
|
|
|
- "executionStatus"
|
|
|
|
|
|
- "reviewRequired"
|
|
|
|
|
|
- "target"
|
|
|
|
|
|
- "confirmed"
|
|
|
|
|
|
- "actual"
|
|
|
|
|
|
- "calendarDate"
|
|
|
|
|
|
- "dateBasis"
|
|
|
|
|
|
- "timezone"
|
|
|
|
|
|
- "owner"
|
|
|
|
|
|
- "followupDate"
|
|
|
|
|
|
- "overdueReasons"
|
|
|
|
|
|
- "allowedActions"
|
|
|
|
|
|
- "nextAction"
|
|
|
|
|
|
- "blockReasons"
|
|
|
|
|
|
- "missingFields"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
workItemKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
version:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
type:
|
|
|
|
|
|
"$ref": "#/components/schemas/Type"
|
|
|
|
|
|
flow:
|
|
|
|
|
|
"$ref": "#/components/schemas/Flow"
|
|
|
|
|
|
title:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
businessNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
containers:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/ContainerReference"
|
|
|
|
|
|
requirementKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
batchKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
batchNo:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
originName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
destinationName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
planStatus:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "UNPLANNED"
|
|
|
|
|
|
- "TARGET_SET"
|
|
|
|
|
|
- "AWAITING_REPLY"
|
|
|
|
|
|
- "CONFIRMED"
|
|
|
|
|
|
- "NOT_REQUIRED"
|
|
|
|
|
|
executionStatus:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "PENDING"
|
|
|
|
|
|
- "IN_PROGRESS"
|
|
|
|
|
|
- "COMPLETED"
|
|
|
|
|
|
reviewRequired:
|
|
|
|
|
|
type: "boolean"
|
|
|
|
|
|
target:
|
|
|
|
|
|
"$ref": "#/components/schemas/Slot"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
confirmed:
|
|
|
|
|
|
"$ref": "#/components/schemas/Slot"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
actual:
|
|
|
|
|
|
"$ref": "#/components/schemas/Actual"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
calendarDate:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
dateBasis:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "ACTUAL"
|
|
|
|
|
|
- "CONFIRMED"
|
|
|
|
|
|
- "TARGET"
|
|
|
|
|
|
- "NONE"
|
|
|
|
|
|
timezone:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
owner:
|
|
|
|
|
|
"$ref": "#/components/schemas/Owner"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
followupDate:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
overdueReasons:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
allowedActions:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/Action"
|
|
|
|
|
|
nextAction:
|
|
|
|
|
|
"$ref": "#/components/schemas/Action"
|
|
|
|
|
|
nullable: true
|
2026-10-16 15:43:04 +08:00
|
|
|
|
description: "按当前权限和白名单目标引导;已确认送仓预约可指向本批车辆安排或本车复核,不代表授权发车。取消预约沿原批次重新预约,不恢复旧确认。"
|
2026-10-15 16:55:57 +08:00
|
|
|
|
blockReasons:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
missingFields:
|
|
|
|
|
|
type: "array"
|
2026-10-16 15:43:04 +08:00
|
|
|
|
description: "未完成事项分别提示负责人、下次跟进日期和作业日期等缺口;跟进日期不能作为作业日历日期。"
|
2026-10-15 16:55:57 +08:00
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
Review:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "version"
|
|
|
|
|
|
- "reasons"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
version:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
reasons:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
RequirementDetails:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "bookingRequired"
|
|
|
|
|
|
- "receivingRequirements"
|
|
|
|
|
|
- "reason"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
bookingRequired:
|
|
|
|
|
|
type: "boolean"
|
|
|
|
|
|
receivingRequirements:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
reason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
ReturnHandoff:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "version"
|
|
|
|
|
|
- "from"
|
|
|
|
|
|
- "to"
|
|
|
|
|
|
- "status"
|
|
|
|
|
|
- "reason"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
version:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
from:
|
|
|
|
|
|
"$ref": "#/components/schemas/Responsibility"
|
|
|
|
|
|
to:
|
|
|
|
|
|
"$ref": "#/components/schemas/Responsibility"
|
|
|
|
|
|
status:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "PENDING_ACCEPTANCE"
|
|
|
|
|
|
- "ACCEPTED"
|
|
|
|
|
|
reason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
HistoryEntry:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "occurredAt"
|
|
|
|
|
|
- "operatorName"
|
|
|
|
|
|
- "action"
|
|
|
|
|
|
- "summary"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
occurredAt:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date-time"
|
|
|
|
|
|
operatorName:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
action:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
summary:
|
|
|
|
|
|
type: "string"
|
2026-10-16 15:43:04 +08:00
|
|
|
|
BatchWorkResolution:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [batchKey, candidates]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
batchKey: {type: string}
|
|
|
|
|
|
customerId: {type: string, nullable: true}
|
|
|
|
|
|
detail:
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
allOf:
|
|
|
|
|
|
- $ref: '#/components/schemas/WorkDetail'
|
|
|
|
|
|
candidates:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [customerId, workItemKey]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
customerId: {type: string}
|
|
|
|
|
|
workItemKey: {type: string}
|
|
|
|
|
|
batchNo: {type: string, nullable: true}
|
2026-10-15 16:55:57 +08:00
|
|
|
|
WorkDetail:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "item"
|
|
|
|
|
|
- "relatedItems"
|
|
|
|
|
|
- "references"
|
|
|
|
|
|
- "history"
|
|
|
|
|
|
- "review"
|
|
|
|
|
|
- "requirement"
|
|
|
|
|
|
- "returnHandoff"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
item:
|
|
|
|
|
|
"$ref": "#/components/schemas/WorkItem"
|
|
|
|
|
|
relatedItems:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/WorkItem"
|
|
|
|
|
|
references:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/BusinessReference"
|
|
|
|
|
|
history:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/HistoryEntry"
|
|
|
|
|
|
review:
|
|
|
|
|
|
"$ref": "#/components/schemas/Review"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
requirement:
|
|
|
|
|
|
"$ref": "#/components/schemas/RequirementDetails"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
returnHandoff:
|
|
|
|
|
|
"$ref": "#/components/schemas/ReturnHandoff"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
Summary:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "all"
|
|
|
|
|
|
- "followToday"
|
|
|
|
|
|
- "overdue"
|
|
|
|
|
|
- "undated"
|
|
|
|
|
|
- "review"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
all:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
followToday:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
overdue:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
undated:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
review:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
BucketCounts:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "pending"
|
|
|
|
|
|
- "confirmed"
|
|
|
|
|
|
- "noBookingRequired"
|
|
|
|
|
|
- "review"
|
|
|
|
|
|
- "completed"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
pending:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
confirmed:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
noBookingRequired:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
review:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
completed:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
DayAggregate:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "date"
|
|
|
|
|
|
- "total"
|
|
|
|
|
|
- "typeCounts"
|
|
|
|
|
|
- "counts"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
date:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
total:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
typeCounts:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
counts:
|
|
|
|
|
|
"$ref": "#/components/schemas/BucketCounts"
|
|
|
|
|
|
CalendarResult:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "from"
|
|
|
|
|
|
- "to"
|
|
|
|
|
|
- "total"
|
|
|
|
|
|
- "counts"
|
|
|
|
|
|
- "days"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
from:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
to:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
total:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
counts:
|
|
|
|
|
|
"$ref": "#/components/schemas/BucketCounts"
|
|
|
|
|
|
days:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/DayAggregate"
|
|
|
|
|
|
Page:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "records"
|
|
|
|
|
|
- "page"
|
|
|
|
|
|
- "size"
|
|
|
|
|
|
- "total"
|
|
|
|
|
|
- "pages"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
records:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
"$ref": "#/components/schemas/WorkItem"
|
|
|
|
|
|
page:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
size:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
maximum: 100
|
|
|
|
|
|
total:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
pages:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
CommandResult:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "item"
|
|
|
|
|
|
- "affectedWorkItemKeys"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
item:
|
|
|
|
|
|
"$ref": "#/components/schemas/WorkItem"
|
|
|
|
|
|
affectedWorkItemKeys:
|
|
|
|
|
|
type: "array"
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
SyncRequest:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "size"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
afterContainerBookingId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
maxLength: 128
|
|
|
|
|
|
size:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 1
|
|
|
|
|
|
maximum: 100
|
|
|
|
|
|
SyncResult:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "sources"
|
|
|
|
|
|
- "created"
|
|
|
|
|
|
- "nextCursor"
|
|
|
|
|
|
- "complete"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
sources:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
created:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
nextCursor:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
complete:
|
|
|
|
|
|
type: "boolean"
|
|
|
|
|
|
CONFIRM_ROUTERequest:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "command"
|
|
|
|
|
|
- "expectedVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "payload"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
command:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "CONFIRM_ROUTE"
|
|
|
|
|
|
expectedVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
payload:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "flow"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
flow:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "TRANSFER"
|
|
|
|
|
|
- "DIRECT"
|
|
|
|
|
|
reason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
SAVE_FOLLOWUPRequest:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "command"
|
|
|
|
|
|
- "expectedVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "payload"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
command:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "SAVE_FOLLOWUP"
|
|
|
|
|
|
expectedVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
payload:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "ownerId"
|
|
|
|
|
|
- "followupDate"
|
|
|
|
|
|
- "note"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
ownerId:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
followupDate:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
format: "date"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
note:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
RESOLVE_REVIEWRequest:
|
|
|
|
|
|
type: "object"
|
2026-10-16 15:43:04 +08:00
|
|
|
|
description: "须匹配当前影响版本,并核对本事项及关联安排的最新权威影响;需求关系未同步或出现新影响时拒绝清除。车次货物成员变化仅要求相关客户及车辆核对,未变化客户预约不连带复核;车辆、司机、时间变化影响当前关联预约。复核不恢复取消的确认、不修改原预约和车辆,也不制造新的业务影响。"
|
2026-10-15 16:55:57 +08:00
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "command"
|
|
|
|
|
|
- "expectedVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "payload"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
command:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "RESOLVE_REVIEW"
|
|
|
|
|
|
expectedVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
payload:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "reviewVersion"
|
|
|
|
|
|
- "note"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
reviewVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
note:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
SAVE_REQUIREMENTRequest:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "command"
|
|
|
|
|
|
- "expectedVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "payload"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
command:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "SAVE_REQUIREMENT"
|
|
|
|
|
|
expectedVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
payload:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "target"
|
|
|
|
|
|
- "bookingRequired"
|
|
|
|
|
|
- "receivingRequirements"
|
|
|
|
|
|
- "reason"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
target:
|
|
|
|
|
|
"$ref": "#/components/schemas/Slot"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
bookingRequired:
|
|
|
|
|
|
type: "boolean"
|
|
|
|
|
|
receivingRequirements:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
reason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
HANDOFF_RETURNRequest:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "command"
|
|
|
|
|
|
- "expectedVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "payload"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
command:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "HANDOFF_RETURN"
|
|
|
|
|
|
expectedVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
payload:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "recipient"
|
|
|
|
|
|
- "reason"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
recipient:
|
|
|
|
|
|
"$ref": "#/components/schemas/Responsibility"
|
|
|
|
|
|
reason:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
ACCEPT_RETURNRequest:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "command"
|
|
|
|
|
|
- "expectedVersion"
|
|
|
|
|
|
- "idempotencyKey"
|
|
|
|
|
|
- "payload"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
command:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
enum:
|
|
|
|
|
|
- "ACCEPT_RETURN"
|
|
|
|
|
|
expectedVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
idempotencyKey:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
minLength: 1
|
|
|
|
|
|
maxLength: 64
|
|
|
|
|
|
payload:
|
|
|
|
|
|
type: "object"
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required:
|
|
|
|
|
|
- "handoffVersion"
|
|
|
|
|
|
- "note"
|
|
|
|
|
|
properties:
|
|
|
|
|
|
handoffVersion:
|
|
|
|
|
|
type: "integer"
|
|
|
|
|
|
minimum: 0
|
|
|
|
|
|
note:
|
|
|
|
|
|
type: "string"
|
|
|
|
|
|
nullable: true
|
|
|
|
|
|
maxLength: 1000
|
|
|
|
|
|
CommandRequest:
|
|
|
|
|
|
description: SAVE_REQUIREMENT新增目标须为分钟精度且有IANA时区;原业务Slot允许保留秒、纳秒及未知时区。
|
|
|
|
|
|
oneOf:
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/CONFIRM_ROUTERequest"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/SAVE_FOLLOWUPRequest"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/RESOLVE_REVIEWRequest"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/SAVE_REQUIREMENTRequest"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/HANDOFF_RETURNRequest"
|
|
|
|
|
|
-
|
|
|
|
|
|
"$ref": "#/components/schemas/ACCEPT_RETURNRequest"
|
|
|
|
|
|
discriminator:
|
|
|
|
|
|
propertyName: "command"
|
|
|
|
|
|
mapping:
|
|
|
|
|
|
CONFIRM_ROUTE: "#/components/schemas/CONFIRM_ROUTERequest"
|
|
|
|
|
|
SAVE_FOLLOWUP: "#/components/schemas/SAVE_FOLLOWUPRequest"
|
|
|
|
|
|
RESOLVE_REVIEW: "#/components/schemas/RESOLVE_REVIEWRequest"
|
|
|
|
|
|
SAVE_REQUIREMENT: "#/components/schemas/SAVE_REQUIREMENTRequest"
|
|
|
|
|
|
HANDOFF_RETURN: "#/components/schemas/HANDOFF_RETURNRequest"
|
|
|
|
|
|
ACCEPT_RETURN: "#/components/schemas/ACCEPT_RETURNRequest"
|
|
|
|
|
|
DispatchBatchAllocation:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
additionalProperties: false
|
|
|
|
|
|
required: [planPalletId, batchKey, customerId, sourceKey, destinationKey, packageCount]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
planPalletId: {type: integer, format: int64}
|
|
|
|
|
|
batchKey: {type: string, pattern: '^FBA_APPOINTMENT:[1-9][0-9]*$'}
|
|
|
|
|
|
customerId: {type: string}
|
|
|
|
|
|
sourceKey: {type: string}
|
|
|
|
|
|
destinationKey: {type: string}
|
|
|
|
|
|
packageCount: {type: integer, minimum: 1}
|
|
|
|
|
|
BatchDispatchCandidates:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [batchKey, version, candidates, blockReasons]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
batchKey: {type: string}
|
|
|
|
|
|
version: {type: integer}
|
|
|
|
|
|
blockReasons: {type: array, items: {type: string}}
|
|
|
|
|
|
candidates:
|
|
|
|
|
|
type: array
|
|
|
|
|
|
items:
|
|
|
|
|
|
type: object
|
|
|
|
|
|
required: [planPalletId, palletNo, planId, planNo, customerId, sourceStage, packageCount, allocations, blockReasons]
|
|
|
|
|
|
properties:
|
|
|
|
|
|
planPalletId: {type: integer, format: int64}
|
|
|
|
|
|
palletNo: {type: string}
|
|
|
|
|
|
planId: {type: integer, format: int64}
|
|
|
|
|
|
planNo: {type: string}
|
|
|
|
|
|
customerId: {type: string}
|
|
|
|
|
|
sourceStage: {type: string, enum: [PLAN, RECEIVED]}
|
|
|
|
|
|
packageCount: {type: integer, nullable: true}
|
|
|
|
|
|
allocations: {type: array, items: {$ref: '#/components/schemas/DispatchBatchAllocation'}}
|
|
|
|
|
|
blockReasons: {type: array, items: {type: string}}
|