【质量】待检任务、检验结果、缺陷记录
质量辅助模块,由 yudao-module-mes 后端模块的 qc.pendinginspect、qc.indicatorresult、qc.defectrecord 包实现,为 IQC/IPQC/OQC/RQC 四类质检单提供共享的辅助功能。
本文涉及三个子模块:
- 待检任务:聚合视图,汇总所有草稿状态的质检单,方便检验员快速查看和处理待检工作。
- 检验结果:记录每次检验中各检测项的实际检测值,支持多次录入(如批量抽检)。
- 缺陷记录:记录检验过程中发现的缺陷,系统自动按等级汇总到质检单和检验行。
# 1. 待检任务
待检任务,由 MesQcPendingInspectController 提供接口。不是实体表,而是聚合查询视图——通过 SQL UNION ALL 将六类来源业务单据中状态为「待检验」的行合并展示:到货通知行(IQC)、外协入库行(IQC)、产品产出行(IPQC)、生产报工行(IPQC)、生产退料行(RQC)、销售退货行(RQC)。
# 1.1 管理后台
对应 [MES 系统 -> 质量管理 -> 待检任务] 菜单,对应 yudao-ui-admin-vue3 项目的 @/views/mes/qc/pendinginspect 目录。
支持按来源单据编码、检验类型、物料等条件搜索。列表统一展示所有待处理的质检单,检验员可快速定位需要处理的检验任务。

点击列表中的记录,跳转到对应的质检单(IQC/IPQC/OQC/RQC)编辑页面进行检验操作。检验完成后,系统自动回写来源单据:
| 质检类型 | 来源单据 | 完成后回写 |
|---|---|---|
| IQC | 到货通知单 / 外协入库单 | 回写行的合格/不合格数量,更新单据状态 |
| IPQC | 生产报工单 | 回写合格/缺损/各类报废数量,触发产出入库和进度更新 |
| OQC | 销售出库单 | 回写行的 quality_status 和 oqc_id |
| RQC | 生产退料单 / 销售退货单 | 回写行的 quality_status,拆分行并联动主单状态 |
# 2. 检验结果
检验结果,由 MesQcIndicatorResultController 提供接口。记录质检过程中每个检测项的实际检测值,支持同一质检单多次录入(如抽检多个样本)。
# 2.1 表结构
省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段
CREATE TABLE `mes_qc_indicator_result` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
`code` varchar(64) DEFAULT NULL COMMENT '结果编码',
`qc_id` bigint NOT NULL COMMENT '质检单ID',
`qc_type` tinyint NOT NULL COMMENT '质检类型',
`item_id` bigint DEFAULT NULL COMMENT '物料ID',
`sn` varchar(64) DEFAULT NULL COMMENT '样品SN码',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='MES 检验结果';
① qc_id + qc_type 关联质检单。qc_type 枚举 MesQcTypeEnum(IQC/IPQC/OQC/RQC),用于区分关联到哪张质检表。
② item_id 为被检物料。sn 为样品的 SN 码(选填),用于追溯具体是哪个样品的检测结果。
该表包含一个子表:
mes_qc_indicator_result_detail(检验结果明细):记录每个检测项的实际检测值。
# 2.2 管理后台
对应 [MES 系统 -> 质量管理 -> 检验结果] 菜单,对应 yudao-ui-admin-vue3 项目的 @/views/mes/qc/indicatorresult 目录。

★ 检验结果明细:由 mes_qc_indicator_result_detail 表存储,记录每个检测项的实际值。由 MesQcIndicatorResultDetailController 提供接口。
mes_qc_indicator_result_detail 表结构
CREATE TABLE `mes_qc_indicator_result_detail` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
`result_id` bigint NOT NULL COMMENT '检验结果ID',
`indicator_id` bigint NOT NULL COMMENT '检测项ID',
`value` varchar(500) DEFAULT NULL COMMENT '检测值',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='MES 检验结果明细';
① result_id 关联主表 mes_qc_indicator_result 的 id 字段。
② indicator_id 关联检测项。value 为实际检测值(文本存储,适配不同结果类型:浮点、整数、文本、字典、文件)。
# 3. 缺陷记录
缺陷记录,由 MesQcDefectRecordController 提供接口。记录质检过程中发现的缺陷,关联到质检单和具体的检验行。
# 3.1 表结构
省略 creator/create_time/updater/update_time/deleted/tenant_id 等通用字段
CREATE TABLE `mes_qc_defect_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '编号',
`qc_type` tinyint NOT NULL COMMENT '质检类型',
`qc_id` bigint NOT NULL COMMENT '质检单ID',
`line_id` bigint DEFAULT NULL COMMENT '检验行ID',
`name` varchar(255) NOT NULL COMMENT '缺陷名称',
`level` tinyint NOT NULL COMMENT '缺陷等级',
`quantity` int DEFAULT NULL COMMENT '缺陷数量',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`id`)
) ENGINE=InnoDB COMMENT='MES 缺陷记录';
① qc_type + qc_id 关联质检单(IQC/IPQC/OQC/RQC)。line_id 关联具体检验行(必填,后端 @NotNull 校验),用于细粒度的缺陷定位和检验行级别的缺陷统计。
② name 为缺陷名称(可从常见缺陷列表选择)。
level 为缺陷等级,枚举 MesQcDefectLevelEnum(1=致命,2=严重,3=轻微)。
quantity 为缺陷数量,默认为 1。
③ name 可从常见缺陷列表(mes_qc_defect 表)中选择,详见 《【质量】检测项设置、常见缺陷》。
# 3.2 缺陷自动汇总
缺陷记录发生变更时(新增/修改/删除),系统通过 recalculateDefectStats 方法自动汇总缺陷数据:
- 行级汇总:按检验行(
line_id)分组统计各等级缺陷数量,更新检验行的critical_quantity、major_quantity、minor_quantity。 - 主表汇总:汇总所有缺陷记录的各等级总数量,计算缺陷率(缺陷数 × 100 / 检验数量),更新主表的缺陷数和缺陷率。
# 3.3 管理后台
缺陷记录通常在质检单的编辑弹窗中维护(与检验行、检测结果并列展示),也可在 [MES 系统 -> 质量管理 -> 缺陷记录] 菜单中独立查看。
