跳转至

第 3 章|按角色工作流

登录后请先在顶栏确认你的角色标签。本章按角色拆分,找到你的角色跟着做即可。

本章为五类用户各写了一份"一天的工作指引"——不讲底层数据模型,也不按前端菜单罗列,而是按你在工位前从早到晚的真实动作铺开:早上打开 Mica 先看哪里、哪个按钮承接下一步、出了什么情况走哪条岔路。只要能在顶栏识别出自己的角色标签,就可以跳到对应的 H2 章节按部就班。

关于按钮名称 Mica 支持中英双语(zh-CN / en-US)。本章按钮名统一写作"中文 English"形式,例如"新建 Create"、"提交审批 Submit for Approval"。你看到的实际文案取决于语言切换器的当前选项,但点击的是同一个按钮。

关于截图 本章用 [截图:xxx] 方括号占位标记位置,正式版手册发布前会补充真实界面截图。


IT 采购员 (it_buyer) 工作流

你的职责

你是整个采购主线的发起人。日常工作是收集内部用人部门的采购需求、录入为规范的采购申请(PR),盯着审批进度、审批通过后一键转订单,再跟进供应商交货与验收。你直接对接供应商,也是后端数据最重要的生产者。

你能看到的菜单

  • 仪表盘 Dashboard — 个人工作台,查看我发起的 PR、待跟进的 PO、到货提醒
  • 采购申请 Purchase Requisitions — 我创建或相关的 PR 列表
  • 采购订单 Purchase Orders — 我相关的 PO 列表与进度
  • 合同 Contracts — 我负责的 PO 对应合同(可查看 + 上传扫描件 + OCR 检索)
  • 交货批次 Shipments — 所有到货批次,按 PO 归并
  • SKU 行情 SKU Pricing — 物料历史价格 + 录入报价 + 异常提醒

注意:你看不到「待办审批」「付款记录」「发票」这三个菜单——审批由部门负责人 / 采购经理承接,付款与发票由财务审核负责。

典型一天

