From 9187a8cbb39e42b569f77ab39031208dbfc38241 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 29 八月 2024 15:04:46 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/HangZhouMes

---
 UI-Project/config.js                                                                                                                   |    8 
 UI-Project/src/views/Returns/returns.vue                                                                                               |    3 
 UI-Project/src/views/Identify/identify.vue                                                                                             |   83 ++++----
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java                                      |    4 
 UI-Project/src/lang/zh.js                                                                                                              |    5 
 UI-Project/src/utils/constants.js                                                                                                      |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                           |    2 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java                              |   20 --
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java                                     |    2 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                           |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                  |   29 +-
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue                                                                                |   26 +-
 UI-Project/src/main.js                                                                                                                 |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java              |    6 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java |   14 -
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                                                 |  311 ++++++++++++++++++++++++++++------
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java                                      |    6 
 17 files changed, 361 insertions(+), 168 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index 8801d0c..9a4f798 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,10 +1,10 @@
 export default {
-//  serverUrl: "10.153.19.150:88/api",
+ serverUrl: "10.153.19.150:88/api",
 //  serverUrl: "192.168.1.199:88/api",
- serverUrl: "127.0.0.1:88/api",
-  // serverUrl2: "10.153.19.150:88"
+//  serverUrl: "127.0.0.1:88/api",
+  serverUrl2: "10.153.19.150:88"
   // serverUrl2: "192.168.1.199:88"
-    serverUrl2: "127.0.0.1:88"
+    // serverUrl2: "127.0.0.1:88"
 
   //serverUrl:"res.abeim.cn"
 }
\ No newline at end of file
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index b829bb3..d365f5b 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -104,7 +104,8 @@
     },
     order:{
         dilapidation:'鐮存崯',
-        Takeaway:'浜哄伐鎷胯蛋',
+        takeaway:'浜哄伐鎷胯蛋',
+        takeon:'鎽嗙墖瀹屾垚',
     },
     searchOrder:{
         cageinformation:'鐞嗙墖绗间俊鎭�',
@@ -263,6 +264,8 @@
         height:'楂�',
         thickness:'鍘�',
         glasstakeout:'鐜荤拑鎷胯蛋娓呭崟',
+        layoutID:'鐗堝浘ID',
+        glassID:'鐜荤拑ID',
     },
     reportWork:{
         lowerbit:'涓嬬墖浣�',
diff --git a/UI-Project/src/main.js b/UI-Project/src/main.js
index 30b5a74..166ffa7 100644
--- a/UI-Project/src/main.js
+++ b/UI-Project/src/main.js
@@ -23,7 +23,7 @@
 app.use(VXETable)
 app.use(pinia)
 app.use(router)
-app.use(ElementPlus)
+// app.use(ElementPlus)
 app.use(ElementPlus,{
     locale: zhCn,
 })
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index 69000bc..b551cfb 100644
--- a/UI-Project/src/utils/constants.js
+++ b/UI-Project/src/utils/constants.js
@@ -1,4 +1,4 @@
 //  export const WebSocketHost = "192.168.1.199";
-// export const WebSocketHost = "10.153.19.150";
-export const WebSocketHost = "127.0.0.1";
+export const WebSocketHost = "10.153.19.150";
+// export const WebSocketHost = "127.0.0.1";
 export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 590269c..8d2760c 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -11,8 +11,8 @@
       @current-change="handleCurrentChange"
     />
     </div>
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
-      <el-scrollbar height="550px" width="1200px" style="background-color: #e9e9eb;">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
+      <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
   <div style="position: relative;">  
     <div  
       v-for="(rect, index) in adjustedRects"  
@@ -35,12 +35,12 @@
    </div>
   </el-scrollbar>
   <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
-        <el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)"  style="width: 140px;margin-left: 10px;">
+        <el-button :disabled="currentGlassRect?.glass_state === 8" type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)"  style="width: 140px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
-        <el-button  type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
+        <el-button :disabled="currentGlassRect?.glass_state === 9" type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
           <el-icon class="el-icon--right"><Upload /></el-icon>
-          {{ $t('order.Takeaway') }}</el-button>
+          {{ $t('order.takeaway') }}</el-button>
   </el-dialog> 
   </el-card>
 </template>  
@@ -60,6 +60,7 @@
 const glass_id = ref();
 const inputValue = ref('');
 const currentGlassId = ref(null); // 瀛樺偍褰撳墠鐐瑰嚮鐭╁舰鐨� glass_id  
+const currentstate = ref(null);
 const adjustedRects = ref([]);
 const raw = ref([]);
 let webSocket: WebSocket | null = null;  
@@ -68,12 +69,15 @@
 const currentPage = ref(1);
 const disabled = false;
 const size = 'small';
-const rawData = ref([]); 
+const rawData = ref([]);
 // const handleBind = (row) => {
 //   blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 // };
 // 鏄剧ず瀵硅瘽妗嗗苟璁剧疆褰撳墠 glass_id  
-function showDialog(glassId: number) {  
+const currentGlassRect = computed(() => {  
+  return adjustedRects.value.find(rect => rect.glass_id === currentGlassId.value);  
+}); 
+function showDialog(glassId: number) {
   currentGlassId.value = glassId;  
   blind.value = true;  
   adjustedRects.value = adjustedRects.value.map(rect =>  
@@ -103,7 +107,7 @@
       // window.location.reload() 
       blind.value = false;
       updateRectStatus(currentGlassId.value, 8); 
-    } else {
+  } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.msg);
     }
