feat(mes): update IPQC type to Integer and add source document fields in RQC

pull/871/MERGE
YunaiV 2026-02-22 14:27:35 +08:00
parent 52785c5c08
commit b1f0a71b7a
6 changed files with 67 additions and 52 deletions

View File

@ -29,7 +29,7 @@
class="!w-1/1" class="!w-1/1"
> >
<el-option <el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_IPQC_TYPE)" v-for="dict in getIntDictOptions(DICT_TYPE.MES_IPQC_TYPE)"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -256,7 +256,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE } from '@/utils/dict' import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import { QcIpqcApi, QcIpqcVO } from '@/api/mes/qc/ipqc' import { QcIpqcApi, QcIpqcVO } from '@/api/mes/qc/ipqc'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue' import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue' import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'

View File

@ -26,7 +26,7 @@
class="!w-240px" class="!w-240px"
> >
<el-option <el-option
v-for="dict in getStrDictOptions(DICT_TYPE.MES_IPQC_TYPE)" v-for="dict in getIntDictOptions(DICT_TYPE.MES_IPQC_TYPE)"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
@ -83,15 +83,6 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<!-- TODO @AI可以去掉 -->
<el-form-item label="检测人员" prop="inspectorUserId">
<UserSelect
v-model="queryParams.inspectorUserId"
placeholder="请选择检测人员"
clearable
class="!w-240px"
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
@ -129,8 +120,8 @@
<el-table-column label="工单编号" align="center" prop="workOrderCode" width="140" /> <el-table-column label="工单编号" align="center" prop="workOrderCode" width="140" />
<el-table-column label="产品物料编码" align="center" prop="itemCode" width="130" /> <el-table-column label="产品物料编码" align="center" prop="itemCode" width="130" />
<el-table-column label="产品物料名称" align="center" prop="itemName" min-width="150" /> <el-table-column label="产品物料名称" align="center" prop="itemName" min-width="150" />
<!-- TODO @AI规格型号 --> <el-table-column label="规格型号" align="center" prop="itemSpecification" width="130" />
<!-- TODO @AI单位 --> <el-table-column label="单位" align="center" prop="unitName" width="80" />
<el-table-column label="检测数量" align="center" prop="checkQuantity" width="100" /> <el-table-column label="检测数量" align="center" prop="checkQuantity" width="100" />
<el-table-column label="检测结论" align="center" prop="checkResult" width="100"> <el-table-column label="检测结论" align="center" prop="checkResult" width="100">
<template #default="scope"> <template #default="scope">
@ -209,11 +200,10 @@ import { dateFormatter2 } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { QcIpqcApi, QcIpqcVO } from '@/api/mes/qc/ipqc' import { QcIpqcApi, QcIpqcVO } from '@/api/mes/qc/ipqc'
import IpqcForm from './IpqcForm.vue' import IpqcForm from './IpqcForm.vue'
import { DICT_TYPE, getIntDictOptions, getStrDictOptions } from '@/utils/dict' import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue' import ProWorkOrderSelect from '@/views/mes/pro/workorder/components/ProWorkOrderSelect.vue'
import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue' import MdWorkstationSelect from '@/views/mes/md/workstation/components/MdWorkstationSelect.vue'
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue' import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
import UserSelect from '@/views/system/user/components/UserSelect.vue'
import { MesQcIpqcStatusEnum } from '@/views/mes/utils/constants' import { MesQcIpqcStatusEnum } from '@/views/mes/utils/constants'
defineOptions({ name: 'MesQcIpqc' }) defineOptions({ name: 'MesQcIpqc' })
@ -233,8 +223,7 @@ const queryParams = reactive({
workstationId: undefined, workstationId: undefined,
itemId: undefined, itemId: undefined,
checkResult: undefined, checkResult: undefined,
inspectDate: undefined, inspectDate: undefined
inspectorUserId: undefined
}) })
const queryFormRef = ref() const queryFormRef = ref()
const exportLoading = ref(false) const exportLoading = ref(false)

View File