我们以一个具体案例贯穿:Alice 是 IT 采购员,今天要为新入职的 3 名研发同事采购 MacBook Pro 16 寸。

  1. 登录 Mica
  2. 在 http://mica.<公司域名> 输入账号密码,或点击 通过 SSO 登录 Sign in with SSO 走企业单点登录。
  3. 登录后默认落在仪表盘 Dashboard。先确认顶栏右侧角色标签显示 IT 采购员 / IT Buyer。

  4. 打开仪表盘,扫一眼今日状态 [截图:IT 采购员仪表盘]

  5. 看"我的采购申请"卡片:是否有被退回(returned)的 PR 需要修改?
  6. 看"我的采购订单"卡片:是否有"已到货未登记"的提醒?
  7. 今天要做新单,所以这两个暂时没有任务,直接开始。

  8. 进入采购申请页,点击「新建 Create」

  9. 左侧菜单点击采购申请 Purchase Requisitions,跳到列表页。
  10. 右上角点击新建 Create 按钮,进入 PR 新建表单页。

  11. 填写头部字段

  12. 标题 Title:填"新员工 MacBook Pro 16 采购 x3"。
  13. 所需日期 Required Date:选两周后(要给审批和采购留时间)。
  14. 币种 Currency:默认 CNY,不动。

  15. 用 AI 润色业务说明

  16. 在业务说明 Business Reason 框粗略敲几句:"3 个新人入职,研发岗,需要 MBP 16。"
  17. 点击输入框旁边的AI 润色 AI Polish 按钮。
  18. 系统调用 LLM 把草稿改写成更规范、更有说服力的描述(例如补充用人部门、技术要求、对比机型等),审批人会更容易理解背景。
  19. 对 AI 生成的版本扫读一遍,不满意可以点重新生成 Regenerate;觉得过度发挥也可以直接在框里手工改。

  20. 录入明细行

  21. 滚动到明细 Items 区域,点新增行 Add Row。
  22. 填入物料名(MacBook Pro 16)、规格(M3 Pro / 36GB / 1TB)、数量(3)、单价(约 ¥22,000)、供应商(Apple 官方渠道)。
  23. 系统自动累加总金额 Total Amount,这里约 ¥66,000(低于 10 万的部门审批阈值)。

  24. 保存草稿还是直接提交?

  25. 若细节还没定(单价待询价),点保存草稿 Save Draft——PR 进入 draft 状态,随时可回来继续编辑,不会触发审批。
  26. 若信息齐备,直接点提交审批 Submit for Approval——PR 进入 submitted 状态,系统根据金额自动路由审批人:

    • 金额 < ¥100,000 → 路由给同部门的部门负责人(本例即 Alice 部门的 Bob)
    • 金额 ≥ ¥100,000 → 路由给采购经理
  27. 等待审批结果

  28. 提交后页面回到 PR 详情,顶部状态徽标显示"待审批 Submitted"。
  29. 你什么都不用做,关掉去忙别的事。系统会在 Header 铃铛自动提醒审批结果(v0.5 通知中心)。飞书推送在 v0.6 路线图中。
  30. 过一会儿回来刷新详情页,状态可能变为:

    • 已批准 Approved:恭喜,走第 9 步。
    • 已退回 Returned:审批人觉得有小问题需要你改。页面会显示审批人的意见。修改后再点提交审批 Submit for Approval 重新走流程。
    • 已拒绝 Rejected:根本性反对,流程终止。和审批人沟通后如确需采购,开一张新 PR 即可。
  31. 批准后:一键生成采购订单

  32. 在已批准的 PR 详情页,右上角出现生成采购订单 Convert to PO 按钮。
  33. 点击后系统从 PR 明细生成 PO,自动分配 PO 单号(如 PO-2026-0001),页面跳到订单详情页。
  34. PR 状态变为 converted(归档),后续的交货、付款都围绕 PO 展开。

  35. 进入采购订单详情,和供应商对接

    • 下单给 Apple,约定两周内交付。把 PO 号发给供应商;合同由采购经理或管理员发起签署(见对应章节)。
    • 在 PO 详情页的概览 Overview 标签可随时看到总量、已收货量、已付款量。
  36. 登记到货批次(Shipment)

    • 两周后收到 3 台机器,打开 PO 详情页,切换到交货批次 Shipments 标签。
    • 点登记交货 Record Shipment,弹出表单 Modal:
    • 批次号 Batch No(默认递增)
    • 承运商 Carrier、运单号 Tracking Number(可留空)
    • 实际到货日期 Actual Date
    • 每行明细的本批次到货数量 Qty Shipped
    • 一次到齐 3 台:第 1 批次填"MacBook Pro 16 × 3",保存即可。
    • 多批次场景(简短说明):例如供应商分两次发货,第一批 2 台、第二批 1 台,就先建批次 1 填数量 2,等第二批到货再回到这里再次点击登记交货 Record Shipment,新建批次 2 填数量 1。系统会根据累计到货量把 PO 状态从 partially_received 流转到 fully_received。
  37. 查进度,交付完成

    • 回到 PO 详情概览,确认"已收货量 = 订单总量",PO 状态为 fully_received。
    • 后续的付款、发票由财务审核处理,你不用再介入。至此这一单对 Alice 来说已闭环。

权限边界

IT 采购员能做的动作仅限"发起与执行",以下动作你做不了:

  • 审批 PR(Approve / Reject / Return)— 这是部门负责人(小额)或采购经理(大额)的职责;你甚至不会在菜单里看到"待办审批 My Approvals"。
  • 登记付款、确认付款 — 财务审核的职责;你在 PO 详情页也看不到登记付款 Record Payment 按钮。
  • 登记发票、维护发票 — 财务审核的职责。
  • 查看其他 IT 采购员名下的 PR/PO 明细 — 行级权限限制你只能看到"与自己相关"的记录(你作为申请人 / 创建人 / 相关参与者)。
  • 修改公司 / 部门 / 用户 / 审批阈值 — 管理员职责。

PR→PO 履约偏离(v1.26+)

实际采购中,原始 PR 上的需求和最终交付的物料常常不完全一致——可能因为供货紧张、型号停产或预算调整。系统现在提供了完整的偏离追踪能力:

4 种履约类型:

类型 含义 示例
equivalent(完全等价) PO 行与 PR 行 1:1 对应 申请 64 台服务器 X,到货 64 台服务器 X
downgraded(降配) 同型号但配置缩水,仍计入履约 申请 64 台完整服务器,实到 32 台缺 A 配件的服务器
substitute(替换型号) 不同型号顶替原需求 X 型号缺货,改用 Y 型号
supplementary(派生补充) PO 增加新行,不计入主履约数量 为缺 A 配件的服务器单独采购 A 配件

分批转 PO:当 PR 有多个供应商或部分行尚未确定供应商时,可以先选其中几行转 PO,剩余的之后再转。PR 状态会自动变为 partially_converted。

偏离审批:单个 downgraded 或 substitute link 的金额(贡献数量 × PO 单价)超过 fulfillment.deviation_approval_threshold(默认 10 万)时,系统自动创建审批单交给采购经理。审批不阻塞业务——即使审批未通过,PO 仍会执行;审批结果用于事后追溯和合规记录。

