This commit is contained in:
2024-06-07 11:10:00 +08:00
parent a6f6baa6c9
commit ee3233f627
2 changed files with 321 additions and 34 deletions

View File

@@ -446,7 +446,7 @@
</el-button-group>
</div>
<el-button type="success" size="medium" @click="setWorkOrderStartTime">同步开始时间</el-button>
<el-button type="primary" size="medium" @click="workOrderCompleted">本工单完成</el-button>
<el-button type="primary" size="medium" @click="workOrderCompleted">首检完成</el-button>
<table>
<tr>
<td>产品描述</td>
@@ -497,6 +497,86 @@
</el-card>
</div>
</div>
<!-- 额外数据区域 -->
<div style="width: 66%;margin-top: 10px;">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="title">工单数据看板</span>
<el-button style="float: right;" icon="el-icon-refresh" @click="handlerSyncDataBoard(CurrentWorkorder.clientWorkorder)">刷新</el-button>
</div>
<el-descriptions style="font-size: 18px;" :column="6" border>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-tickets"></i>
工单号
</template>
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderId}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
工单位置
</template>
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderIndex} / ${workOrderBoardData.workOrderDayListCount} `}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-finished"></i>
已完成
</template>
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderFinishNum}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-close"></i>
未完成
</template>
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishNum}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-printer"></i>
待打标签
</template>
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderFinishPackageNum} / ${workOrderBoardData.workOrderPackageCount} `}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-printer"></i>
未打标签
</template>
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishPackageNum}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content2">
<template slot="label">
<i class="el-icon-tickets"></i>
上一个工单
</template>
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderId}}</span>
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-printer"></i>
待打标签
</template>
<span v-if="workOrderBoardData.lastWorkOrderId">{{` ${workOrderBoardData.lastWorkOrderFinishPackageNum} / ${workOrderBoardData.lastWorkOrderPackageCount} `}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content2">
<template slot="label">
<i class="el-icon-printer"></i>
未打标签
</template>
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderNotFinishPackageNum}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content3">
<template slot="label">
<i class="el-icon-time"></i>
数据更新时间
</template>
<span>{{workOrderBoardData.updatedTime}}</span>
</el-descriptions-item>
</el-descriptions>
</el-card>
</div>
<el-dialog title="修改" :visible.sync="DMLdialog.visiable" width="600px" append-to-body>
<el-input-number v-model="toUpdateNum" label="修改"></el-input-number>
@@ -519,6 +599,10 @@
writeProcessFlow_first,
GetQcQualityStatisticsFirstStartTime,
} from '@/api/qualityManagement/firstFQC.js'
import {
CheckWorkOrderInDayListNum,
GetWorkOrderBoardData
} from '@/api/qualityManagement/commonFQC.js';
import { mapState, mapGetters, mapMutations, mapActions } from 'vuex'
export default {
name: 'firstFQC',
@@ -549,6 +633,8 @@
},
// 工单开始时间
workOrderStartTime: "",
workOrderChart: [0, 0, 0, 0],
workOrderBoardData: {},
toUpdateNum: 0, //弹窗更新值
toname: '',
toindex: 0, //索引
@@ -560,21 +646,13 @@
created() {
this.initMqtt();
this.getcurrentWorkorder()
this.startTimer();
},
watch: {
'CurrentWorkorder.clientWorkorder'(newValue, oldValue) {
if (newValue == null) {
this.workOrderStartTime = "";
return;
}
const data = {
workOrderId: newValue
}
GetQcQualityStatisticsFirstStartTime(data).then(res => {
if (res.code === 200) {
this.workOrderStartTime = res.data;
}
})
this.getWorkOrderStartTime(newValue);
// this.getWorkOrderInDayListNum(newValue);
this.handlerSyncDataBoard(newValue);
}
},
mounted() {},
@@ -999,8 +1077,8 @@
startTimer() {
this.timer = setInterval(() => {
//this.getcurrentWorkorder()
}, 4000)
this.handlerSyncDataBoard(this.CurrentWorkorder.clientWorkorder);
}, 5000)
},
stopTimer() {
clearInterval(this.timer)
@@ -1143,6 +1221,58 @@
}
this.mqttClient.publish(topic.NowOrderRetain, emqxUtil.stringJSON(message), options, () => {});
}
},
// 获取开始时间
getWorkOrderStartTime(workOrderId) {
if (workOrderId == null) {
this.workOrderStartTime = "";
return;
}
const data = {
workOrderId: workOrderId
}
GetQcQualityStatisticsFirstStartTime(data).then(res => {
if (res.code === 200) {
this.workOrderStartTime = res.data;
}
})
},
// 获取工单状态
getWorkOrderInDayListNum(workOrderId) {
if (workOrderId == null) {
this.workOrderChart = [0, 0, 0, 0];
return;
}
const queryData = {
workOrderId: workOrderId
}
CheckWorkOrderInDayListNum(queryData).then(res => {
if (res.code === 200) {
this.workOrderChart = res.data;
}
})
},
// 数据看板同步
handlerSyncDataBoard(workOrderId) {
let queryData = {
workOrderId: workOrderId
}
if (workOrderId === null || workOrderId === undefined ) {
queryData.workOrderId = this.CurrentWorkorder.clientWorkorder
}
if (queryData.workOrderId === null || workOrderId === undefined) {
this.workOrderBoardData = {};
return;
}
GetWorkOrderBoardData(queryData).then(res => {
if (res.code === 200) {
if (res.data === null) {
this.workOrderBoardData = {};
return;
}
this.workOrderBoardData = res.data;
}
})
}
},
// 退出页面
@@ -1152,8 +1282,19 @@
},
}
</script>
<style lang="scss" scoped>
.my_content{
background: #ffff00;
}
.my-content1{
background: #f0f9eb;
}
.my-content2{
background: #f4f4f5;
}
.my-content3{
background: #d9ecff;
}
.dataStatistics {
.title {
font-size: 1.2rem;

View File

@@ -449,7 +449,15 @@
<div>
<el-card class="box-card dataStatistics">
<div slot="header" class="clearfix">
<span class="title">工单号:{{ CurrentWorkorder.clientWorkorder }}</span>
<span class="title">
工单号:{{ CurrentWorkorder.clientWorkorder }}
</span>
<span style="margin-left: 10px;">
<el-tag v-if="workOrderInListStatus === 0" type="primary" effect="dark">前边无未完成工单</el-tag>
<el-tag v-if="workOrderInListStatus === 1" type="danger" effect="dark">前边有未完成工单</el-tag>
<el-tag v-if="workOrderInListStatus === 2" type="warning" effect="dark">首个工单</el-tag>
<el-tag v-if="workOrderInListStatus === 3" type="success" effect="dark">最后一个工单</el-tag>
</span>
<el-button-group style="float: right">
<el-button type="primary" size="mini" @click="getNext_current_workorder">下一个工单<i class="el-icon-arrow-right el-icon--right"></i></el-button>
<el-button type="primary" icon="el-icon-arrow-left" size="mini" @click="getPrevious_current_workorder">上一个工单</el-button>
@@ -506,7 +514,86 @@
</el-card>
</div>
</div>
<!-- 额外数据区域 -->
<div style="width: 50%;margin-top: 10px;">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="title">工单数据看板</span>
<el-button style="float: right;" icon="el-icon-refresh" @click="handlerSyncDataBoard(CurrentWorkorder.clientWorkorder)">刷新</el-button>
</div>
<el-descriptions style="font-size: 18px;" :column="6" border>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-tickets"></i>
工单号
</template>
<span v-if="workOrderBoardData" >{{workOrderBoardData.workOrderId}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
工单位置
</template>
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderIndex} / ${workOrderBoardData.workOrderDayListCount} `}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-finished"></i>
已完成
</template>
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderFinishNum}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-close"></i>
未完成
</template>
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishNum}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-printer"></i>
待打
</template>
<span v-if="workOrderBoardData">{{` ${workOrderBoardData.workOrderFinishPackageNum} / ${workOrderBoardData.workOrderPackageCount} `}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content1">
<template slot="label">
<i class="el-icon-printer"></i>
未打
</template>
<span v-if="workOrderBoardData">{{workOrderBoardData.workOrderNotFinishPackageNum}}</span>
</el-descriptions-item >
<el-descriptions-item content-class-name="my-content2">
<template slot="label">
<i class="el-icon-tickets"></i>
上个工单
</template>
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderId}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content2">
<template slot="label">
<i class="el-icon-printer"></i>
待打
</template>
<span v-if="workOrderBoardData.lastWorkOrderId">{{` ${workOrderBoardData.lastWorkOrderFinishPackageNum} / ${workOrderBoardData.lastWorkOrderPackageCount} `}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content2">
<template slot="label">
<i class="el-icon-printer"></i>
未打
</template>
<span v-if="workOrderBoardData.lastWorkOrderId">{{workOrderBoardData.lastWorkOrderNotFinishPackageNum}}</span>
</el-descriptions-item>
<el-descriptions-item content-class-name="my-content3">
<template slot="label">
<i class="el-icon-time"></i>
更新时间
</template>
<span>{{workOrderBoardData.updatedTime}}</span>
</el-descriptions-item>
</el-descriptions>
</el-card>
</div>
<el-dialog title="修改" :visible.sync="DMLdialog.visiable" width="600px" append-to-body>
<el-input-number v-model="toUpdateNum" label="修改"></el-input-number>
<div slot="footer" class="dialog-footer">
@@ -531,6 +618,11 @@
generateQualityStatisticsTable,
} from '@/api/qualityManagement/thirtyFQC.js';
import {
CheckPackageWorkOrderStatus,
CheckPackageWorkOrderInListStatus,
GetWorkOrderBoardData
} from '@/api/qualityManagement/commonFQC.js';
import {
GetQcQualityStatisticsFirstStartTime,
} from '@/api/qualityManagement/firstFQC.js'
@@ -565,6 +657,9 @@
},
// 工单开始时间
workOrderStartTime: "",
workOrderStatus: -1,
workOrderInListStatus: -1,
workOrderBoardData: {},
toUpdateNum: 0, //弹窗更新值
toname: '',
toindex: 0, //索引
@@ -576,26 +671,16 @@
created() {
this.initMqtt();
this.getcurrentWorkorder()
// this.startTimer()
this.startTimer()
},
mounted() {},
watch: {
// 工单变动
'CurrentWorkorder.clientWorkorder'(newValue, oldValue) {
this.showBigImageView();
if (newValue == null) {
this.workOrderStartTime = "";
return;
}
const data = {
workOrderId: newValue
}
GetQcQualityStatisticsFirstStartTime(data).then(res => {
if (res.code === 200) {
this.workOrderStartTime = res.data;
}
})
this.getWorkOrderStartTime(newValue);
this.getWorkOrderList(newValue);
this.handlerSyncDataBoard(newValue);
}
},
@@ -1008,9 +1093,9 @@
this.CurrentWorkorder.previousNumber = res.data
}
})
this.handlerSyncDataBoard(this.CurrentWorkorder.clientWorkorder);
//this.getcurrentWorkorder()
}, 4000)
}, 5000)
},
stopTimer() {
clearInterval(this.timer)
@@ -1144,6 +1229,58 @@
})
},
// 获取开始时间
getWorkOrderStartTime(workOrderId) {
if (workOrderId == null) {
this.workOrderStartTime = "";
return;
}
const data = {
workOrderId: workOrderId
}
GetQcQualityStatisticsFirstStartTime(data).then(res => {
if (res.code === 200) {
this.workOrderStartTime = res.data;
}
})
},
// 获取工单在工单列表中的状态
getWorkOrderList(workOrderId) {
if (workOrderId == null) {
this.workOrderInListStatus = -1;
return;
}
const queryData = {
workOrderId: workOrderId
}
CheckPackageWorkOrderInListStatus(queryData).then(res => {
if (res.code === 200) {
this.workOrderInListStatus = res.data;
}
})
},
// 数据看板同步
handlerSyncDataBoard(workOrderId) {
let queryData = {
workOrderId: workOrderId
}
if (workOrderId === null || workOrderId === undefined) {
queryData.workOrderId = this.CurrentWorkorder.clientWorkorder
}
if (queryData.workOrderId === null || workOrderId === undefined) {
this.workOrderBoardData = {};
return;
}
GetWorkOrderBoardData(queryData).then(res => {
if (res.code === 200) {
if (res.data === null) {
this.workOrderBoardData = {};
return;
}
this.workOrderBoardData = res.data;
}
})
}
},
// 退出后关闭计时器
beforeDestroy() {
@@ -1156,6 +1293,15 @@
</script>
<style lang="scss" scoped>
.my-content1{
background: #f0f9eb;
}
.my-content2{
background: #f4f4f5;
}
.my-content3{
background: #d9ecff;
}
.dataStatistics {
.title {
font-size: 1.2rem;