@ -55,8 +55,7 @@
<el-divider content-position="left">检测情况</el-divider> <el-divider content-position="left">检测情况</el-divider>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="8"> <el-col :span="8">
<!-- TODO @AI发货数量 --> <el-form-item label="发货数量" prop="outQuantity">
<el-form-item label="出货数量" prop="outQuantity">
<el-input-number <el-input-number
v-model="formData.outQuantity" v-model="formData.outQuantity"
:min="0" :min="0"
@ -66,7 +65,18 @@
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- TODO @AI检测数量 --> <el-col :span="8">
<el-form-item label="检测数量" prop="checkQuantity">
<el-input-number
v-model="formData.checkQuantity"
:min="0"
placeholder="请输入"
class="!w-1/1"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合格品数量" prop="qualifiedQuantity"> <el-form-item label="合格品数量" prop="qualifiedQuantity">
<el-input-number <el-input-number
@ -90,12 +100,12 @@
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="货日期" prop="outDate"> <el-form-item label="货日期" prop="outDate">
<el-date-picker <el-date-picker
v-model="formData.outDate" v-model="formData.outDate"
type="datetime" type="datetime"
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择货日期" placeholder="请选择货日期"
class="!w-1/1" class="!w-1/1"
/> />
</el-form-item> </el-form-item>
@ -266,7 +276,7 @@ const formRules = reactive({
templateId: [{ required: true, message: '检验模板不能为空', trigger: 'change' }], templateId: [{ required: true, message: '检验模板不能为空', trigger: 'change' }],
clientId: [{ required: true, message: '客户不能为空', trigger: 'change' }], clientId: [{ required: true, message: '客户不能为空', trigger: 'change' }],
itemId: [{ required: true, message: '产品物料不能为空', trigger: 'change' }], itemId: [{ required: true, message: '产品物料不能为空', trigger: 'change' }],
outQuantity: [{ required: true, message: '货数量不能为空', trigger: 'blur' }] outQuantity: [{ required: true, message: '货数量不能为空', trigger: 'blur' }]
}) })
const formRef = ref() // Ref const formRef = ref() // Ref

View File

@ -58,7 +58,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="货日期" prop="outDate"> <el-form-item label="货日期" prop="outDate">
<el-date-picker <el-date-picker
v-model="queryParams.outDate" v-model="queryParams.outDate"
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
@ -121,8 +121,7 @@
<el-table-column label="批次号" align="center" prop="batchCode" width="130" /> <el-table-column label="批次号" align="center" prop="batchCode" width="130" />
<el-table-column label="产品物料编码" align="center" prop="itemCode" width="130" /> <el-table-column label="产品物料编码" align="center" prop="itemCode" width="130" />
<el-table-column label="产品物料名称" align="center" prop="itemName" min-width="150" /> <el-table-column label="产品物料名称" align="center" prop="itemName" min-width="150" />
<!-- TODO @AI出货数量改成发货数量--> <el-table-column label="发货数量" align="center" prop="outQuantity" width="100" />
<el-table-column label="出货数量" align="center" prop="outQuantity" width="100" />
<el-table-column label="检测数量" align="center" prop="checkQuantity" width="100" /> <el-table-column label="检测数量" align="center" prop="checkQuantity" width="100" />
<el-table-column label="不合格数" align="center" prop="unqualifiedQuantity" width="100" /> <el-table-column label="不合格数" align="center" prop="unqualifiedQuantity" width="100" />
<el-table-column label="检测结论" align="center" prop="checkResult" width="100"> <el-table-column label="检测结论" align="center" prop="checkResult" width="100">
@ -130,9 +129,8 @@
<dict-tag :type="DICT_TYPE.MES_QC_CHECK_RESULT" :value="scope.row.checkResult" /> <dict-tag :type="DICT_TYPE.MES_QC_CHECK_RESULT" :value="scope.row.checkResult" />
</template> </template>
</el-table-column> </el-table-column>
<!-- TODO @AI出货日期改成发货日期-->
<el-table-column <el-table-column
label="货日期" label="货日期"
align="center" align="center"
prop="outDate" prop="outDate"
:formatter="dateFormatter2" :formatter="dateFormatter2"

View File