Dashboard 偏离率卡片:仪表盘显示过去 30 天的偏离率(降配 + 替换 link 数 / 总履约 link 数),帮助你快速识别供应链问题集中的时段。

流程图

图 5 · IT 采购员日常工作流——完整图见 _diagrams.md 文件对应章节。

flowchart TD
    S[登录 Mica] --> D[打开仪表盘<br/>Dashboard]
    D --> N[新建采购申请 PR]
    N --> T[填写标题 / 所需日期 / 币种]
    T --> AI{使用 AI 润色<br/>业务说明?}
    AI -- 是 --> AIC[调用 AI 润色<br/>ai_polish]
    AIC --> L[录入明细行<br/>物料 / 数量 / 单价 / 供应商]
    AI -- 否 --> L
    L --> SUB[提交审批]
    SUB --> W[等待审批结果]
    W --> R{审批结论}
    R -- 已批准 --> CV[一键生成<br/>采购订单 PO]
    R -- 已退回 --> T
    R -- 已拒绝 --> END((流程结束))
    CV --> SH[录入交货批次<br/>Shipment]
    SH --> RCV[确认验收到货]
    RCV --> DONE((交付完成))

    classDef terminal fill:#f5f5f5,stroke:#999,color:#666;
    class END,DONE terminal;

常见问题

  1. PR 保存草稿后还能删除吗? 可以。草稿(draft)状态的 PR 在详情页可直接删除 Delete。审批通过后,如果尚未生成任何采购订单,申请人本人、管理员、采购经理或 IT 采购员可点作废 Cancel PR,把 PR 转为 cancelled;作废后仍可删除。已生成采购订单的 PR 必须从订单层处理,不能直接作废或删除。

  2. AI 润色的内容会自动保存吗?我需要手动确认吗? AI 润色按钮会直接把新内容写进业务说明 Business Reason 输入框,但 PR 整体只有你点击保存草稿 Save Draft 或提交审批 Submit for Approval 后才真正落盘。所以你可以反复润色、比较,直到满意再提交。

  3. PR 批准后发现明细填错了怎么办? 一旦 PR 进入 approved 状态,你无法再修改明细。若尚未生成采购订单,可点作废 Cancel PR(进入 cancelled),再复制或新建一张 PR。如果已经生成采购订单 Convert to PO,作废按钮不会显示,需要联系采购经理或管理员从订单层处理。养成习惯:提交前复核一次明细。

  4. 提报价格前想先查历史行情怎么办? 打开左侧菜单 SKU 行情 SKU Pricing → 选择对应物料,系统展示 90 天滚动基准价(均值、中位、最低、最高、标准差、样本数)和完整时间序列。如果发现你新拿到的报价显著偏离基准,值得和供应商再谈一轮。拿到新报价后也别忘了点 录入报价 Record Price 沉淀进系统,你和团队以后都能复用。


部门负责人 (dept_manager) 工作流

你的职责

你是本部门采购的"小额守门员"。对本部门同事提交的 PR 做出批准 / 退回 / 拒绝的决定——金额 < ¥100,000 的 PR 会自动落到你手上,大额会直接走采购经理。你代表部门为这笔开销背书,意味着认可预算归属、采购必要性、费用合理性。

你能看到的菜单

  • 仪表盘 Dashboard — 顶部会显示待办审批红点计数
  • 待办审批 My Approvals — 你的核心工作页,列出所有 pending 状态的审批任务
  • 采购申请 Purchase Requisitions — 本部门 PR 只读查看,用于回溯历史
  • 采购订单 Purchase Orders — 本部门 PO 只读查看,跟踪执行情况
  • 合同 Contracts / 交货批次 Shipments — 本部门范围只读

你看不到「付款记录」「发票」这两个菜单——财务执行不在你职责范围内。

典型一天

案例:Bob 是某部门负责人,Alice 向他提交了上节那张 MacBook Pro 采购 PR。

  1. 登录 Mica,看顶栏红点
  2. 登录后看待办审批 My Approvals 菜单右边是否有红色数字徽标,本例显示 1。
  3. 也可以在仪表盘的"待办审批"卡片看到汇总数量。

  4. 进入待办审批页

  5. 点击待办审批 My Approvals,列表显示所有待你处理的任务。每行显示:单号、申请人、标题、金额、提交时间。
  6. 按提交时间倒序,最新在顶。

  7. 点击单号进入详情

  8. 点 Alice 那张 PR 的单号,跳到 PR 详情页(同一个详情页,但你的视角带有审批操作区)。
  9. 重点看四块内容:
    • 业务说明 Business Reason —— 采购目的是否合理?
    • 明细 Items —— 物料、数量、单价是否对得上业务?
    • 总金额 Total Amount —— 在本部门月度预算里消化得了吗?
    • 所需日期 Required Date —— 时间是否急迫?
  10. 页面底部是审批意见 Comment 输入框与三个操作按钮。

  11. 三选一:处置这张 PR 审批有三种动作,对应不同语义:

