朴晴明薪条Payslip
微信小程序 · 电子工资条

把一张工资表,发成每个人都看得明白的工资条

HR 上传原本那张 Excel,不改格式、不先配规则:系统自动认表头、剔合计行、对上标准字段, 三条恒等式逐行校验,再按人推送到员工微信。员工收到的不只是一串数字, 还有「这个月和上个月差在哪」。

为还在用 Excel 发工资的中小企业而做 —— 尤其是骑手、计件这类工资条目多、月月变动、 员工最容易看不明白的行业。

为 30–200 人规模设计 · 上线前已在生产环境跑通全链路

王思远工号 A2481 2026 年 8 月
实发工资 9,843.22 较上月 −620.00
收入项
基本工资8,000.00
绩效奖金3,200.00
加班费486.21
餐补300.00
高温补贴60.00
应发合计12,046.21
扣款项
养老保险(个人)640.00
医疗保险(个人)160.00
住房公积金(个人)960.00
个人所得税442.99
扣款合计2,202.99
完成单量 462 出勤 21.75 已签收 · 内容哈希已存证

演示数据:企业与人名均为虚构

员工侧

「这个月怎么少了?」——把答案写在工资条上

工资条的疑问大多不是「算错了」,而是「看不懂变化从哪来」。系统对同一个人做上下两期逐项对比, 把差异项按金额排出来,再用一段中文说清楚。所有算术由确定性代码完成,模型只负责措辞。

AI 解读逐人生成

本月实发 9,843.22 元,较上月减少 620.00 元。 主要差异项:绩效奖金减少 800.00 元、加班费增加 150.00 元; 应发下降带动个人所得税少扣 30.00 元。社保与住房公积金个人部分与上月一致。

本内容由人工智能生成,仅供参考 · 文中每个数字都由系统用工资条事实回填, 出现来源不明的数字则整段作废并降级为固定模板
环比明细2026-07 → 2026-08
项目上月本月差异
绩效奖金4,000.003,200.00−800.00
加班费336.21486.21+150.00
个人所得税472.99442.99−30.00
其余各项无变化
实发工资10,463.229,843.22−620.00

个税随应发下降而少扣 30.00 元,对实发是正向;两者相抵,实发净减 620.00 元。

措辞边界

陈述差异,不替员工下判断

「加班费较上月增加 150.00 元」可以说,「你的加班费算少了」不会出现——这类措辞在服务端强制拦截。工资金额以企业实际核算为准。

疑问工单

有疑问,当场问得出去

员工对某一项有疑问,在工资条上直接提交工单,自动带上是哪一期、哪一项;HR 在后台看到、回复、关单,全程有状态、有留痕。

签收

签收生成回执,双方各留一份

员工确认时看到的内容会被快照并计算哈希一并存档,作为「已送达且已查看」的凭证,不是一句「已读」了事。

HR 侧

一张表进来,四步发出去

下面每一步的数字,都来自上线前在生产环境跑通的那一次真实发放:一张带标题行、两级合并表头、 末尾还有一行「没写合计二字的合计行」的骑手工资表。

01

上传:不用改你的表,也不用先配规则

xlsx / xls / csv 直接传。标题行自动跳过,两级合并表头还原成层级, 末尾的合计行靠算术关系认出来——不靠「合计」两个字做文本匹配, 所以那些只有数字、没有标签的汇总行同样能被剔除,并留作后续校验的基准。

表结构识别结果骑手工资表 · 17 列
第 1 行标题行 · 已跳过
第 2–3 行表头带 · 已还原两级层级(基本信息 / 收入项 / 扣款项 / 统计 / 合计)
第 4–7 行数据区 · 4 人
第 8 行合计行 · 已剔除,留作校验基准(该行未出现「合计」字样)
02

映射:17 列全部自动对上标准字段

列名先过内置的字段别名字典,再过企业自己的历史模板,然后才是模糊匹配。 上线验证的这张表 17/17 全部自动命中,零次大模型调用。 只有真正拿不准的列才会停下来问人,问的时候会给出这一列的统计画像与合成样例, 让人一眼判断——而不是让人从头配一遍。

自动映射 17/17 大模型调用 0 次 确认一次即记为该企业模板
03

校验与核对:数据不对,当场就知道

三条恒等式逐行验算,任何一行不平都会指出来;同时把人按状态分桶, 异常的那几个人默认不发送,不必因为几个人卡住整批。

恒等式校验3/3 通过 · 4 行全过
应发合计 = Σ 收入项 12,046.21 = 8,000.00 + 3,200.00 + 486.21 + 300.00 + 60.00
扣款合计 = Σ 扣款项 2,202.99 = 640.00 + 160.00 + 960.00 + 442.99
实发工资 = 应发合计 − 扣款合计 9,843.22 = 12,046.21 − 2,202.99
正常 4 重名 0 缺手机号 0 离职 0 新进 0 异常 0
04

