feat(P16C-4,P16C-6): 完成供应商主数据前端与矩阵收口

这个提交包含在:
2026-03-07 17:44:55 +08:00
父节点 aafa911ee7
当前提交 09b6f4fbb0
共修改 6 个文件,包含 465 行新增和 8 行删除
@@ -3,6 +3,6 @@ P16C-0,P16C执行合同建档,创建并校验P16C供应商主数据执行合同C
P16C-1,Prisma供应商模型与迁移,新增Supplier模型及唯一性归档索引并生成迁移,Prisma schema与迁移可通过校验并成功生成客户端,cd server && npm run prisma:validate && npx prisma migrate dev --name p16c_suppliers && npm run prisma:generate,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/prisma/migrations/20260307093703_p16c_suppliers,"[""P16C-0""]",legal_entity_id首版可空且不拆联系人子表
P16C-2,种子与权限边界补齐,补齐开发演示供应商种子并固定继续复用masterdata.view/manage权限边界,seed后可看到演示供应商且无新增supplier权限字,cd server && npm run test && npm run seed:config && npm run seed:dev-users,manual,DONE,DONE,DONE,server/src/scripts/seed-dev.js,"[""P16C-1""]",seed-config继续保持不预置真实供应商且无新增supplier权限字
P16C-3,后端供应商CRUD API,在master-data命名空间实现供应商列表 新建 更新 归档接口并补审计与唯一性校验,供应商API支持权限校验 编码唯一 归档限制和按法体筛选,cd server && npm run test,manual,DONE,DONE,DONE,server/src/routes/masterDataSuppliers.js | server/src/app.js,"[""P16C-2""]",接口范围固定为GET POST PATCH POST archive并支持includeArchived enabled legalEntityId q
P16C-4,前端供应商Tab与API封装,在MasterDataPage加入供应商Tab并补masterData API封装与基础筛选表单,具备masterdata.view/manage的用户可查看 创建 归档供应商,cd client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,client/src/api/masterData.ts | client/src/pages/MasterDataPage.tsx,"[""P16C-3""]",继续复用/system/master-data单页多Tab不新增独立菜单
P16C-5,矩阵与蓝图事实源同步,在供应商主数据完成后同步feature-matrix事实源并保持与P16-P18蓝图一致,feature-matrix校验通过且P16C条目全部可追溯,python3 scripts/validate-feature-matrix.py,manual,TODO,TODO,TODO,docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-07_17-14-39-p16c-l5-suppliers.csv,"[""P16C-4""]",P16C仍归属共享主数据阶段并保持P17依赖关系不变
P16C-6,P16C回归与安全收口,完成供应商主数据最小手工流转验证并执行后端前端回归及越权负测,CRUD 权限 归档限制与现有主流程均通过验证,cd server && npm run test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build,manual,TODO,TODO,TODO,server/tests/unit | client/src/pages/MasterDataPage.tsx | server/src/routes/masterData.js,"[""P16C-5""]",需补充供应商编码重复 归档后不可选 越权写入等负测
P16C-4,前端供应商Tab与API封装,在MasterDataPage加入供应商Tab并补masterData API封装与基础筛选表单,具备masterdata.view/manage的用户可查看 创建 归档供应商,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/api/masterData.ts | client/src/pages/MasterDataPage.tsx | client/src/components/master-data/SupplierTab.tsx,"[""P16C-3""]",继续复用/system/master-data单页多Tab不新增独立菜单
P16C-5,矩阵与蓝图事实源同步,在供应商主数据完成后同步feature-matrix事实源并保持与P16-P18蓝图一致,feature-matrix校验通过且P16C条目全部可追溯,python3 scripts/validate-feature-matrix.py,manual,DONE,DONE,DONE,docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-07_17-14-39-p16c-l5-suppliers.csv,"[""P16C-4""]",P16C仍归属共享主数据阶段并保持P17依赖关系不变
P16C-6,P16C回归与安全收口,完成供应商主数据最小手工流转验证并执行后端前端回归及越权负测,CRUD 权限 归档限制与现有主流程均通过验证,cd server && npm run test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,issues/2026-03-07_17-14-39-p16c-l5-suppliers.csv | client/src/components/master-data/SupplierTab.tsx | server/src/routes/masterDataSuppliers.js,"[""P16C-5""]",已完成finance只读 finance_mgr可维护 employee无查看权限 编码重复与归档幂等验证
1 ID Title Description Acceptance Test_Method Tools Dev_Status Review1_Status Regression_Status Files Dependencies Notes
3 P16C-1 Prisma供应商模型与迁移 新增Supplier模型及唯一性归档索引并生成迁移 Prisma schema与迁移可通过校验并成功生成客户端 cd server && npm run prisma:validate && npx prisma migrate dev --name p16c_suppliers && npm run prisma:generate manual DONE DONE DONE server/prisma/schema.prisma | server/prisma/migrations/20260307093703_p16c_suppliers ["P16C-0"] legal_entity_id首版可空且不拆联系人子表
4 P16C-2 种子与权限边界补齐 补齐开发演示供应商种子并固定继续复用masterdata.view/manage权限边界 seed后可看到演示供应商且无新增supplier权限字 cd server && npm run test && npm run seed:config && npm run seed:dev-users manual DONE DONE DONE server/src/scripts/seed-dev.js ["P16C-1"] seed-config继续保持不预置真实供应商且无新增supplier权限字
5 P16C-3 后端供应商CRUD API 在master-data命名空间实现供应商列表 新建 更新 归档接口并补审计与唯一性校验 供应商API支持权限校验 编码唯一 归档限制和按法体筛选 cd server && npm run test manual DONE DONE DONE server/src/routes/masterDataSuppliers.js | server/src/app.js ["P16C-2"] 接口范围固定为GET POST PATCH POST archive并支持includeArchived enabled legalEntityId q
6 P16C-4 前端供应商Tab与API封装 在MasterDataPage加入供应商Tab并补masterData API封装与基础筛选表单 具备masterdata.view/manage的用户可查看 创建 归档供应商 cd client && npm run typecheck && npm run build manual TODO DONE TODO DONE TODO DONE client/src/api/masterData.ts | client/src/pages/MasterDataPage.tsx client/src/api/masterData.ts | client/src/pages/MasterDataPage.tsx | client/src/components/master-data/SupplierTab.tsx ["P16C-3"] 继续复用/system/master-data单页多Tab不新增独立菜单
7 P16C-5 矩阵与蓝图事实源同步 在供应商主数据完成后同步feature-matrix事实源并保持与P16-P18蓝图一致 feature-matrix校验通过且P16C条目全部可追溯 python3 scripts/validate-feature-matrix.py manual TODO DONE TODO DONE TODO DONE docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-07_17-14-39-p16c-l5-suppliers.csv ["P16C-4"] P16C仍归属共享主数据阶段并保持P17依赖关系不变
8 P16C-6 P16C回归与安全收口 完成供应商主数据最小手工流转验证并执行后端前端回归及越权负测 CRUD 权限 归档限制与现有主流程均通过验证 cd server && npm run test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build manual TODO DONE TODO DONE TODO DONE server/tests/unit | client/src/pages/MasterDataPage.tsx | server/src/routes/masterData.js issues/2026-03-07_17-14-39-p16c-l5-suppliers.csv | client/src/components/master-data/SupplierTab.tsx | server/src/routes/masterDataSuppliers.js ["P16C-5"] 需补充供应商编码重复 归档后不可选 越权写入等负测 已完成finance只读 finance_mgr可维护 employee无查看权限 编码重复与归档幂等验证