2.7 KiB
2.7 KiB
地磅后端移植适配细则
实施 P0–P4 时加载。与 00-migration-plan.md 配套。
对照 bx:../bx-migration/ref-backend-adapt.md
1. 文件复制对照表
| 原地磅源 | shanxia2.0 目标 | 改造程度 |
|---|---|---|
app/schemas/*.py |
schemas/db/*.py |
id→str;字段名对齐 DDL |
app/api/routes/*.py |
api/db/*.py |
async→sync、Depends、租户 |
app/models/*.py |
models/db_models.py |
按 db_tables.sql 重写 SQLAlchemy |
app/db/session.py |
不复制 | 用 core/database.get_db |
| auth/users 路由 | 不复制 | core/db_auth.py |
2. Router 改造检查清单
复制每个 router 后逐项核对:
APIRouter(prefix="/plans")等 保持原 prefix(不要改成/web/admin/db/plans)AsyncSession/get_async_session→Session/get_db- 鉴权 →
Depends(get_db_current_user)或菜单权限 - 路径参数
{id}: int→str(UUID) - 保留 PATCH(地磅、计划、出入库更新均为 PATCH)
- 保留
POST /{id}/void、create-link-for-plan、/related、third-party-page - 列表 仍返回
list[Read]或原 response_model,禁止success_response({ list }) - 查询默认过滤
tenant_no+del_flag=0 - 写入设置
create_by、create_dept_id、tenant_no
3. 业务逻辑迁移检查清单
weighing._process_weighing_business_logic完整迁移(计划 executed_quantity、出入库 status、累计 executed_quantity)- 地磅 create/update 后调用联动逻辑
- void/delete 地磅后重算计划与出入库
inventory.create-link-for-plan生成「待三方填写」出入库单plans列表附加fillLinkInventoryIdinventory列表附加地磅重量字段(gross/tare/net 等)- dashboard 五条统计 SQL 与原一致
- 单位:计划/出入库 quantity 为 t,地磅重量为 kg,plan.executed_quantity 为 kg
4. Schema 改造检查清单
- 所有
id: int→str purchase_plan_id/inbound_outbound_id/last_weighing_slip_id→str | None- camelCase alias 保留(
populate_by_name=True) remarks→ 读写映射到 ORMremark(若 DDL 用 remark)
5. 前端拷贝检查清单
- 从
art-design-pro拷贝*Api.ts,URL 仍为/plans、/weighing等 id: number→stringcargos/companies下拉改为 CRM API- 保留:快捷日期、导出 Excel、合计行、关联查看弹窗、
inboundOutboundId路由参数建单