动作 按钮 语义 结果状态 后续路径
批准 批准 Approve 我认可这笔开销,部门预算承担 approved 申请人可转 PO
退回 退回 Return 有小问题需要修改后再交(如物料规格、金额不合理) returned 回到申请人手里,修改后重新提交
拒绝 拒绝 Reject 根本性反对(非必要、不符合制度、方向错误) rejected 流程终止,申请人如需采购需开新单
  • 务必先填审批意见 Comment,特别是退回 / 拒绝——申请人看到意见才知道怎么改或为什么被否。
  • 然后点击对应按钮。系统弹确认 Modal,确认后审批完成,任务从你的待办列表消失。

  • 退回后会怎样

  • 假设 Bob 觉得"MacBook Pro 16 寸对新人略奢侈,建议降到 14 寸",点退回 Return 并在意见里写明理由。
  • PR 状态变为 returned,Alice 的仪表盘会提醒她有退回任务。
  • Alice 修改明细(换成 14 寸)后,再点提交审批 Submit for Approval,PR 重新进入 submitted、再次路由到 Bob 的待办。Bob 再次审阅,这次可能选择批准。

权限边界

部门负责人的权限仅限"审阅与决定",你不能做的事:

  • 创建 PR — 你不是发起人,采购菜单里没有新建 Create 按钮。即便 IT 采购员临时休假,你也不能替他开单,需要让管理员协助。
  • 修改他人 PR 明细 — 审阅时你看到的是只读视图。发现问题只能用"退回 Return"请申请人自己改,不能直接动手。
  • 审批其他部门的 PR — 行级权限把你的待办严格限制在本部门申请人的提交上;跨部门的单子你既看不到也不会路由给你。
  • 审批大额 PR(≥ ¥100,000) — 这些单子会自动跳过你,直接路由给采购经理;不会出现在你的待办里。
  • 登记付款 / 发票 — 财务审核职责。

流程图

图 6 · 部门负责人审批工作流

flowchart TD
    S[登录 Mica] --> D[打开仪表盘<br/>Dashboard]
    D --> TODO[查看待办审批<br/>approval_tasks = pending]
    TODO --> E{有待办?}
    E -- 无 --> IDLE((暂无任务))
    E -- 有 --> O[打开 PR 详情]
    O --> RD[查看申请说明<br/>+ 明细行 + 金额]
    RD --> C[填写审批意见<br/>(可选)]
    C --> DEC{审批决定}
    DEC -- 批准 --> AP[approve<br/>PR → approved]
    DEC -- 退回 --> RT[return<br/>PR → returned<br/>回到申请人]
    DEC -- 拒绝 --> RJ[reject<br/>PR → rejected<br/>流程终止]
    AP --> TODO
    RT --> TODO
    RJ --> TODO

    classDef terminal fill:#f5f5f5,stroke:#999,color:#666;
    class IDLE terminal;

常见问题

  1. 批准后我能反悔吗? 不能直接撤销。一旦你点下批准 Approve,PR 变为 approved,后续可能立即被转成 PO。如果真的误点,请联系采购经理 / 管理员,在 PO 层面处理(取消订单 Cancel PO)。所以养成先填意见、再点按钮的习惯,给自己半秒冷静期。

  2. 退回 Return 和拒绝 Reject 到底怎么选?

  3. 退回:问题可修(金额写错一位、规格要调、业务说明单薄),你希望申请人改完重交。申请人收到后可以编辑再提交。
  4. 拒绝:问题根本无法修(不符合制度、预算已满、方向错误),你希望流程彻底结束。申请人如坚持采购,只能另外发起新单并重新组织理由。
  5. 简记:退回是"回去改",拒绝是"到此为止"。

  6. 我休假时待办怎么办?审批会堵吗? v0.5 起支持审批代理人。你可以在出差前创建一条"代理人规则"(POST /api/v1/approval-delegations,或通过 Admin 控制台),指定时间段 + 受托人 + 原因,在该时间段内你的审批任务会自动路由给受托人。任务回归前可随时软撤销(revoke)。管理员也可以替你创建。结合 v0.5 新增的多级串签,审批链不再因单点缺勤而堵塞。


