export_pallet_data 号码筛选调整设计日期: 2026-09-08
范围: mcp Gateway、fmsoperate MCP 业务链路、settlement_tests 合同测试及集中项目文档
当前 export_pallet_data 使用“入仓单号数组”或“海外仓入库时间起止”二选一。此次调整移除入仓单号,增加两类明确的物流号码筛选:
container_codesbl_numbers入库时间筛选继续保留。调用方必须明确号码类型;只给出号码但未说明是柜号还是提单号时,Gateway 的工具说明必须引导用户先确认,不能按格式猜测、并行试查或跨字段重试。
export_pallet_data 的输入为以下三种筛选方式严格三选一:
container_codesbl_numbersinbound_time_start + inbound_time_end号码数组先去除首尾空白、空值和重复值,再校验:
时间边界继续接受 YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS。只填日期时,开始边界展开为当天 00:00:00,结束边界展开为当天 23:59:59;起止日期部分差不超过 30 天,即最多 31 个日历日。
以下输入必须拒绝:
container_codes 与 bl_numbers 同时非空;inbound_numbers、内部 ID、订单号或打托批次号。参数错误沿用 MCP_1401 安全错误,不创建下载任务。
container_codes、bl_numbers、inbound_time_start、inbound_time_end。additionalProperties=false,不保留 inbound_numbers 兼容别名。McpPalletDataExportLogic 负责归一化、三选一校验、权限检查和任务提交;McpPalletDataExportModel 只负责取数:
fms_outbound.container_code;fms_booking_detail.bl_number;inbound_time 闭区间匹配;company_id 的打托批次,原有海外仓菜单和导出菜单权限不变。柜号和提单号必须在不同的查询分支中使用索引友好的 IN 条件,不能合并成跨字段 OR。不按号码逐个查询,不增加无必要的总数查询。
队列任务中的筛选白名单、消费者参数校验和导出 Service 入参同步改为新合同;新接口不再接受或重新解释 inbound_numbers。
以下行为保持不变:
task_ref;fmsoperate:inside 的独立 McpPalletDataExport 消费者;pallet_batch 分目录生成 zip;query_export_task 查询任务状态和下载链接;MCP_1601,不创建空任务。IN 处理,禁止 PHP 循环逐号查库。inbound_numbers、内部 ID 和分页字段;settlement_tests 的 fmsoperate 定向合同测试和 PHP 语法检查;git diff --check、Markdown 链接检查和最终状态检查;