Web 应用 已完成并可运行 · 尚未上线部署
核心功能
六种打卡方式——绑定设备、GPS 半径、内网 Wi-Fi、动态二维码、人脸比对、一体机 PIN——按组织单位用「与 / 或」组合
不是默默放行,而是进入复核队列:位置模拟、root 设备、模拟器、时钟偏差、离线打卡、人脸不匹配,都会带着分值、照片和 14 天上下文一起到达
排班:班次模板、拆分班与跨夜班、可从上周复制的周排班表、用于转让班次的换班市场,以及按申报人力需求的自动排班
一级或两级审批的申请单、不在时的审批委托、每月额度与批量审批
可封账也可重开的考勤表,含节假日、自定义公式列,以及薪资那边本来就在用的日考勤符号
带真正公式引擎的薪资模板——IF、ROUND、按期生效的法定参数——并带版本:算过的期间保留它当时所用的模板
从已审批的数字生成社保申报(D02-LT、TK1-TS)与个税结算(05/QTT),并与实际发放的工资表对账
电子合同:员工用手机 OTP 签署,公司方用 MFA 签署,日后出现的任何副本都可做哈希校验
入职从一条短信邀请开始:员工自行填报,身份证从芯片二维码读取,HR 审核,入职清单自动生成
回答少于 5 份即隐藏结果的 eNPS、带礼品库的表彰积分预算,以及公司阈值只能比法律更严的合规告警
技术栈
ReactTypeScriptViteREST APIWebSocketZalo ZNS
工作原理
这里的设计难题是信任,不是功能数量。每一次打卡都带着可能让它成为谎言的信号——设备是不是那台绑定的、位置从哪来、时钟偏了多少、人脸有多接近——而系统对坏信号的回答是一个带证据的队列和一条留痕的决定,既不是默默放行,也不是默默拦下。薪资沿着同一条思路:每次试算都会快照模板版本和用到的每一个系统变量,所以三个月后被追问的一张工资条,仍能照当时的算法原样重建。敏感字段——身份证号、银行账户、上传的文件——在存储时加密,每打开一次都会记录这次查看。
工作原理
使用方法
打地基
组织树、谁审批什么,以及每个单位必须满足的打卡规则
跑完一个月
员工在 App 上打卡、提单,可疑的那些带着照片在复核队列里等着
封考勤
节假日、已批准的补卡与加班落账,期间上锁
发薪并申报
模板算出结果,薪资期间获批,工资条发出,社保与税务申报取自同一批数字