日期:2026-07-18
本文为工程实践复盘,客户信息已脱敏;所述数据均为示意值。
某省级国资制造集团下属二十余家工厂,日常 MRO(Maintenance、Repair、Operations)物资采购长期依赖分散的线下渠道:每个厂区的维修班组各自找供应商、各自谈价、各自建台账。我们进场做现状调研时,光是"相同一根某品牌密封圈"在全集团就有 17 个不同物料编码,采购员要花大量时间确认是不是同一个东西。供应商更是多达 600 余家,其中一半年交易额不足 5 万元,管理成本远高于采购额。
这个项目里最棘手的不是"建个商城",而是数据底座——一物多码、编码规则不统一、描述自由文本化,导致寻源无法比价、库存无法共享、呆滞无法识别。我们当时的判断是:MRO 数字化必须"先治码、再治流程",否则商城只是把混乱线上化。
我们采用的内部采购商城系统(基于既有的集团物资采购电子商城能力延展)把场景收敛为四块:
挑战一:物料主数据一物一码标准化。 历史数据里 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 家合格供应商,管理半径明显收窄。呆滞下降主要来自一物一码后跨厂区库存可共享、长尾物资可按就近库存调拨,而非各厂区重复备货。