# 02 — 完成 CSV 批量分配代理接口闭环 **What to build:** 平台员工或代理提交已上传的 CSV 与目标代理后,系统创建并执行批量分配任务;任务按既有设备分配规则安全处理每一行、同步绑定卡和设备状态、写入资产分配与审计事实,并向前端提供可轮询的进度、成功、幂等和失败原因。 **Blocked by:** 01 — 建立设备 CSV 批量任务与受控上传基础设施。 **Status:** ready-for-agent **架构通道:** 主通道为复杂写,辅助通道为 Query。 **完整业务边界:** 本票收口任务提交、后台执行、设备归属/绑定卡归属与状态/资产分配记录的同事务变更、条件更新和重试幂等,以及任务详情安全读取。复杂写必须遵循 `Handler → Application UseCase → Domain → Repository/Infrastructure`;不变量、并发和审计不得一半留在旧 Service、一半迁入 Domain。 **明确不迁移:** 不迁移既有页面勾选、ID 列表、号段、筛选分配、设备回收和横向转移入口;既有同步分配只能作为内部业务规则门面,不能复制宽松逻辑。 - [ ] `batch-assign-shop` 只接受 `file_key` 与正目标代理 ID,提交时校验操作者、对象和目标权限,并返回前端轮询所需的任务标识、命令和状态。 - [ ] 平台仅能分配平台库存,代理仅能分配自己名下设备给直属下级;同目标为幂等成功,横向转移、跨级、无权和未命中均安全拒绝。 - [ ] 每个写批次经 Application 编排 Domain 与 Repository/Infrastructure,以条件更新在同一事务内完成设备归属、绑定卡同步、状态变化、资产分配记录和实际变更审计;重试或并发不会重复记录或覆盖其他操作。 - [ ] 任务详情由 Query 负责权限、批量加载和 DTO 投影,只读展示目标摘要、状态名称、进度、总数、成功数、幂等数、失败数、逐行中文失败原因及起止时间;权限不足与不存在使用相同安全语义。