财务审核 (finance_auditor) 工作流

你的职责

你是业务链路的"财务执行与留痕"角色。在货到之后,依次把发票、付款登记入账、做三单比对、跟踪到 PO 关闭。你不发起采购、也不审批业务 PR,但你是财务侧唯一能触发"钱出去了"动作的角色。

你能看到的菜单

  • 仪表盘 Dashboard — 看到今日到期付款、待开发票的 PO 概览
  • 采购申请 Purchase Requisitions — 全量只读(你可以看到任一 PR 的金额、明细、审批记录)
  • 采购订单 Purchase Orders — 全量只读 + 可触发付款 / 发票登记
  • 合同 Contracts — 全量只读
  • 交货批次 Shipments — 全量只读(核对到货量)
  • 付款记录 Payments — 你的主工作页
  • 发票 Invoices — 你的主工作页

你的菜单是五类角色中最"宽但浅"的:看得最全,但手能动的操作只集中在付款和发票两块。

典型一天

财务没有"全流程跑一单"的节奏,而是并发处理多个 PO 的财务动作。典型一天的三个场景:

  1. 登录后先看仪表盘的财务卡片
  2. 顶栏角色标签确认为财务审核 Finance Auditor。
  3. 仪表盘"付款记录"卡片:今天有多少笔 pending 待确认?
  4. 仪表盘"发票"卡片:有多少张 matched / pending_match 待审核、approved 等待付款?

  5. 场景 A:登记一张发票

  6. 收到供应商寄来的发票原件。
  7. 左侧点发票 Invoices,在列表右上角点登记发票 Record Invoice(或从某张已到货的 PO 详情页进,更方便关联)。
  8. 必须上传发票原件(PDF / OFD / XML / 图片)——系统会自动识别发票号、开票日期、税号等字段并预填,你只需核对。AI 识别的来源与置信度显示在按钮右侧(例如 XML · 99% / Vision · 86%)。不支持的格式可以手动填写,但原件必须上传作为凭证。
  9. 发票表单 Modal 打开(字段已被预填,请逐项核对):
    • 发票号 Invoice Number、开票日期 Invoice Date、供应商 Supplier
    • 金额 Total Amount、税额 Tax Amount
    • 明细行:可勾选本发票覆盖哪些 PO 的哪些行
  10. 跨 PO 发票场景:一张发票对应多个 PO 是可能的(如同一供应商给你集中开票两个月的订单)。在发票明细区切换"关联 PO"时可以多选,系统会按 PO 行逐条对账。
  11. 保存后发票状态为 matched(所有产品行都有对应 PO item 且不超额)或 pending_match(有超额 / 无 PO 对应 / 杂费行)。超额不阻断提交,但会以 warn 返回给你,is_fully_matched=false 并等待人工复核(当前实现已能覆盖 95% 常见场景,完整三单匹配在后续迭代中精细化)。

  12. 场景 B:审核发票并登记付款

  13. 在发票 Invoices 列表筛 pending_match,点进某张发票详情。
  14. 核对发票原件与系统录入一致,点审核通过 Approve,发票转 approved。
  15. 紧接着点登记付款 Record Payment(也可以从 PO 详情页的付款标签发起),付款表单 Modal:
    • 期数 Installment No(支持分期付款)
    • 金额 Amount、付款方式 Payment Method(银行转账 / 支票 / …)
    • 到期日 Due Date、付款日 Payment Date
    • 交易流水号 Transaction Ref
  16. 保存后生成付款记录(pending 状态)。

  17. 场景 C:标记付款已到账

  18. 收到出纳回执 / 网银截图后,回到付款记录 Payments 列表,找到刚建的那笔。
  19. 点标记已付款 Mark Paid,付款记录转 confirmed,对应发票状态自动联动为 paid。
  20. 回到 PO 详情,系统会根据累计付款金额判断:PO 全部付清、全部验收完毕后,状态可流转到 closed。

权限边界

财务审核的视角是"宽看、窄动",你不能做的事:

  • 创建或修改 PR / PO / 合同 / 交货批次 — 在 PR / PO 详情页你能看到全部字段但看不到修改按钮(没有"编辑 Edit"、没有"新建 Create")。你的视角是审核者视角。
  • 审批 PR — 业务审批不在财务职责;审批动作只向 dept_manager / procurement_mgr 开放。
  • 替供应商补登记收货 — 收货由 IT 采购员登记,你只核对数据,不能替代录入。
  • 跨公司查看 — 行级权限仍按你所属的公司过滤。若组织跨多法人经营,需为每家公司分别建账号或由管理员开授权。

