Files
cmroubao/docs/tasks/T-222.md
T

2.5 KiB
Raw Blame History

id, title, phase, deps, status, created, context_ref, work_branch, write_paths
id title phase deps status created context_ref work_branch write_paths
T-222 货运信息存储 API 与 Admin 页面 2
T-221
TODO 2026-07-28 78dc595 null
backend-api/cmd/**
backend-api/internal/config/**
backend-api/internal/domain/**
backend-api/internal/usecase/**
backend-api/internal/repository/sqlite/**
backend-api/internal/transport/httpapi/**
backend-api/internal/transport/webui/**
backend-api/migrations/**
docs/api.md
docs/routes.md
docs/tasks/T-222.md
docs/current-state.md

问题 / 背景

现有 purchase_tasks.source_ref 只能防止任务重复创建,无法表示 ERP 同步、货运头、 多商品明细、来源版本和待处理异常。需要独立货运数据层,Admin 先查看来源事实,再 进入采购需求生成。

关联需求与交互

  • 功能:F-011
  • 用户故事:US-011
  • 交互:IX-012
  • 架构/API:erp_sync_runs、freight_orders、freight_order_items

方案

  1. 新增 migration,按 creator scope 保存同步记录、货运单和商品明细。
  2. 唯一键分别为 (creator, source_system, external_stock_id) 和 (freight_order_id, external_item_id);重复响应按 canonical hash 幂等 upsert。
  3. 只保存采购和审计必要字段;不保存收件人姓名、电话、详细地址、Cookie/JWT 或 未裁剪原始响应。
  4. Admin 创建“按单号导入”同步记录,由后台有界调用 loopback Connector;请求返回 job id,不把验证码/ERP 延迟绑定到浏览器长请求。
  5. 新增 /freight 列表、/freight/import 和 /freight/{id} 详情;页面展示来源 单号、店铺、ERP 时间、状态、明细数量、同步状态和可修复异常。
  6. 进程重启时遗留 RUNNING job 转稳定失败;失败不写半批货运数据。

验收要点

  • migration up/down/up 和降级保护通过。
  • 重复导入不重复货运单/明细,来源变化产生版本/hash 更新和审计时间。
  • 多商品、空详情、重复外部 ID、超限及 connector 失败均有集成测试。
  • Admin API/SSR 鉴权、CSRF、no-store、响应式页面和 PII 缺失断言通过。
  • go test ./...、race、vet 和根验证通过。

边界

  • 不在本任务生成采购任务。
  • 不自动下载 productThumb,只保存非秘密 ERP 引用。
  • 不按 ERP 数字状态自动判断“应采购”,状态枚举确认属于 T-223。

执行记录

  • 2026-07-28:任务合约已冻结,等待 T-221。