2.8 KiB
2.8 KiB
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更新知识图谱