@@ -131,7 +135,7 @@
       // window.location.reload() 
       blind.value = false;
       updateRectStatus(currentGlassId.value, 9); 
-    } else {
+  } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.msg);
     }
@@ -146,20 +150,19 @@
     var url="/cacheGlass/taskCache/cutTerritory?current="+inputValue.value;
     const response = await request.post(url)
     if (response.code === 200) {
-      console.log(response.data);
-      
       const rawRects = response.data[0];
       rawData.value = response.data;
       totalPages.value = rawData.value.length;
       const scaleFactor =  1621.78/6000; 
+      const scaleFactory =  750/3300; 
       adjustedRects.value = rawRects.map(rect => ({  
         ...rect,
         x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
-        y_axis: rect.y_axis * 0.17,
+        y_axis: rect.y_axis * scaleFactory,
         width: rect.width * scaleFactor ,
         widtha: rect.width ,
         heighta: rect.height ,
-        height: rect.height * 0.165 ,
+        height: rect.height * scaleFactory,
         glass_state: rect.glass_state
       }));  
       // 濡傛灉WebSocket宸茶繛鎺ワ紝鍒欏叧闂�  
@@ -177,36 +180,35 @@
   currentPage.value = val;
   const page = currentPage.value - 1
       const scaleFactor =  1621.78/6000; 
+      const scaleFactory =  750/3300; 
       adjustedRects.value = rawData.value[page]?.map(rect => ({  
       // adjustedRects.value = rawRects.map(rect => ({  
         ...rect,
         x_axis: (6000 -(rect.x_axis + rect.width)) * scaleFactor,
-        y_axis: rect.y_axis * 0.17,
+        y_axis: rect.y_axis * scaleFactory,
         width: rect.width * scaleFactor ,
         widtha: rect.width ,
         heighta: rect.height ,
-        height: rect.height * 0.165 ,
+        height: rect.height * scaleFactory,
         glass_state: rect.glass_state
-      }));  
+      }));
 };
