江苏国信智慧食堂 · 产品方案审查
人员月末余额快照方案
根据截图页面和 store/guoxin_develop 当前真实实现整理。蓝色内容为已实现现状,风险项和建议不代表已上线能力。
5 类筛选月份、部门、人员状态、余额状态、姓名/手机号
8 个字段序号至快照时间,支持全量合计和 Excel 导出
每月 1 日 00:05当前定时生成上一个自然月记录
页面现状
统计报表 → 月末余额快照 → 人员余额快照。截图用于核对当前页面入口、筛选项、列表字段、合计、分页和导出。
一、现有业务闭环
月初定时任务→读取人员与账户→计算人员总余额→保存月度记录→查询 / 合计 / 导出
当前总余额口径为:现金余额 + 在快照标识时间有效的补贴余额。页面只显示合计余额,数据表仍保留现金和补贴拆分值。
已实现闭环双页签、菜单权限、部门权限、分页、全部结果汇总、按筛选条件导出,以及生成失败事务回滚。
二、页面口径
| 区域 | 当前实现 | 审查重点 |
|---|---|---|
| 月份 | 必选,默认上一个自然月 | 是否允许查询或补跑任意历史月份 |
| 部门 | 多选,受账号部门权限约束 | 多部门人员的归属和统计口径 |
| 人员状态 | 在职、离职 | 以月末状态还是任务执行时状态为准 |
| 余额状态 | 有余额、零余额 | 负余额属于“有余额” |
| 关键词 | 姓名或手机号模糊查询 | 手机号展示和导出的脱敏要求 |
| 汇总 | 符合条件的全部人数和余额合计 | 与导出结果必须一致 |
三、审查发现
P0|快照标识时间与实际取数时间不一致任务在次月 1 日 00:05 读取当前余额,却标识为上月最后一秒。跨月后五分钟内的交易或人员变更可能污染上月结果。
P0|历史快照可以被覆盖同月同人员重复执行采用更新方式,无法满足严格审计记录不可无痕修改的要求。
P0|指定历史月份不能还原历史余额命令可传月份,但现金余额、部门余额、人员状态和部门关系取当前值,补跑可能把当前数据标成历史数据。
P1|月末人员范围可能不完整只读取执行时仍为可见的人员,月末后被隐藏的人员可能遗漏。
P1|多部门匹配与菜单脚本需加固部门 UUID 逗号拼接并模糊匹配;菜单 SQL 固定 ID 直接插入,重复部署可能冲突。
四、建议决策
- 先确认该报表是普通运营查询,还是正式财务/审计依据。
- 如用于财务审计,应以月末冻结值或资金流水截止时点反算值生成,不读取次月当前余额。
- 快照首次确认后不可覆盖;更正需保留原值、原因、操作者、批次和时间。
- 补跑仅在数据源能真实还原历史状态时开放。
- 增加人员数、现金、补贴、总余额以及流水反算差异的任务后校验。
- 确认离职/隐藏人员、无 AI 账户映射人员和手机号脱敏规则。
完整业务规则、字段、异常处理、数据结构和验收项见中文版 Markdown 方案。