Commit 7d667a

2026-10-03 11:43:40 Harry: docs: record frontend-backend consistency and mark earlier plans
Home.md ..
@@ 2,7 2,9 @@
本项目是 [TY PRD](https://gitlab.com/gzsj/ty-product-prd) 的配套用例库。第一批条目源于[《车队软件开发需求.xlsx》工作表1](需求原表/车队软件开发需求);表格仅作为需求来源,不把其中的措辞当成操作指令。
- 所有首批条目均为**草稿 / 待业务确认**;排班条目额外标记**暂缓**。缺少的 PRD 编号、字段口径与验收规则待业务负责人确认。
+ 原有角色、场景和用例统一标记为**早期规划**,保留作历史参考,不代表当前系统功能或验收口径;其原有的“草稿 / 待业务确认”状态仍保留。排班条目原有的“暂缓”标记也保留。
+
+ 当前功能核对以[前后端功能与数据一致性检查(2026-10-03)](前后端功能与数据一致性检查-2026-10-03)为入口。是否向最终用户开放某项能力单独决定;决定开放后,前端操作、后端规则与实际数据必须一致。
- **访客可直接编辑**:打开页面上的条目旁 **编辑**,可直接进入对应页面;使用编辑器的表格菜单增删行列,修改后按 **Save**。新增角色、场景或用例可点击下方 **+新增**。无需 GitLab 账号。
- [外部协作流程](外部协作流程) — 提交、确认与同步说明
@@ 24,7 26,7 @@
[车队软件开发需求(工作表1)](需求原表/车队软件开发需求) · 保留原表 30 行需求,按 Excel 行号查阅。
- ## 角色
+ ## 早期角色规划
[+新增角色](/-/create) · 页面名以 `角色/` 开头,并按模板填写稳定 ID。
@@ 35,7 37,7 @@
- [ROLE-005-报表使用者](角色/ROLE-005-报表使用者) · [编辑](/%E8%A7%92%E8%89%B2/ROLE-005-%E6%8A%A5%E8%A1%A8%E4%BD%BF%E7%94%A8%E8%80%85?edit)
- [ROLE-006-流程参与者](角色/ROLE-006-流程参与者) · [编辑](/%E8%A7%92%E8%89%B2/ROLE-006-%E6%B5%81%E7%A8%8B%E5%8F%82%E4%B8%8E%E8%80%85?edit)
- ## 场景
+ ## 早期场景规划
[+新增场景](/-/create) · 页面名以 `场景/` 开头,并按模板填写稳定 ID。
@@ 47,7 49,7 @@
- [SCN-006-语言切换](场景/SCN-006-语言切换) · [编辑](/%E5%9C%BA%E6%99%AF/SCN-006-%E8%AF%AD%E8%A8%80%E5%88%87%E6%8D%A2?edit)
- [SCN-007-排班方案](场景/SCN-007-排班方案) · [编辑](/%E5%9C%BA%E6%99%AF/SCN-007-%E6%8E%92%E7%8F%AD%E6%96%B9%E6%A1%88?edit)
- ## 用例
+ ## 早期用例规划
[+新增用例](/-/create) · 页面名以 `用例/` 开头,并按模板填写稳定 ID。
@@ 71,4 73,3 @@
第一人称表达当事人的目标;第三人称描述可观察的业务行为。正式用例需稳定 ID、PRD 引用、业务确认状态与固定 Wiki 修订。只有已确认的修订才提供给测试生成器。
-
/dev/null .. 前后端功能与数据一致性检查-2026-10-03.md
@@ 0,0 1,43 @@
+ # 前后端功能与数据一致性检查(2026-10-03)
+
+ ## 完成标准
+
+ 按业务能力核对,不以接口数量代替功能完成。每项能力分别记录:
+
+ | 核对项 | 完成要求 |
+ |---|---|
+ | 后端 | 新增、读取、修改、删除或归档等适用操作可用;权限、状态转换、持久化和回读一致。并非每项业务都必须支持物理删除。 |
+ | 前端 | 决定向用户开放的操作具备入口、表单、列表或详情、提交反馈和错误处理;内部专用能力可不开放,但须明确标记。 |
+ | 前后端契约 | 前端调用的函数、请求字段、必填项、成功响应字段和失败分支与后端一致。 |
+ | 测试站闭环 | 用隔离的 QA 数据验证操作、回读及清理或归档;Schemathesis 验证请求和响应契约。 |
+
+ ## 2026-10-03 核对结果
+
+ | 范围 | 结果 |
+ |---|---|
+ | 当前本地 ERP 源码 | 214 个后端云函数与 OpenAPI 清单一一对应;前端调用 192 个函数,均能找到后端契约。 |
+ | 前端参数 | 169 处显式请求对象经静态检查,字段名及可确定的必填项符合 OpenAPI;变量和展开对象仍须由流程测试验证。 |
+ | 测试站读取接口 | Schemathesis 分别执行 30 个示例请求和 30 个生成请求;两组均仅在 `getPayrollMonthlyLedger` 发现响应契约失败。其余请求符合其声明的状态码、内容类型和响应结构;部分请求返回预期的 400 或 404,不能据此认定业务数据完整。 |
+ | 测试站 CRUD | 临时组织单元完成新增、回读、修改、回读、删除、删除后回读;六步成功,QA 记录已清理。 |
+ | 版本差异 | 测试站 OpenAPI 有 215 个接口,本地源码有 214 个;测试站多 `getMileageBonusList`。跨版本计数不能直接作为功能缺口。 |
+
+ ### 已确认并在本地修正的两处不一致
+
+ 1. `getPayrollMonthlyLedger` 在月份尚无已保存工资批次时返回未持久化期间,该期间没有 `id`。原契约和前端类型却要求 `id`。本地已把请求统一为 `code`,允许此响应缺少 `id`,并让前端月度工资表类型反映这一状态;测试站尚未发布修正。
+ 2. 旧附件组件仍调用后端已停用且固定拒绝的 `logFileAccess`,并忽略错误。本地已移除该调用;附件的现行受保护访问入口由 `getEmployeeStorageAccess` 在签名时记录查看或下载。本组件目前未被业务页面引用。
+
+ 已加入自动门禁:前端函数名与后端注册清单一致;动态选择的云函数也纳入检查;前端不得调用标记停用的接口;显式请求字段按 OpenAPI 比对;未保存月度工资期间的响应有专门契约测试。本地完整测试:后端 287 通过、8 跳过,前端 511 通过;代码检查和构建通过。上述本地修正尚未发布到测试站。
+
+ ## 仅后端存在、当前前端未调用的 22 个接口
+
+ 这些是**代码对比事实**,不自动等于应向最终用户开放。逐项决定“用户可见 / 内部专用 / 停用”后,再按完成标准验收。
+
+ | 领域 | 接口 |
+ |---|---|
+ | 人事与组织(11) | `assignOrganizationEmployee`、`attachEmployeeContract`、`backfillEmployeeIdentifiers`、`backfillEmployeeSourceLinks`、`backfillOrganizationFromEmployees`、`endEmployeeAssignment`、`getEmployeeSourceTrace`、`getHrReadiness`、`mapEmployeeIdentity`、`saveOrganizationTransfer`、`transferOrganizationEmployee` |
+ | 财务(4) | `closeFinancePeriod`、`getFinanceCases`、`getTrialBalance`、`previewPayrollJournal` |
+ | 考勤(3) | `confirmAttendanceDay`、`getAttendanceSummaryList`、`rebuildAttendanceSummaries` |
+ | 奖惩(2) | `saveAwardPunishmentEntry`、`saveAwardPunishmentPlan` |
+ | 其他(2) | `importDriverProfileAssets`、已停用的 `logFileAccess` |
+
+ `getHrReadiness` 与 `getEmployeeSourceTrace` 在应用说明中已明确为仅有云函数、界面未接入。其余接口的用户可见性需结合当前业务流程决定。原有[早期角色规划](Home#早期角色规划)、[早期场景规划](Home#早期场景规划)及[早期用例规划](Home#早期用例规划)仅作历史参考。
场景/SCN-001-员工档案与审批.md ..
@@ 1,5 1,7 @@
# SCN-001 员工档案与审批
+ - 阶段:早期
+
- 角色:ROLE-002、ROLE-003、ROLE-006
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B3:B11
场景/SCN-002-流程工作台.md ..
@@ 1,5 1,7 @@
# SCN-002 流程工作台
+ - 阶段:早期
+
- 角色:ROLE-006
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B5:B11
场景/SCN-003-报表授权与查看.md ..
@@ 1,5 1,7 @@
# SCN-003 报表授权与查看
+ - 阶段:早期
+
- 角色:ROLE-004、ROLE-005
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B12:B14、B23:B30
场景/SCN-004-考勤导入.md ..
@@ 1,5 1,7 @@
# SCN-004 考勤导入
+ - 阶段:早期
+
- 角色:ROLE-002
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B16:B17
场景/SCN-005-奖金导入与工资计算.md ..
@@ 1,5 1,7 @@
# SCN-005 奖金导入与工资计算
+ - 阶段:早期
+
- 角色:ROLE-002、ROLE-005
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B20:B30
场景/SCN-006-语言切换.md ..
@@ 1,5 1,7 @@
# SCN-006 语言切换
+ - 阶段:早期
+
- 角色:ROLE-001
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B2
场景/SCN-007-排班方案.md ..
@@ 1,5 1,7 @@
# SCN-007 排班方案
+ - 阶段:早期
+
- 角色:ROLE-002
- 状态:草稿 / 待业务确认 / 暂缓
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B18:B19
用例/UC-001-登录后切换语言.md ..
@@ 1,5 1,7 @@
# UC-001 登录后切换语言
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-001 登录用户](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-001-%E7%99%BB%E5%BD%95%E7%94%A8%E6%88%B7)
- 场景:[SCN-006 语言切换](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-006-%E8%AF%AD%E8%A8%80%E5%88%87%E6%8D%A2)
用例/UC-002-员工新增字段与导入模板对齐.md ..
@@ 1,5 1,7 @@
# UC-002 员工新增字段与导入模板对齐
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)
- 场景:[SCN-001 员工档案与审批](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-001-%E5%91%98%E5%B7%A5%E6%A1%A3%E6%A1%88%E4%B8%8E%E5%AE%A1%E6%89%B9)
用例/UC-003-新增员工触发主管审批与生成工号.md ..
@@ 1,5 1,7 @@
# UC-003 新增员工触发主管审批与生成工号
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)、[ROLE-003 人事主管](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-003-%E4%BA%BA%E4%BA%8B%E4%B8%BB%E7%AE%A1)
- 场景:[SCN-001 员工档案与审批](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-001-%E5%91%98%E5%B7%A5%E6%A1%A3%E6%A1%88%E4%B8%8E%E5%AE%A1%E6%89%B9)
用例/UC-004-查看流程待办与已处理列表.md ..
@@ 1,5 1,7 @@
# UC-004 查看流程待办与已处理列表
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-006 流程参与者](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-006-%E6%B5%81%E7%A8%8B%E5%8F%82%E4%B8%8E%E8%80%85)
- 场景:[SCN-002 流程工作台](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-002-%E6%B5%81%E7%A8%8B%E5%B7%A5%E4%BD%9C%E5%8F%B0)
用例/UC-005-线上审批与意见.md ..
@@ 1,5 1,7 @@
# UC-005 线上审批与意见
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-003 人事主管](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-003-%E4%BA%BA%E4%BA%8B%E4%B8%BB%E7%AE%A1)
- 场景:[SCN-002 流程工作台](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-002-%E6%B5%81%E7%A8%8B%E5%B7%A5%E4%BD%9C%E5%8F%B0)
用例/UC-006-流程打回与重新提交.md ..
@@ 1,5 1,7 @@
# UC-006 流程打回与重新提交
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)、[ROLE-003 人事主管](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-003-%E4%BA%BA%E4%BA%8B%E4%B8%BB%E7%AE%A1)
- 场景:[SCN-002 流程工作台](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-002-%E6%B5%81%E7%A8%8B%E5%B7%A5%E4%BD%9C%E5%8F%B0)
用例/UC-007-线下审批打印与扫描.md ..
@@ 1,5 1,7 @@
# UC-007 线下审批打印与扫描
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-006 流程参与者](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-006-%E6%B5%81%E7%A8%8B%E5%8F%82%E4%B8%8E%E8%80%85)
- 场景:[SCN-002 流程工作台](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-002-%E6%B5%81%E7%A8%8B%E5%B7%A5%E4%BD%9C%E5%8F%B0)
用例/UC-008-管理员授权并查看组织架构报表.md ..
@@ 1,5 1,7 @@
# UC-008 管理员授权并查看组织架构报表
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-004 系统管理员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-004-%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86%E5%91%98)、[ROLE-005 报表使用者](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-005-%E6%8A%A5%E8%A1%A8%E4%BD%BF%E7%94%A8%E8%80%85)
- 场景:[SCN-003 报表授权与查看](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-003-%E6%8A%A5%E8%A1%A8%E6%8E%88%E6%9D%83%E4%B8%8E%E6%9F%A5%E7%9C%8B)
用例/UC-009-移除考勤期间导出矩阵入口.md ..
@@ 1,5 1,7 @@
# UC-009 移除考勤期间导出矩阵入口
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)
- 场景:[SCN-004 考勤导入](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-004-%E8%80%83%E5%8B%A4%E5%AF%BC%E5%85%A5)
用例/UC-010-按月导入考勤并保留说明附件.md ..
@@ 1,5 1,7 @@
# UC-010 按月导入考勤并保留说明附件
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)
- 场景:[SCN-004 考勤导入](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-004-%E8%80%83%E5%8B%A4%E5%AF%BC%E5%85%A5)
用例/UC-011-配置排班方案并关联员工.md ..
@@ 1,5 1,7 @@
# UC-011 配置排班方案并关联员工
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认 / 暂缓
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)
- 场景:[SCN-007 排班方案](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-007-%E6%8E%92%E7%8F%AD%E6%96%B9%E6%A1%88)
用例/UC-012-导入里程奖金与普通奖金.md ..
@@ 1,5 1,7 @@
# UC-012 导入里程奖金与普通奖金
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)
- 场景:[SCN-005 奖金导入与工资计算](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-005-%E5%A5%96%E9%87%91%E5%AF%BC%E5%85%A5%E4%B8%8E%E5%B7%A5%E8%B5%84%E8%AE%A1%E7%AE%97)
用例/UC-013-生成与导出工资报表.md ..
@@ 1,5 1,7 @@
# UC-013 生成与导出工资报表
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-005 报表使用者](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-005-%E6%8A%A5%E8%A1%A8%E4%BD%BF%E7%94%A8%E8%80%85)
- 场景:[SCN-005 奖金导入与工资计算](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-005-%E5%A5%96%E9%87%91%E5%AF%BC%E5%85%A5%E4%B8%8E%E5%B7%A5%E8%B5%84%E8%AE%A1%E7%AE%97)
用例/UC-014-通过右上角-X-关闭新增员工表单.md ..
@@ 1,5 1,7 @@
# UC-014 通过右上角 X 关闭新增员工表单
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 角色:[ROLE-002 人事业务员](https://ty-wiki-portal.test.gzsijie.cn/%E8%A7%92%E8%89%B2/ROLE-002-%E4%BA%BA%E4%BA%8B%E4%B8%9A%E5%8A%A1%E5%91%98)
- 场景:[SCN-001 员工档案与审批](https://ty-wiki-portal.test.gzsijie.cn/%E5%9C%BA%E6%99%AF/SCN-001-%E5%91%98%E5%B7%A5%E6%A1%A3%E6%A1%88%E4%B8%8E%E5%AE%A1%E6%89%B9)
角色/ROLE-001-登录用户.md ..
@@ 1,5 1,7 @@
# ROLE-001 登录用户
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B2
- PRD 编号:待映射
角色/ROLE-002-人事业务员.md ..
@@ 1,5 1,7 @@
# ROLE-002 人事业务员
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B3
- PRD 编号:待映射
角色/ROLE-003-人事主管.md ..
@@ 1,5 1,7 @@
# ROLE-003 人事主管
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B4
- PRD 编号:待映射
角色/ROLE-004-系统管理员.md ..
@@ 1,5 1,7 @@
# ROLE-004 系统管理员
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B13
- PRD 编号:待映射
角色/ROLE-005-报表使用者.md ..
@@ 1,5 1,7 @@
# ROLE-005 报表使用者
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B12
- PRD 编号:待映射
角色/ROLE-006-流程参与者.md ..
@@ 1,5 1,7 @@
# ROLE-006 流程参与者
+ - 阶段:早期
+
- 状态:草稿 / 待业务确认
- 来源:《车队软件开发需求.xlsx》/ 工作表1 B6
- PRD 编号:待映射
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9