工业品 MRO 采购商城与目录标准化落地

日期:2026-07-18

本文为工程实践复盘,客户信息已脱敏;所述数据均为示意值。

一、项目背景

某省级国资制造集团下属二十余家工厂,日常 MRO(Maintenance、Repair、Operations)物资采购长期依赖分散的线下渠道:每个厂区的维修班组各自找供应商、各自谈价、各自建台账。我们进场做现状调研时,光是"相同一根某品牌密封圈"在全集团就有 17 个不同物料编码,采购员要花大量时间确认是不是同一个东西。供应商更是多达 600 余家,其中一半年交易额不足 5 万元,管理成本远高于采购额。

这个项目里最棘手的不是"建个商城",而是数据底座——一物多码、编码规则不统一、描述自由文本化,导致寻源无法比价、库存无法共享、呆滞无法识别。我们当时的判断是:MRO 数字化必须"先治码、再治流程",否则商城只是把混乱线上化。

二、落地场景

我们采用的内部采购商城系统(基于既有的集团物资采购电子商城能力延展)把场景收敛为四块:

  1. 统一 MRO 采购商城:把分散的采购入口收口到一个目录化商城,员工按目录选品、提交需求、走审批流。
  2. 物料主数据标准化:建立集团级 MRO 物料主数据,完成一物一码映射与历史编码归一。
  3. 智能寻源与供应商协同:按品类自动匹配在册合格供应商,发起询比价,供应商在线报价协同。
  4. 领用与库存联动:商城领用单直接驱动厂级仓库存货台账,超额领用触发审批与再订货点预警。

三、关键技术挑战与解决思路

挑战一:物料主数据一物一码标准化。 历史数据里 40 多万条 MRO 物料描述高度自由,"不锈钢螺栓 M8×30""304螺栓M8*30""内六角螺丝M8"其实是同一物料。我们没有一上来就上人工核对,而是先做归一化工程:清洗描述 → 抽取属性维度(材质、规格、标准、品牌)→ 生成标准化特征向量 → 用相似度聚类初筛候选同物集合 → 再交业务专家确认。核心是一段属性抽取规则与聚类脚本:

# 归一化:从自由描述抽取结构化属性
import re
def extract_attrs(desc: str) -> dict:
    attrs = {}
    m = re.search(r'(不锈钢|304|碳钢|黄铜)', desc)
    attrs['material'] = m.group(1) if m else 'UNKNOWN'
    m = re.search(r'M(\d+)', desc)
    attrs['size'] = f"M{m.group(1)}" if m else 'UNKNOWN'
    # 标准/长度等维度省略...
    return attrs

通过这种"机器初筛 + 人工确认"的半自动流程,我们把 40 万条历史物料收敛到约 12 万条主数据,一物一码覆盖率从不足 35% 提升到约 92%。

案例片段(已脱敏):归一后的一条主数据记录(字段已脱敏):material_code | std_name               | material | size | spec | supplier_count MRO-ST-00471  | 不锈钢内六角螺栓 M8×30 | 304      | M8   | 30mm | 4 -- 原 17 条散码(含 厂A-A01 / 厂B-B12 / 厂C-C07 等)已挂接至该主码

挑战二:长尾物资智能寻源。 MRO 长尾品类多、单次量少,传统人工寻源成本极高。我们对在册商品做品类画像,当员工输入模糊需求(如"车间排风扇过滤网")时,先用 embedding 向量检索召回相似商品,再按供应商在对应品类的历史交付准时率、报价排名推荐前 N 家。这背后依赖我们采用的 AI 私有化底座里的向量检索能力(Milvus / pgvector)做近邻匹配,避免了为每个长尾需求都启动一轮完整询比价。

挑战三:领用审批与库存联动。 商城领用单与厂区 WMS 库存不是同一套系统,我们做了轻量对账管道:领用审批通过后,异步推单到库存系统扣减,并比对再订货点。难点在并发——月末集中领用时同一物料高频扣减,我们用带版本号(行级乐观锁)的 SQL 防止超卖:

UPDATE wms_stock s
SET qty = qty - :req_qty, version = version + 1
WHERE s.material_code = :code
  AND s.warehouse = :wh
  AND s.qty - :req_qty >= 0
  AND s.version = :old_version;
-- 影响行数=0 即说明库存不足或版本冲突,回滚并重试

挑战四:供应商绩效与比价。 我们把单次询比价的报价、交付、质量退货数据沉淀到供应商绩效表,月度滚动计算交付准时率与价格偏离度,作为后续自动推荐与配额分配的权重。这样寻源不再只看单价,而是综合绩效,也顺带把 600 余家供应商按真实履约情况做了优胜劣汰。

四、效果数据

上线约六个月后,我们抽取了集团三个试点厂区的运行数据(示意值,非审计):

指标上线前(示意)上线后(示意)变化
物料主数据一物一码覆盖率约 35%约 92%提升约 57 个百分点
单次采购寻源平均时效约 2.5 天降至约 0.4 天缩短约 84%
呆滞库存金额占比约 18%降至约 9%下降约一半
供应商交付准时率约 76%提升至约 91%提升约 15 个百分点

从目录角度看,集团 MRO 可采购目录覆盖率从约 60% 提升到约 88%,原先 600 余家供应商经绩效评估收敛到约 280 家合格供应商,管理半径明显收窄。呆滞下降主要来自一物一码后跨厂区库存可共享、长尾物资可按就近库存调拨,而非各厂区重复备货。

五、可复用经验总结

  • 主数据标准化是 MRO 数字化的前提,必须先治码、再治流程;不要指望先把流程线上化再回头补数据,那样只会把混乱固化。
  • "机器初筛 + 人工确认"的半自动归一化,比纯人工核对或纯算法聚类都更稳,适合 40 万级历史物料这种既要准确率又要进度的场景。
  • 长尾物资寻源要借力向量检索做近邻召回,把"每次都完整询比价"降级为"相似品直接推荐",显著降本。
  • 领用与库存联动用乐观锁而非分布式事务,在月末并发高峰下既保了一致性,又避免了锁等待拖垮审批流。
  • 供应商绩效要闭环进寻源推荐,让"便宜"和"靠谱"共同决定配额,而非只看报价单。