@ -35,12 +35,11 @@
<el-divider content-position="left">物料信息</el-divider> <el-divider content-position="left">物料信息</el-divider>
<el-row :gutter="16"> <el-row :gutter="16">
<!-- TODO @AI应该是 检验类型 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="退货类型" prop="rqcType"> <el-form-item label="检验类型" prop="rqcType">
<el-select <el-select
v-model="formData.rqcType" v-model="formData.rqcType"
placeholder="请选择退货类型" placeholder="请选择检验类型"
clearable clearable
class="!w-1/1" class="!w-1/1"
> >
@ -52,18 +51,18 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- TODO @芋艿来源单据类型 --> </el-col>
<!-- TODO @芋艿来源单据编号 --> <!-- TODO @芋艿来源单据类型 -->
<el-col :span="8"> <!-- TODO @芋艿来源单据编号 -->
<el-form-item label="产品物料" prop="itemId"> <el-col :span="8">
<MdItemSelect v-model="formData.itemId" placeholder="请选择产品物料" class="!w-1/1" /> <el-form-item label="产品物料" prop="itemId">
</el-form-item> <MdItemSelect v-model="formData.itemId" placeholder="请选择产品物料" class="!w-1/1" />
</el-col> </el-form-item>
<el-col :span="8"> </el-col>
<el-form-item label="批次号" prop="batchCode"> <el-col :span="8">
<el-input v-model="formData.batchCode" placeholder="请输入批次号" /> <el-form-item label="批次号" prop="batchCode">
</el-form-item> <el-input v-model="formData.batchCode" placeholder="请输入批次号" />
</el-col> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>

View File

@ -18,8 +18,24 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<!-- TODO @AI来源单据类型 --> <el-form-item label="来源单据类型" prop="sourceDocType">
<!-- TODO @AI来源单据编号 --> <el-input
v-model="queryParams.sourceDocType"
placeholder="请输入来源单据类型"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="来源单据编号" prop="sourceDocCode">
<el-input
v-model="queryParams.sourceDocCode"
placeholder="请输入来源单据编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="产品物料" prop="itemId"> <el-form-item label="产品物料" prop="itemId">
<MdItemSelect <MdItemSelect
v-model="queryParams.itemId" v-model="queryParams.itemId"
@ -28,10 +44,10 @@
class="!w-240px" class="!w-240px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="退货类型" prop="rqcType"> <el-form-item label="检验类型" prop="rqcType">
<el-select <el-select
v-model="queryParams.rqcType" v-model="queryParams.rqcType"
placeholder="请选择退货类型" placeholder="请选择检验类型"
clearable clearable
class="!w-240px" class="!w-240px"
> >
@ -106,13 +122,14 @@
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true"> <el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="退货检验单编号" align="center" prop="code" width="160" /> <el-table-column label="退货检验单编号" align="center" prop="code" width="160" />
<el-table-column label="退货检验单名称" align="center" prop="name" min-width="180" /> <el-table-column label="退货检验单名称" align="center" prop="name" min-width="180" />
<!-- TODO @AI来源单据类型来源单据编号 --> <el-table-column label="来源单据类型" align="center" prop="sourceDocType" width="120" />
<el-table-column label="来源单据编号" align="center" prop="sourceDocCode" width="140" />
<el-table-column label="产品物料编码" align="center" prop="itemCode" width="130" /> <el-table-column label="产品物料编码" align="center" prop="itemCode" width="130" />
<el-table-column label="产品物料名称" align="center" prop="itemName" min-width="150" /> <el-table-column label="产品物料名称" align="center" prop="itemName" min-width="150" />
<!-- TODO @AI缺规格型号单位 --> <el-table-column label="规格型号" align="center" prop="itemSpecification" width="130" />
<el-table-column label="单位" align="center" prop="unitName" width="80" />
<el-table-column label="批次号" align="center" prop="batchCode" width="130" /> <el-table-column label="批次号" align="center" prop="batchCode" width="130" />
<!-- TODO @AI应该是 检验类型 --> <el-table-column label="检验类型" align="center" prop="rqcType" width="100">
<el-table-column label="退货类型" align="center" prop="rqcType" width="100">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.MES_RQC_TYPE" :value="scope.row.rqcType" /> <dict-tag :type="DICT_TYPE.MES_RQC_TYPE" :value="scope.row.rqcType" />
</template> </template>
@ -211,6 +228,8 @@ const queryParams = reactive({
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
code: undefined, code: undefined,
sourceDocType: undefined,
sourceDocCode: undefined,
itemId: undefined, itemId: undefined,
rqcType: undefined, rqcType: undefined,
checkResult: undefined, checkResult: undefined,