3. 数据源解析:ERP系统、采购订单表、审批流日志表、组织架构表的结构与字段

越权采购排查的核心难点在于:权限的“应然”与“实然”之间存在信息孤岛。要打通这个孤岛,必须将分散在四个独立系统中的数据源进行结构化关联。本章将逐一拆解ERP系统、采购订单表、审批流日志表和组织架构表的核心字段与业务含义,为后续的规则引擎设计打下数据基础。

数据源对齐原则: 所有表之间必须通过 员工ID(工号) 和 单据编号 建立外键关联,避免使用姓名或部门名称作为关联键,防止因重名或组织调整导致数据断裂。

3.1 ERP系统(主数据与交易核心)

ERP系统是采购支出的最终记账系统,也是我们判断“是否越权”的最终依据。它主要提供两类数据:物料主数据 和 供应商主数据。

数据类别 关键字段 业务含义 越权排查用途
物料主数据 物料编码、物料组、采购组、物料分类(固定资产/原材料/服务) 定义采购对象的属性与归属 判断采购品类是否超出岗位职责范围
供应商主数据 供应商编码、供应商组、信用等级、合作状态 定义供应商的资质与分类 判断供应商是否在授权名录内
采购组织 采购组织编码、采购组织名称、所属公司 定义采购执行的法律实体 判断采购行为是否跨法人实体
⚠️ 常见陷阱: ERP中的“采购组”字段常被误认为是“审批权限组”。实际上,采购组仅表示业务归属,不代表审批权限。两者必须通过组织架构表进行映射。

3.2 采购订单表(交易行为记录)

采购订单表是越权排查的核心事实表。每一行记录一次采购下单行为,包含下单人、审批人、金额、品类等关键信息。

-- 采购订单表核心字段示例(SQL)
CREATE TABLE purchase_order (
    po_number          VARCHAR(20) PRIMARY KEY,   -- 订单编号
    created_by         VARCHAR(10),               -- 下单人工号(关键)
    created_date       DATE,                      -- 下单日期
    supplier_code      VARCHAR(10),               -- 供应商编码
    material_code      VARCHAR(15),               -- 物料编码
    quantity           DECIMAL(12,2),             -- 数量
    unit_price         DECIMAL(12,2),             -- 单价
    total_amount       DECIMAL(14,2),             -- 总金额(含税)
    currency           VARCHAR(3),                -- 币种
    department_code    VARCHAR(10),               -- 申请部门编码
    cost_center        VARCHAR(10),               -- 成本中心
    approval_status    VARCHAR(2),                -- 审批状态(A=已审批,P=待审,R=驳回)
    final_approver     VARCHAR(10)                -- 最终审批人工号
);
字段 越权排查关键点
created_by 判断下单人是否具备该品类/金额的采购权限
total_amount 与岗位金额阈值对比,判断是否超权限下单
department_code 判断下单人是否跨部门采购(常见越权场景)
final_approver 与审批流日志表关联,验证审批人是否合规

3.3 审批流日志表(权限执行轨迹)

审批流日志表记录了每一笔采购订单的完整审批路径,包括每个节点的审批人、审批时间、审批动作。它是验证“审批权限是否被绕过”的核心证据。

-- 审批流日志表核心字段示例(SQL)
CREATE TABLE approval_flow_log (
    log_id              INT AUTO_INCREMENT PRIMARY KEY,
    po_number           VARCHAR(20),               -- 关联采购订单
    node_sequence       INT,                       -- 节点序号(1=第一级,2=第二级...)
    approver_id         VARCHAR(10),               -- 审批人工号
    approval_action     VARCHAR(2),                -- 审批动作(A=同意,R=驳回,T=转审)
    approval_comment    TEXT,                      -- 审批意见
    approval_time       DATETIME,                  -- 审批时间
    is_delegate         BOOLEAN,                   -- 是否代审
    delegate_from       VARCHAR(10)                -- 原审批人工号(代审时填写)
);
关键字段解读:
  • node_sequence: 如果某笔订单的审批节点数少于预设规则(例如应审3级,实际只审2级),则判定为“审批流缺失”。
  • is_delegate: 代审场景是越权的高发区。需检查代审人是否具备被代审人的权限等级。
  • approval_action: 如果出现“先同意后驳回”的异常序列,需标记为可疑行为。

3.4 组织架构表(权限基准)

组织架构表是越权排查的基准参照系。它定义了每个岗位的汇报关系、职级、职能范围和金额审批权限。没有这张表,所有“越权”判断都无从谈起。

组织架构表核心字段与层级关系 员工基本信息 员工ID / 姓名 / 职级 岗位权限定义 采购品类范围 金额阈值(单笔/月累计) 汇报关系 直接上级ID 部门编码 / 成本中心 审批权限矩阵 可审批品类 / 金额上限 ⚠️ 关键约束 职级决定金额阈值 部门决定品类范围 上级ID决定审批链
字段类别 字段示例 越权排查用途
员工基本信息 employee_id, name, grade_level 确定人员身份与职级基准
岗位权限定义 procurement_category, max_amount_per_order, max_monthly_amount 与采购订单表对比,判断是否超品类/超金额
汇报关系 supervisor_id, department_code 验证审批链是否完整,判断是否跨部门采购
审批权限矩阵 approval_category, approval_amount_limit 与审批流日志表对比,判断审批人是否具备相应权限

3.5 四表关联逻辑(数据链路总览)

四张表通过以下关键键值形成完整的越权排查数据链路:

  1. 采购订单表.created_by → 组织架构表.employee_id:验证下单人权限
  2. 采购订单表.po_number → 审批流日志表.po_number:获取完整审批路径
  3. 审批流日志表.approver_id → 组织架构表.employee_id:验证审批人权限
  4. 采购订单表.material_code → ERP系统.物料主数据:获取品类归属
  5. 采购订单表.supplier_code → ERP系统.供应商主数据:验证供应商资质
💡 实战建议: 在数据清洗阶段,优先检查 created_by 和 approver_id 是否在组织架构表中存在。如果出现“幽灵员工”(已离职但仍在系统中操作),应直接标记为最高风险等级。