This commit is contained in:
2024-03-04 17:11:48 +08:00
parent 814b747fdd
commit bf15818020
3 changed files with 187 additions and 297 deletions

View File

@@ -4,4 +4,4 @@ import {post} from '@js/http.js'
export const cockpitpress = (id) => post('api/cockpit/press', {}) export const cockpitpress = (id) => post('api/cockpit/press', {})
/** 分拣作业监控 */ /** 分拣作业监控 */
export const sortProductionMonitor = (id) => post('api/cockpit/sortProductionMonitor', {}) export const cockpitsorting = (id) => post('api/cockpit/sorting', {})

View File

@@ -215,254 +215,138 @@ export const cockpitpress = () => {
} }
/** 分拣作业监控 */ /** 分拣作业监控 */
export const sortProductionMonitor = () => { export const cockpitsorting = () => {
let res = { let res = {
// 当前工单信息 'sortingLine': [
'current': {
// 物料
'materialName': '转炉镁碳砖MASC-65鞍钢Z01',
// 当前工单
'workOrderCode': '230919001',
// 数量
'qty': '10000块',
// 重量
'weight': '10.00吨',
// 是否留有半托
'hasHalf': '否',
// 订单号
'orderCode': '',
// 规格
'spec': '11/11',
// 托盘类型
'vehicleType': '一类木托盘',
// 客户
'customer': '客户'
},
// 已拆垛
'depalletize': {
// 未完成
'uncompleted': 10000,
// 已完成
'completed': 0
},
// 已码垛
'palletize': {
// 未完成
'uncompleted': 50,
// 已完成
'completed': 50
},
// 已拆垛信息
'depalletizedVehicle': [
{ {
// 物料 'workorderCode': '240119006',
'materialName': '紫铜弯通连接帽CGM11', 'pointName': '分拣拆垛机械手01',
// 时间 'customer': '实业股份',
'datetime': '2023-09-14 14:23:57', 'materialName': '004',
// 数量 'materialSpec': 'ZX',
'qty': '18块', 'planQty': '500',
// 托盘号 'realQty': '200'
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
}, },
{ {
// 物料 'workorderCode': '240228001',
'materialName': '紫铜弯通连接帽CGM22', 'pointName': '分拣拆垛机械手02',
// 时间 'customer': '实业股份',
'datetime': '2023-09-14 14:23:57', 'materialName': '004',
// 数量 'materialSpec': 'ZX',
'qty': '18块', 'planQty': '1000',
// 托盘号 'realQty': '0'
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
}, },
{ {
// 物料 'workorderCode': '240228002',
'materialName': '紫铜弯通连接帽CGM33', 'pointName': '人工分拣拆01',
// 时间 'customer': '沙湾',
'datetime': '2023-09-14 14:23:57', 'materialName': '004',
// 数量 'materialSpec': 'ZX',
'qty': '18块', 'planQty': '500',
// 托盘号 'realQty': '0'
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
},
{
// 物料
'materialName': '紫铜弯通连接帽CGM44',
// 时间
'datetime': '2023-09-14 14:23:57',
// 数量
'qty': '18块',
// 托盘号
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
},
{
// 物料
'materialName': '紫铜弯通连接帽CGM55',
// 时间
'datetime': '2023-09-14 14:23:57',
// 数量
'qty': '18块',
// 托盘号
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
} }
], ],
// 已码垛信息 'unstackingList': [
'palletizedVehicle': [
{ {
// 物料 'vehicleCode': '0014',
'materialName': '紫铜弯通连接帽CGM11', 'materialQty': '0',
// 时间 'materialWeight': '0.00',
'datetime': '2023-09-14 14:23:57', 'materialName': '004',
// 数量 'createTime': '03-04 16:13:37'
'qty': '18块',
// 托盘号
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
}, },
{ {
// 物料 'vehicleCode': '0005',
'materialName': '紫铜弯通连接帽CGM22', 'materialQty': '252',
// 时间 'materialWeight': '0.00',
'datetime': '2023-09-14 14:23:57', 'materialName': '004',
// 数量 'createTime': '03-04 15:22:50'
'qty': '18块',
// 托盘号
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
}, },
{ {
// 物料 'vehicleCode': '0040',
'materialName': '紫铜弯通连接帽CGM33', 'materialQty': '126',
// 时间 'materialWeight': '0.00',
'datetime': '2023-09-14 14:23:57', 'materialName': '004',
// 数量 'createTime': '03-04 14:42:00'
'qty': '18块',
// 托盘号
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
}, },
{ {
// 物料 'vehicleCode': '0050',
'materialName': '紫铜弯通连接帽CGM44', 'materialQty': '0',
// 时间 'materialWeight': '0.00',
'datetime': '2023-09-14 14:23:57', 'materialName': '004',
// 数量 'createTime': '03-04 13:21:53'
'qty': '18块',
// 托盘号
'vehicleCode': 'M0002',
// 重量
'weight': '0.18吨'
}, },
{ {
// 物料 'vehicleCode': '1069',
'materialName': '紫铜弯通连接帽CGM55', 'materialQty': '252',
// 时间 'materialWeight': '0.00',
'datetime': '2023-09-14 14:23:57', 'materialName': null,
// 数量 'createTime': '03-04 13:21:01'
'qty': '18块', },
// 托盘号 {
'vehicleCode': 'M0002', 'vehicleCode': '1066',
// 重量 'materialQty': '0',
'weight': '0.18吨' 'materialWeight': '0.00',
'materialName': '004',
'createTime': '03-04 12:23:39'
},
{
'vehicleCode': '0006',
'materialQty': '0',
'materialWeight': '0.00',
'materialName': '004',
'createTime': '03-04 11:05:11'
},
{
'vehicleCode': '1055',
'materialQty': '0',
'materialWeight': '0.00',
'materialName': '004',
'createTime': '03-04 10:48:18'
},
{
'vehicleCode': '0048',
'materialQty': '0',
'materialWeight': '0.00',
'materialName': '004',
'createTime': '03-04 09:58:48'
},
{
'vehicleCode': '0011',
'materialQty': '0',
'materialWeight': '0.00',
'materialName': '004',
'createTime': '03-04 09:16:21'
},
{
'vehicleCode': '0046',
'materialQty': '0',
'materialWeight': '0.00',
'materialName': '004',
'createTime': '03-04 08:56:25'
} }
], ],
// 剩余工单列表 'lastWorkOrderList': [
'residualWorkOrder': [
{ {
// 物料 'workorderCode': '240119006',
'materialName': '转炉镁碳砖MASC-65鞍钢Z01', 'materialName': '004',
// 当前工单 'materialSpec': 'ZX',
'workOrderCode': '230919001', 'planQty': '500',
// 数量 'planWeight': '0',
'qty': '10000块', 'produceOrder': null,
// 重量 'customer': '实业股份',
'weight': '10.00吨', 'vehicleType': '3',
// 是否留有半托 'createTime': '01-19 18:04:57'
'hasHalf': '否',
// 订单号
'orderCode': '12333',
// 规格
'spec': '11/11',
// 托盘类型
'vehicleType': '一类木托盘',
// 客户
'customer': '客户',
'createTime': '2023-09-14 14:23:57'
}, },
{ {
// 物料 'workorderCode': '240228001',
'materialName': '转炉镁碳砖MASC-65鞍钢Z02', 'materialName': '004',
// 当前工单 'materialSpec': 'ZX',
'workOrderCode': '230919002', 'planQty': '1000',
// 数量 'planWeight': '0',
'qty': '10000块', 'produceOrder': null,
// 重量 'customer': '实业股份',
'weight': '10.00吨', 'vehicleType': '2',
// 是否留有半托 'createTime': '02-28 09:50:48'
'hasHalf': '否',
// 订单号
'orderCode': '12333',
// 规格
'spec': '11/11',
// 托盘类型
'vehicleType': '一类木托盘',
// 客户
'customer': '客户',
'createTime': '2023-09-14 14:23:57'
},
{
// 物料
'materialName': '转炉镁碳砖MASC-65鞍钢Z03',
// 当前工单
'workOrderCode': '230919001',
// 数量
'qty': '10000块',
// 重量
'weight': '10.00吨',
// 是否留有半托
'hasHalf': '否',
// 订单号
'orderCode': '12333',
// 规格
'spec': '11/11',
// 托盘类型
'vehicleType': '一类木托盘',
// 客户
'customer': '客户',
'createTime': '2023-09-14 14:23:57'
},
{
// 物料
'materialName': '转炉镁碳砖MASC-65鞍钢Z04',
// 当前工单
'workOrderCode': '230919002',
// 数量
'qty': '10000块',
// 重量
'weight': '10.00吨',
// 是否留有半托
'hasHalf': '否',
// 订单号
'orderCode': '12333',
// 规格
'spec': '11/11',
// 托盘类型
'vehicleType': '一类木托盘',
// 客户
'customer': '客户',
'createTime': '2023-09-14 14:23:57'
} }
] ]
} }

