Files
shanxia2.0/openspec/changes/dibang-migration/tasks.md
T
2026-06-10 22:59:34 +08:00

2.8 KiB
Raw Blame History

1. SQL 与数据模型

  • 1.1 编写 docs/sql/db_tables.sql:四张 db_* 表 DDL(含公共字段、索引、注释)
  • 1.2 合并 DDL 至 docs/sql/shanxia2.0.sql 全量快照
  • 1.3 创建 backend/app/models/db_models.py:DbPurchasePlan、DbWeighingSlip、DbInboundOutbound、DbVehicle
  • 1.4 在 backend/app/main.py 导入 db_models(# noqa: F401)

2. 后端基础层

  • 2.1 创建 backend/app/services/db/base.py(DbCrudService,参照 BxCrudService)
  • 2.2 创建 backend/app/schemas/db/:各实体 CreateBody/UpdateBody/Response
  • 2.3 创建 backend/app/api/db/__init__.py 聚合 db_router
  • 2.4 在 backend/app/api/__init__.py 与 backend/app/main.py 注册 db_router

3. 后端业务 API(按依赖顺序)

  • 3.1 实现 api/db/vehicles.py + 主数据 CRUD(车牌;原 task 写 vehicle.py)
  • 3.2 实现 api/db/plans.py + services/db/plan_helpers.py 等(计划 CRUD + plan_no 生成)
  • 3.3 实现 api/db/inventory.py + 出入库 CRUD
  • 3.4 实现 api/db/weighing.py + services/db/weighing_logic.py(地磅单 CRUD + 联动事务 + 作废)
  • 3.5 实现 api/db/dashboard.py(统计聚合)
  • 3.6 创建 backend/app/tasks/db_auto_plan.py 并在 app/tasks/__init__.py 注册定时任务

4. 前端 API 与类型

  • 4.1 创建 web-admin/src/api/db/vehicles.ts、plans.ts、inventory.ts、weighing.ts、dashboard.ts
  • 4.2 TypeScript 类型定义于各 web-admin/src/api/db/*.ts 模块(未单独写入 api.d.ts)

5. 前端页面(Fresh Mint)

  • 5.1 创建 web-admin/src/views/db/vehicles/index.vue(P01,参照 unit 模板)
  • 5.2 创建 web-admin/src/views/db/plans/index.vue + 表单弹窗(P02,参照 order 模板)
  • 5.3 创建 web-admin/src/views/db/inventory/index.vue + 表单弹窗(P02)
  • 5.4 创建 web-admin/src/views/db/weighing/index.vue + 表单弹窗(P02;含 CRM 产品/客户下拉、车牌下拉、作废 Tag)
  • 5.5 创建 web-admin/src/views/db/dashboard/index.vue(统计卡片/图表,参照 console)
  • 5.6 注册路由与侧栏菜单(router/modules/sqxp.ts + docs/sql/20260607_db_menu.sql)

6. 数据迁移与权限

  • 6.1 编写 backend/scripts/migrate_dibang_data.py:int id → UUID,重写关联
  • 6.2 编写地磅菜单与按钮权限初始化 SQL(docs/sql/20260607_db_menu.sql)
  • 6.3 运行 python scripts/check_field_consistency.py(若适用)验证字段一致性

7. 验证

  • 7.1 Swagger 验证各 db API CRUD 与 tenant 隔离
  • 7.2 全链路验收:创建计划 → 保存地磅单 → 生成出入库 → 仪表盘统计
  • 7.3 验证计划 auto_generate 定时任务(可手动触发测试)
  • 7.4 执行 ./scripts/update-graph.sh backend frontend 更新知识图谱