前后端功能与数据一致性检查(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。跨版本计数不能直接作为功能缺口。 |
已确认并在本地修正的两处不一致
getPayrollMonthlyLedger在月份尚无已保存工资批次时返回未持久化期间,该期间没有id。原契约和前端类型却要求id。本地已把请求统一为code,允许此响应缺少id,并让前端月度工资表类型反映这一状态;测试站尚未发布修正。- 旧附件组件仍调用后端已停用且固定拒绝的
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 在应用说明中已明确为仅有云函数、界面未接入。其余接口的用户可见性需结合当前业务流程决定。原有早期角色规划、早期场景规划及早期用例规划仅作历史参考。