-function getRectColor(state: number): string {  
-  switch (state) {  
-    case 0:  
-      return '#e1f3d8';  
-    case 100:  
-      return '#c8c9cc';  
-    case 110:  
-      return '#b3e19d';  
-    case 120:  
-      return '#f89898';  
-    case 8: 
-      return '#911005';  
-    case 9:  
-      return '#f3d19e';  
-    // default:  
-    //   return '#911005'; // 榛樿棰滆壊  
-  }  
-} 
+function getRectColor(state: number): string {
+  switch (state) {
+    case 0:
+      return '#e1f3d8';
+    case 100:
+      return '#c8c9cc';
+    case 110:
+      return '#b3e19d';
+    case 120:
+      return '#f89898';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#f3d19e';
+  }
+}
 // 鏇存柊鐭╁舰鐘舵��  
 function updateRectStatus(glassId: string, status: number) {  
   adjustedRects.value.forEach(rect => {  
@@ -221,8 +223,9 @@
     webSocket = new WebSocket(socketUrl);  
     webSocket.onmessage = (event) => {  
       const data = JSON.parse(event.data);  
-      const scaleFactor = 1621.78 / 6000;  
-     if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
+      const scaleFactor =  1621.78/6000; 
+      const scaleFactory =  750/3300; 
+      if (data.currentCutTerritory && data.currentCutTerritory.length > 0) {
       const newRects = data.currentCutTerritory[0].map(rect => {  
         const existingRect = adjustedRects.value.find(r => r.glass_id === rect.glass_id);  
         
@@ -230,9 +233,9 @@
           return {  
             ...existingRect,  
             x_axis: (6000 - (rect.x_axis + rect.width)) * scaleFactor,  
-            y_axis: rect.y_axis * 0.17,  
+            y_axis: rect.y_axis * scaleFactory,  
             width: rect.width * scaleFactor,  
-            height: rect.height * 0.165,  
+            height: rect.height * scaleFactory,  
             widtha: rect.width,  
             heighta: rect.height,  
             glass_state: rect.glass_state,  
@@ -243,9 +246,9 @@
           return {  
             ...rect,  
             x_axis: (6000 - (rect.x_axis + rect.width)) * scaleFactor,  
-            y_axis: rect.y_axis * 0.17,  
+            y_axis: rect.y_axis * scaleFactory,  
             width: rect.width * scaleFactor,  
-            height: rect.height * 0.165,  
+            height: rect.height * scaleFactory,  
             widtha: rect.width,  
             heighta: rect.height,  
             glass_state: rect.glass_state,  
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index d329c50..fe85ccf 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -1,5 +1,5 @@
-<script setup>
-import {Search} from "@element-plus/icons-vue";
+<script setup lang="ts">
+import {Search ,Delete, Upload,Edit} from "@element-plus/icons-vue";
 import {reactive} from "vue";
 import request from "@/utils/request"
 import { ref, onMounted, onBeforeUnmount,nextTick  } from 'vue';  
@@ -21,6 +21,15 @@
 const dialogVisible = ref(false)
 const width = ref();
 const height = ref();
+const currentRect = ref(null);
+const canSelectProject1 = ref(true);
+const canSelectProject2 = ref(true);
+const canSelectProjecta = ref(true);
+const cantakea = ref(true);
+const cantakeb = ref(true);
+const canona = ref(true);
+const canonb = ref(true);
+const canSelectProjectb = ref(true);
 const adjustedRects1 = ref([]);
 const adjustedRects2 = ref([]);
 const adjustedRectsa = ref([]);
@@ -85,6 +94,7 @@
 };  
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
 const handleMessage = (data) => {  
+  // 杩涚倝涓彸
   if (data.intoGlass2 && data.intoGlass2.length > 0) {  
     // 鎻愬彇鏂扮殑鐭╁舰ID  
     const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId));  
@@ -93,6 +103,7 @@
     // 璁$畻鏂扮殑鐭╁舰  
     const newRects = data.intoGlass2[0].map(rect => {  
       const scaleFactor =  794.67/5087; 
+      const scaleFactorY =  430/2800; 
         let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
         let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -104,13 +115,13 @@
       }
       if (rect.angle === 0) {  
     adjustedWidth = widtha * scaleFactor;
-    adjustedHeight = heighta * 0.1;
+    adjustedHeight = heighta * scaleFactorY;
     // adjustedWidtha = widtha;  
     // adjustedHeighta = heighta;   
     newX = 5087 - (rect.yCoordinate + widtha); 
     } else {  
     adjustedWidth = heighta * scaleFactor;  
-    adjustedHeight = widtha * 0.1;  
+    adjustedHeight = widtha * scaleFactorY;  
     // adjustedWidtha = widtha;  
     // adjustedHeighta = heighta;  
     newX = 5087 - (rect.yCoordinate + heighta); 
@@ -118,7 +129,7 @@
         return {  
         ...rect, 
         xcoordinate: newX * scaleFactor,
-        ycoordinate: rect.xCoordinate * 0.1,
+        ycoordinate: rect.xCoordinate * scaleFactorY,
         width: adjustedWidth,  
         height: adjustedHeight,  
         widtha: rect.width, 
@@ -137,14 +148,13 @@
   else if (data.intoGlass2 == null) {
     adjustedRects2.value = []
   }
+  // 杩涚倝涓乏
   if (data.intoGlass && data.intoGlass.length > 0) {  
-    // 鎻愬彇鏂扮殑鐭╁舰ID  
     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 =  794.67/5087; 
+      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) {
@@ -156,13 +166,13 @@
       }
       if (rect.angle === 0) {  
     adjustedWidth = widtha * scaleFactor;
-    adjustedHeight = heighta * 0.1;
+    adjustedHeight = heighta * scaleFactorY;
     // adjustedWidtha = widtha;  
     // adjustedHeighta = heighta;  
     newX = 5087 - (rect.yCoordinate + widtha); 
     } else {  
     adjustedWidth = heighta * scaleFactor;  
-    adjustedHeight = widtha * 0.1;  
+    adjustedHeight = widtha * scaleFactorY;  
     // adjustedWidtha = widtha;  
     // adjustedHeighta = heighta;  
     newX = 5087 - (rect.yCoordinate + heighta);  
@@ -170,7 +180,7 @@
         return {  
         ...rect, 
         xcoordinate: newX * scaleFactor,
-        ycoordinate: rect.xCoordinate * 0.1,
+        ycoordinate: rect.xCoordinate * scaleFactorY,
         width: adjustedWidth,  
         height: adjustedHeight,  
         widtha: rect.width, 
@@ -190,14 +200,12 @@
     adjustedRects1.value = []
   }
   if (data.waitingGlass && data.waitingGlass.length > 0) {  
-    // 鎻愬彇鏂扮殑鐭╁舰ID  
     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 =  1621.78/5190; 
-  let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
+      const scaleFactor =  1390/5190; 
+      const scaleFactorY =  750/2800; 
+      let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
   let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
         widtha = rect.height;
@@ -208,13 +216,13 @@
       }
   if (rect.angle === 0) {  
     adjustedWidth = widtha * scaleFactor;  
-    adjustedHeight = heighta * 0.16;
+    adjustedHeight = heighta * scaleFactorY;
     // adjustedWidtha = widtha;  
     // adjustedHeighta = heighta;  
     newX = 5190 - (rect.yCoordinate + widtha); 
     } else {  
     adjustedWidth = heighta * scaleFactor;  
-    adjustedHeight = widtha * 0.16;  
+    adjustedHeight = widtha * scaleFactorY;  
     // adjustedWidtha = widtha;  
     // adjustedHeighta = heighta;  
     newX = 5190 - (rect.yCoordinate + heighta);  
@@ -222,7 +230,7 @@
   return {  
     ...rect, 
     x: newX * scaleFactor,  
-    y: rect.xCoordinate * 0.16,  
+    y: rect.xCoordinate * scaleFactorY,  
     width: adjustedWidth,  
     height: adjustedHeight,  
     widtha: rect.width, 
@@ -248,8 +256,8 @@
     const existingRects = adjustedRectsb.value.filter(rect => newGlassIds.has(rect.glassId));  
     // 璁$畻鏂扮殑鐭╁舰  
     const newRects = data.outGlass[0].map(rect => {  
-      const scaleFactor =  1621.78/5190; 
-      const scaleFactory =  550/2800; 
+      const scaleFactor =  1390/5190; 
+      const scaleFactory =  750/2800; 
       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY;
   let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -301,20 +309,48 @@
 onMounted(() => {
   initializeWebSocket(socketUrl, handleMessage);
 });
-function updateRectColorsa() {  
+function updateRectColorsa() {
   adjustedRectsa.value.forEach(rect => {  
     if (rect.glassId === glassId) {  
       rect.state = 8;
     }
   });  
 }  
-function updateRectColorsb() {  
+function updateoutColorsa() {
+  adjustedRectsa.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+}  
+function updateonColorsa() {
+  adjustedRectsa.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 1;
+    }
+  });  
+}  
+function updateRectColorsb() {
   adjustedRectsb.value.forEach(rect => {  
     if (rect.glassId === glassId) {  
       rect.state = 8;
     }
   });  
 }  
+function updateoutColorsb() {
+  adjustedRectsb.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 9;
+    }
+  });  
+} 
+function updateonColorsb() {
+  adjustedRectsb.value.forEach(rect => {  
+    if (rect.glassId === glassId) {  
+      rect.state = 3;
+    }
+  });  
+} 
 function updateRectColors1() {  
   adjustedRects1.value.forEach(rect => {  
     if (rect.glassId === glassId) {  
@@ -332,13 +368,15 @@
 function getRectColora(state) {  
   switch (state) {  
     case 0:  
-      return '#7AC5CD';  
-    case 1:  
+      return '#7AC5CD';
+    case 1:
       return '#95d475';
-    case -1:  
-      return '#CDAF95';  
-    case 8:  
-      return '#911005';  
+    case -1:
+      return '#CDAF95';
+    case 8:
+      return '#911005';
+    case 9:
+      return '#4682B4';
   }
 }
 function getRectColorb(state) {  
@@ -348,7 +386,9 @@
     case 4:  
       return '#CD6090';
     case 8:  
-      return '#911005';  
+      return '#911005'; 
+    case 9:
+      return '#4682B4'; 
   }  
 }
 function showDialog1(rect) {
@@ -359,6 +399,12 @@
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
   blind1.value = true;  
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProject1.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProject1.value = true;
+  }
 } 
 function showDialog2(rect) {
   const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId);  
@@ -368,6 +414,12 @@
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
   blind2.value = true;  
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProject2.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProject2.value = true;
+  }
 } 
 function showDialoga(rect) {
   const index = adjustedRectsa.value.findIndex(r => r.glassId === rect.glassId);  
@@ -376,7 +428,23 @@
   }  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blinda.value = true;  
+  blinda.value = true; 
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProjecta.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProjecta.value = true;
+  } 
+  if (currentRect.value.state == 9) {
+    cantakea.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakea.value = true;
+  } 
+  if (currentRect.value.state == 1) {
+    canona.value = false;
+  } else if (currentRect.value.state == 0) {
+    canona.value = true;
+  } 
 } 
 function showDialogb(rect) {
   const index = adjustedRectsb.value.findIndex(r => r.glassId === rect.glassId);  
@@ -386,6 +454,22 @@
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
   blindb.value = true;  
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProjectb.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProjectb.value = true;
+  }
+  if (currentRect.value.state == 9) {
+    cantakeb.value = false;
+  } else if (currentRect.value.state !== 9) {
+    cantakeb.value = true;
+  } 
+  if (currentRect.value.state == 3) {
+    canonb.value = false;
+  } else if (currentRect.value.state !== 3) {
+    canonb.value = true;
+  } 
 } 
   const handleDialogClose1 = () => {  
   adjustedRects1.value.forEach(rect => {  
@@ -422,7 +506,7 @@
     workingProcedure: '閽㈠寲',
     })
     if (response.code == 200) {
-      ElMessage.success(response.message);
+      ElMessage.success('鎴愬姛锛�');
       blind1.value = false;
       updateRectColors1();
     } else {
@@ -439,13 +523,12 @@
   try  {
   const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
     glassId: currentGlassId.value,
-    // temperingFeedSequence: currenttemperingFeedSequence.value,
     line: 4001,
     status: 8,
     workingProcedure: '閽㈠寲',
     })
     if (response.code == 200) {
-      ElMessage.success(response.message);
+      ElMessage.success('鎴愬姛锛�');
       blind2.value = false;
       updateRectColors2();
     } else {
@@ -458,17 +541,17 @@
     console.error(error);
   }
 }
+// 杩涚倝鍓嶇牬鎹�
 const handleDamagea = async () => {
   try  {
   const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
     glassId: currentGlassId.value,
-    // temperingFeedSequence: currenttemperingFeedSequence.value,
     line: 4001,
     status: 8,
     workingProcedure: '閽㈠寲',
     })
     if (response.code == 200) {
-      ElMessage.success(response.message);
+      ElMessage.success('鎴愬姛锛�');
       blinda.value = false;
       updateRectColorsa();
     } else {
@@ -481,19 +564,111 @@
     console.error(error);
   }
 }
+// 杩涚倝鍓嶄汉宸ユ嬁璧�
+const takeouta = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    status: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blinda.value = false;
+      updateoutColorsa();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+// 杩涚倝鍓嶆斁鍥�
+const takeona = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    status: 1,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blinda.value = false;
+      updateonColorsa();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+}
+// 宸插嚭鐐夌牬鎹�
 const handleDamageb = async () => {
   try  {
   const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
     glassId: currentGlassId.value,
-    // temperingFeedSequence: currenttemperingFeedSequence.value,
     line: 4001,
     status: 8,
     workingProcedure: '閽㈠寲',
     })
     if (response.code == 200) {
-      ElMessage.success(response.message);
+      ElMessage.success('鎴愬姛锛�');
       blindb.value = false;
       updateRectColorsb();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    // console.error(error);
+  }
+}
+// 宸插嚭鐐変汉宸ユ嬁璧�
+const takeoutb = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    status: 9,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blindb.value = false;
+      updateoutColorsb();
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.message);
+    }
+}
+catch (error) {
+    // 澶勭悊閿欒
+    // console.error(error);
+  }
+}
+// 宸插嚭鐐夋斁鍥�
+const takeonb = async () => {
+  try  {
+  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+    glassId: currentGlassId.value,
+    line: 4001,
+    status: 3,
+    workingProcedure: '閽㈠寲',
+    })
+    if (response.code == 200) {
+      ElMessage.success('鎴愬姛锛�');
+      blindb.value = false;
+      updateonColorsb();
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.message);
@@ -517,11 +692,11 @@
     <el-button  id="searchButton" type="info" @click="dialogFormVisiblec = true;dialogFormVisibleb = false;dialogFormVisible = false;dialogFormVisiblea = false">{{ $t('processCard.print') }}</el-button>
 <div v-if="dialogFormVisible" >
     <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
-<div style="width: 49%;float: left;background-color: #f4f4f5;height: 550px;">
+<div style="width: 50%;float: left;background-color: #f4f4f5;height: 430px;">
     <div v-if="adjustedRects1.length > 0">
       <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
     <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects1[0].engineerId }}-{{ adjustedRects1[0].temperingLayoutId }} </div>
