This commit is contained in:
zlwu committed 2026-06-10 22:59:34 +08:00
1 parent 725774ef0c
commit c3be9d1dce
176 files changed
+41925 -6342

No files matched your search

+63
View File
@@ -0,0 +1,63 @@
# 地磅后端移植适配细则
> 实施 P0–P4 时加载。与 [00-migration-plan.md](./00-migration-plan.md) 配套。
> 对照 bx:[../bx-migration/ref-backend-adapt.md](../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` 列表附加 `fillLinkInventoryId`
- [ ] `inventory` 列表附加地磅重量字段(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` → 读写映射到 ORM `remark`(若 DDL 用 remark)
---
## 5. 前端拷贝检查清单
- [ ] 从 `art-design-pro` 拷贝 `*Api.ts`,URL 仍为 `/plans`、`/weighing` 等
- [ ] `id: number` → `string`
- [ ] `cargos/companies` 下拉改为 CRM API
- [ ] 保留:快捷日期、导出 Excel、合计行、关联查看弹窗、`inboundOutboundId` 路由参数建单