View File

@@ -6,13 +6,13 @@
<div class="zdy_box"> <div class="zdy_box">
<div class="zero-wrap"> <div class="zero-wrap">
<div class="zero-title"> <div class="zero-title">
<div class="item_tip_left">分拣线1</div> <div class="item_tip_left">{{topSec1.pointName}}</div>
</div> </div>
<div class="zero-title"> <div class="zero-title">
<div class="item_tip_left">分拣线2</div> <div class="item_tip_left">{{topSec2.pointName}}</div>
</div> </div>
<div class="zero-title"> <div class="zero-title">
<div class="item_tip_left">人工分拣线</div> <div class="item_tip_left">{{topSec3.pointName}}</div>
</div> </div>
</div> </div>
<div class="one_wrap"> <div class="one_wrap">
@@ -26,11 +26,11 @@
</div> </div>
</div> </div>
<div class="b-box"> <div class="b-box">
<div class="b-item"><span>当前工单</span><span>GD0000001</span></div> <div class="b-item"><span>当前工单</span><span>{{topSec1.workorderCode}}</span></div>
<div class="b-item"><span>客户</span><span>XXXX有限公司</span></div> <div class="b-item"><span>客户</span><span>{{topSec1.customer}}</span></div>
<div class="b-item"><span>物料</span><span>VOD钢包砖</span></div> <div class="b-item"><span>物料</span><span>{{topSec1.materialName}}</span></div>
<div class="b-item"><span>规格</span><span>200*165/135*100</span></div> <div class="b-item"><span>规格</span><span>{{topSec1.materialSpec}}</span></div>
<div class="b-item"><span>数量</span><span>10000</span></div> <div class="b-item"><span>数量</span><span>{{topSec1.planQty}}</span></div>
</div> </div>
</div> </div>
<div class="e-box"> <div class="e-box">
@@ -43,11 +43,11 @@
</div> </div>
</div> </div>
<div class="b-box"> <div class="b-box">
<div class="b-item"><span>当前工单</span><span>GD0000001</span></div> <div class="b-item"><span>当前工单</span><span>{{topSec2.workorderCode}}</span></div>
<div class="b-item"><span>客户</span><span>XXXX有限公司</span></div> <div class="b-item"><span>客户</span><span>{{topSec2.customer}}</span></div>
<div class="b-item"><span>物料</span><span>VOD钢包砖</span></div> <div class="b-item"><span>物料</span><span>{{topSec2.materialName}}</span></div>
<div class="b-item"><span>规格</span><span>200*165/135*100</span></div> <div class="b-item"><span>规格</span><span>{{topSec2.materialSpec}}</span></div>
<div class="b-item"><span>数量</span><span>10000</span></div> <div class="b-item"><span>数量</span><span>{{topSec2.planQty}}</span></div>
</div> </div>
</div> </div>
<div class="e-box"> <div class="e-box">
@@ -60,11 +60,11 @@
</div> </div>
</div> </div>
<div class="b-box"> <div class="b-box">
<div class="b-item"><span>分拣1</span><span>VOD钢包砖</span></div> <div class="b-item"><span>当前工单</span><span>{{topSec3.workorderCode}}</span></div>
<div class="b-item"><span>分拣2</span><span>VOD钢包砖</span></div> <div class="b-item"><span>客户</span><span>{{topSec3.customer}}</span></div>
<div class="b-item"><span>分拣3</span><span>VOD钢包砖</span></div> <div class="b-item"><span>物料</span><span>{{topSec3.materialName}}</span></div>
<div class="b-item"><span>分拣4</span><span>VOD钢包砖</span></div> <div class="b-item"><span>规格</span><span>{{topSec3.materialSpec}}</span></div>
<div class="b-item"><span>分拣5</span><span>VOD钢包砖</span></div> <div class="b-item"><span>数量</span><span>{{topSec3.planQty}}</span></div>
</div> </div>
</div> </div>
</div> </div>
@@ -84,15 +84,15 @@
<vue-seamless-scroll :data="chaiduoArr" :class-option="defaultOption1"> <vue-seamless-scroll :data="chaiduoArr" :class-option="defaultOption1">
<ul class="scroll-ul_1"> <ul class="scroll-ul_1">
<li v-for="(e, i) in chaiduoArr" :key="i"> <li v-for="(e, i) in chaiduoArr" :key="i">
<span>{{e.datetime}}&nbsp;</span> <span>{{e.createTime}}&nbsp;</span>
<span class="scroll_th">托盘号:</span> <span class="scroll_th">托盘号:</span>
<span>{{ e.vehicleCode }}</span> <span>{{ e.vehicleCode }}</span>
<span class="scroll_th">物料:</span> <span class="scroll_th">物料:</span>
<span>{{ e.materialName }}</span> <span>{{ e.materialName }}</span>
<span class="scroll_th">数量:</span> <span class="scroll_th">数量:</span>
<span>{{ e.qty }}</span> <span>{{ e.materialQty }}</span>
<span class="scroll_th">重量:</span> <span class="scroll_th">重量:</span>
<span>{{ e.weight }}</span> <span>{{ e.materialWeight }}</span>
</li> </li>
</ul> </ul>
</vue-seamless-scroll> </vue-seamless-scroll>
@@ -101,15 +101,15 @@
<vue-seamless-scroll :data="maduoArr" :class-option="defaultOption1"> <vue-seamless-scroll :data="maduoArr" :class-option="defaultOption1">
<ul class="scroll-ul_1"> <ul class="scroll-ul_1">
<li v-for="(e, i) in maduoArr" :key="i"> <li v-for="(e, i) in maduoArr" :key="i">
<span>{{e.datetime}}&nbsp;</span> <span>{{e.createTime}}&nbsp;</span>
<span class="scroll_th">托盘号:</span> <span class="scroll_th">托盘号:</span>
<span>{{ e.vehicleCode }}</span> <span>{{ e.vehicleCode }}</span>
<span class="scroll_th">物料:</span> <span class="scroll_th">物料:</span>
<span>{{ e.materialName }}</span> <span>{{ e.materialName }}</span>
<span class="scroll_th">数量:</span> <span class="scroll_th">数量:</span>
<span>{{ e.qty }}</span> <span>{{ e.materialQty }}</span>
<span class="scroll_th">重量:</span> <span class="scroll_th">重量:</span>
<span>{{ e.weight }}</span> <span>{{ e.materialWeight }}</span>
</li> </li>
</ul> </ul>
</vue-seamless-scroll> </vue-seamless-scroll>
@@ -135,15 +135,15 @@
<li>创建时间</li> <li>创建时间</li>
</ul> </ul>
<div class="scroll_container_2"> <div class="scroll_container_2">
<vue-seamless-scroll :data="residualWorkOrder" :class-option="defaultOption2"> <vue-seamless-scroll :data="lastWorkOrderList" :class-option="defaultOption2">
<ul class="scroll-ul_2"> <ul class="scroll-ul_2">
<li v-for="(e, i) in residualWorkOrder" :key="i"> <li v-for="(e, i) in lastWorkOrderList" :key="i">
<div class="scroll-ul_2_div">{{e.workOrderCode}}</div> <div class="scroll-ul_2_div">{{e.workorderCode}}</div>
<div class="scroll-ul_2_div">{{e.materialName}}</div> <div class="scroll-ul_2_div">{{e.materialName}}</div>
<div class="scroll-ul_2_div">{{e.spec}}</div> <div class="scroll-ul_2_div">{{e.materialSpec}}</div>
<div class="scroll-ul_2_div">{{e.qty}}</div> <div class="scroll-ul_2_div">{{e.planQty}}</div>
<div class="scroll-ul_2_div">{{e.weight}}</div> <div class="scroll-ul_2_div">{{e.planWeight}}</div>
<div class="scroll-ul_2_div">{{e.orderCode}}</div> <div class="scroll-ul_2_div">{{e.produceOrder}}</div>
<div class="scroll-ul_2_div">{{e.customer}}</div> <div class="scroll-ul_2_div">{{e.customer}}</div>
<div class="scroll-ul_2_div">{{e.vehicleType}}</div> <div class="scroll-ul_2_div">{{e.vehicleType}}</div>
<div class="scroll-ul_2_div">{{e.hasHalf}}</div> <div class="scroll-ul_2_div">{{e.hasHalf}}</div>
@@ -163,8 +163,8 @@
<script> <script>
import THeader from '@components/header3.vue' import THeader from '@components/header3.vue'
// import {sortProductionMonitor} from '@js/getData1.js' // import {cockpitsorting} from '@js/getData1.js'
import {sortProductionMonitor} from '@js/mork1.js' import {cockpitsorting} from '@js/mork1.js'
export default { export default {
name: 'SortWorkMonitor', name: 'SortWorkMonitor',
components: { components: {
@@ -174,16 +174,16 @@ export default {
return { return {
timer: null, timer: null,
interTime: this.$store.getters.setTime, interTime: this.$store.getters.setTime,
current: {}, topSec1: {},
chaiduo: {}, topSec2: {},
maduo: {}, topSec3: {},
chaiduoArr: [], chaiduoArr: [],
maduoArr: [], maduoArr: [],
residualWorkOrder: [], lastWorkOrderList: [],
stateStatistics: { stateStatistics: {
count: '20', count: '20',
// fourState: [{'status': '5', 'stateName': '正常运行'}, {'status': '5', 'stateName': '暂未生产'}, {'status': '5', 'stateName': '空闲设备'}, {'status': '5', 'stateName': '故障设备'}] // fourState: [{'status': '5', 'stateName': '正常运行'}, {'status': '5', 'stateName': '暂未生产'}, {'status': '5', 'stateName': '空闲设备'}, {'status': '5', 'stateName': '故障设备'}]
fourState: [{'status': '80', 'stateName': '正常运行'}, {'status': '20', 'stateName': '暂未生产'}] fourState: [{'status': '80', 'stateName': '实际数量'}, {'status': '20', 'stateName': '计划数量'}]
} }
} }
}, },
@@ -207,7 +207,7 @@ export default {
timer1: null, timer1: null,
timer2: null, timer2: null,
step: 0.4, // 数值越大速度滚动越快 step: 0.4, // 数值越大速度滚动越快
limitMoveNum: 4, // 开始无缝滚动的数据量 this.dataList.length limitMoveNum: 5, // 开始无缝滚动的数据量 this.dataList.length
hoverStop: true, // 是否开启鼠标悬停stop hoverStop: true, // 是否开启鼠标悬停stop
direction: 1, // 0向下 1向上 2向左 3向右 direction: 1, // 0向下 1向上 2向左 3向右
openWatch: true, // 开启数据实时监控刷新dom openWatch: true, // 开启数据实时监控刷新dom
@@ -218,9 +218,6 @@ export default {
} }
}, },
mounted () { mounted () {
this.setEchart01()
this.setEchart02()
this.setEchart03()
this.refresh() this.refresh()
}, },
beforeDestroy () { beforeDestroy () {
@@ -230,29 +227,34 @@ export default {
}, },
methods: { methods: {
refresh () { refresh () {
this._sortProductionMonitor() this._cockpitsorting()
this.timer2 = setInterval(() => { this.timer2 = setInterval(() => {
this._sortProductionMonitor() this._cockpitsorting()
}, this.interTime) }, this.interTime)
}, },
async _sortProductionMonitor () { async _cockpitsorting () {
let res = await sortProductionMonitor() let res = await cockpitsorting()
this.current = res.current this.topSec1 = res.sortingLine[0]
this.chaiduo = res.depalletize this.topSec2 = res.sortingLine[1]
this.maduo = res.palletize this.topSec3 = res.sortingLine[2]
this.chaiduoArr = [...res.depalletizedVehicle] this.setEchart01()
this.maduoArr = [...res.palletizedVehicle] this.setEchart02()
this.residualWorkOrder = [...res.residualWorkOrder] this.setEchart03()
this.lastWorkOrderList = [...res.lastWorkOrderList]
this.chaiduoArr = [...res.unstackingList]
this.maduoArr = [...res.unstackingList]
}, },
setEchart01 () { setEchart01 () {
let colors = ['#1980EA', '#67D470', '#B4C9EF', '#EF5252', '#BCBF5C', '#6d5edd', '#bf41bb'] let colors = ['#1980EA', '#67D470', '#B4C9EF', '#EF5252', '#BCBF5C', '#6d5edd', '#bf41bb']
let seriesData = this.stateStatistics.fourState // let seriesData = this.stateStatistics.fourState
seriesData.map((el, i) => { // seriesData.map((el, i) => {
el.value = el.status // el.value = el.status
el.name = el.stateName // el.name = el.stateName
}) // })
let seriesData = []
seriesData = [{'value': Number(this.topSec1.planQty) - Number(this.topSec1.realQty), 'name': '剩余数量'}, {'value': this.topSec1.realQty, 'name': '实际数量'}]
// let total = this.stateStatistics.count // let total = this.stateStatistics.count
let total = 1850 let total = this.topSec1.realQty
let option = { let option = {
color: colors, color: colors,
grid: { grid: {
@@ -318,13 +320,15 @@ export default {
}, },
setEchart02 () { setEchart02 () {
let colors = ['#1980EA', '#67D470', '#B4C9EF', '#EF5252', '#BCBF5C', '#6d5edd', '#bf41bb'] let colors = ['#1980EA', '#67D470', '#B4C9EF', '#EF5252', '#BCBF5C', '#6d5edd', '#bf41bb']
let seriesData = this.stateStatistics.fourState // let seriesData = this.stateStatistics.fourState
seriesData.map((el, i) => { // seriesData.map((el, i) => {
el.value = el.status // el.value = el.status
el.name = el.stateName // el.name = el.stateName
}) // })
let seriesData = []
seriesData = [{'value': Number(this.topSec2.planQty) - Number(this.topSec2.realQty), 'name': '剩余数量'}, {'value': this.topSec2.realQty, 'name': '实际数量'}]
// let total = this.stateStatistics.count // let total = this.stateStatistics.count
let total = 1850 let total = this.topSec2.realQty
let option = { let option = {
color: colors, color: colors,
grid: { grid: {
@@ -390,13 +394,15 @@ export default {
}, },
setEchart03 () { setEchart03 () {
let colors = ['#1980EA', '#67D470', '#B4C9EF', '#EF5252', '#BCBF5C', '#6d5edd', '#bf41bb'] let colors = ['#1980EA', '#67D470', '#B4C9EF', '#EF5252', '#BCBF5C', '#6d5edd', '#bf41bb']
let seriesData = this.stateStatistics.fourState // let seriesData = this.stateStatistics.fourState
seriesData.map((el, i) => { // seriesData.map((el, i) => {
el.value = el.status // el.value = el.status
el.name = el.stateName // el.name = el.stateName
}) // })
let seriesData = []
seriesData = [{'value': Number(this.topSec3.planQty) - Number(this.topSec3.realQty), 'name': '剩余数量'}, {'value': this.topSec3.realQty, 'name': '实际数量'}]
// let total = this.stateStatistics.count // let total = this.stateStatistics.count
let total = 1850 let total = this.topSec3.realQty
let option = { let option = {
color: colors, color: colors,
grid: { grid: {