-    <el-scrollbar height="550px" style="background-color: #e9e9eb;">
+    <el-scrollbar height="430px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
       <div  
       v-for="(rect, index) in adjustedRects1"
@@ -545,11 +720,11 @@
    </el-scrollbar>
    </div>
   </div>
-<div style="width: 49%;float: right;background-color: #f4f4f5;height: 550px;">
+<div style="width: 49%;float: right;background-color: #f4f4f5;height: 430px;">
     <div v-if="adjustedRects2.length > 0">
     <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects2[0].engineerId }}-{{ adjustedRects2[0].temperingLayoutId }} </div>
     <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay2 }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
-    <el-scrollbar height="550px" style="background-color: #e9e9eb;">
+    <el-scrollbar height="430px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
       <div  
       v-for="(rect, index) in adjustedRects2"
@@ -577,11 +752,11 @@
     </div>
 <div v-if="dialogFormVisiblea">
   <!-- 杩涚倝鍓� -->
-  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
     <div v-if="adjustedRectsa.length > 0">
     <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsa[0].engineerId }}-{{ adjustedRectsa[0].temperingLayoutId }} </div>
     <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplaya }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
-      <el-scrollbar height="550px" style="background-color: #e9e9eb;">
+      <el-scrollbar height="750px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
       <div  
       v-for="(rect, index) in adjustedRectsa"  
