docs(pl): 记录统计审查结果与任务环境验证边界。

This commit is contained in:
wuzilong committed 2026-11-01 21:45:21 +08:00
1 parent f9c206c91d
commit ce6f102dae
2 files changed
+12 -7

No files matched your search

@@ -16,6 +16,8 @@
界面依据用户补充沿用已有样式:列表采用P02,参考`web-admin/src/views/pl/plan-quota/index.vue`和`web-admin/src/views/demo/order/index.vue`;合同详情沿用P10及`ContractDetailDialog.vue`;建档沿用P12及现有`web-admin/src/views/pl/quota-cert/index.vue`。复用统一路由页签、搜索、漏斗、工具栏和附件组件。v3确定功能与信息组织,Fresh Mint与现有组件确定视觉。
本机运行来源只读核对:3006端口进程cwd为主目录`/Users/zlwu/work/00code/shanxia2.0/web-admin`,8000端口为同主目录`backend`,不是任务worktree。任务Web依赖软链到主目录node_modules,dist为任务目录独立实体目录;构建不安装或清理共享依赖,使用`pnpm --config.verify-deps-before-run=false`。浏览器验收必须加载任务产物并以合成API响应隔离,不把现有主目录服务视为任务版验证。
## Task 1: 服务器决定计量版本及各段独立来源
Files: `backend/app/services/pl_quota_sources.py`、`pl_quota_planning.py`、`pl_quota_business.py`、`pl_quota_usage_service.py`;`backend/app/schemas/pl/quota_planning.py`;`backend/tests/test_pl_quota_sources.py`、`test_pl_quota_planning.py`、`test_pl_quota_business.py`。
@@ -66,10 +68,12 @@ Task 3A证据:提交`71116ed69`与保存响应当前读修复`5912e9d05`;独
Files: 新增`backend/app/services/pl_quota_statistics.py`及tests;修改`backend/app/api/pl/quota_cert.py`。
- [ ] 写失败用例:核定300、两合同预占100/80、已用20得到共享100;无权合同/计划不出现在明细或合同聚合;两证和不同单位不合并;分页按合同/证件而非明细。
- [ ] API固定为`GET /statistics/contracts`、`GET /statistics/certificates`返回分页主对象,`GET /contracts/{id}/statistics`返回合同及`certificates`,每证`certType/certId/certNo/productNames/quantityUnit/totalQty/reservedQty/usedQty/availableQty/contractReservedQty/contractUsedQty/products`;`GET /{kind}/{id}/statistics`返回证件及`contracts`及当前权限内`usageItems`。查询当前租户、软删除、CRM和PL范围;余额为授权可见证的全局缓存,合同使用聚合只取授权计划,不泄漏不可见合同明细。
- [ ] 期初/未归属取独立无计划流水,不从全局余额与可见明细的差额推导。主对象先过滤分页,当前页批量取数,Decimal通过_wire序列化为字符串。
- [ ] 运行统计/分页/权限、contract_scope、cert_archive、api回归。提交并审查。
- [x] 写失败用例:核定300、两合同预占100/80、已用20得到共享100;无权合同/计划不出现在明细或合同聚合;两证和不同单位不合并;分页按合同/证件而非明细。
- [x] API固定为`GET /statistics/contracts`、`GET /statistics/certificates`返回分页主对象,`GET /contracts/{id}/statistics`返回合同及`certificates`,每证`certType/certId/certNo/productNames/quantityUnit/totalQty/reservedQty/usedQty/availableQty/contractReservedQty/contractUsedQty/products`;`GET /{kind}/{id}/statistics`返回证件及`contracts`及当前权限内`usageItems`。查询当前租户、软删除、CRM和PL范围;余额为授权可见证的全局缓存,合同使用聚合只取授权计划,不泄漏不可见合同明细。
- [x] 期初/未归属取独立无计划流水,不从全局余额与可见明细的差额推导。主对象先过滤分页,当前页批量取数,Decimal通过_wire序列化为字符串。
- [x] 运行统计/分页/权限、contract_scope、cert_archive、api回归。提交并审查。
Task 3B证据:提交`f9c206c91`,相关78项SQLite回归通过;独立规格、质量审查均通过,各自统计/API 24项验证通过。实际MySQL执行性能未验证。
## Task 4: 五Tab容器和复用统计面板
@@ -86,11 +90,12 @@ Files: `web-admin/src/api/pl/quota-cert.ts`;新`web-admin/src/views/pl/contrac
## Task 5: 建档绑定、段次与安排UI
Files: `web-admin/src/views/pl/quota-cert/index.vue`、`model.ts`、`ContractScopeDialog.vue`;`web-admin/src/views/pl/plan-quota/index.vue`;`web-admin/src/components/business/pl-plan-quota-dialog/index.vue`及model/test。
Files: `web-admin/src/views/pl/quota-cert/index.vue`、`model.ts`、`ContractScopeDialog.vue`;`web-admin/src/views/pl/plan-quota/index.vue`;`web-admin/src/components/business/pl-plan-quota-dialog/index.vue`及model/test;必要时扩展`backend/app/services/pl_quota_planning.py`只读段明细返回及对应测试。
- [ ] 行为测试覆盖多合同产品选择后一次save、保存失败保留输入、单附件解析、编辑ID往返和旧版本配对显示。
- [ ] 建档表单在1200px三列现有区后增加合同产品绑定编辑,加载编辑已有绑定,不由客户端多请求分步保存。建档方式/类型同行,绿色分组竖条保持。
- [ ] 新版配置展示所有装送段产品、合同/单位/需用量;隐藏唯一侧选择,不提交旧配对。保留legacy配置用于旧计划。计划页展开get_plan_quota,列出各段绑定证件及预占/已用,标注缺配、无需两证、原口径。
- [ ] 段次展示须包含无需双证的段产品;当前sourceOptions仅含易制毒,必要时在同一用证详情API新增只读stopProducts,保留sourceOptions计量语义,避免为展示依赖权限不同的计划编辑API。
- [ ] 安排沿用后端原子校验,把手填齐备改为两证条件/余额预检,缺证明不阻断;拒绝返回定位段产品。实际库存、法定证明、两证状态互不替代。
- [ ] 定向tsx/node:test和已有H5/小程序共享配置测试,修正兼容而不新增手机五Tab。提交。
@@ -6,7 +6,7 @@
## 2. 后端与迁移
- [x] 先写新规则100+40+60=200及旧版100不变的失败回归,再扩展版本化来源提取及分配入口。
- [ ] 实现合同/证件统计查询及主对象分页,验证单位、证种、权限与期初未归属口径。
- [x] 实现合同/证件统计查询及主对象分页,验证单位、证种、权限与期初未归属口径。
- [x] 实现证件+合同产品原子保存,覆盖多合同失败回滚、遗漏/空集合、身份及引用保护。
- [x] 新增段产品资料模型/schema/API与MySQL5.7迁移,保留旧附件和旧账;不自动执行数据库迁移。
- [x] 校验安排、调整、释放、归档、异常补量及旧客户端不能绕过正式规则。
@@ -23,4 +23,4 @@
- [ ] 独立审查、适用数据库事务验证及迁移演练(此前用户要求暂不启MySQL容器,未完成项如实保留)。
- [ ] 记录最终版本、实际测试与缺口,再按已有授权交付;不自动部署或关闭旧工单。
当前状态:实施阶段。Task 1分段计量`cde30287f`和Task 2段产品证明`2dd396509`/`b21618151`已通过独立规格及质量审查,SQLite专项通过,Task 3A原子绑定`71116ed69`/`5912e9d05`也已通过双审及79项回归;统计与Web界面尚在实现。未创建业务数据库表或执行迁移,MySQL真实并发验证未完成。
当前状态:实施阶段。Task 1分段计量`cde30287f`和Task 2段产品证明`2dd396509`/`b21618151`已通过独立规格及质量审查,SQLite专项通过,Task 3A原子绑定`71116ed69`/`5912e9d05`也已通过双审及79项回归,Task 3B统计`f9c206c91`已通过双审与78项回归;Web界面正在实现。未创建业务数据库表或执行迁移,MySQL真实并发验证未完成。