一、立项背景和目标
团队为 AI 软件开发销售公司,全员无底薪、按阶梯提成结算,此前考勤靠钉钉、电脑工作状态无法核实、薪资靠人工 Excel 计算,易错、无审计、有劳资纠纷风险。目标是把「考勤采集→业绩统计→薪资核算→发放→财务复盘」全流程线上化、规则化、可审计,并把 60% 利润风控红线做成系统级强制约束。
二、核心功能模块
1. 员工与岗位管理:销售经理(全职坐班)与合伙代理人(兼职合作)双岗位,代理人免考勤/监控/扣罚;
2. 钉钉考勤与请假自动同步:定时任务 30 分钟自动拉取,支持手动同步与同步日志;
3. 钉钉免登:企业内 JSAPI 一键登录 + PC 扫码登录双路径,员工自助只读账号(数据隔离,仅看本人业绩/考勤/薪资);
4. 业绩统计:小程序付费产品与商户定制开发双业务板块,独立统计考核;
5. 薪资核算引擎:无底薪、45%/50%/55% 全额阶梯提成、定制单 5% 奖励、全勤/拓客/会员奖励、迟到早退/旷工/设备闲置/无推广扣罚、最终实发 ≤ 当月总销售额 60% 强制封顶;
6. 电脑合规监控:只采集应用名与闲置时长,不碰屏幕内容与键盘输入;
7. 财务管理:经营费用台账、净收入/毛利/毛利率/人效/客单价/环比等指标;
8. 支撑能力:真 Excel 导出与打印工资条、操作审计日志、定时备份与恢复、凭证附件上传、手机端适配。
三、业务流程与功能路径
员工钉钉免登进入系统 → 考勤与电脑工作状态自动采集 → 业绩按业务板块录入/统计 → 核算引擎按定稿规则自动算薪(风控封顶兜底)→ 管理员复核生成工资条 → 导出 Excel/打印 → 财务模块做经营复盘。
一、整体架构和设计思路
前后端一体部署:FastAPI + SQLite 单文件库,原生 HTML/JS(零前端框架、零第三方前端依赖),一台电脑即可离线运行;电脑监控采集端用 Python 纯标准库实现,员工电脑免装环境。规则参数(提成阶梯、扣罚、奖励)全部外置为可配置项,服务端强校验配置合法性,防止规则冲突。核心核算逻辑写成纯函数并配套 218 项单元测试,另有 3 套端到端脚本(共 100+ 断言)全绿。
二、负责模块和结果(量化)
独立完成需求梳理、架构设计、前后端开发与测试上线:6 大业务模块、20+ RESTful 接口;218 项单元测试全绿;3 个自然月完整业务数据验证薪资核算正确;桌面一键启动器双击即用,非技术人员可自行部署运维;定时备份 + 审计日志满足可追溯要求。
三、难点、坑和解决方案
1. 规则冲突:55% 提成 + 5% 定制奖励恰好等于 60% 风控上界,配置稍错就会突破利润红线 → 服务端强制校验,拦截提成比例 ≥60% 的冲突配置,从根上消灭该类 BUG;
2. 钉钉新旧接口混用(gettoken 与 oauth2/accessToken、AppKey 更名 Client ID)→ 实现双通道自动探测降级,新旧企业应用都能接入;
3. 给接口加鉴权后部分下载 401 → 定位到 window.open 裸链带不上令牌,统一改为 fetch+blob 下载并全局排查;
4. 审计日志把 4xx 写成死文案、丢失业务原因 → 中间件解析响应体还原真实错误详情;
5. macOS 下服务进程被连带杀掉(nohup 挡不住整组回收)→ 用 setsid 让服务成为新会话首进程,关终端窗口服务仍存活,并做成桌面双击启动器;
6. SQLite 备份恢复:恢复时保留账号/会话/审计表,避免把管理员锁在门外,恢复后重建自增序列并热备校验