发放与对账:三个数对不上,批次不算完成

按人推送到员工微信;未绑定小程序或订阅消息额度不足时转短信兜底,未读的人留在名单里可继续跟进。 批次收尾要过一道对账门:导入有效行数 = 生成条数 = 应发人数,三个数不一致就不算完成—— 这是防漏发的最后一道闸。发错了可以撤销,签收记录随时导出。

导入 4 = 生成 4 = 应收 4 批次幂等,重复提交不会发两遍 异常行默认不发
花名册

名册跟着工资表长

不需要单独导入员工——传工资表就是在建名册。谁绑定了小程序、谁离职了、谁没有手机号,一眼看到;离职的人不删数据,最后一期工资条照样发得出去。

工单

员工的疑问,落在一个地方

员工提交的疑问按批次归集,HR 逐条回复、关单。AI 可以起草回复初稿,但只草不发,发出去的永远是 HR 确认过的那一版。

AI 管家

把一条对不上的等式丢给它

后台助手能带批次上下文提问:这一批发得怎么样、哪一列没识别、哪条等式不平。回答里的数字同样只能来自系统事实清单。

安全与合规

工资数据只有一次机会,所以讲机制,不讲口号

下面四条都是能在系统里指出具体位置的做法,不是「银行级安全」这类没有对应物的说法。

加密每租户独立密钥的信封加密

工资条内容、身份证号、银行账号一律密文落库,AES-256-GCM,每个企业一把独立的数据密钥, 密钥与数据分离存放。

关键在于 AAD:加密时把租户、雇佣关系、期间、版本一并绑进认证数据。 即使有人能直接写数据库,把别人的密文复制到自己那一行,也解不开——校验失败并触发告警。

隔离跨租户读取在数据库层就不成立

PostgreSQL 行级安全(RLS),并且是 FORCE ROW LEVEL SECURITY: 表的属主也绕不过策略。每个请求在事务内 SET LOCAL 当前租户上下文, 策略据此过滤。

这意味着「A 公司的 HR 读到 B 公司的工资表」不是靠应用层记得加 where 条件来防, 而是在数据库这一层就不可能发生。

AI 边界模型看不到姓名、手机号和你的金额

解析环节发给大模型的只有:脱敏后的列名结构、不含个人标识的统计画像(P5/P50/P95)与合成样例。 姓名、手机号、证件号、银行账号、以及任何一个人的具体金额都不出域; 出网前有一道强制终审,检出疑似个人信息即中止并转人工——系统里不存在「检查不通过就照常发送」的开关。

解读环节更进一步:模型正文里只能写占位符,真实数字由服务器回填, 回填后再逐个数字比对事实来源,出现对不上的数字就整段作废、降级为固定模板。 模型在物理上没有机会写错数字。

留痕仅追加的审计链

敏感操作写入只可追加的审计日志,每条记录携带前一条的哈希构成链条。 事后插入、修改、删除任何一条都会导致断链,整链可校验。

签收也走同一套思路:员工确认时所见内容的快照与其哈希一并存证,凭证经得起回看。

数据存储于境内(腾讯云上海) 手机号另存 HMAC 摘要用于比对,不存明文 会话令牌只以哈希存储,7 天滑动过期 公网未授权请求一律 401 跨域按白名单单值回显 不做「防截屏」这类做不到的承诺
给谁用

工资结构越复杂,越用得上

首批面向骑手、配送、计件这类行业:收入项拆得细、月月都在变、员工看不懂的比例最高, HR 每个月要回答一堆同样的问题。

同样适用于任何还在用 Excel 发工资的中小企业。30–200 人是主力场景—— 这个规模通常没有专职薪酬系统,工资表在财务和 HR 之间来回传,工资条靠截图或纸条发。

我们不做的事(写在前面,省得来回问)
  • 不代发工资:不碰资金,不做支付结算。
  • 不做算薪引擎:工资由你原来的方式算好,我们只做校验与送达。
  • 不做 HR 全家桶:不碰招聘、考勤、社保、绩效。
  • 不自行改动数据:员工看到的内容与企业提交的内容一致。
  • 不用你的工资数据训练模型
申请试用

先拿你自己的工资表试一次

留下联系方式,我们会在 1 个工作日内联系你,约一次 20 分钟的演示: 用你自己的一张真实工资表(可以脱敏)跑一遍解析与校验,看看识别成什么样、有没有对不上的地方。

请填写企业名称
请填写联系人
请填写 11 位手机号

提交即表示同意我们通过你留下的方式与你联系。这些信息只用于联系与试用对接, 不作他用,也不会提供给第三方。

已收到

我们会在 1 个工作日内联系你。
急的话也可以直接发邮件到 support@foboor.com。