流程图

图 7 · 财务审核员工作流

flowchart TD
    S[登录 Mica] --> POL[打开 PO 列表]
    POL --> PICK[选择已到货的 PO]
    PICK --> VIEW[查看到货/开票/付款进度]
    VIEW --> INV[登记发票<br/>create_invoice]
    INV --> V[发票状态=matched 或 pending_match<br/>自动与 PO 行逐行核对]
    V --> APR[审核通过<br/>发票状态=approved]
    APR --> PAY[登记付款<br/>payment 状态=pending]
    PAY --> CONF[确认付款到账]
    CONF --> CF[付款=confirmed<br/>发票=paid]
    CF --> CHK{该 PO 全部付清?}
    CHK -- 是 --> CLOSE[PO → closed]
    CHK -- 否 --> POL
    CLOSE --> DONE((流程结束))

    classDef terminal fill:#f5f5f5,stroke:#999,color:#666;
    class DONE terminal;

常见问题

  1. 发票金额和 PO 对不上怎么办? 系统会把发票标为 pending_match(有产品行未匹配 PO 或超额)。你需要和 IT 采购员 / 供应商沟通:要么让供应商重开发票,要么核实 PO 行是否需要调整单价 / 数量。在 pending_match 状态下不要强行审核通过——这是三单匹配留给人工介入的关键缓冲点。

  2. 同一张 PO 可以分几次开票、分几次付款吗? 可以。一张 PO 对应多张发票(按到货批次开票很常见),也对应多笔付款记录(分期付款或预付款 + 尾款)。系统按"累计已开票 / 累计已付款"与 PO 总额比对,无需人工汇总。

  3. 我误点了「标记已付款 Mark Paid」,怎么撤销? 当前版本没有自助回滚通道。请联系管理员在后台协助修订,并在付款记录的备注 Notes 里说明原因,保持审计轨迹。为避免误操作,建议在点按钮前用付款流水号和网银回执做最后一次核对。(v0.5 起可在 Payments 列表点"导出 Excel"下载对账表与网银流水核对。)


采购经理 (procurement_mgr) 工作流

你的职责

你是采购条线的"大额守门人 + 全局大脑"。三件事:一是审批所有金额 ≥ ¥100,000 的大额 PR;二是维护采购全局视图(跨部门、跨项目跟踪);三是合同的审核把关。你与部门负责人做的动作类似,但你面对的是公司级别的大单和战略性物资。

你能看到的菜单

  • 仪表盘 Dashboard — 待办大额审批、公司级采购总览
  • 待办审批 My Approvals — 大额 PR 的审批任务
  • 采购申请 Purchase Requisitions — 全公司 PR(跨部门)
  • 采购订单 Purchase Orders — 全公司 PO(跨部门)
  • 合同 Contracts — 全公司合同(含扫描件归档 + OCR 全文检索 + 到期提醒)
  • 交货批次 Shipments — 全公司交货
  • SKU 行情 SKU Pricing — 物料价格基准 + 异常预警
  • (财务相关菜单你看不到)

典型一天

  1. 登录后查看大额审批待办
  2. 顶栏确认角色标签为采购经理 Procurement Manager。
  3. 进入待办审批 My Approvals,这里只会出现金额 ≥ ¥100,000 的 PR——中小额的根本不会路由给你。

  4. 审阅大额 PR

  5. 与部门负责人的审阅流程几乎一致(参见上节步骤 3–4),但关注点不同:
    • 是否与供应商谈过更好的价格?(大额有议价空间)
    • 是否走过招投标或比价?(合规性)
    • 合同模板是否准备好?
  6. 同样三选一:批准 Approve / 退回 Return / 拒绝 Reject,务必先填审批意见 Comment。

  7. 批准后协助转 PO

  8. 采购经理本人也有权直接在 PR 详情点生成采购订单 Convert to PO,这对"申请人是 IT 采购员但流程想直接由采购经理统一推进"的大单很有用。

  9. 巡视全局 PO 与合同

  10. 切到采购订单 Purchase Orders:查看全公司在途 PO,关注逾期、延期交付的订单。
  11. 切到合同 Contracts:审核合同条款、到期提醒。合同详情页有审核 Review / 补充条款 Amend 等操作。v0.5 起系统到期前 30 天会自动在通知中心推送"合同即将到期"提醒;到期阈值可在 Admin 控制台"系统参数"中调整(contract.expiry_reminder_days)。详细合同版本管理、电子签、续签流在 v0.7+ 规划。

  12. 异常复核

  13. 在采购申请 Purchase Requisitions 或采购订单 Purchase Orders 列表中,可以用筛选找"单价异常"的记录。
  14. SKU 行情 SKU Pricing(v0.4.2 上线):这里自动汇总近 90 天基准价并识别偏离 ±20% 的异常报价。顶部橙色预警条展示所有未确认异常,进采购经理视角重点关注 critical 级(偏离 ≥ 40%)——这些可能意味着供应商涨价信号、询价失准、或录入错误。点每条"已知悉"归档前,先调查清楚。

  15. 合同审核与到期巡视

  16. 合同 Contracts 列表顶部提供:
    • 搜索框:按标题 / 编号 / 扫描件 OCR 文本全文检索
    • 30 天内到期预警:橙色卡片自动列出即将到期的合同,你可以决策续签或归档
  17. 点合同号进详情页,可以上传签署件 PDF/OFD/XML/扫描图,系统自动 OCR 入库便于后续搜索。

