feat(G1,P16A,P16B): 收口主数据核心与节假日日历增强
这个提交包含在:
@@ -1,5 +1,5 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
UI7-0,UI翻新阶段7执行合同建档,创建并校验本轮UI翻新Issue CSV执行合同,CSV校验通过且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-05_18-53-29-ui-refresh-stage7.csv,manual,TODO,TODO,TODO,issues/2026-03-05_18-53-29-ui-refresh-stage7.csv,[],none
|
||||
UI7-0,UI翻新阶段7执行合同建档,创建并校验本轮UI翻新Issue CSV执行合同,CSV校验通过且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-05_18-53-29-ui-refresh-stage7.csv,manual,DONE,DONE,DONE,issues/2026-03-05_18-53-29-ui-refresh-stage7.csv,[],none
|
||||
UI7-1,工作区UI翻新分批提交,将当前累计WIP拆分为4到6个可回滚提交并保持每个提交可构建,git status干净且提交按主题拆分并均可通过构建,cd client && npm run typecheck && npm run build; git status --porcelain,manual,DONE,DONE,DONE,client/**,"[""UI7-0""]",提交信息中文并引用Issue ID
|
||||
UI7-2,Design Tokens对齐(字体与primary色阶),对齐字体来源并修复primary色阶引用不生效问题,字体与按钮hover和focus样式一致且构建通过,cd client && npm run typecheck && npm run build; manual: Tab聚焦按钮与Tabs检查ring与hover,manual,DONE,DONE,DONE,client/index.html|client/src/index.css|client/tailwind.config.js|client/src/components/ui/*.tsx,"[""UI7-0""]",可参考~/shenzhou-business-suite的CSS变量token方式但不强制迁移
|
||||
UI7-3,7.3 修复403与404页面错位色与异常按钮,403与404页面按新版DS统一并明确返回路径,访问/403与未知路径页面样式统一且按钮可用,cd client && npm run build; manual: 登录后访问/403与/does-not-exist核验布局与按钮,manual,DONE,DONE,DONE,client/src/pages/ForbiddenPage.tsx|client/src/pages/NotFoundPage.tsx|client/src/router/index.tsx,"[""UI7-2""]",确认403/404是否需要放入AppShellLayout内
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
UI8-0,UI翻新阶段8验收建档,创建并校验本轮遗留Card组件与边缘文案中文化Issue CSV,CSV校验通过,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_10-09-00-ui-refresh-stage8.csv,manual,TODO,TODO,TODO,issues/2026-03-06_10-09-00-ui-refresh-stage8.csv,[],none
|
||||
UI8-0,UI翻新阶段8验收建档,创建并校验本轮遗留Card组件与边缘文案中文化Issue CSV,CSV校验通过,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_10-09-00-ui-refresh-stage8.csv,manual,DONE,DONE,DONE,issues/2026-03-06_10-09-00-ui-refresh-stage8.csv,[],none
|
||||
UI8-1,清理残余的Card与混用UI,修复Dashboard及15个遗留页面中的shadcn Card引入混用问题及样式调整,全站所有遗留被替换为 card-std 且Typecheck通过,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/pages/**,"[""UI8-0""]",确保剥离 p-6 后的样式无异常
|
||||
UI8-2,下拉框中文化,修复Budgets和Delegations等的选项文案中文化,文案完成对应本地化不影响value传入后端,手动校验下拉框显示,manual,DONE,DONE,DONE,client/src/pages/BudgetsPage.tsx|client/src/pages/DelegationsPage.tsx,"[""UI8-0""]",无
|
||||
|
||||
|
@@ -0,0 +1,5 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
G1-0,G1治理尾项执行合同建档,创建并校验G1治理尾项执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_13-46-55-g1-governance-tail.csv,manual,DONE,DONE,DONE,issues/2026-03-07_13-46-55-g1-governance-tail.csv,[],收口当前活跃治理残项
|
||||
G1-1,UI阶段合同建档状态收口,将UI7-0与UI8-0建档行状态收口为DONE并保持原合同其余内容不变,UI7-0与UI8-0三状态均为DONE,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-05_18-53-29-ui-refresh-stage7.csv && python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-06_10-09-00-ui-refresh-stage8.csv,manual,DONE,DONE,DONE,issues/2026-03-05_18-53-29-ui-refresh-stage7.csv | issues/2026-03-06_10-09-00-ui-refresh-stage8.csv,"[""G1-0""]",仅收口建档行不回填更老历史CSV
|
||||
G1-2,Feature Matrix治理边界澄清,在状态矩阵中明确UI专项合同属于界面治理线不并入业务主表,feature-matrix说明区明确UI治理合同不纳入主表统计,python3 scripts/validate-feature-matrix.py,manual,DONE,DONE,DONE,docs/feature-matrix.md | scripts/validate-feature-matrix.py,"[""G1-1""]",不新增UI条目到业务矩阵
|
||||
G1-3,G1一致性复查,复查活跃roadmap与当前主表及CSV状态的一致性,不要求在未提交阶段强制清空工作区,G1与P16A合同校验通过且当前主表与活跃合同事实源一致,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_13-46-55-g1-governance-tail.csv && python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_13-47-05-p16a-l5-master-data-core.csv && python3 scripts/validate-feature-matrix.py,manual,DONE,DONE,DONE,issues/2026-03-07_13-46-55-g1-governance-tail.csv | issues/2026-03-07_13-47-05-p16a-l5-master-data-core.csv | issues/2026-03-06_20-00-00-p15-p18-roadmap-preflight.csv | docs/feature-matrix.md,"[""G1-2""]",不改业务代码且不要求以提交换取clean working tree
|
||||
|
@@ -0,0 +1,8 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
P16A-0,P16A执行合同建档,创建并校验P16A基础主数据核心执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_13-47-05-p16a-l5-master-data-core.csv,manual,DONE,DONE,DONE,issues/2026-03-07_13-47-05-p16a-l5-master-data-core.csv,[],P16A仅建主数据本体不批量改造既有业务
|
||||
P16A-1,Prisma主数据模型与迁移,新增LegalEntity CostCenter DocumentCategory模型与必要枚举索引并生成迁移,Prisma schema与迁移可通过校验并成功生成客户端,cd server && npm run prisma:validate && npx prisma migrate dev --name p16a_master_data_core && npm run prisma:generate,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/prisma/migrations,"[""P16A-0""]",不强制回写既有报销预算表结构
|
||||
P16A-2,权限与种子补齐,新增masterdata.view/manage权限映射并补齐seed-config与seed-dev所需基础主数据,角色权限与默认单据分类及开发演示数据可用,cd server && npm run test && npm run seed:config && npm run seed:dev-users,manual,DONE,DONE,DONE,server/src/constants/permissions.js | client/src/auth/permissions.ts | server/src/scripts/seed-config.js | server/src/scripts/seed-dev.js,"[""P16A-1""]",finance_mgr主配manage finance与ceo具备view
|
||||
P16A-3,后端主数据CRUD API,实现master-data命名空间下的法体 成本中心 单据分类列表 新建 更新 归档接口并补审计与OpenAPI标签,三类主数据API可通过权限与唯一性校验且返回一致数据结构,cd server && npm run test,manual,DONE,DONE,DONE,server/src/routes/masterData.js | server/src/app.js,"[""P16A-2""]",列表接口支持includeArchived enabled legalEntityId entityType最小筛选
|
||||
P16A-4,前端主数据入口与管理页,新增MasterDataPage与API封装并注册/system/master-data菜单与路由,具备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/router/index.tsx | client/src/components/navigation/NavLinks.tsx,"[""P16A-3""]",采用单页多Tab承载法体 成本中心 单据分类
|
||||
P16A-5,矩阵与文档同步,同步feature-matrix范围与事实源并补P16A条目及治理边界说明,feature-matrix校验通过且P16A条目全部可追溯,python3 scripts/validate-feature-matrix.py,manual,DONE,DONE,DONE,docs/feature-matrix.md | scripts/validate-feature-matrix.py,"[""P16A-4""]",UI专项合同继续排除在业务矩阵主表外
|
||||
P16A-6,P16A回归与安全收口,完成主数据最小手工流转验证并执行后端前端回归及安全复核,CRUD 权限 归档限制与现有主流程均通过验证,cd server && npm run test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,none,"[""P16A-5""]",合并前按security-best-practices检查IDOR与越权更新
|
||||
|
@@ -0,0 +1,8 @@
|
||||
ID,Title,Description,Acceptance,Test_Method,Tools,Dev_Status,Review1_Status,Regression_Status,Files,Dependencies,Notes
|
||||
P16B-0,P16B执行合同建档,创建并校验P16B节假日历主数据执行合同CSV,CSV通过校验且字段完整,python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv,manual,DONE,DONE,DONE,issues/2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv,[],P16B只建设日历主数据与关闭态增强算法
|
||||
P16B-1,Prisma日历模型与迁移,新增HolidayCalendar与HolidayCalendarDay模型并为LegalEntity补默认日历关联和必要索引,Prisma schema与迁移可通过校验并成功生成客户端,cd server && npm run prisma:validate && npx prisma migrate dev --name p16b_holiday_calendar && npm run prisma:generate,manual,DONE,DONE,DONE,server/prisma/schema.prisma | server/prisma/migrations/20260307084423_p16b_holiday_calendar,"[""P16B-0""]",补充LegalEntity默认日历关联并保持请假算法默认不切换
|
||||
P16B-2,日历开关与种子补齐,新增leave_holiday_calendar功能开关及默认记录并补齐演示日历种子,功能开关可在系统页展示且seed后可看到演示日历,cd server && npm run test && npm run seed:config && npm run seed:dev-users,manual,DONE,DONE,DONE,server/src/services/featureFlags/index.js | client/src/api/featureFlags.ts | client/src/pages/FeatureFlagsPage.tsx | server/src/scripts/seed-config.js | server/src/scripts/seed-dev.js | server/.env.example,"[""P16B-1""]",默认保持关闭态并通过Env+在线开关双闸控制
|
||||
P16B-3,后端日历主数据API,实现holiday-calendars列表 新建 更新 批量日期覆盖 归档接口并挂入master-data命名空间,日历与日历日接口支持权限校验 唯一性校验 引用法体校验与批量覆盖,cd server && npm run test,manual,DONE,DONE,DONE,server/src/routes/masterDataHolidayCalendars.js | server/src/app.js | server/src/plugins/auth.js,"[""P16B-2""]",接口范围固定为GET POST PATCH GET days PUT days POST archive
|
||||
P16B-4,前端主数据日历Tab,在MasterDataPage加入日历Tab并补API封装及功能开关显示名,具备masterdata.view/manage的用户可查看与维护日历及日期明细,cd client && npm run typecheck && npm run build,manual,DONE,DONE,DONE,client/src/api/masterData.ts | client/src/components/master-data/HolidayCalendarTab.tsx | client/src/pages/MasterDataPage.tsx | client/src/router/index.tsx | client/src/components/navigation/NavLinks.tsx | client/src/pages/FeatureFlagsPage.tsx | client/src/api/errorMessages.ts,"[""P16B-3""]",继续复用/system/master-data单页多Tab
|
||||
P16B-5,请假日历增强计算器,在leave服务中新增可选日历版请假天数计算器并通过feature flag按法体默认日历读取,关闭开关时结果与现有自然日算法一致 打开后可识别holiday adjusted_workday,cd server && npm run test,manual,DONE,DONE,DONE,server/src/services/leave.js | server/src/routes/leave.js | server/src/services/featureFlags/index.js,"[""P16B-3""]",默认关闭且仅增强requestedDays计算不改账本语义
|
||||
P16B-6,P16B回归与矩阵收口,完成日历主数据手工验证 请假算法双模式验证 并同步feature-matrix事实源,CSV 矩阵 回归与越权负测全部通过,cd server && npm run test && ./scripts/regression-all.sh && cd ../client && npm run typecheck && npm run build && python3 scripts/validate-feature-matrix.py,manual,DONE,DONE,DONE,docs/feature-matrix.md | scripts/validate-feature-matrix.py | issues/2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv,"[""P16B-4"",""P16B-5""]",已完成finance只读 finance_mgr可维护 默认日历禁止归档与开关双模式验证
|
||||
|
在新工单中引用
屏蔽一个用户