feat(G1,P16A,P16B): 收口主数据核心与节假日日历增强

这个提交包含在:
2026-03-07 17:29:03 +08:00
父节点 32a3d3724d
当前提交 195f46a2e3
共修改 35 个文件,包含 4556 行新增和 27 行删除
+20 -3
查看文件
@@ -1,11 +1,12 @@
# hyb-oa 实现状态矩阵(P5-P15)
# hyb-oa 实现状态矩阵(P5-P16B)
**快照日期**:2026-03-07
**范围**:`F1-F42`(含 `F19b/F19c/F19d`)+ `R1-S2` + `P9A1-P9D1` + `P10E1-P10G1` + `G0-G6` + `H1` + `M1-M4` + `P13-0-P13-8` + `P14-0-P14-8` + `P15A-0-P15A-5` + `P15B-0-P15B-6`,共 124 项。
**事实源**:`issues/2026-02-09_13-39-02-p5-blueprint-v3.csv` + `issues/2026-02-09_23-30-00-p6-p8-remaining-work-master.csv` + `issues/2026-02-10_09-42-31-p9-maintenance-performance-matrix.csv` + `issues/2026-02-10_10-35-30-p10-production-hardening.csv` + `issues/2026-02-11-p11-p12-governance-mobile.csv` + `issues/2026-02-12_01-09-41-p13-l5-governance.csv` + `issues/2026-02-13_00-11-56-p14-l5-operationalization.csv` + `issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv` + `issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv`(执行合同)
**范围**:`F1-F42`(含 `F19b/F19c/F19d`)+ `R1-S2` + `P9A1-P9D1` + `P10E1-P10G1` + `G0-G6` + `H1` + `M1-M4` + `P13-0-P13-8` + `P14-0-P14-8` + `P15A-0-P15A-5` + `P15B-0-P15B-6` + `P16A-0-P16A-6` + `P16B-0-P16B-6`,共 138 项。
**事实源**:`issues/2026-02-09_13-39-02-p5-blueprint-v3.csv` + `issues/2026-02-09_23-30-00-p6-p8-remaining-work-master.csv` + `issues/2026-02-10_09-42-31-p9-maintenance-performance-matrix.csv` + `issues/2026-02-10_10-35-30-p10-production-hardening.csv` + `issues/2026-02-11-p11-p12-governance-mobile.csv` + `issues/2026-02-12_01-09-41-p13-l5-governance.csv` + `issues/2026-02-13_00-11-56-p14-l5-operationalization.csv` + `issues/2026-03-06_14-30-00-p15a-l5-permission-decouple.csv` + `issues/2026-03-06_14-30-00-p15b-l5-leave-v1.csv` + `issues/2026-03-07_13-47-05-p16a-l5-master-data-core.csv` + `issues/2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv`(执行合同)
**说明**:
- 本矩阵用于全局读图(审计/交接/回归覆盖追踪),不替代 `issues/*.csv` 的执行合同职责。
- UI 专项合同(如 `ui-refresh-stage7/8`)属于界面治理线,独立维护,不并入本业务主表统计。
- `首次规划 CSV` 为该 ID 首次出现的执行合同;`首次完成 CSV` 为三状态首次全 `DONE` 的执行合同。
- `规格书章节` 优先引用 `docs/requirements-specification.md`;规格未显式覆盖时标注 `N/A`。
@@ -142,3 +143,19 @@
| P15B-4A | Leave撤回与冻结释放接口 | §17(请假V1治理) | 2026-03-06_14-30-00-p15b-l5-leave-v1.csv | 2026-03-06_14-30-00-p15b-l5-leave-v1.csv | 2026-03-07 | DONE | manual leave flow | 撤回恢复 draft 并释放冻结额度 |
| P15B-5 | Leave申请前端模块集成 | §17(请假V1治理) | 2026-03-06_14-30-00-p15b-l5-leave-v1.csv | 2026-03-06_14-30-00-p15b-l5-leave-v1.csv | 2026-03-07 | DONE | client:typecheck/build | 请假页面、菜单、路由与审批详情联动完成 |
| P15B-6 | P15B验收联调测试 | §17(请假V1治理) | 2026-03-06_14-30-00-p15b-l5-leave-v1.csv | 2026-03-06_14-30-00-p15b-l5-leave-v1.csv | 2026-03-07 | DONE | regression-all + manual leave flow | 创建/提交/审批/冲突/撤回全链路通过 |
| P16A-0 | P16A执行合同建档 | §18(主数据核心治理) | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07 | DONE | CSV 校验 | P16A仅建主数据本体不批量改造既有业务 |
| P16A-1 | Prisma主数据模型与迁移 | §18(主数据核心治理) | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07 | DONE | prisma:validate + prisma:migrate + prisma:generate | LegalEntity/CostCenter/DocumentCategory 与枚举迁移完成 |
| P16A-2 | 权限与种子补齐 | §18(主数据核心治理) | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07 | DONE | server:test + seed:config + seed:dev-users | 新增 masterdata.view/manage 与主数据演示种子 |
| P16A-3 | 后端主数据CRUD API | §18(主数据核心治理) | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07 | DONE | server:test + manual master-data flow | `/api/master-data/*` 三类主数据 CRUD/归档与唯一性校验可用 |
| P16A-4 | 前端主数据入口与管理页 | §18(主数据核心治理) | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07 | DONE | client:typecheck/build | `MasterDataPage` 单页多 Tab 与菜单路由落地 |
| P16A-5 | 矩阵与文档同步 | §18(主数据核心治理) | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07 | DONE | validate-feature-matrix | 状态矩阵范围、事实源与 P16A 条目同步完成 |
| P16A-6 | P16A回归与安全收口 | §18(主数据核心治理) | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07_13-47-05-p16a-l5-master-data-core.csv | 2026-03-07 | DONE | regression-all + manual security | 主数据 CRUD/归档/越权负测与既有主流程回归通过 |
| P16B-0 | P16B执行合同建档 | §18(日历主数据治理) | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07 | DONE | CSV 校验 | P16B仅补节假日历主数据与关闭态算法增强 |
| P16B-1 | Prisma日历模型与迁移 | §18(日历主数据治理) | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07 | DONE | prisma:validate + prisma:migrate + prisma:generate | HolidayCalendar/HolidayCalendarDay 与法体默认日历关联落地 |
| P16B-2 | 日历开关与种子补齐 | §18(日历主数据治理) | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07 | DONE | server:test + seed:config + seed:dev-users | `leave_holiday_calendar` 双闸开关与演示日历种子完成 |
| P16B-3 | 后端日历主数据API | §18(日历主数据治理) | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07 | DONE | server:test + manual calendar flow | `/api/master-data/holiday-calendars*` 列表/维护/日期覆盖/归档可用 |
| P16B-4 | 前端主数据日历Tab | §18(日历主数据治理) | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07 | DONE | client:typecheck/build | `MasterDataPage` 新增日历 Tab 与功能开关展示文案 |
| P16B-5 | 请假日历增强计算器 | §18(日历主数据治理) | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07 | DONE | server:test + manual leave flow | 关闭开关保持自然日 开启后按法体默认日历计算 requestedDays |
| P16B-6 | P16B回归与矩阵收口 | §18(日历主数据治理) | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07_16-22-07-p16b-l5-holiday-calendar.csv | 2026-03-07 | DONE | regression-all + manual flag toggle | finance 只读 finance_mgr 可维护 默认日历禁止归档 且请假 6 天→4 天验证通过 |