权限边界

采购经理是"采购条线的准管理员",但仍有边界:

  • 审批小额 PR(< ¥100,000) — 这些单子不会路由给你;如果某个部门负责人休假,管理员可协助兜底,不应由你默认接手。
  • 登记付款 / 发票 — 财务职责。你能在 PO 详情页看到付款和发票进度,但看不到登记付款 Record Payment / 登记发票 Record Invoice 按钮。
  • 系统配置(用户、阈值、AI 路由) — 管理员专属,不在采购经理职责内。

流程图

采购经理的审批流程与部门负责人相同,只是作用于大额通道,可复用图 6(仅把"申请人部门"替换为"全公司跨部门"的范围理解):

flowchart TD
    S[登录 Mica] --> D[仪表盘]
    D --> TODO[待办审批<br/>大额 PR, 金额 ≥ 10 万]
    TODO --> O[打开 PR 详情]
    O --> RD[审阅明细 / 合规性 / 议价情况]
    RD --> DEC{审批决定}
    DEC -- 批准 --> AP[approve<br/>可直接转 PO]
    DEC -- 退回 --> RT[return 回到申请人]
    DEC -- 拒绝 --> RJ[reject 流程终止]

常见问题

  1. 采购经理和部门负责人能同时审批同一张 PR 吗? v0.5 起支持多级串签。默认规则(approval_rules 种子):金额 < ¥100,000 → 部门负责人单级;≥ ¥100,000 → 部门负责人 → 采购经理两级(前一级通过后自动流转到下一级)。管理员可在 Admin 控制台编辑 approval_rules 添加新阶段(如"财务总监"第三级)或新业务类型(如 contract / payment)。金额阈值也可在"系统参数"→ approval.amount_threshold_cny 调整。

  2. 我能主动把一张路由错了的 PR 拉到自己名下吗? 不能直接拉。若某 PR 金额接近阈值但判断应由你审批,请让申请人调整明细后重新提交,或让管理员代为调整路由。

  3. 合同模块什么时候完善? v0.4.2 合同模块已支持扫描件归档 + OCR 全文检索 + 到期提醒;v0.5 起合同到期提醒会自动推送至通知中心,current_version 字段支持多版本追踪。完整合同版本管理、电子签、续签流程在 v0.7+ 迭代。


管理员 (admin) 工作流

你的职责

你拥有系统全部权限的"兜底"角色——五类业务角色的动作你都能做,但默认不参与业务线。核心工作是维护系统配置(公司、部门、用户、审批阈值)、应急兜底(代审批、纠错、审计),以及后续版本的高级配置(AI 路由、LLM 模型)。

你能看到的菜单

五个业务角色的菜单你都能看到,再加上管理员控制台:

  • 仪表盘 Dashboard
  • 待办审批 My Approvals(作为审批人的兜底候选)
  • 采购申请 / 采购订单 / 合同 / 交货批次 / 付款记录 / 发票 — 全量可见
  • 系统管理 Admin Console — 仅管理员可见,六个 Tab:系统参数、LLM 模型、AI 场景路由、用户管理、AI 调用日志、审计日志(详见 第 4 章|功能参考)

