1
0
forked from erp-dev/erp

fix: docs

This commit is contained in:
2026-06-13 11:44:15 +08:00
parent 0bcaa2db44
commit 9a1c92febf
10 changed files with 195 additions and 57 deletions

View File

@@ -4,7 +4,7 @@
## 目标
`business` 模块为已审核正式单据增加整单红冲能力。第一阶段只实现 service 和测试,不新增 API
`business` 模块为已审核正式单据增加整单红冲能力,并通过独立 API 对外开放
## 已确认口径
@@ -14,7 +14,7 @@
- `red_flush_id` 用于跨表、跨记录追踪同一次红冲涉及的所有数据,是审计关联批次 ID。
- 不新增 `red_flush_no`。该编号只适合人工展示,目前无需求。
- 第一版只支持整单红冲,不支持部分红冲。
- API 在 service 与测试完成、覆盖率达标后再增加;API 层红冲原因必填。
- API 已开放独立 `/red-flush/` actionAPI 层红冲原因必填。
- API 权限复用现有审批/作废权限,不新增独立红冲权限。
- 多商户隔离必须下沉到 service。红冲 service 调用方必须传入当前 `merchant`service 在解析单据后校验单据所属商户。
@@ -136,7 +136,17 @@
- 库存记录未完成或已红冲时报错。
- 事务回滚场景。
目标:`business` 模块覆盖率 90%+。
API 测试覆盖:
- 6 类单据 `/red-flush/` 成功路径。
- `reason` 必填。
- 无员工身份权限拒绝。
- 跨商户查询隔离。
- 外部付款/收款单拒绝。
- 未审核、重复红冲、缺库存记录等 service 校验错误映射为 400。
- 成功响应包含 `is_red_flushed``red_flush_id``red_flushed_at`,并抽样断言余额/库存副作用。
目标red flush 关键 service/API 路径需要有定向测试覆盖。
## 测试命令
@@ -144,14 +154,14 @@
```bash
docker compose exec -T -e DB_HOST=postgres -e DB_PORT=5432 web \
uv run python manage.py test business.tests --keepdb --noinput
uv run python manage.py test business.tests.test_red_flush_services api_v1.tests.BusinessRedFlushAPITestCase --keepdb --noinput
```
覆盖率:
```bash
docker compose exec -T -e DB_HOST=postgres -e DB_PORT=5432 web \
uv run coverage run --source=business manage.py test business.tests --keepdb --noinput
uv run coverage run --source=business,api_v1 manage.py test business.tests.test_red_flush_services api_v1.tests.BusinessRedFlushAPITestCase --keepdb --noinput
```
```bash