@@ -604,11 +779,11 @@
 </div>
 <div v-if="dialogFormVisibleb">
   <!-- 宸插嚭鐐� -->
-  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
       <div v-if="adjustedRectsb.length > 0">
     <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsb[0].engineerId }}-{{ adjustedRectsb[0].temperingLayoutId }} </div>
     <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplayb }}-{{ adjustedRects[0].temperingLayoutId }}</div>   -->
-      <el-scrollbar height="550px" style="background-color: #e9e9eb;">
+      <el-scrollbar height="750px" style="background-color: #e9e9eb;">
     <div  style="position: relative;max-width: 1400px;">  
       <div  
       v-for="(rect, index) in adjustedRectsb"  
@@ -632,7 +807,7 @@
 </div>
 <div v-if="dialogFormVisiblec">
   <!-- 鎵撳嵃 -->
-  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+  <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
     <div style="display: flex; flex-direction: row; align-items: center; margin-top: 5px;margin-left: 10px;">  
     <el-input :placeholder="$t('processCard.projectnumber')" v-model="engineerId" autocomplete="off" style="width: 300px;"/>
     <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('processCard.inquire') }}</el-button>
@@ -642,39 +817,59 @@
     <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
     <el-table
-    height="350"
+    height="600"
      ref="table" 
      :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
       :data="tableData"
     >
       <el-table-column prop="engineerId" :label="$t('processCard.project')" width="200" align="center"/>
-      <el-table-column prop="workingProcedure" :label="$t('processCard.awayprocess')" align="center"/>
-      <el-table-column prop="deviceName" :label="$t('processCard.awayequipment')" align="center"/>
-      <el-table-column prop="teamsGroupsName" :label="$t('processCard.awayteam')" align="center"/>
+      <el-table-column prop="temperingLayoutId" :label="$t('processCard.layoutID')" align="center"/>
+      <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center"/>
+      <el-table-column prop="glassId" :label="$t('processCard.glassID')" align="center"/>
+      <el-table-column prop="width" :label="$t('processCard.width')" align="center"/>
+      <el-table-column prop="height" :label="$t('processCard.height')" align="center"/>
+      <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center"/>
     </el-table>
       </div>
       </el-card>
    </el-card>
 </div>
