docs(pl): 记录逐段证明验证结果并调整组件接入依赖顺序。

This commit is contained in:
wuzilong committed 2026-11-01 21:16:38 +08:00
1 parent b216181518
commit 0e2f00f777
2 files changed
+10 -7

No files matched your search

@@ -37,15 +37,17 @@ Task 1证据:提交`cde30287f`;实施者298项回归通过,独立规格审
Files: 新增`backend/app/services/pl_stop_legal_document.py`、`backend/tests/test_pl_stop_legal_document.py`;修改`backend/app/models/pl_quota_models.py`、`backend/app/schemas/pl/legal_use_document.py`、`backend/app/api/pl/quota_cert.py`;新增`docs/sql/2026-11-01-pl-stop-legal-document.sql`。
- [ ] 写合成用例:一装两送只传第二段,结果1/3;按第二段合同查询为1/1;另租户、另合同、重复段身份拒绝;遗漏集合不变、空附件清空单行、旧计划附件不会标记新段完成。运行看到缺失功能失败。
- [ ] 新表`pl_stop_legal_document`使用完整公共字段、软删除、唯一`tenant_no/plan_id/stop_type/stop_product_id`;增加MySQL5.7可执行建表脚本,不自动执行。以有效计划/父段/段产品/计划产品联查判定易制爆适用范围;合同权限和计划权限均过滤。保存按稳定段产品身份差量更新,全部校验后写入;上传权限和MinIO新附件授权沿用旧逻辑;删除段产品下游引用保护包含新资料。
- [ ] 独立新API避免旧端混淆:`GET /transport/legal-use-documents/stops`分页`{list,total,page,pageSize}`;`GET/PATCH /stops/{plan_id}`获取/保存。查询`contractId`限定当前合同;PATCH载荷`{items:[{stopType,stopProductId,legalUseCertUrl}]}`,不得批量套用同一附件。
- [x] 写合成用例:一装两送只传第二段,结果1/3;按第二段合同查询为1/1;另租户、另合同、重复段身份拒绝;遗漏集合不变、空附件清空单行、旧计划附件不会标记新段完成。运行看到缺失功能失败。
- [x] 新表`pl_stop_legal_document`使用完整公共字段、软删除、唯一`tenant_no/plan_id/stop_type/stop_product_id`;增加MySQL5.7可执行建表脚本,不自动执行。以有效计划/父段/段产品/计划产品联查判定易制爆适用范围;合同权限和计划权限均过滤。保存按稳定段产品身份差量更新,全部校验后写入;上传权限和MinIO新附件授权沿用旧逻辑;删除段产品下游引用保护包含新资料。
- [x] 独立新API避免旧端混淆:`GET /transport/legal-use-documents/stops`分页`{list,total,page,pageSize}`;`GET/PATCH /stops/{plan_id}`获取/保存。查询`contractId`限定当前合同;PATCH载荷`{items:[{stopType,stopProductId,legalUseCertUrl}]}`,不得批量套用同一附件。
```json
{"id":"plan", "planNo":"PL001", "uploadedCount":1,"requiredCount":3,
"items":[{"stopType":"delivery","stopProductId":"dp","productName":"双氧水","contractId":"sale","contractNo":"XS001","legalUseCertUrl":"","documentStatus":"pending"}],
"legacyProducts":[]}
```
- [ ] 保留旧计划级端点和旧附件查看,清楚标为历史;回归旧端点测试,运行新权限/保存/统计测试。提交本任务。
- [x] 保留旧计划级端点和旧附件查看,清楚标为历史;回归旧端点测试,运行新权限/保存/统计测试。提交本任务。
Task 2证据:提交`2dd396509`与并发当前读修复`b21618151`;核心10模块159项通过,新证明20项经独立复审通过。规格、质量审查通过。SQL仅编写未执行;MySQL锁SQL编译测试不等同真实并发验证。扩展检查中既有`test_pl_mobile_stop_meta.py`两项失败(历史SQL路径不存在、AST测试替身缺少`assert_plan_can_arrange`),未扩大修改。
## Task 3: 合同与证件统计、建档原子绑定
@@ -66,7 +68,7 @@ Files: `web-admin/src/api/pl/quota-cert.ts`;新`web-admin/src/views/pl/contrac
const tabPaths = ['quota-cert', 'contract-quota', 'certificate-usage', 'plan-cert', 'legal-use-document'] as const
```
- [ ] 统计面板使用ListQuickSearchInput/ListToolbarEndActions/ColumnHeaderFilter、服务端分页、展开按需取明细。合同面板prop`contractId?: string`固定范围,复用ContractScopeDialog维护绑定;证件面板按证种展示全局数量和各合同明细,展开段产品用量。
- [ ] 合同详情运输计划后插入两个lazy Tab,按菜单权限显示,分别挂载ContractQuotaPanel和段证明页面固定contractId,切换合同销毁旧状态。
- [ ] 合同详情运输计划后插入“合同证件与额度”lazy Tab,按菜单权限显示,挂载ContractQuotaPanel并固定contractId,切换合同销毁旧状态。“运输计划合法使用证明”Tab随Task 6组件一起接入,避免引用尚不存在的组件。
- [ ] 定向tsx/node:test及类型检查(区分历史错误);提交。
## Task 5: 建档绑定、段次与安排UI
@@ -85,6 +87,7 @@ Files: 新`web-admin/src/views/pl/legal-use-document/StopDocuments.vue`;API ty
- [ ] 测试合同范围上传1/1、全局1/3、逐段附件操作、上传中禁止保存、失败保留输入、切租户/合同丢弃过时响应。
- [ ] 使用服务端分页和状态过滤,展开计划显示每个装送段产品及附件;每行单独上传/保存,上传控件与MinIO沿用AttachmentUploadField。历史计划级附件单独只读,不能当作段已上传。
- [ ] 合同详情在“合同证件与额度”后接入独立“运输计划合法使用证明”lazy Tab,按证明菜单权限显示并固定当前contractId;五视图中的合法使用证明路由同时切换到共用StopDocuments组件。
- [ ] 使用主目录venv运行受影响后端pytest;Web运行定向tsx/node:test、pnpm build与类型检查,已知历史错误单列;共享手机API测试。审查固定base/head,规格合格后质量审查;修复所有阻塞。
- [ ] 在允许的本地测试环境以合成响应验证页面/弹窗及合同切换、加载失败、保存状态;未获服务启动授权则使用不启动业务后端的组件浏览器测试,缺口如实记录。MySQL真实事务验证保留未执行,不以SQLite冒充。
- [ ] 更新OpenSpec/tasks、SQL执行指引、工单和提交证据,按已授权推送任务分支,保持工单开放至验收;不自动合并或执行SQL。
@@ -8,7 +8,7 @@
- [x] 先写新规则100+40+60=200及旧版100不变的失败回归,再扩展版本化来源提取及分配入口。
- [ ] 实现合同/证件统计查询及主对象分页,验证单位、证种、权限与期初未归属口径。
- [ ] 实现证件+合同产品原子保存,覆盖多合同失败回滚、遗漏/空集合、身份及引用保护。
- [ ] 新增段产品资料模型/schema/API与MySQL5.7迁移,保留旧附件和旧账;不自动执行数据库迁移。
- [x] 新增段产品资料模型/schema/API与MySQL5.7迁移,保留旧附件和旧账;不自动执行数据库迁移。
- [x] 校验安排、调整、释放、归档、异常补量及旧客户端不能绕过正式规则。
## 3. Web界面
@@ -23,4 +23,4 @@
- [ ] 独立审查、适用数据库事务验证及迁移演练(此前用户要求暂不启MySQL容器,未完成项如实保留)。
- [ ] 记录最终版本、实际测试与缺口,再按已有授权交付;不自动部署或关闭旧工单。
当前状态:实施阶段。Task 1分段计量已提交`cde30287f`并通过独立规格及质量审查,SQLite专项通过;段产品证明、统计、原子绑定与Web界面尚在实现。未创建业务数据库表或执行迁移,MySQL真实并发验证未完成。
当前状态:实施阶段。Task 1分段计量`cde30287f`和Task 2段产品证明`2dd396509`/`b21618151`已通过独立规格及质量审查,SQLite专项通过;统计、原子绑定与Web界面尚在实现。未创建业务数据库表或执行迁移,MySQL真实并发验证未完成。