diff --git a/src/api/mes/qc/oqc/index.ts b/src/api/mes/qc/oqc/index.ts
new file mode 100644
index 000000000..bb8ce1652
--- /dev/null
+++ b/src/api/mes/qc/oqc/index.ts
@@ -0,0 +1,78 @@
+import request from '@/config/axios'
+
+// MES 出货检验单 VO
+export interface QcOqcVO {
+ id: number // 编号
+ code: string // 检验单编号
+ name: string // 检验单名称
+ templateId: number // 检验模板 ID
+ sourceDocId: number // 来源单据 ID
+ sourceDocType: string // 来源单据类型
+ sourceDocCode: string // 来源单据编号
+ sourceLineId: number // 来源单据行 ID
+ clientId: number // 客户 ID
+ clientNickname: string // 客户简称(关联查询)
+ batchCode: string // 批次号
+ itemId: number // 产品物料 ID
+ itemCode: string // 产品物料编码(关联查询)
+ itemName: string // 产品物料名称(关联查询)
+ itemSpecification: string // 规格型号(关联查询)
+ unitName: string // 单位名称(关联查询)
+ minCheckQuantity: number // 最低检测数
+ maxUnqualifiedQuantity: number // 最大不合格数
+ outQuantity: number // 本次出货数量
+ checkQuantity: number // 本次检测数量
+ qualifiedQuantity: number // 合格品数量
+ unqualifiedQuantity: number // 不合格品数量
+ criticalRate: number // 致命缺陷率(%)
+ majorRate: number // 严重缺陷率(%)
+ minorRate: number // 轻微缺陷率(%)
+ criticalQuantity: number // 致命缺陷数量
+ majorQuantity: number // 严重缺陷数量
+ minorQuantity: number // 轻微缺陷数量
+ checkResult: string // 检测结果
+ outDate: Date // 出货日期
+ inspectDate: Date // 检测日期
+ inspectorUserId: number // 检测人员用户 ID
+ inspectorNickname: string // 检测人员昵称(关联查询)
+ status: number // 状态
+ remark: string // 备注
+}
+
+// MES 出货检验单 API
+export const QcOqcApi = {
+ // 查询出货检验单分页
+ getOqcPage: async (params: any) => {
+ return await request.get({ url: `/mes/qc/oqc/page`, params })
+ },
+
+ // 查询出货检验单详情
+ getOqc: async (id: number) => {
+ return await request.get({ url: `/mes/qc/oqc/get?id=` + id })
+ },
+
+ // 新增出货检验单
+ createOqc: async (data: QcOqcVO) => {
+ return await request.post({ url: `/mes/qc/oqc/create`, data })
+ },
+
+ // 修改出货检验单
+ updateOqc: async (data: QcOqcVO) => {
+ return await request.put({ url: `/mes/qc/oqc/update`, data })
+ },
+
+ // 完成出货检验单
+ completeOqc: async (id: number) => {
+ return await request.put({ url: `/mes/qc/oqc/complete?id=` + id })
+ },
+
+ // 删除出货检验单
+ deleteOqc: async (id: number) => {
+ return await request.delete({ url: `/mes/qc/oqc/delete?id=` + id })
+ },
+
+ // 导出出货检验单 Excel
+ exportOqc: async (params: any) => {
+ return await request.download({ url: `/mes/qc/oqc/export-excel`, params })
+ }
+}
diff --git a/src/api/mes/qc/oqc/line/index.ts b/src/api/mes/qc/oqc/line/index.ts
new file mode 100644
index 000000000..419a62948
--- /dev/null
+++ b/src/api/mes/qc/oqc/line/index.ts
@@ -0,0 +1,34 @@
+import request from '@/config/axios'
+
+// MES 出货检验单行 VO
+export interface QcOqcLineVO {
+ id: number // 编号
+ oqcId: number // 出货检验单 ID
+ indicatorId: number // 检测指标 ID
+ indicatorCode: string // 检测指标编码(关联查询)
+ indicatorName: string // 检测指标名称(关联查询)
+ indicatorType: 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 QcOqcLineApi = {
+ // 查询出货检验单行分页
+ getOqcLinePage: async (params: any) => {
+ return await request.get({ url: `/mes/qc/oqc/line/page`, params })
+ },
+
+ // 查询出货检验单行详情
+ getOqcLine: async (id: number) => {
+ return await request.get({ url: `/mes/qc/oqc/line/get?id=` + id })
+ }
+}
diff --git a/src/views/mes/qc/ipqc/IpqcForm.vue b/src/views/mes/qc/ipqc/IpqcForm.vue
index d9a7075cf..0c160d3eb 100644
--- a/src/views/mes/qc/ipqc/IpqcForm.vue
+++ b/src/views/mes/qc/ipqc/IpqcForm.vue
@@ -250,15 +250,6 @@
>
保 存
-
-
- 完 成
-
关 闭
@@ -372,24 +363,6 @@ const submitForm = async () => {
}
}
-/** 完成操作 */
-const handleComplete = async () => {
- try {
- await message.confirm('确认完成该过程检验单?完成后不可修改。')
- formLoading.value = true
- // 先保存
- await QcIpqcApi.updateIpqc(formData.value as unknown as QcIpqcVO)
- // 再完成
- await QcIpqcApi.completeIpqc(formData.value.id!)
- message.success('完成成功')
- dialogVisible.value = false
- emit('success')
- } catch {
- } finally {
- formLoading.value = false
- }
-}
-
/** 重置表单 */
const resetForm = () => {
formData.value = {
diff --git a/src/views/mes/qc/oqc/OqcForm.vue b/src/views/mes/qc/oqc/OqcForm.vue
new file mode 100644
index 000000000..d17666d8b
--- /dev/null
+++ b/src/views/mes/qc/oqc/OqcForm.vue
@@ -0,0 +1,357 @@
+
+
+
+
+
+
diff --git a/src/views/mes/qc/oqc/OqcLineList.vue b/src/views/mes/qc/oqc/OqcLineList.vue
new file mode 100644
index 000000000..13064ae56
--- /dev/null
+++ b/src/views/mes/qc/oqc/OqcLineList.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 缺陷列表
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/mes/qc/oqc/index.vue b/src/views/mes/qc/oqc/index.vue
new file mode 100644
index 000000000..09833f6b6
--- /dev/null
+++ b/src/views/mes/qc/oqc/index.vue
@@ -0,0 +1,308 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+ 重置
+
+ 新增
+
+
+ 导出
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 编辑
+
+
+ 完成
+
+
+ 查看报表
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+