+<!-- 杩涚倝涓� -->
 <el-dialog v-model="blind1" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose1">
-        <el-button type="warning" plain :icon="Delete" @click="handleDamage1"  style="width: 140px;margin-left: 10px;">
+        <el-button :disabled="!canSelectProject1" type="warning" plain :icon="Delete" @click="handleDamage1"  style="width: 150px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
   </el-dialog>  
 <el-dialog v-model="blind2" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose2">
-        <el-button type="warning" plain :icon="Delete" @click="handleDamage2"  style="width: 140px;margin-left: 10px;">
+        <el-button :disabled="!canSelectProject2" type="warning" plain :icon="Delete" @click="handleDamage2"  style="width: 150px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
   </el-dialog>  
+  <!-- 杩涚倝鍓� -->
 <el-dialog v-model="blinda" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClosea">
-        <el-button type="warning" plain :icon="Delete" @click="handleDamagea"  style="width: 140px;margin-left: 10px;">
+  <el-button type="warning" plain :icon="Delete" @click="handleDamagea" :disabled="!canSelectProjecta" style="width: 150px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
+        </el-button>
+        <el-button :disabled="!cantakea" type="danger" plain @click="takeouta"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+        <el-button type="success" plain :icon="Edit" @click="takeona" :disabled="!canona" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          {{ $t('order.takeon') }}
         </el-button>
   </el-dialog>  
+  <!-- 宸插嚭鐐� -->
 <el-dialog v-model="blindb" top="30vh" width="15%" style="text-align: center;" @close="handleDialogCloseb">
-        <el-button type="warning" plain :icon="Delete" @click="handleDamageb"  style="width: 140px;margin-left: 10px;">
+        <el-button :disabled="!canSelectProjectb" type="warning" plain :icon="Delete" @click="handleDamageb"  style="width: 150px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
+        <el-button :disabled="!cantakeb" type="danger" plain @click="takeoutb"  style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          <el-icon class="el-icon--right"><Upload /></el-icon>
+          {{ $t('order.takeaway') }}
+        </el-button>
+        <!-- <el-button type="success" plain :icon="Edit" @click="takeonb" :disabled="!canonb" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+          {{ $t('order.takeon') }}
+        </el-button> -->
   </el-dialog> 
   <el-dialog  
       v-model="dialogVisible"
@@ -725,7 +920,7 @@
   border: 1px solid black;
   background-color:  #337ecc;
   display:flex;
-    align-items:center;
+    align-items:center; 
     justify-content:center;
 }
 #home-card {
@@ -768,7 +963,7 @@
   }
   .rect {  
   border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */  
-  background-color: lightblue; /* 璁剧疆鐭╁舰鐨勮儗鏅壊 */  
+  /* background-color: lightblue; 璁剧疆鐭╁舰鐨勮儗鏅壊   */
 } 
 #rect {  
   position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */  
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 87f0c2f..bba4ca2 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -11,7 +11,8 @@
 const adjustedRects = ref([]);
 const currentGlassId = ref(null);
 const currenttemperingFeedSequence = ref(null);
- 
+const currentRect = ref(null);
+const canSelectProject = ref(true);
 const dialogFormVisible = ref(true)
 const dialogFormVisiblea = ref(false)
 const blind = ref(false)
@@ -41,7 +42,8 @@
   
     // 璁$畻鏂扮殑鐭╁舰  
     const newRects = data.overGlass[0].map(rect => {  
-      const scaleFactor =  1621.78/5190; 
+      const scaleFactor =  1390/5190; 
+      const scaleFactorY =  750/2800; 
       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
       let newX = rect.yCoordinate; 
       
@@ -54,15 +56,15 @@
       }
     if (rect.angle === 0) {  
     adjustedWidth = widtha * scaleFactor;  
-    adjustedHeight = heighta * 0.16;  
+    adjustedHeight = heighta * scaleFactorY;  
   } else {  
     adjustedWidth = heighta * scaleFactor;  
-    adjustedHeight = widtha * 0.16;  
+    adjustedHeight = widtha * scaleFactorY;  
   }  
   return {  
     ...rect, 
     xcoordinate: newX * scaleFactor, 
-    ycoordinate: rect.xCoordinate * 0.16,
+    ycoordinate: rect.xCoordinate * scaleFactorY,
     width: adjustedWidth,  
     height: adjustedHeight,  
     widtha: rect.width, 
@@ -107,7 +109,13 @@
   }  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blind.value = true;  
+  blind.value = true;
+  currentRect.value = rect;
+  if (currentRect.value.state == 8) {
+    canSelectProject.value = false;
+  } else if (currentRect.value.state !== 8) {
+    canSelectProject.value = true;
+  }
 }  
   
 const handleDialogClose = () => {  
@@ -157,11 +165,11 @@
 <template>
   <div style="margin-top: 10px;">
 <div>
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+    <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
       <!-- <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading"> -->
       <div v-if="adjustedRects.length > 0">
       <div style="text-align: center;">鐐夊彿锛歿{ adjustedRects[0].engineerId }}-{{ adjustedRects[0].temperingLayoutId }}</div>  
