From 969b4a70f0308edb01858fda1a318d9a18922faf Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 22 Feb 2026 11:03:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(mes):=20=E6=96=B0=E5=A2=9E=20IPQC=20?= =?UTF-8?q?=E8=BF=87=E7=A8=8B=E6=A3=80=E9=AA=8C=E5=89=8D=E7=AB=AF=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E9=9B=86=E6=88=90=E7=BC=BA=E9=99=B7=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E4=B8=8E=E6=A3=80=E6=B5=8B=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 IPQC 列表页、表单弹窗、检验行子表 - IpqcForm 新增"检测结果"标签页,复用 QcIndicatorResultList 组件 - IpqcLineList 新增"缺陷列表"操作列,集成 DefectRecordInlineList 弹窗,添加分页 - 新增 IPQC API 和 Line API(TypeScript) - dict.ts 注册 MES_IPQC_TYPE 字典类型 - constants.ts 新增 MesQcIpqcStatusEnum 枚举 --- src/api/mes/qc/ipqc/index.ts | 83 +++++ src/api/mes/qc/ipqc/line/index.ts | 36 +++ src/utils/dict.ts | 1 + src/views/mes/qc/ipqc/IpqcForm.vue | 430 +++++++++++++++++++++++++ src/views/mes/qc/ipqc/IpqcLineList.vue | 91 ++++++ src/views/mes/qc/ipqc/index.vue | 309 ++++++++++++++++++ src/views/mes/utils/constants.ts | 12 + 7 files changed, 962 insertions(+) create mode 100644 src/api/mes/qc/ipqc/index.ts create mode 100644 src/api/mes/qc/ipqc/line/index.ts create mode 100644 src/views/mes/qc/ipqc/IpqcForm.vue create mode 100644 src/views/mes/qc/ipqc/IpqcLineList.vue create mode 100644 src/views/mes/qc/ipqc/index.vue diff --git a/src/api/mes/qc/ipqc/index.ts b/src/api/mes/qc/ipqc/index.ts new file mode 100644 index 000000000..a2be7b93f --- /dev/null +++ b/src/api/mes/qc/ipqc/index.ts @@ -0,0 +1,83 @@ +import request from '@/config/axios' + +// MES 过程检验单 VO +export interface QcIpqcVO { + id: number // 编号 + code: string // 检验单编号 + name: string // 检验单名称 + type: string // IPQC 检验类型 + templateId: number // 检验模板 ID + sourceDocId: number // 来源单据 ID + sourceDocType: string // 来源单据类型 + sourceDocCode: string // 来源单据编号 + sourceLineId: number // 来源单据行 ID + workOrderId: number // 生产工单 ID + workOrderCode: string // 工单编号(关联查询) + workOrderName: string // 工单名称(关联查询) + taskId: number // 生产任务 ID + workstationId: number // 工位 ID + workstationName: string // 工位名称(关联查询) + processId: number // 工序 ID + processName: string // 工序名称(关联查询) + itemId: number // 产品物料 ID + itemCode: string // 产品物料编码(关联查询) + itemName: string // 产品物料名称(关联查询) + itemSpecification: string // 规格型号(关联查询) + unitName: string // 单位名称(关联查询) + checkQuantity: number // 检测数量 + qualifiedQuantity: number // 合格品数量 + unqualifiedQuantity: number // 不合格品数量 + laborScrapQuantity: number // 工废数量 + materialScrapQuantity: number // 料废数量 + otherScrapQuantity: number // 其他废品数量 + criticalRate: number // 致命缺陷率(%) + majorRate: number // 严重缺陷率(%) + minorRate: number // 轻微缺陷率(%) + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + checkResult: number // 检测结果 + inspectDate: Date // 检测日期 + inspectorUserId: number // 检测人员用户 ID + inspectorNickname: string // 检测人员昵称(关联查询) + status: number // 状态 + remark: string // 备注 +} + +// MES 过程检验单 API +export const QcIpqcApi = { + // 查询过程检验单分页 + getIpqcPage: async (params: any) => { + return await request.get({ url: `/mes/qc/ipqc/page`, params }) + }, + + // 查询过程检验单详情 + getIpqc: async (id: number) => { + return await request.get({ url: `/mes/qc/ipqc/get?id=` + id }) + }, + + // 新增过程检验单 + createIpqc: async (data: QcIpqcVO) => { + return await request.post({ url: `/mes/qc/ipqc/create`, data }) + }, + + // 修改过程检验单 + updateIpqc: async (data: QcIpqcVO) => { + return await request.put({ url: `/mes/qc/ipqc/update`, data }) + }, + + // 完成过程检验单 + completeIpqc: async (id: number) => { + return await request.put({ url: `/mes/qc/ipqc/complete?id=` + id }) + }, + + // 删除过程检验单 + deleteIpqc: async (id: number) => { + return await request.delete({ url: `/mes/qc/ipqc/delete?id=` + id }) + }, + + // 导出过程检验单 Excel + exportIpqc: async (params: any) => { + return await request.download({ url: `/mes/qc/ipqc/export-excel`, params }) + } +} diff --git a/src/api/mes/qc/ipqc/line/index.ts b/src/api/mes/qc/ipqc/line/index.ts new file mode 100644 index 000000000..b72487f12 --- /dev/null +++ b/src/api/mes/qc/ipqc/line/index.ts @@ -0,0 +1,36 @@ +import request from '@/config/axios' + +// MES 过程检验单行 VO +export interface QcIpqcLineVO { + id: number // 编号 + ipqcId: number // 过程检验单 ID + indicatorId: number // 检测指标 ID + indicatorCode: string // 检测指标编码(关联查询) + indicatorName: string // 检测指标名称(关联查询) + indicatorType: string // 检测指标类型(关联查询) + toolId: number // 检测工具 ID + toolName: string // 检测工具名称(关联查询) + checkMethod: string // 检测方法 + standardValue: number // 标准值 + unitMeasureId: number // 计量单位 ID + unitMeasureName: string // 计量单位名称(关联查询) + maxThreshold: number // 误差上限 + minThreshold: number // 误差下限 + criticalQuantity: number // 致命缺陷数量 + majorQuantity: number // 严重缺陷数量 + minorQuantity: number // 轻微缺陷数量 + remark: string // 备注 +} + +// MES 过程检验单行 API +export const QcIpqcLineApi = { + // 查询过程检验单行分页 + getIpqcLinePage: async (params: any) => { + return await request.get({ url: `/mes/qc/ipqc/line/page`, params }) + }, + + // 查询过程检验单行详情 + getIpqcLine: async (id: number) => { + return await request.get({ url: `/mes/qc/ipqc/line/get?id=` + id }) + } +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 5c313ea4a..9046cbf0d 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -291,4 +291,5 @@ export enum DICT_TYPE { MES_PRO_FEEDBACK_CHANNEL = 'mes_pro_feedback_channel', // MES 生产报工途径 MES_PRO_ANDON_STATUS = 'mes_pro_andon_status', // MES 安灯处置状态 MES_PRO_ANDON_LEVEL = 'mes_pro_andon_level', // MES 安灯级别 + MES_RQC_TYPE = 'mes_rqc_type', // MES 退货检验类型 } diff --git a/src/views/mes/qc/ipqc/IpqcForm.vue b/src/views/mes/qc/ipqc/IpqcForm.vue new file mode 100644 index 000000000..d9a7075cf --- /dev/null +++ b/src/views/mes/qc/ipqc/IpqcForm.vue @@ -0,0 +1,430 @@ + + + + diff --git a/src/views/mes/qc/ipqc/IpqcLineList.vue b/src/views/mes/qc/ipqc/IpqcLineList.vue new file mode 100644 index 000000000..cfa5414d2 --- /dev/null +++ b/src/views/mes/qc/ipqc/IpqcLineList.vue @@ -0,0 +1,91 @@ + + + + diff --git a/src/views/mes/qc/ipqc/index.vue b/src/views/mes/qc/ipqc/index.vue new file mode 100644 index 000000000..b75c1b3a0 --- /dev/null +++ b/src/views/mes/qc/ipqc/index.vue @@ -0,0 +1,309 @@ + + + + diff --git a/src/views/mes/utils/constants.ts b/src/views/mes/utils/constants.ts index bc82ceaa3..5e8a0696d 100644 --- a/src/views/mes/utils/constants.ts +++ b/src/views/mes/utils/constants.ts @@ -159,6 +159,18 @@ export const MesQcIpqcStatusEnum = { FINISHED: 1 // 已完成 } +/** MES 出货检验单(OQC)状态枚举 */ +export const MesQcOqcStatusEnum = { + PREPARE: 0, // 草稿 + FINISHED: 1 // 已完成 +} + +/** MES 退货检验单(RQC)状态枚举 */ +export const MesQcRqcStatusEnum = { + PREPARE: 0, // 草稿 + FINISHED: 1 // 已完成 +} + /** MES 生产报工状态枚举 */ export const MesProFeedbackStatusEnum = { PREPARE: 0, // 草稿