4. 数据模型设计:采购合同表单字段定义(金额、品类、部门等)

采购合同审批路由的灵活性,从根本上取决于表单数据模型的精细程度。如果表单字段只定义了“合同名称”和“金额”,那么审批分支只能基于金额做简单判断;而一旦引入品类、部门、采购类型、预算来源等维度,路由引擎就能组合出数十种动态条件分支。本章将定义一套标准化的采购合同表单字段模型,覆盖金额、品类、部门、合同类型、付款方式等核心维度,并给出字段类型、校验规则及数据来源说明。

4.1 字段总览与分类

采购合同表单字段按业务用途分为五类:基础信息、金额与预算、品类与部门、审批控制、附件与备注。下表列出每类核心字段及其数据类型:

分类 字段名称 数据类型 长度/精度 必填 说明
基础信息 合同编号 字符串 32 是 系统自动生成,格式:PO-YYYYMMDD-XXXX
合同名称 字符串 200 是 简明描述采购事项
供应商名称 字符串 100 是 从供应商库选择或手动录入
金额与预算 合同总金额(含税) 小数 18,2 是 单位:元,精确到分
预算科目编码 字符串 20 是 关联财务预算系统
预算余额 小数 18,2 否 系统实时回显,仅用于参考
品类与部门 采购品类 枚举 — 是 IT设备/办公用品/生产原料/服务外包/基建工程
申请部门 字符串 50 是 从组织架构树选择
成本中心 字符串 20 是 财务核算维度,与部门关联
审批控制 加急标志 布尔 — 否 默认false,勾选后跳过部分常规审批节点
审批路由版本 整数 — 否 用于路由规则版本追溯,系统自动赋值
附件与备注 合同附件 文件列表 — 是 支持PDF/Word/Excel,单文件≤20MB
审批备注 文本 500 否 审批人填写意见
设计要点:“采购品类”和“申请部门”是动态条件分支中最常用的两个维度。建议将品类枚举值控制在5~8个,避免分支条件过多导致路由规则难以维护。部门字段应直接读取组织架构主数据,禁止手动输入,以保证数据一致性。

4.2 金额分段与审批层级映射

合同总金额是触发多级审批的核心条件。实际业务中,不同金额区间对应不同的审批链长度和审批人职级。下表定义标准金额分段及对应的审批层级:

金额区间(元) 审批层级数 审批角色 典型场景
0 ~ 50,000 1 级 部门经理 日常低值易耗品采购
50,001 ~ 200,000 2 级 部门经理 → 分管总监 IT设备、办公家具
200,001 ~ 1,000,000 3 级 部门经理 → 分管总监 → 财务总监 生产原料批量采购
1,000,001 以上 4 级 部门经理 → 分管总监 → 财务总监 → 总经理 基建工程、战略采购
边界值处理:金额分段通常采用“左闭右开”原则,例如50,000元归属第一区间,50,001元归属第二区间。在低代码平台中,条件表达式应写为 amount > 0 AND amount <= 50000,避免因浮点精度导致边界判断错误。

4.3 品类与部门组合条件分支设计

仅靠金额分段无法覆盖复杂业务场景。例如“IT设备”类采购,即使金额低于5万元,也可能需要IT总监会签;而“办公用品”类采购,金额超过20万元才需要财务总监审批。因此,路由规则必须支持品类 × 部门 × 金额的组合条件。

下面用一张SVG图展示品类与部门组合条件分支的逻辑结构:

品类与部门组合条件分支逻辑 品类 × 部门 × 金额 组合条件分支 采购合同表单提交 采购品类 判断 IT设备 IT总监会签 金额≥1万触发 生产原料 按金额分段走标准审批 无额外会签 办公用品 行政总监会签 金额≥5万触发 部门维度叠加规则 申请部门为“财务部”时,无论金额大小,均需财务总监审批;申请部门为“研发部”时,IT设备类采购自动加签CTO
组合条件表达式示例(低代码平台伪代码):
// 路由规则:品类 + 部门 + 金额组合
IF 采购品类 == "IT设备" AND 合同总金额 >= 10000 THEN
    路由节点 = [部门经理, IT总监, 分管总监]
ELSE IF 采购品类 == "办公用品" AND 合同总金额 >= 50000 THEN
    路由节点 = [部门经理, 行政总监, 分管总监]
ELSE IF 申请部门 == "财务部" THEN
    路由节点 = [部门经理, 财务总监]
ELSE
    路由节点 = 按金额分段标准路由
END IF

4.4 字段校验规则与数据来源

为确保路由引擎能正确解析条件,表单字段必须附带严格的校验规则。下表列出关键字段的校验逻辑及数据来源:

字段 校验规则 数据来源 错误提示示例
合同总金额 大于0,且不超过预算余额 用户输入 + 预算系统接口 “合同金额超出预算余额,请调整或申请追加预算”
采购品类 必须为枚举值列表中的一项 系统配置表 “请选择有效的采购品类”
申请部门 必须为组织架构中的末级部门 HR组织架构主数据 “所选部门非末级节点,请选择具体科室”
预算科目编码 符合编码规则(字母+数字,共8位) 财务科目表 “预算科目编码格式错误,示例:BGT2024001”
合同附件 至少上传1个文件,总大小≤100MB 文件上传组件 “请上传合同附件,支持PDF/Word/Excel格式”

4.5 数据模型与路由引擎的关联设计

表单字段定义完成后,需要与低代码平台的路由引擎建立映射关系。下图展示数据模型如何驱动动态条件分支:

数据模型与路由引擎关联架构 数据模型 → 路由引擎 映射架构 采购合同表单 合同总金额: ¥125,000 采购品类: IT设备 申请部门: 研发部 加急标志: false 路由引擎 条件1: 金额 > 10万 条件2: 品类 == IT设备 条件3: 部门 == 研发部 规则匹配 → 路由输出 审批节点链 1. 研发部经理 2. IT总监 3. 分管总监 4. 财务总监(金额超限)
架构说明:表单字段值作为路由引擎的输入参数,引擎根据预置的条件规则(金额区间、品类枚举、部门匹配)计算出审批节点链。上例中,125,000元的IT设备采购由研发部发起,路由引擎匹配到“金额>10万 + 品类=IT设备 + 部门=研发部”的组合规则,最终输出4级审批链,其中IT总监作为技术会签节点插入。

4.6 字段扩展性设计

实际企业环境中,采购合同表单往往需要根据业务变化增加字段。建议在数据模型中预留扩展属性机制:

  • 自定义字段表:设计一张 form_extension 表,包含 form_id、field_key、field_value 三个字段,支持动态添加键值对。
  • 路由规则引用扩展字段:在条件表达式中允许使用 extension.xxx 语法引用自定义字段,例如 extension.is_international == true 触发涉外合同审批链。
  • 字段版本管理:每次修改表单字段定义时,自动生成一个新的字段版本号,并与审批路由版本绑定,确保历史单据使用当时的字段规则进行审批。
避坑提示:不要将业务维度直接硬编码为表单字段的选项列表。例如“是否需要法务审核”不应作为布尔字段放在表单上,而应通过品类+金额组合条件自动推导。硬编码会导致每次业务规则调整都需要修改表单配置,违背低代码平台的“配置优先”原则。