面向公司 IT / 办公设备的微信扫码自助借还 · 智能催收系统设计方案:员工扫物资上的二维码,借还一气呵成;超期由系统自动催收。
员工扫物资上的二维码,借还一气呵成;超期由系统自动催收。系统分成三块:
idle → borrowedborrowed → idle7 张表的主键都是 id (uuid)。
| 表 | 含义 | 主要字段 | 依赖 / 约束 |
|---|---|---|---|
users | 用户 | openid · 实名 · 部门 · 角色 · trust_score · 黑名单 | 依赖 departments |
items | 物资 | sn · 分类 · 状态 · 当前持有人 · 位置 · 二维码 URL | 依赖 categories · locations · users |
categories | 分类 | 树形 · 默认借期 · 是否需审批 · 押金 | self-FK |
borrowings | 借用单 | item · user · 预期归还 · 实际归还 · 状态 · 验收照片 | 核心流水表 · 索引 (status, expected_return_at) |
reminders | 提醒记录 | borrowing · template_key · channel · 发送状态 | UNIQUE(borrowing_id, template_key) 防重发 |
approval_requests | 审批工单 | borrowing · 审批人 · pending / approved / rejected | needs_approval=true 时创建 |
audit_logs | 审计日志 | actor · action · target · payload(JSON) · ip · ua | 所有写操作必落 |
| 步骤 | 动作 | 实现 | 备注 |
|---|---|---|---|
| 01 扫码 | 微信扫物资二维码(小程序码) | wx.scanCode 原生 | |
| 02 登录 | wx.login → openid 拉用户档案 | 首次需补实名 + 手机号 | |
| 03 判态 | items.status = idle ? borrowed ? | Redis SETNX item:{id} | 防并发借 |
| 04 授权 | 勾选订阅消息(用于催收) | 用户拒绝时降级短信 | |
| 05 落单 | INSERT borrowings + UPDATE items | 同一事务内 | 写 audit_log |
| 06 回执 | 成功页,显示预计归还日期 | 二维码可加入手机相册 |
category.needs_approval=true → 创建 approval_request → 主管在小程序内一键审批。current_holder == openid,显示「归还」按钮status=returned,items=idleusers.trust_score 按天扣;重度超期触发黑名单reminders(borrowing_id, template_key) UNIQUE 防重发;订阅消息授权失效时自动降级到短信通道。IT 不在场也能借。
无需人工追超期。
失信员工自动冷却。
把损坏责任的举证链固化下来。
物资责任部门收到复核提醒。
IT 经理在企微收到 Dashboard。
新物资的型号、SN 自动填写。
| 关键能力 | 个人主体 | 企业小程序 | 企业微信自建 |
|---|---|---|---|
| 注册成本 | 免费 | 营业执照 + ¥300/年 | 营业执照 |
| 获取员工手机号 | ❌ 不开放 | ✅ ¥0.03/次 | ✅ 通讯录直拿 |
| 订阅消息(催收) | 部分类目受限 | ✅ 全量 | ✅ 应用消息直推 |
| 类目「企业管理」 | ❌ 选不到 | ✅ 可选 | —(无类目) |
| 通讯录免填部门 | ❌ | ❌ | ✅ |
| 短信签名(公司名) | ❌ | ✅ | ✅ |