企业内部采购管理系统
Internal Procurement Management System
快速开始 · 用户手册 · 开发指南 · 更新日志 · 架构决策
效率优先 > 扩展性 > 标准化管控 — 系统服务于人,而不是限制人。
面向 IT 部门(< 100 人、月 < 300 单)的轻量采购管理,从"提需求"到"付款核销"全链条覆盖,无需部署 SAP / Oracle 等重型 ERP。
需求提交 → 多级审批 → 询价比价 (RFQ) → 采购订单 → 多批交货 → 分批付款 → 发票三单匹配
- 采购申请(PR):需求方只填物料和数量,价格由采购员询价后补充
- 多级审批 DSL:按
业务类型 + 金额区间自动路由多阶段串签,支持审批代理人 - 询价管理(RFQ):创建询价单 → 邀请供应商 → 在线报价 → 自动/手动定标
- 询价表 Excel 导出:从 PR 一键生成可发给供应商的填写模板(v1.34+)
- 采购订单(PO):审批通过后一键生成,自动带入 PR 标题便于识别
- PR→PO 履约偏离追踪:单个 PR 行可被多个 PO 履约,4 种履约类型(等价/降配/替换/补充派生),支持跨供应商配套采购(v1.26 – v1.33)
- 合同管理:全生命周期(归档 + OCR AI 提取 + 到期预警 + 分期付款计划 + 版本历史)
- 交货计划:PO / 合同附属,支持批量创建、进度可视化、与到货批次关联
- 分批到货:多批次登记,支持计划日期与实际日期、承运商、物流单号
- 分批付款:按交货进度分期付款,合同付款计划自动核销
- 发票核销:AI 抽取(PDF / OFD / 图片 → LLM 结构化)+ 三单匹配
- 资源活动日志:所有业务角色都可查看自己可见资源的完整事件时间线(v1.35+)
- 飞书卡片推送:31 个业务事件自动触发,结构化 Markdown 卡片(含 PR 标题、物料、金额、操作人等)
- 消息通知中心:WebSocket 实时推送,应用内通知 + 飞书 + 邮件三通道
- 可配置开关:Admin → 系统参数中 15 个独立 toggle,可关闭任一事件的通知
- 内置调度器:mica-scheduler 服务自动执行(每日摘要 09:00、审批提醒每小时、SLA 升级 30 分钟、合同到期预警 10:00)
- 审计日志:所有通知事件(创建/发送成功/发送失败)完整记录
- 角色化 Dashboard:拖拽排序,管理者看审批 + 趋势,采购员看待办 + 进度,需求方看自己的单
- SKU 行情库:90 天基准价 + 价格异常识别 + 趋势预测(7 日/30 日均价)
- 采购分析:支出趋势、部门消费排行、供应商交期表现
- 发票匹配状态:Dashboard 展示 PO 订单量/到货量/开票量匹配
- Cerbos 策略引擎:字段级 + 行级细粒度权限,YAML 热加载,不可达时自动降级
- 6 种角色:管理员 / 采购经理 / 采购员 / 部门负责人 / 财务审核 / 需求方
- 审计日志:全操作留痕,Admin 控制台可查
- 对外 API 与 PAT:脚本、其他系统与 AI Agent 可用「API 令牌」(
mica_pat_...)以用户本人身份调用任意端点——只存哈希、可设有效期、可限定只读、可随时撤销;限流与审计齐备,接入指南见 docs/API.md - 供应商门户:token 只读访问(PO / 合同 / 付款 / 到货),90 天自动过期 + 限流
- 中 / 英双语:前端 1184 keys parity、后端 244 keys parity
- SAML SSO:ADFS / 通用 SAML IdP,JIT 自动建用户 + 可选的组映射
- 水獭棕品牌色系
#8B5E3C:浅色 / 暗色双主题 + 响应式布局 + 移动端适配 - Inter + JetBrains Mono 字体:专业阅读体验
| 层 | 选型 |
|---|---|
| 后端 | Python 3.12 · FastAPI · SQLAlchemy 2.x (async) · Alembic (43 migrations) |
| 前端 | React 18 · TypeScript 5 · Vite · Ant Design 5 · Zustand · react-i18next |
| 数据库 | PostgreSQL 16 · pg_trgm(中文全文检索) |
| 授权 | Cerbos sidecar(4 resource policies + graceful fallback) |
| AI | LiteLLM SDK(OpenAI / DeepSeek / GLM / 通义等兼容接口) |
| 定时任务 | APScheduler (AsyncIOScheduler),4 个 cron 任务 |
| 推送 | 飞书卡片消息 · SMTP 邮件 · WebSocket |
| 测试 | pytest · vitest · Playwright E2E · GitHub Actions CI |
| 部署 | Docker Compose v2 · Nginx · 一键脚本(备份/恢复/升级/健康检查) |
git clone https://github.com/helixzz/mica.git
cd mica/deploy
./scripts/dev-up.sh # 首次约 90 秒(构建镜像 + 迁移 + seed)访问 http://localhost:8900(本机)或 http://<LAN-IP>:8900(局域网)。
| 账号 | 角色 | 用途 |
|---|---|---|
admin |
管理员 | 系统配置、全局视图 |
alice |
IT 采购员 | 提单、询价、下单 |
bob |
部门负责人 | 审批 |
carol |
财务审核 | 付款、发票核销 |
dave |
采购经理 | 大额审批、供应商管理 |
密码统一为
MicaDev2026!· API 文档 http://localhost:8900/api/docs
cd deploy
./scripts/health.sh # 健康检查(表格或 --json)
./scripts/backup.sh # 备份 DB + media
./scripts/restore.sh <archive> # 从归档恢复
./scripts/upgrade.sh # 升级(备份 → 构建 → 迁移 → 健康检查,失败自动回滚)
./scripts/logs.sh backend # 查看容器日志mica/
├── backend/
│ ├── app/
│ │ ├── api/v1/ REST 端点(20+ 路由文件)
│ │ ├── services/ 业务逻辑(审批、合同、RFQ、通知、摘要等)
│ │ ├── core/ 安全、授权、i18n、Cerbos 客户端
│ │ ├── models/ 所有 ORM 模型(单文件 ~1500 行)
│ │ ├── schemas/ Pydantic 请求/响应模型
│ │ └── i18n/messages/ zh-CN.json + en-US.json
│ └── migrations/versions/ 43+ Alembic 迁移文件
├── frontend/
│ └── src/
│ ├── pages/ 30+ 页面(含 admin 子面板)
│ ├── components/ 可复用 UI 组件
│ ├── api/ axios 封装 + API 定义
│ ├── i18n/locales/ zh-CN + en-US (1184 keys)
│ └── stores/ Zustand 状态管理
├── deploy/ Docker Compose + Nginx + Cerbos + 运维脚本
├── docs/ 开发指南 · ADR · 用户手册(GitHub Pages)
└── .github/ CI 流水线(lint + test + coverage + docker build)
| 版本 | 状态 | 主题 |
|---|---|---|
| v0.1 – v0.6 | ✅ | 基础设施 · 权限 · 审批 · PR/PO 主线 · LLM · Dashboard · 通知 · 品牌化 |
| v0.7 | ✅ | RFQ 框架 · 角色化 Dashboard · i18n 审计 · 采购分类 |
| v0.8 | ✅ | 覆盖率 · SAML SSO · E2E 测试 · 表单引导 |
| v0.9 – v1.5 | ✅ | 审批编辑器 · 合同版本 · 供应商管理 · 搜索增强 · 批量导入 |
| v1.6 – v1.7 | ✅ | Cerbos · 付款计划 · 飞书集成 · 合同 OCR · 交货计划 · SLA · 邮件摘要 |
| v1.8 | ✅ | RFQ 完整 · 通知系统 · 调度器 · 发票匹配 · SKU 预测 · 供应商门户 · Dashboard 重构 |
| v1.9 – v1.20 | ✅ | Insights 模块 · 多币种 · 代理提单 · PR UX 重构 · 飞书审批卡片 · E2E 增强 |
| v1.21 – v1.25 | ✅ | 行级权限加固 · PR 详情组织字段 · IT 采购员权限补齐 |
| v1.26 – v1.28 | ✅ | PR→PO 履约偏离追踪三部曲(schema + 后端 + 前端 + 治理) |
| v1.29 – v1.33 | ✅ | 三 Tab 转换向导 · POItem CRUD · 拆分可自定义价格/供应商 · SKU 现场创建 · 全前后端权限对齐 |
| v1.34 | ✅ | PR 询价表 Excel 导出 · Dashboard 信息对 it_buyer 全开 · 可收起侧边栏 |
| v1.35 | ✅ | 资源活动日志对所有角色开放 · admin 可见所有 pending 审批 |
完整变更记录见 CHANGELOG.md · 所有 Release 见 GitHub Releases
| 文档 | 说明 |
|---|---|
| 用户手册 | 业务操作指南(GitHub Pages) |
| API 接入指南 | PAT 认证 · 令牌生命周期 · 端点速查 · 稳定面承诺 |
| Quickstart | 3 分钟启动 |
| 开发指南 | 添加 API / 参数 / 审批规则 / 通知类型 |
| ADR | 架构决策记录(技术栈 · 搜索选型 · 系统参数 · 对外 API 认证) |
| 运维手册 | 脚本用法 · cron 示例 · 故障排查 |
Apache License 2.0 — 详见 NOTICE。
- 水獭吉祥物 & 插画 — 内部原创
- 字体 — Inter(OFL)· JetBrains Mono(OFL)
- PDF 中文字体 — Adobe STSong-Light CID(reportlab 内置)