-    <el-scrollbar height="550px" width="1200px" style="background-color: #e9e9eb;">
+    <el-scrollbar height="750px" width="1400px" style="background-color: #e9e9eb;">
     <div  style="position: relative;">  
       <div  
       v-for="(rect, index) in adjustedRects"
@@ -184,7 +192,7 @@
     </el-card>
     </div>
     <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose">
-        <el-button type="warning" plain :icon="Delete" @click="handleDamage"  style="width: 140px;margin-left: 10px;">
+        <el-button :disabled="!canSelectProject" type="warning" plain :icon="Delete" @click="handleDamage"  style="width: 140px;margin-left: 10px;">
           {{ $t('order.dilapidation') }}
         </el-button>
   </el-dialog> 
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index ad2298d..a3613f2 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -28,14 +28,13 @@
 const filmsId = ref('');
 const patternThickness = ref('');
 const number = ref('');
-const canSelectProject = ref(true); // 鍋囪寮�濮嬫椂鍙互閫夋嫨椤圭洰  
+const canSelectProject = ref(true);
 const canStartLoading = ref(false);
 import { WebSocketHost ,host} from '@/utils/constants'
 import request from "@/utils/request"
 const ida = ref(null); 
 import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
 import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
-// 鍝嶅簲寮忔暟鎹�  
 const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
 const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
 const selectedValue = ref(''); // 褰撳墠閫変腑鐨勫  
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 75c4a83..894ec34 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1239,7 +1239,7 @@
     <el-table  
           :data="paginatedUsers" 
           @row-click="handleRowClick" 
-          height="500"
+          height="700"
           @expand-change="handleExpandChange"  
           row-key="id" 
           default-expand-all
@@ -1351,7 +1351,7 @@
     <el-button style="margin-left: 10px;size: mini;" type="danger">鍋滄</el-button>
     <el-button style="margin-left: 10px;size: mini;" type="primary">娣诲姞</el-button>
   </div> -->
-    <el-table  ref="table" style="margin-top: 20px;height: 500px;"
+    <el-table  ref="table" style="margin-top: 20px;height: 700px;"
         :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <!-- <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/>
             -->
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
index fc36b35..295e4fd 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -66,7 +66,7 @@
     @ApiOperation("鎷胯蛋鏁版嵁鏌ヨ")
     @PostMapping("/selectDamagePrint")
     public Result selectDamagePrint(@RequestBody Damage damage) {
-        List<Damage> damage2=damageService.selectDamagePrint(damage);
+        List<DamagePrint> damage2=damageService.selectDamagePrint(damage);
         return Result.build(200,"鏌ヨ鎴愬姛",damage2);
     }
     @ApiOperation("鎷胯蛋鎵撳嵃鏌ヨ")
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index 528b941..5707047 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -36,7 +36,7 @@
      */
     void batchInsertDamage(List<Damage> damageList);
 
-    List<Damage> selectDamagePrint(Damage damage);
+    List<DamagePrint> selectDamagePrint(Damage damage);
 
     List<DamagePrint> selectDamagePrintDetails(Damage damage);
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index c4debd3..0b93eee 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -145,20 +145,25 @@
         }
         this.saveBatch(damageList);
     }
-
+    /**
+     * 鎷胯蛋鎵撳嵃鏁版嵁鏌ヨ
+     */
     @Override
