openapi: 3.0.3 info: title: 排车装车资料(Admin/PDA共用) version: 1.0.0 description: LOADING阶段即可同步上传并保存五个整车照片框;照片齐全不会提前发车。装车确认时资料已齐则直接进入DELIVERING,否则进入AFTER_LOADING,最后一次绑定自动生成派送并进入DELIVERING。触发推进的装车确认或照片绑定与派送同事务,失败保留先前已保存资料。复用车队照片记录,技术槽位仅表示照片1至5,不代表驾驶证审核或真实签收。PDA每次核验Token冻结仓,平台list只读、edit写;原键仅原操作者恢复。 security: - bearerAuth: [] paths: /api/platform/v1/last-leg/dispatches/{dispatchNo}/loading-documents: get: operationId: getDispatchLoadingDocuments summary: 读取本车装车资料或原上传结果 x-permission-code: platform:overseas-warehouse:dispatch:list parameters: - $ref: '#/components/parameters/dispatchNo' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Documents' /api/pda/v1/last-leg/dispatches/{dispatchNo}/loading-documents: get: operationId: getDispatchLoadingDocumentsPda summary: 读取本车装车资料或原上传结果 x-permission-code: lastleg:pda:operate parameters: - $ref: '#/components/parameters/dispatchNo' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Documents' x-required-role: OVERSEAS_WAREHOUSE_PDA_OPERATOR /api/platform/v1/last-leg/dispatches/{dispatchNo}/loading-documents/{slot}/uploads: post: operationId: uploadDispatchLoadingPhoto summary: 上传整车装车照片,尚未绑定 x-permission-code: platform:overseas-warehouse:dispatch:edit parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/slot' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Photo' requestBody: required: true content: multipart/form-data: schema: type: object required: - file - idempotencyKey properties: file: type: string format: binary description: 非空JPG/PNG,最大10MiB idempotencyKey: type: string minLength: 8 maxLength: 128 /api/pda/v1/last-leg/dispatches/{dispatchNo}/loading-documents/{slot}/uploads: post: operationId: uploadDispatchLoadingPhotoPda summary: 上传整车装车照片,尚未绑定 x-permission-code: lastleg:pda:operate parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/slot' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Photo' requestBody: required: true content: multipart/form-data: schema: type: object required: - file - idempotencyKey properties: file: type: string format: binary description: 非空JPG/PNG,最大10MiB idempotencyKey: type: string minLength: 8 maxLength: 128 x-required-role: OVERSEAS_WAREHOUSE_PDA_OPERATOR /api/platform/v1/last-leg/dispatches/{dispatchNo}/loading-documents/{slot}: put: operationId: bindDispatchLoadingPhoto summary: 保存装车照片;五框齐全时自动进入派送中 x-permission-code: platform:overseas-warehouse:dispatch:edit parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/slot' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Documents' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BindPhoto' /api/pda/v1/last-leg/dispatches/{dispatchNo}/loading-documents/{slot}: put: operationId: bindDispatchLoadingPhotoPda summary: 保存装车照片;五框齐全时自动进入派送中 x-permission-code: lastleg:pda:operate parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/slot' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Documents' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BindPhoto' x-required-role: OVERSEAS_WAREHOUSE_PDA_OPERATOR /api/platform/v1/last-leg/dispatches/{dispatchNo}/loading-documents/{slot}/files/{fileId}/content: get: operationId: readDispatchLoadingPhoto summary: 读取本车装车资料或原上传结果 x-permission-code: platform:overseas-warehouse:dispatch:list parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/slot' - $ref: '#/components/parameters/fileId' responses: '200': description: no-store图片内容 content: image/jpeg: schema: type: string format: binary image/png: schema: type: string format: binary /api/pda/v1/last-leg/dispatches/{dispatchNo}/loading-documents/{slot}/files/{fileId}/content: get: operationId: readDispatchLoadingPhotoPda summary: 读取本车装车资料或原上传结果 x-permission-code: lastleg:pda:operate parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/slot' - $ref: '#/components/parameters/fileId' responses: '200': description: no-store图片内容 content: image/jpeg: schema: type: string format: binary image/png: schema: type: string format: binary x-required-role: OVERSEAS_WAREHOUSE_PDA_OPERATOR /api/platform/v1/last-leg/dispatches/{dispatchNo}/loading-documents/uploads/{idempotencyKey}: get: operationId: recoverDispatchLoadingPhoto summary: 读取本车装车资料或原上传结果 x-permission-code: platform:overseas-warehouse:dispatch:edit parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Photo' /api/pda/v1/last-leg/dispatches/{dispatchNo}/loading-documents/uploads/{idempotencyKey}: get: operationId: recoverDispatchLoadingPhotoPda summary: 读取本车装车资料或原上传结果 x-permission-code: lastleg:pda:operate parameters: - $ref: '#/components/parameters/dispatchNo' - $ref: '#/components/parameters/idempotencyKey' responses: '200': description: 成功;业务错误沿ApiResponse返回A0400/A0403/A0404/A0409及诊断编号 content: application/json: schema: type: object properties: code: type: string message: type: string data: $ref: '#/components/schemas/Photo' x-required-role: OVERSEAS_WAREHOUSE_PDA_OPERATOR components: securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT parameters: dispatchNo: name: dispatchNo in: path required: true schema: type: string slot: name: slot in: path required: true schema: type: string enum: &id001 - LOADING_SCENE - LOADING_LIST - PRE_DEPARTURE_CHECK - DRIVER_LICENSE - RECEIPT fileId: name: fileId in: path required: true schema: type: string idempotencyKey: name: idempotencyKey in: path required: true schema: type: string schemas: Photo: type: object required: - slot - fileId - fileName - contentType - sizeBytes - uploadedAt properties: slot: type: string enum: *id001 category: type: string enum: - LOADING fileId: type: string fileName: type: string contentType: type: string sizeBytes: type: string uploadedAt: type: string savedAt: type: string nullable: true Documents: type: object required: - dispatchNo - recordVersion - editable - photos - dispatchRecordVersion - stage - complete properties: dispatchNo: type: string recordVersion: type: string editable: type: boolean photos: type: array items: $ref: '#/components/schemas/Photo' dispatchRecordVersion: type: string stage: type: string enum: - LOADING - AFTER_LOADING - DELIVERING - DELIVERED complete: type: boolean description: 五个固定框各有一张已保存照片 BindPhoto: type: object required: - recordVersion - idempotencyKey - fileId properties: recordVersion: type: string pattern: ^(0|[1-9][0-9]*)$ idempotencyKey: type: string minLength: 8 maxLength: 128 fileId: type: string