质量模块

This commit is contained in:
2024-12-31 08:41:57 +08:00
parent 96b5e6c7ff
commit 39d82514d5
3 changed files with 80 additions and 52 deletions

View File

@@ -8,7 +8,7 @@ export function UpdateDefectNum(query) {
return request({
url: 'mes/qualityManagement/FQC/QcFinishedproductDefect/update_defect_num',
method: 'get',
params: query,
params: query
})
}
@@ -20,6 +20,18 @@ export function SearchDefectList(query) {
return request({
url: 'mes/qualityManagement/FQC/QcFinishedproductDefect/search_defects',
method: 'get',
params: query,
params: query
})
}
/**
* 分页查询缺陷统计
* @param {查询条件} data
*/
export function SearchDefectStatisticsPage(data) {
return request({
url: 'mes/qualityManagement/FQC/QcFinishedproductDefect/search_defect_Statistics_page',
method: 'post',
data: data
})
}

View File

@@ -4,17 +4,21 @@
<el-form-item label="工单号" prop="workorder">
<el-input v-model="queryParams.workorder" placeholder="请输入工单号" />
</el-form-item>
<el-form-item label="组别" prop="groupCode">
<el-input v-model="queryParams.groupCode" placeholder="请输入组别" />
<el-form-item label="主体品名" prop="productionName">
<el-input v-model="queryParams.productionName" placeholder="请输入主体品名" />
</el-form-item>
<el-form-item label="主体型号" prop="productionCode">
<el-input v-model="queryParams.productionCode" placeholder="请输入主体型号" />
</el-form-item>
<el-form-item label="检查人" prop="checkName">
<el-input v-model="queryParams.checkName" placeholder="请输入检查人" />
</el-form-item>
<el-form-item label="缺陷项" prop="defectName">
<el-input v-model="queryParams.defectName" placeholder="请输入缺陷项" />
</el-form-item>
<el-form-item label="线别" prop="lineCode">
<el-input v-model="queryParams.lineCode" placeholder="请输入线别" />
</el-form-item>
<el-form-item label="筛选日期" prop="timeRange">
<el-date-picker v-model="queryParams.timeRange" type="daterange" range-separator="到"
<el-form-item label="筛选日期" prop="searchDateTime">
<el-date-picker v-model="queryParams.searchDateTime" type="daterange" range-separator="到"
start-placeholder="开始时间" end-placeholder="结束时间" placeholder="请选择日期区间" />
</el-form-item>
<el-form-item>
@@ -35,34 +39,17 @@
<el-table :data="dataList" v-loading="loading" ref="table" border header-cell-class-name="el-table-header-cell"
highlight-current-row @sort-change="sortChange">
<el-table-column type="index" width="50" align="center" />
<el-table-column prop="workorder" label="工单号" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('workorder')" />
<el-table-column prop="lineCode" label="线别" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('lineCode')" />
<el-table-column prop="groupCode" label="组别" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('groupCode')" />
<el-table-column prop="dispatchNum" label="计划数量" align="center" v-if="columns.showColumn('dispatchNum')" />
<el-table-column prop="finishedNum" label="实际数量" align="center" v-if="columns.showColumn('finishedNum')" />
<el-table-column label="缺陷描述" width="100" align="center">
<el-table-column prop="workorder" label="工单号" align="center" />
<el-table-column prop="productionName" label="主体品名" />
<el-table-column prop="productionCode" label="主体型号" />
<el-table-column prop="finishedNum" label="检查数" align="center" />
<el-table-column prop="qualifiedNum" label="检查合格数" align="center" />
<el-table-column prop="defectAllNum" label="不良数" align="center" />
<el-table-column label="不良详情" width="120" align="center">
<template #default="scope">
<el-button text bg type="success" size="small" @click="showDefectDialog(scope.row)">缺陷查看</el-button>
<el-button text bg type="success" size="small" @click="showDefectDialog(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="qualifiedNumber" label="合格数" align="center"
v-if="columns.showColumn('qualifiedNumber')" />
<el-table-column prop="unqualifiedNumber" label="不合格数" align="center"
v-if="columns.showColumn('unqualifiedNumber')" />
<el-table-column prop="reworkNumber" label="返工数" align="center" v-if="columns.showColumn('reworkNumber')" />
<el-table-column prop="scrapNumber" label="报废数" align="center" v-if="columns.showColumn('scrapNumber')" />
<el-table-column prop="remark" label="备注" align="center" v-if="columns.showColumn('remark')" />
<el-table-column prop="createdBy" label="创建人" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('createdBy')" />
<el-table-column prop="createdTime" label="创建时间" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('createdTime')" />
<el-table-column prop="updatedBy" label="更新人" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('updatedBy')" />
<el-table-column prop="updatedTime" label="更新时间" align="center" :show-overflow-tooltip="true"
v-if="columns.showColumn('updatedTime')" />
<!-- <el-table-column label="操作" width="200" align="center">
<template #default="scope">
<el-button type="success" size="small" icon="edit" title="编辑" v-hasPermi="['productManagement:proreportwork:edit']" @click="handleUpdate(scope.row)"></el-button>
@@ -144,8 +131,9 @@
<el-col :span="10">
<div class="grid-content ep-bg-purple" />
<el-table height="500px" v-loading="defectLoading" :data="defectList" border highlight-current-row>
<el-table-column prop="name" label="缺陷项" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="defectName" label="缺陷项" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="number" label="缺陷数" align="center" :show-overflow-tooltip="true" />
<el-table-column prop="checkName" label="检查人" align="center" :show-overflow-tooltip="true" />
</el-table>
</el-col>
<el-col :span="14">
@@ -156,17 +144,20 @@
</div>
</template>
<script setup name="proreportwork">
<script setup name="fqc">
import { SearchDefectStatisticsPage } from '@/api/qualityManagement/FQC/QcFinishedproductDefect.js'
import { listProReportwork, addProReportwork, delProReportwork, updateProReportwork, getProReportwork } from '@/api/productManagement/proreportwork.js'
const { proxy } = getCurrentInstance()
const ids = ref([])
const loading = ref(false)
const showSearch = ref(true)
const queryParams = reactive({
timeRange: [proxy.dayjs(), proxy.dayjs()],
searchDateTime: [proxy.dayjs(), proxy.dayjs()],
workorder: '',
groupCode: '',
lineCode: '',
checkName: '',
defectName: '',
pageNum: 1,
pageSize: 10,
sort: '',
@@ -199,7 +190,7 @@ var dictParams = []
function getList() {
loading.value = true
listProReportwork(queryParams).then((res) => {
SearchDefectStatisticsPage(queryParams).then((res) => {
const { code, data } = res
if (code == 200) {
dataList.value = data.result
@@ -428,7 +419,7 @@ function initPieChart() {
function getDefectEchartsData(defectList) {
const defectData = defectList.map((item) => {
return {
name: item.name,
name: item.defectName,
value: item.number
}
})

View File

@@ -12,13 +12,15 @@
<v-fade-transition>
<v-tabs-window v-model="tab">
<v-tabs-window-item value="1">
<v-text-field class="bg-green-darken-2 mb-2" label="检查员"
v-model="checkName"></v-text-field>
<v-btn class="bg-green-darken-3 mb-2" size="x-large" @click="getFormDefectData()">
刷新
</v-btn>
<v-btn class="bg-green-darken-3 mb-2 ml-2" size="x-large"
<!-- <v-btn class="bg-green-darken-3 mb-2 ml-2" size="x-large"
@click="getFormDefectData()">
生成入库检查记录表
</v-btn>
</v-btn> -->
<el-row :gutter="5">
<el-col :span="24" v-for="(value, key) in qualityOptions" :key="key">
@@ -115,7 +117,7 @@
</template>
</v-card>
</v-dialog>
<!-- 工单报工 -->
<!-- 修改缺陷项 -->
<el-dialog class="dialogBox" v-model.sync="updateDialogShow" title="缺陷项修改" width="400px" append-to-body
:close-on-click-modal="false">
<el-form label-width="auto">
@@ -206,7 +208,7 @@ function getFormDefectData(workorder) {
/// ==================== 缺陷配置 =========================
const checkName = ref('')
const qualityLoading = ref(false)
const qualityOptionsClear = ref([])
const qualityOptions = ref([])
@@ -297,15 +299,23 @@ function clickQualityIte(item) {
if (workOrder === null || workOrder === '') {
dialog.show = true
dialog.class = 'bg-amber'
dialog.title = '工单提示'
dialog.title = '工单未选择提示'
dialog.text = '请先扫描工单!'
return
}
if (checkName.value === null || checkName.value === '') {
dialog.show = true
dialog.class = 'bg-amber'
dialog.title = '检查员未填写提示'
dialog.text = '请先扫描检查员!'
return
}
const newNum = getClickItemNum(item) + 1
const params = {
WorkOrder: formData.value.workorder,
DefectCode: item.code,
num: item.num ?? 0,
checkName: checkName.value
}
FQCApi.AddDefectNum(params).then((res) => {
if (res.code != 200) {
@@ -329,6 +339,13 @@ function showUpdateDialog(item) {
dialog.text = '请先扫描或选择工单!'
return
}
if (checkName.value === null || checkName.value === '') {
dialog.show = true
dialog.class = 'bg-amber'
dialog.title = '检查员未填写提示'
dialog.text = '请先扫描检查员!'
return
}
updateName.value = item.name
updateCode.value = item.code
updateNum.value = item.num ?? 0
@@ -347,10 +364,18 @@ function updateDefectNum() {
dialog.text = '请先扫描或选择工单!'
return
}
if (checkName.value === null || checkName.value === '') {
dialog.show = true
dialog.class = 'bg-amber'
dialog.title = '检查员未填写提示'
dialog.text = '请先扫描检查员!'
return
}
const params = {
WorkOrder: formData.value.workorder,
DefectCode: updateCode.value,
num: updateNum.value,
checkName: checkName.value
}
FQCApi.UpdateDefectNum(params).then((res) => {
if (res.code === 200) {