典型一天

  1. 登录后打开系统管理
  2. 顶栏确认角色标签为管理员 Admin。
  3. 左侧菜单点系统管理 Admin Console。仪表盘上出现的 PR/PO 红点只在需要兜底时才去关注。

  4. 首次配置 LLM 模型(新部署、换供应商、加新模型时)

  5. 进入LLM 模型 LLM Models Tab → 点新增 New。
  6. 填写 name(显示名)、provider(如 dashscope)、model_string(LiteLLM 格式,如 dashscope/qwen-max)、api_key(保存后脱敏显示为 sk-12****xxxx,Fernet 加密入库)、modality(text / vision / ocr / embedding)。
  7. 点测试连接 Test Connection,查看返回的 success / latency / model_response——有 success=true 才算真正可用。
  8. 保存。

  9. 给发票识别场景绑定视觉模型

  10. 切到AI 场景路由 AI Routing Tab。
  11. 找到 feature_code = invoice_extract,把主模型改为刚新建的视觉模型,按需配置降级链(主模型挂了时的备选)。
  12. 保存后财务再登记发票,扫描件就会走真实的 LLM Vision 而不是 mock。

  13. 查看今日 AI 使用情况

  14. 切到AI 调用日志 AI Call Logs Tab。
  15. 顶部卡片按 feature 聚合 7 日内的调用量、token 总量、平均延迟,一眼看出哪个 feature 耗量最大。
  16. 下方列表展开单条调用:用户、模型、延迟、status(success / error)、错误信息。异常调用可据此回溯。

  17. 用户离职或入职

  18. 切到用户管理 Users Tab。
  19. 新用户:点新增,填用户名、邮箱、角色、初始密码。
  20. 离职用户:找到用户 → 重置密码或停用账号。顺手在审计日志里核一遍该用户最近操作,确认没有异常。

  21. 排查业务问题:看谁改了什么

  22. 有人反馈"供应商信息被改了我不知道是谁"之类的问题,进审计日志 Audit Logs Tab。
  23. 按事件类型前缀(如 supplier.)、资源类型(如 supplier)、时间范围收敛。
  24. 锁定操作人后在用户管理 Tab 交叉比对登录时间,还原事件经过。

  25. 代审批(兜底)

  26. 某部门负责人休假,团队反映审批堵住了。
  27. 进入待办审批 My Approvals,看到堆积的审批任务(代码层面:admin 可以处理任一 pending 任务)。
  28. 逐条审阅、做出决定,在审批意见 Comment 里注明"代 XXX 审批"以便审计回溯。审计日志 Tab 里这些动作都有自动留痕。

  29. 数据纠错

  30. IT 采购员反馈某张已批准的 PR 明细写错了。你可以在 PO 详情页做必要的调整(目前 v0.4 以取消重做为主要纠错方式,避免绕过审批链)。对误点标记已付款 Mark Paid 等场景,也由你协助后台修订,并在备注里写明原因。

权限边界

管理员没有业务层面的"不能做"——但有两条自律红线:

  • 不要默认参与业务审批 — 业务角色(部门负责人 / 采购经理)在时,应让他们自己处理;管理员只在应急、兜底、纠错时介入。
  • 所有代操作必须留痕 — 代审批、代纠错时务必在意见 / 备注里写明原因,审计日志 Tab 会记录这些动作,便于后续追责。

典型流程图

由于管理员的职责偏"配置与兜底"而非业务主线,这里给出一张"何时介入"的决策图:

flowchart TD
    S[登录 Mica] --> CHK{出现异常或配置需求?}
    CHK -- 审批堵塞 --> A1[代审批<br/>在意见写明代办原因]
    CHK -- 数据错误 --> A2[数据纠错<br/>后台或前端协助]
    CHK -- 新用户入职 --> A3[用户管理 Tab<br/>新增用户 / 分配角色]
    CHK -- 配置 LLM --> A4[LLM 模型 Tab<br/>新增 / 测试连接 / 路由绑定]
    CHK -- 无事 --> IDLE((保持只读观察))
    A1 --> LOG[审计日志留痕]
    A2 --> LOG
    A3 --> LOG
    A4 --> LOG

    classDef terminal fill:#f5f5f5,stroke:#999,color:#666;
    class IDLE terminal;

常见问题

  1. 我是否应该用自己的管理员账号日常做采购? 不建议。管理员账号应保持"干净"——只用于配置与应急。如果你同时承担 IT 采购员工作,请另外申请一个 it_buyer 账号,这样业务日志、行级权限测试、审计回放都更清晰。

  2. 如何新增一个用户? 在系统管理 Admin Console → 用户管理 Users Tab 点新增即可填表创建。如果需要批量导入或脚本化操作,仍可通过后端 CLI / 直接写入 users 表(需哈希密码)。

  3. 管理员能看到其它角色看不到的敏感字段吗? 可以。字段级权限会对管理员放行所有字段,这也意味着管理员账号的泄露代价极大——请强制开启双因素或 SSO,并严格限制账号数量在 1–2 个。


文档版本:v0.4.0 · 更新日期:2026-04-21