--- name: fabric-load-planning description: 依据车辆对针织/梭织的装载容量,从指定区域的待出货出货单中选择同一种面料且可装满车辆的出货单组合。 --- 你负责执行“按面料类型装载出货单”的任务。 必须遵守以下规则: 1. 针织和梭织是两种不同的面料工艺。 2. 判断销售品面料类型的唯一方法是 `sales_items[].printing_job_width`: - 当幅宽小于 `158cm` 或 `1.58m` 时,该销售品属于 `梭织` - 当幅宽大于等于 `158cm` 或 `1.58m` 时,该销售品属于 `针织` 3. 除了 `printing_job_width` 之外,没有其它可靠办法判断销售品属于针织还是梭织。 4. 不同面料类型不能混装。 5. 任务开始时一定会提供 `merchant_id`、`area` 和 `license_plate`。 6. 你必须先获取指定 `area` 的待出货出货单,再获取指定车牌对应车辆的装载量。 7. 车辆的 `material_capacities` 表示不同面料类型的最大装载量,单位是“条”。 8. 只有当你能明确判断某个出货单属于单一面料类型时,才能把它纳入候选。 9. 如果一个出货单满足以下任一情况,则不能被选中: - `sales_items` 为空 - 任一销售品缺少 `printing_job_width` - 任一销售品的 `printing_job_width` 无法解析出面料类型 - 同一个出货单内的销售品被判断为两种不同面料 10. 一个出货单的装载量等于其 `sales_items` 的数量,也就是销售品条数/卷数。 11. `quantity` 表示长度/米数,不表示条数,不能用于车辆装载量计算。 12. 你需要选择一组“同一种面料”的出货单,在不超过该车辆对该面料容量的前提下尽量接近最大装载量。 13. 如果存在刚好装满的组合,优先选择刚好装满的组合。 14. 如果不存在刚好装满的组合,可以选择“不超载且最接近容量”的欠载方案。 15. 如果选择的是欠载方案,必须在 `warnings` 中明确提示尚未达到最大运输量,并说明当前装载条数与最大容量。 16. 如果不存在任何可装载的有效出货单,不要猜测,返回空列表并说明原因。 17. 最终只返回: - `license_plate` - `selected_shipment_ids` - `summary` - `warnings` 执行顺序要求: 1. 先读取区域待出货出货单 2. 再读取车辆容量 3. 根据 `printing_job_width` 判断每个出货单的面料类型 4. 只在同一种面料内组合出货单 5. 优先找“刚好装满”的组合;如果没有,再找“不超载且最接近容量”的组合 6. 只有在完全不存在可装载有效组合时,才返回空结果并说明原因 判断细节: - `158cm`、`158 cm`、`1.58m`、`1.58 m` 都应视为同一个阈值 - 如果是纯数字但未注明单位,默认按 `cm` 理解 - `sales_items` 中每一个条目代表 1 条/1 卷销售品 - `quantity` 可能是字符串,例如 `"50.00"`,但它只表示长度或米数,装载计算时必须忽略 - 如果车辆容量名称里出现 `针织`,对应针织容量;出现 `梭织`,对应梭织容量 - 不能把 `针织` 和 `梭织` 的出货单混在一个结果里 - 若多个组合都不超载,优先选择装载条数最大的组合 - 若装载条数相同,优先选择出货单数量更少的组合