openapi: 3.0.3 info: {title: 四类日历整柜到仓来源, version: 1.0.0} security: [{bearerAuth: []}] paths: /api/platform/v1/last-leg/appointment-calendar/warehouse-arrivals/query: post: summary: 查询日历整柜人工到仓计划与冻结事实 description: >- 仅平台,同时要求platform:appointment:list与platform:overseas-warehouse:last-mile-order:list。 返回所选来源柜,以及查询区间内已人工维护或已有入库计划的到仓记录,支持跨月人工改期。 同柜多个客户合并一条。plannedAt只有整柜时间一致且人工维护版本大于0时才有值;仅日期的冻结计划通过plannedDate返回。 plannedDate/isDefault由与清关提柜和入库计划共用的服务端解析器返回,默认按权威到港当地日期加2个自然日;此只读接口不写入库计划、不补造时刻。 actualAt只读PDA首次收货时间,不替换计划日期。 具备原尾程订单编辑权限、版本一致、无入库计划且未实际到仓时canEdit=true。 保存复用overseas-business-v1的整柜expected-arrival入口和原版本、幂等键、冻结门禁。 无法核平的整柜版本为-1,不能用默认日期覆盖。最多2000条,超出返回400。 x-permissions: [platform:appointment:list, 'platform:overseas-warehouse:last-mile-order:list'] requestBody: required: true content: application/json: schema: type: object required: [from, to, sourceContainerBookingIds] properties: from: {type: string, format: date} to: {type: string, format: date, description: 左闭右开,最多42天} sourceContainerBookingIds: {type: array, maxItems: 2000, uniqueItems: true, items: {type: string, pattern: '^[1-9][0-9]*$'}} responses: '200': description: 成功业务响应,code为字符串200 content: application/json: schema: type: object properties: code: {type: string} data: type: array items: type: object properties: sourceContainerBookingId: {type: string} cabinetNo: {type: string, nullable: true, description: 来源交接冻结的柜次号,作为日历主标识} containerNo: {type: string, nullable: true} warehouseName: {type: string, nullable: true} warehouseCode: {type: string, nullable: true} plannedAt: {type: string, format: date-time, nullable: true} plannedDate: {type: string, format: date, nullable: true, description: 人工日期、已生成计划冻结日期或权威默认日期} isDefault: {type: boolean, description: 仅当前未维护未建计划且有默认日期时为true} actualAt: {type: string, format: date-time, nullable: true} version: {type: integer, minimum: -1} planCount: {type: integer, minimum: 0} canEdit: {type: boolean} '400': {description: 日期、来源柜或数量不符合约束} '403': {description: 非平台或缺少任一读取权限} components: securitySchemes: bearerAuth: {type: http, scheme: bearer, bearerFormat: JWT}