-    public List<Damage> selectDamagePrint(Damage damage) {
-        QueryWrapper<Damage> wrapper = new QueryWrapper<>();
-        wrapper.select("working_procedure,engineer_id,teams_groups_name,device_name,count(glass_id)as glass_id")
-                .eq("type",damage.getType())
-                .eq("working_procedure",damage.getWorkingProcedure())
-                .groupBy("working_procedure,engineer_id,teams_groups_name,device_name");
-                  if (damage.getEngineerId() != null) {
-                      wrapper.eq("engineer_id", damage.getEngineerId());
-                  }
-        return this.list(wrapper);
+    public List<DamagePrint> selectDamagePrint(Damage damage) {
+        MPJQueryWrapper<Damage> listDamage=new MPJQueryWrapper<Damage>()
+                .select("t.engineer_id,t.glass_id,b.tempering_layout_id,b.tempering_feed_sequence,b.width,b.height,b.thickness")
+                .leftJoin("glass_info as b  on t.glass_id=b.glass_id")
+                .eq("t.working_procedure",damage.getWorkingProcedure())
+                .eq("t.type",damage.getType());
+        // 鍔ㄦ�佹坊鍔犳潯浠讹紝褰� id 鏈夊�兼椂
+        if (damage.getEngineerId() != null) {
+            listDamage.eq("t.engineer_id", damage.getEngineerId());
+        }
+        return damageMapper.selectJoinList(DamagePrint.class,listDamage);
     }
-
+    /**
+     * 鎷胯蛋鎵撳嵃鎵撳嵃璇︽儏鏌ヨ
+     */
     @Override
     public List<DamagePrint> selectDamagePrintDetails(Damage damage) {
         List<DamagePrint> listDamage=damageMapper.selectJoinList(DamagePrint.class,new MPJQueryWrapper<Damage>()
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java
index cd88ede..130ce69 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/request/Reportingdamage.java
@@ -31,6 +31,10 @@
      * 娆$牬鏃堕棿
      */
     private String reportingWorkTime;
+    /**
+     * 娆$牬鏃堕棿2
+     */
+    private String reportingWorkTime2;
 
 
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
index 537dbdf..0fd9bdc 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
@@ -86,9 +85,10 @@
     @Override
     public List<TemperingGlassInfo> selectLayoutId() {
         QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
-        wrapper.select("distinct tempering_layout_id,engineer_id")
+        wrapper.select("tempering_layout_id,engineer_id,max(id) as id")
                 .eq("state",2)
-                .orderByAsc("tempering_layout_id");
+                .groupBy("tempering_layout_id,engineer_id")
+                .orderByDesc("id");
         return temperingMapper.selectList(wrapper);
     }
 
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
index 3d06990..f8df5ef 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcScreenTask.java
@@ -40,7 +40,6 @@
     public void screenHome() {
         JSONObject jsonObject = new JSONObject();
         Reportingdamage reportingdamage = new Reportingdamage();
-        //reportingdamage.setReportingWorkTime("2024-05-11");
         // 鑾峰彇褰撳墠鏃ユ湡
         LocalDate today = LocalDate.now();
         // 璁$畻鏈�杩戜竷澶╃殑寮�濮嬫棩鏈�
@@ -52,8 +51,9 @@
         String startOfPeriodStr = startOfPeriod.format(formatter);
         String endOfPeriodStr = endOfPeriod.format(formatter);
         // 璁剧疆涓烘渶杩戜竷澶╃殑鏃堕棿鑼冨洿
-        reportingdamage.setReportingWorkTime("2024-05-11" + " to " + endOfPeriodStr);
-        //reportingdamage.setReportingWorkTime(startOfPeriodStr + " to " + endOfPeriodStr);
+        reportingdamage.setReportingWorkTime("2024-05-11");
+        //reportingdamage.setReportingWorkTime("2024-05-11");
+        reportingdamage.setReportingWorkTime2(endOfPeriodStr);
         //鎵囧舰鍥惧悇璁惧鐨勫姞宸ョ牬鎹熸暟閲�
         List<Reportingdamage> device = reportingWorkService.selectDamage(reportingdamage);
         jsonObject.append("device", device);
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
index acd2fcf..220c807 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
@@ -66,27 +66,7 @@
         if (outGlass != null) {
             jsonObject.append("overGlass", overGlass);
         }
-        //褰撳墠閽㈠寲宸ョ▼鐨勬嬁璧版暟鎹�
-        LambdaQueryWrapper<TemperingGlassInfo> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.select(TemperingGlassInfo::getEngineerId)
-                .lt(TemperingGlassInfo::getState, Const.TEMPERING_END)
-                .groupBy(TemperingGlassInfo::getEngineerId);
 
-        List<String> engineerIds = temperingAgoService.list(queryWrapper)
-                .stream()
-                .map(TemperingGlassInfo::getEngineerId)
-                .distinct()
-                .collect(Collectors.toList());
-
-        List<Damage> temperingTakeGlassInfos = damageService.list(
-                new LambdaQueryWrapper<Damage>()
-                        .in(Damage::getEngineerId, engineerIds)
-                        .eq(Damage::getType, Const.GLASS_STATE_TAKE)
-                        .orderByAsc(Damage::getId)
-        );
-
-
-        jsonObject.append("temperingTakeGlassInfos", temperingTakeGlassInfos);
 
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingGlass");
         if (sendwServer != null) {
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
index 4d0abc8..ed15b88 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -33,13 +33,7 @@
         log.info("绛夊緟涓殑鐜荤拑淇℃伅{}",glass);
         return Result.build(200, "", glass);
     }
-//    @ApiOperation("鏌ヨ杩涚倝涓殑閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佸叏涓�1鐨勪负宸插埌銆�")
-//    @GetMapping("/selectIntoGlass") // 鏌ヨ杩涚倝涓殑閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佸叏涓�1鐨勪负宸插埌銆�
-//    public Result <List<TemperingGlassInfo>> selectIntoGlass() {
-//        List<TemperingGlassInfo> glass = temperingAgoService.selectIntoGlass();
-//        log.info("杩涚倝涓殑鐜荤拑鐗堝浘淇℃伅{}",glass);
-//        return Result.build(200, "", glass);
-//    }
+
     @ApiOperation("//閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅銆�")
     @GetMapping("/selectOutGlass") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
     public Result <List<TemperingGlassInfo>> selectOutGlass() {
@@ -48,10 +42,12 @@
         return Result.build(200, "", glass);
     }
 
-    @ApiOperation("//閽㈠寲鐮存崯")
+    @ApiOperation("//閽㈠寲鐮存崯鎷胯蛋鏀惧洖")
     @PostMapping("/updateTemperingState") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
     public Result <Integer> updateTemperingState(@RequestBody  Damage damage) {
-        damageService.insertDamage(damage);
+        if(damage.getStatus()>5) {
+            damageService.insertDamage(damage);
+        }
         TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
         temperingGlassInfo.setState(damage.getStatus());
         temperingGlassInfo.setGlassId(damage.getGlassId());

--
Gitblit v1.8.0