From 983e243fd1c090bb36b7ccd68065409da755d612 Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期一, 09 十二月 2024 17:09:29 +0800 Subject: [PATCH] 钢化模块进炉前、已出炉算法更改 --- UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 201 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 172 insertions(+), 29 deletions(-) diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue index ff7df0b..dc9cc06 100644 --- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue +++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue @@ -97,6 +97,53 @@ const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`; const handleMessage = (data) => { // 杩涚倝涓彸 + // if (data.intoGlass2 && data.intoGlass2.length > 0) { + // const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId)); + // const existingRects = adjustedRects2.value.filter(rect => newGlassIds.has(rect.glassId)); + // const newRects = data.intoGlass2[0].map(rect => { + // const scaleFactor = 810.89/5087; + // const scaleFactorY = 430/2800; + // let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; + // let newX = rect.yCoordinate; + // if (rect.width < rect.height) { + // widtha = rect.height; + // heighta = rect.width; + // }else { + // widtha = rect.width; + // heighta = rect.height; + // } + // if (rect.angle === 0) { + // adjustedWidth = widtha * scaleFactor; + // adjustedHeight = heighta * scaleFactorY; + // // adjustedWidtha = widtha; + // // adjustedHeighta = heighta; + // newX = 6000 - (rect.yCoordinate + widtha); + // } else { + // adjustedWidth = heighta * scaleFactor; + // adjustedHeight = widtha * scaleFactorY; + // // adjustedWidtha = widtha; + // // adjustedHeighta = heighta; + // newX = 6000 - (rect.yCoordinate + heighta); + // } + // return { + // ...rect, + // x: newX * scaleFactor, + // y: rect.xCoordinate * scaleFactorY, + // width: adjustedWidth, + // height: adjustedHeight, + // widtha: rect.width, + // heighta: rect.height, + // } + // }); + // // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� + // adjustedRects2.value = existingRects.map(oldRect => { + // const newRect = newRects.find(r => r.glassId === oldRect.glassId); + // if (newRect) { + // return { ...oldRect, ...newRect, isActive: oldRect.isActive }; + // } + // return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� + // }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); + // } if (data.intoGlass2 && data.intoGlass2.length > 0) { // 鎻愬彇鏂扮殑鐭╁舰ID const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId)); @@ -151,6 +198,53 @@ adjustedRects2.value = [] } // 杩涚倝涓乏 + // if (data.intoGlass && data.intoGlass.length > 0) { + // const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId)); + // const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId)); + // const newRects = data.intoGlass[0].map(rect => { + // const scaleFactor = 810.89/5087; + // const scaleFactorY = 430/2800; + // let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; + // let newX = rect.yCoordinate; + // if (rect.width < rect.height) { + // widtha = rect.height; + // heighta = rect.width; + // }else { + // widtha = rect.width; + // heighta = rect.height; + // } + // if (rect.angle === 0) { + // adjustedWidth = widtha * scaleFactor; + // adjustedHeight = heighta * scaleFactorY; + // // adjustedWidtha = widtha; + // // adjustedHeighta = heighta; + // newX = 6000 - (rect.yCoordinate + widtha); + // } else { + // adjustedWidth = heighta * scaleFactor; + // adjustedHeight = widtha * scaleFactorY; + // // adjustedWidtha = widtha; + // // adjustedHeighta = heighta; + // newX = 6000 - (rect.yCoordinate + heighta); + // } + // return { + // ...rect, + // x: newX * scaleFactor, + // y: rect.xCoordinate * scaleFactorY, + // width: adjustedWidth, + // height: adjustedHeight, + // widtha: rect.width, + // heighta: rect.height, + // } + // }); + // // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� + // adjustedRects1.value = existingRects.map(oldRect => { + // const newRect = newRects.find(r => r.glassId === oldRect.glassId); + // if (newRect) { + // return { ...oldRect, ...newRect, isActive: oldRect.isActive }; + // } + // return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� + // }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); + // } if (data.intoGlass && data.intoGlass.length > 0) { console.log(data.intoGlass); @@ -203,12 +297,13 @@ else { adjustedRects1.value = [] } + // 杩涚倝鍓� if (data.waitingGlass && data.waitingGlass.length > 0) { const newGlassIds = new Set(data.waitingGlass[0].map(rect => rect.glassId)); const existingRects = adjustedRectsa.value.filter(rect => newGlassIds.has(rect.glassId)); const newRects = data.waitingGlass[0].map(rect => { - const scaleFactor = 1390/6200; - const scaleFactorY = 750/2800; + const scaleFactor = 1621.78/6000; + const scaleFactorY = 700/2800; let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { @@ -253,16 +348,14 @@ else if (data.waitingGlass == null) { adjustedRectsa.value = [] } + // 宸插嚭鐐� if (data.outGlass && data.outGlass.length > 0) { - // 鎻愬彇鏂扮殑鐭╁舰ID const newGlassIds = new Set(data.outGlass[0].map(rect => rect.glassId)); - // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰� const existingRects = adjustedRectsb.value.filter(rect => newGlassIds.has(rect.glassId)); - // 璁$畻鏂扮殑鐭╁舰 const newRects = data.outGlass[0].map(rect => { - const scaleFactor = 1390/6000; - const scaleFactory = 750/2800; - let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY; + const scaleFactor = 1621.78/6000; + const scaleFactorY = 700/2800; + let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; let newX = rect.yCoordinate; if (rect.width < rect.height) { widtha = rect.height; @@ -273,30 +366,27 @@ } if (rect.angle === 0) { adjustedWidth = widtha * scaleFactor; - adjustedHeight = heighta * scaleFactory; + adjustedHeight = heighta * scaleFactorY; // adjustedWidtha = widtha; // adjustedHeighta = heighta; - // newX = 5190 - (rect.yCoordinate + widtha); - newY = 2800 - (rect.xCoordinate + heighta); - } else { + newX = 6000 - (rect.yCoordinate + widtha); + } else { adjustedWidth = heighta * scaleFactor; - adjustedHeight = widtha * scaleFactory; - // adjustedWidtha = heighta; - // adjustedHeighta = widtha; - // newX = 5190 - (rect.yCoordinate + heighta); - newY = 2800 - (rect.xCoordinate + widtha); + adjustedHeight = widtha * scaleFactorY; + // adjustedWidtha = widtha; + // adjustedHeighta = heighta; + newX = 6000 - (rect.yCoordinate + heighta); } return { - ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬� - x: newX * scaleFactor, - y: newY * scaleFactory, - width: adjustedWidth, - height: adjustedHeight, - widtha: rect.width, - heighta: rect.height, + ...rect, + x: newX * scaleFactor, + y: rect.xCoordinate * scaleFactorY, + width: adjustedWidth, + height: adjustedHeight, + widtha: rect.width, + heighta: rect.height, } - }); - + }); // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� adjustedRectsb.value = existingRects.map(oldRect => { const newRect = newRects.find(r => r.glassId === oldRect.glassId); @@ -305,7 +395,60 @@ } return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); - } + } + // if (data.outGlass && data.outGlass.length > 0) { + // // 鎻愬彇鏂扮殑鐭╁舰ID + // const newGlassIds = new Set(data.outGlass[0].map(rect => rect.glassId)); + // // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰� + // const existingRects = adjustedRectsb.value.filter(rect => newGlassIds.has(rect.glassId)); + // // 璁$畻鏂扮殑鐭╁舰 + // const newRects = data.outGlass[0].map(rect => { + // const scaleFactor = 1390/6000; + // const scaleFactory = 750/2800; + // let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY; + // let newX = rect.yCoordinate; + // if (rect.width < rect.height) { + // widtha = rect.height; + // heighta = rect.width; + // }else { + // widtha = rect.width; + // heighta = rect.height; + // } + // if (rect.angle === 0) { + // adjustedWidth = widtha * scaleFactor; + // adjustedHeight = heighta * scaleFactory; + // // adjustedWidtha = widtha; + // // adjustedHeighta = heighta; + // // newX = 5190 - (rect.yCoordinate + widtha); + // newY = 2800 - (rect.xCoordinate + heighta); + // } else { + // adjustedWidth = heighta * scaleFactor; + // adjustedHeight = widtha * scaleFactory; + // // adjustedWidtha = heighta; + // // adjustedHeighta = widtha; + // // newX = 5190 - (rect.yCoordinate + heighta); + // newY = 2800 - (rect.xCoordinate + widtha); + // } + // return { + // ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬� + // x: newX * scaleFactor, + // y: newY * scaleFactory, + // width: adjustedWidth, + // height: adjustedHeight, + // widtha: rect.width, + // heighta: rect.height, + // } + // }); + + // // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵�� + // adjustedRectsb.value = existingRects.map(oldRect => { + // const newRect = newRects.find(r => r.glassId === oldRect.glassId); + // if (newRect) { + // return { ...oldRect, ...newRect, isActive: oldRect.isActive }; + // } + // return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍� + // }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId))); + // } else if (data.outGlass == null) { adjustedRectsb.value = [] } @@ -867,7 +1010,7 @@ <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplaya }}-{{ adjustedRects[0].temperingLayoutId }}</div> --> <el-scrollbar height="750px" style="background-color: #e9e9eb;"> <div style="position: relative;max-width: 1400px;"> - <div + <div v-for="(rect, index) in adjustedRectsa" :key="index" @click="showDialoga(rect)" @@ -893,7 +1036,7 @@ <div style="text-align: center;"> {{ $t('processCard.temperinglayout') }}锛歿{ adjustedRectsb[0].engineerId }}-{{ adjustedRectsb[0].temperingLayoutId }} </div> <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplayb }}-{{ adjustedRects[0].temperingLayoutId }}</div> --> <el-scrollbar height="750px" style="background-color: #e9e9eb;"> - <div style="position: relative;max-width: 1400px;"> + <div style="position: relative;max-width: 1400px;"> <div v-for="(rect, index) in adjustedRectsb" :key="index" -- Gitblit v1.8.0