feat:新增返工统计页面,车间库存检验统计

This commit is contained in:
shijing 2024-11-25 17:24:10 +08:00
parent a4eeb13b2f
commit 63c7929ea3
3 changed files with 418 additions and 0 deletions

View File

@ -3359,6 +3359,17 @@ const routes = [
},
component: "statistics/statistics_inm.vue",
},
//返工统计——光芯
{
path: "/rework_gx",
name: "rework_gx",
meta: {
title: "返工统计",
icon: "el-icon-trend-charts",
perms: ["rework_gx"],
},
component: "statistics/rework_gx.vue",
},
//过程检验统计——光芯
{
path: "/process_check_gx",
@ -3381,6 +3392,17 @@ const routes = [
},
component: "statistics/good_check_gx.vue",
},
//成品检验记录——光芯
{
path: "/check_record_gx",
name: "check_record_gx",
meta: {
title: "成品检验记录",
icon: "el-icon-trend-charts",
perms: ["check_record_gx"],
},
component: "statistics/check_record_gx.vue",
},
//扫边车间数据汇总——光芯
// {
// path: "/statistics_saobian",

View File

@ -0,0 +1,248 @@
<template>
<el-container>
<el-header>
<div class="right-panel">
<!-- 检验类型 -->
<el-select
v-model="query.process_name"
placeholder="检验类型"
@change="handleQuery">
<el-option
v-for="item in options"
:key="item.value"
:label="item.name"
:value="item.value"
>
</el-option>
</el-select>
<el-input
v-model="query.batch"
placeholder="批次号"
clearable
style="width: 150px"
></el-input>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
<el-button @click="handleExport" type="primary">导出</el-button>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
:query="query"
id="exportDiv"
stripe
hideDo
hidePagination
>
<el-table-column type="index" width="50" />
<el-table-column label="物料名" prop="material_name"></el-table-column>
<el-table-column label="检验类型" width="80">
<template #default="scope">
<el-tag v-if="scope.row.type2 == 20" type="success">全检</el-tag>
<el-tag v-else-if="scope.row.type2 == 10" type="primary">抽检</el-tag>
</template>
</el-table-column>
<el-table-column label="批次号" prop="batch"></el-table-column>
<el-table-column label="检验日期" prop="test_date"></el-table-column>
<el-table-column label="检验数">
<template #default="scope">
<span v-if="scope.row.type2 == 10">{{ scope.row.count_sampling }}</span>
<span v-else>{{ scope.row.count }}</span>
</template>
</el-table-column>
<el-table-column label="合格数">
<template #default="scope">
<span v-if="scope.row.type2 == 10">{{ scope.row.count_sampling_ok }}</span>
<span v-else>{{ scope.row.count_ok }}</span>
</template>
</el-table-column>
<el-table-column label="B类合格" align="center" v-if="query.process_name == '一次超洗'">
<el-table-column label="准合格" prop="count_n_zhg"></el-table-column>
<el-table-column label="圆度准合格" prop="count_n_yz"></el-table-column>
</el-table-column>
<el-table-column label="B类合格" align="center" v-else>
<el-table-column label="浅水纹" prop="count_n_qsw"></el-table-column>
<el-table-column label="小崩边" prop="count_n_xbb"></el-table-column>
<el-table-column label="浅划麻" prop="count_n_qhm"></el-table-column>
</el-table-column>
<el-table-column label="不合格数" align="center" v-if="query.process_name == '一次超洗'">
<el-table-column label="黑圈内径">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_hqnj }}
</template>
</el-table-column>
<el-table-column label="黑圈内径圆度">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_hqnjyd }}
</template>
</el-table-column>
<el-table-column label="黑圈外径">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_hqwj }}
</template>
</el-table-column>
<el-table-column label="黑圈外径圆度">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_hqwjyd }}
</template>
</el-table-column>
<el-table-column label="产品外径">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_wj }}
</template>
</el-table-column>
<el-table-column label="产品圆度">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_yd }}
</template>
</el-table-column>
<el-table-column label="产品同心度">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_txd }}
</template>
</el-table-column>
<el-table-column label="厚度">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_hd }}
</template>
</el-table-column>
<el-table-column label="其他">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_qt }}
</template>
</el-table-column>
<el-table-column label="合计" prop="count_notok"></el-table-column>
</el-table-column>
<el-table-column label="不合格数" align="center" v-else>
<el-table-column label="返修">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_fx }}
</template>
</el-table-column>
<el-table-column label="脏">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_z }}
</template>
</el-table-column>
<el-table-column label="气泡">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_qp }}
</template>
</el-table-column>
<el-table-column label="黑圈变形">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_hqbx }}
</template>
</el-table-column>
<el-table-column label="双面划麻">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_md }}
</template>
</el-table-column>
<el-table-column label="重水纹">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_swen }}
</template>
</el-table-column>
<el-table-column label="棕边/点">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_zb }}
</template>
</el-table-column>
<el-table-column label="倒角">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_dj }}
</template>
</el-table-column>
<el-table-column label="大崩">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_bb }}
</template>
</el-table-column>
<el-table-column label="棕圈">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_zq }}
</template>
</el-table-column>
<el-table-column label="蓝圈">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_lq }}
</template>
</el-table-column>
<el-table-column label="破损">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_ps }}
</template>
</el-table-column>
<el-table-column label="漏光">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_lg }}
</template>
</el-table-column>
<el-table-column label="尺寸小">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_ccx }}
</template>
</el-table-column>
<el-table-column label="其他">
<template #default="scope">
{{ scope.row.count_notok_json.count_n_qt }}
</template>
</el-table-column>
<el-table-column label="合计" prop="count_notok"></el-table-column>
</el-table-column>
</scTable>
</el-main>
</el-container>
</template>
<script>
export default {
name: "chart",
data() {
return {
query:{
process_name:'一次超洗',
},
currentDate: "",
tableData: [],
options:[
{name:'外观',value:'一次超洗'},
{name:'尺寸',value:'二次超洗'}
],
userOptions:[],
shiftOptions:[],
apiObj : this.$API.qm.ftestwork.list
};
},
mounted() {},
methods: {
// processChange(){
// this.$refs.table.queryData(this.query);
// },
handleQuery() {
this.$refs.table.queryData(this.query);
},
handleExport() {
this.exportLoading = true;
this.$XLSX("#exportDiv", "成品检验统计");
this.exportLoading = false;
},
},
};
</script>
<style scoped>
.tables {
position: absolute;
top: 4px;
right: 6px;
z-index: 10;
}
</style>

