3. 质量工单标准结构设计
质量工单是质量管理系统中最核心的业务单据,它承载了从缺陷发现、责任判定到整改闭环的全部信息。如果工单结构设计得随意,后续的统计、追溯、协同都会陷入混乱。本节围绕工单编号、产品批次、缺陷描述、严重度、紧急度、附件、关联订单等字段,讲清楚每个字段的建模意图、数据类型、约束规则以及它们之间的关联关系。
一、字段建模的整体思路
质量工单的字段可以按职责分为四类:标识类(工单编号)、对象类(产品批次、关联订单)、问题类(缺陷描述、严重度、紧急度)、证据类(附件)。标识类保证工单唯一可追溯;对象类回答“哪个批次、哪张订单出的问题”;问题类回答“出了什么问题、有多严重、多急”;证据类保存现场照片、检测报告等原始材料。
建模时先确定每个字段的数据类型和约束,再确定字段之间的依赖关系。例如严重度决定处理时限,紧急度决定通知范围,两者不能混为一谈。
二、工单编号:唯一标识的设计
工单编号是工单的“身份证”,必须全局唯一、可读、可排序。推荐采用分段编码:
QO-20250612-A03-0017
│ │ │ │ └─ 当日流水号(4位,从0001起)
│ │ │ └───── 车间/产线代码(A03=总装三线)
│ │ └───────── 日期(YYYYMMDD)
│ └────────────────── 业务类型(QO=Quality Order)
└────────────────────── 固定前缀
这种编码的好处是:看到编号就能知道日期、产线和顺序,便于人工识别和数据库索引。编号生成应在工单创建时由系统自动完成,不允许手工修改。数据库层面应对编号字段加唯一索引,防止并发创建时重复。
三、产品批次与关联订单
产品批次是质量追溯的最小单元,通常由物料编码 + 生产日期 + 班次组成,例如 MAT-8842-20250610-B。批次字段必须与生产系统的批次主数据保持一致,不能自由填写。关联订单则指向销售订单或生产工单号,用于回答“这批货是给哪个客户的”。
批次与订单的关系是多对多:一个批次可能供给多张订单,一张订单也可能由多个批次拼成。因此工单中应同时记录批次号和订单号,并在数据库中通过关联表维护它们的对应关系。当缺陷发生时,系统可以反向查出受影响的订单范围,这是召回决策的关键依据。
四、缺陷描述:结构化与自由文本结合
缺陷描述如果只用一个自由文本框,后期统计几乎无法做。推荐采用“缺陷代码 + 补充说明”的结构:缺陷代码来自预定义的缺陷字典(如 D-102 表面划伤、D-205 尺寸超差),补充说明用自由文本记录具体位置、程度和发现过程。
缺陷字典应分层设计:大类(外观、尺寸、功能、装配)→ 小类 → 具体缺陷。这样既能保证统计口径统一,又能保留现场细节。
五、严重度与紧急度:两个独立维度
严重度(Severity)衡量缺陷对产品功能、安全、客户的影响程度,通常分四级:
- S1 致命:涉及安全或法规,必须立即停线。
- S2 严重:功能失效或客户拒收,需当日处理。
- S3 一般:外观或次要功能问题,可计划处理。
- S4 轻微:不影响使用,记录备查。
紧急度(Urgency)衡量处理的时间压力,取决于订单交期、客户等级和库存情况。严重度高不一定紧急度高——例如一个S2缺陷发生在尚未发货的库存批次上,紧急度可能是中;而一个S3缺陷发生在即将交付的重点客户订单上,紧急度可能是高。
两者组合决定处理优先级。可以用一个简单的优先级矩阵:严重度S1且紧急度高→立即处理;S1且紧急度低→当日处理;S4且紧急度低→周内处理。这个矩阵应写入工单系统的自动分派规则中。
六、附件与状态字段
附件字段用于保存缺陷现场照片、检测报告、视频等证据。建模时只存文件路径或URL,不把二进制内容直接写入工单表,否则数据库会迅速膨胀。附件表应记录文件名、类型、上传人、上传时间和关联工单号。
状态字段是工单流转的骨架,建议至少包含:待分派 → 处理中 → 待验证 → 已关闭。每次状态变更都应记录操作人、时间和备注,形成完整的审计轨迹。状态字段与严重度、紧急度联动:S1工单在“待分派”状态停留超过15分钟应自动升级通知。
七、字段约束与数据校验
建模的最后一步是给每个字段加上约束。以下是一份可直接参考的字段定义示例:
| 字段名 | 类型 | 约束 | 说明 |
|---|---|---|---|
| order_no | VARCHAR(24) | UNIQUE, NOT NULL | 工单编号,系统自动生成 |
| batch_code | VARCHAR(32) | NOT NULL, 外键→批次主数据 | 产品批次号 |
| sales_order | VARCHAR(20) | 可空 | 关联销售订单号 |
| defect_code | VARCHAR(10) | NOT NULL, 外键→缺陷字典 | 缺陷代码 |
| defect_desc | TEXT | 可空 | 补充说明 |
| severity | ENUM | NOT NULL, S1~S4 | 严重度 |
| urgency | ENUM | NOT NULL, 高/中/低 | 紧急度 |
| status | ENUM | NOT NULL, 默认待分派 | 工单状态 |
| created_at | DATETIME | NOT NULL, 默认当前时间 | 创建时间 |
总结来说,质量工单的字段建模不是简单地列一张表,而是要回答三个问题:每个字段回答什么业务问题?字段之间有什么依赖?字段的取值如何约束才能保证数据可用?把这三个问题想清楚,工单结构就能支撑起后续的责任协同和统计分析。