3. 多工厂质量数据模型设计
多工厂质量数据协同治理的核心矛盾在于:各工厂在长期运营中形成了各自的质量数据习惯——字段命名不同、缺陷分类粒度不同、检验项目编码不同、甚至同一物理量在不同工厂使用不同单位。如果直接把这些异构数据汇聚到集团平台,结果必然是“数据很多、口径很乱、无法比较”。因此,多工厂质量数据模型设计的目标不是把所有工厂的数据库结构改成一样,而是建立一套统一语义层:用一套集团级质量数据模型定义“质量对象是什么、由哪些实体构成、用什么编码标识、各工厂本地数据如何映射到集团模型”。
一、统一质量数据模型的设计原则
统一模型的设计应遵循四条原则。第一,语义统一、物理分布:集团定义质量实体、属性、编码和关系,但数据仍可保存在各工厂系统中,通过映射层实现逻辑统一。第二,最小完备:模型只纳入跨工厂协同真正需要的实体和属性,避免把各工厂所有本地字段都纳入集团模型,否则模型会迅速膨胀且难以维护。第三,可扩展:模型应支持新工厂、新产线、新检验项目的接入,扩展时不需要修改已有实体的核心定义。第四,可追溯:每个集团级质量记录都应能回溯到来源工厂、来源系统、来源单据和原始编码,确保数据可信。
二、关键实体与关系
一个可落地的多工厂质量数据模型通常包含以下关键实体:工厂(Plant)、产品(Product)、物料(Material)、检验项目(InspectionItem)、检验批次(InspectionLot)、检验结果(InspectionResult)、缺陷(Defect)、缺陷代码(DefectCode)、质量事件(QualityEvent)和纠正措施(CAPA)。其中,检验批次是连接产品、物料、工厂和检验结果的核心实体;缺陷代码是跨工厂缺陷统计和对比的关键字典;质量事件与CAPA则用于跨工厂问题追踪和闭环管理。
实体之间的关系可以概括为:一个工厂生产多个产品,一个产品由多个物料构成;一个检验批次对应一个工厂、一个产品和一个物料;一个检验批次包含多条检验结果,每条检验结果对应一个检验项目;一个检验结果可能记录一个或多个缺陷,每个缺陷引用一个缺陷代码;一个质量事件可以关联多个检验批次,并触发一个或多个CAPA。这种关系结构保证了从“单次检验”到“跨工厂质量事件”的完整链路可追溯。
三、编码规则设计
编码是统一模型的“身份证”。多工厂环境下,编码规则必须同时满足唯一性、稳定性、可读性和可映射性。建议采用“集团前缀 + 实体类型 + 工厂码 + 流水号”的分段结构。例如,集团级缺陷代码可定义为:GQ-DC-<domain>-<seq>,其中 GQ 表示集团质量,DC 表示缺陷代码,domain 表示缺陷所属域(如 WELD 焊接、PAINT 涂装、ELEC 电气),seq 为四位流水号。示例:GQ-DC-WELD-0012 表示焊接域第 12 号集团缺陷代码。
对于检验项目编码,建议采用“产品族 + 特性类型 + 序号”结构,例如 IT-BAT-VOLT-003 表示电池产品族电压特性第 3 项。工厂本地编码则保留原有格式,但必须在映射表中登记其对应的集团编码。编码规则一旦发布,应冻结核心段位,只允许扩展段位新增,避免历史数据因编码规则变更而失去可比性。
四、跨工厂映射方法
跨工厂映射的本质是建立“本地编码 → 集团编码”的对照关系。映射表至少应包含以下字段:plant_code(工厂代码)、local_system(来源系统)、local_code(本地编码)、local_name(本地名称)、global_code(集团编码)、global_name(集团名称)、mapping_type(映射类型:一对一/一对多/多对一)、effective_date(生效日期)和status(状态)。
映射过程中最常见的三类问题是:粒度不一致(某工厂把“划伤”和“擦伤”合并为一个缺陷,而集团模型要求分开)、语义偏差(同一名称在不同工厂指代不同缺陷)、单位不统一(如硬度单位 HRC 与 HV 混用)。处理粒度不一致时,可采用“拆分映射”或“聚合映射”:若本地粒度粗于集团,则按规则拆分到多个集团代码;若本地粒度细于集团,则聚合到上级集团代码,并在映射表中保留原始明细。处理语义偏差时,必须由集团质量专家与工厂质量工程师共同确认,不能仅靠字段名自动匹配。处理单位不统一时,应在映射层增加单位换算规则,例如 HV ≈ HRC × 10 + 100(仅作示例近似,实际换算需按标准执行),并在结果数据中同时保留原始值和换算值。
五、一个可执行的映射示例
假设 A 工厂本地缺陷代码为 A-WELD-01,名称为“焊缝气孔”;B 工厂本地缺陷代码为 B_WELD_POR,名称为“焊接气孔”。集团缺陷代码为 GQ-DC-WELD-0007,名称为“焊缝气孔”。则映射表记录如下:
| plant_code | local_system | local_code | local_name | global_code | global_name | mapping_type | status |
|---|---|---|---|---|---|---|---|
| A | QMS-A | A-WELD-01 | 焊缝气孔 | GQ-DC-WELD-0007 | 焊缝气孔 | 一对一 | 生效 |
| B | QMS-B | B_WELD_POR | 焊接气孔 | GQ-DC-WELD-0007 | 焊缝气孔 | 一对一 | 生效 |
当集团平台需要统计“焊缝气孔”在 A、B 两厂的月度缺陷率时,只需按 global_code = GQ-DC-WELD-0007 聚合,即可得到可比结果。若某工厂本地代码 C-WELD-ALL 同时包含气孔、夹渣、未熔合三类缺陷,则映射类型为“一对多”,需要按规则拆分为三个集团代码,并在结果数据中保留原始本地代码以便追溯。
六、模型落地时的检查要点
在模型设计完成后,建议用以下问题做一次自检:集团模型是否覆盖了跨工厂协同所需的最小实体集?每个实体是否有唯一且稳定的编码?每个工厂的本地编码是否都有对应的映射记录?映射类型是否明确标注?单位换算规则是否已定义并验证?历史数据迁移时,是否保留了原始编码和映射版本?只有这些检查项都通过,统一质量数据模型才真正具备跨工厂可比、可追溯、可扩展的能力。