View File

@ -0,0 +1,148 @@
<template>
<el-container>
<el-header>
<div class="right-panel">
<el-select
v-model="query.mgroup"
placeholder="工段"
@change="handleQuery">
<el-option
v-for="item in options"
:key="item.id"
:label="item.name"
:value="item.id"
>
</el-option>
</el-select>
<el-date-picker
v-model="query.handle_date"
type="date"
placeholder="处理日期"
value-format="YYYY-MM-DD"
style="width: 160px"
>
</el-date-picker>
<el-button
type="primary"
icon="el-icon-search"
@click="handleQuery"
></el-button>
</div>
<el-button @click="handleExport" type="primary">导出</el-button>
</el-header>
<el-main class="nopadding">
<scTable
ref="table"
:apiObj="apiObj"
row-key="id"
:params="params"
:query="query"
>
<el-table-column
label="#"
type="index"
width="50"
></el-table-column>
<el-table-column
label="工艺路线"
prop="material_out_name"
min-width="130"
>
</el-table-column>
<el-table-column
label="生产设备"
prop="equipment_name"
min-width="150"
></el-table-column>
<el-table-column label="进度" prop="belong_dept_name" v-if="mgroupName=='黑化'||mgroupName=='退火'">
<template #default="scope">
<el-progress id="progressbwlq" :percentage="customMethod(scope.row,1)" :stroke-width="20" :color="customMethod(scope.row,2)" :text-inside="true"><span>{{customMethod(scope.row,3)}}</span></el-progress>
</template>
</el-table-column>
<el-table-column
label="部门/工段"
prop="belong_dept_name"
>
<template #default="scope">
{{scope.row.belong_dept_name}}/{{scope.row.mgroup_name}}
</template>
</el-table-column>
<el-table-column
label="处理人"
prop="handle_user_name"
width="80"
></el-table-column>
<el-table-column label="保温剩余时间" v-if="mgroupName=='黑化'||mgroupName=='退火'">
<template #default="scope">
{{ getRemaTime(scope.row) }}
</template>
</el-table-column>
<el-table-column
label="开始时间"
prop="work_start_time"
></el-table-column>
<el-table-column
label="结束时间"
prop="work_end_time"
></el-table-column>
<el-table-column
label="提交时间"
prop="submit_time"
></el-table-column>
</scTable>
</el-main>
</el-container>
</template>
<script>
export default {
name: "chart",
data() {
return {
params:{
wm_in_state:30,
mlog_submit_time_isnull:0,
},
query:{
mgroup:'',
handle_date:'',
},
currentDate: "",
tableData: [],
options:[],
apiObj : this.$API.wpm.mlog.list
};
},
mounted() {
this.getMgroupOptions();
},
methods: {
getMgroupOptions(){
let that = this;
that.$API.mtm.mgroup.list.req({page:0}).then(res=>{
that.options = res;
})
},
// processChange(){
// this.$refs.table.queryData(this.query);
// },
handleQuery() {
this.$refs.table.queryData(this.query);
},
handleExport() {
this.exportLoading = true;
this.$XLSX("#exportDiv", "成品检验统计");
this.exportLoading = false;
},
},
};
</script>
<style scoped>
.tables {
position: absolute;
top: 4px;
right: 6px;
z-index: 10;
}
</style>