From 1328040419e281c2d3418f27758c26adc14dab87 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期二, 20 八月 2024 16:04:30 +0800
Subject: [PATCH] 恢复代码

---
 UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue                                                                               |   12 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java           |   48 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java                                  |   97 ++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java                                               |    3 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java                                        |   36 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java          |   25 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                     |    8 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java           |   25 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java                                   |    4 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java                 |   14 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                               |   55 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java |  209 ++----
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                                                      |    8 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java              |   40 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml                                                     |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java                                                           |   24 
 UI-Project/config.js                                                                                                                     |    8 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                           |   86 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java        |   58 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java                 |   28 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java    |   14 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java                                                       |  163 +++++
 UI-Project/src/utils/constants.js                                                                                                        |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                             |   19 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java        |    8 
 hangzhoumesParent/common/servicebase/src/main/resources/application.yml                                                                  |    8 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java                                |   47 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java         |   27 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java                  |  100 +-
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                    |   34 
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue                                                                                  |  113 ++
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java                         |    4 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java                           |    7 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java                                          |   10 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java                                         |   21 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/IdentWornRequest.java                 |   28 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                                 |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java                |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java                                                      |   34 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java                     |   29 
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                                                   |  290 +++------
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java           |   42 
 42 files changed, 1,206 insertions(+), 592 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index 8801d0c..4fc6899 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: "192.168.1.199:88/api",
- serverUrl: "127.0.0.1:88/api",
+ serverUrl: "192.168.1.199:88/api",
+//  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: "192.168.1.199:88"
+    // serverUrl2: "127.0.0.1:88"
 
   //serverUrl:"res.abeim.cn"
 }
\ No newline at end of file
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index 69000bc..c104075 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 = "192.168.1.199";
 // export const WebSocketHost = "10.153.19.150";
-export const WebSocketHost = "127.0.0.1";
+// export const WebSocketHost = "127.0.0.1";
 export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 53f6d84..3d790cf 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -13,10 +13,7 @@
 const dialogFormVisible = ref(false)
 const dialogFormVisiblea = ref(true)
 const dialogFormVisibleb = ref(false)
-const blind1 = ref(false)
-const blind2 = ref(false)
-const blinda = ref(false)
-const blindb = ref(false)
+const blind = ref(false)
 const width = ref();
 const height = ref();
 const adjustedRects1 = ref([]);
@@ -26,10 +23,12 @@
 const currentGlassId = ref(null);
 const currenttemperingFeedSequence = ref(null);
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
-const handleMessage = (data) => {  
-  if (data.intoGlass2 && data.intoGlass2.length > 0) {  
-    const newRects = data.intoGlass2[0].map(rect => {  
-      const scaleFactor =  794.67/5087; 
+const handleMessage = (data) => {
+// 杩涚倝涓�
+  if(data.intoGlass2!=null){
+    adjustedRects2.value =  data.intoGlass2[0].map(rect => {  
+        isActive: false
+        const scaleFactor =  794.67/5087; 
         let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
         let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -60,20 +59,15 @@
         height: adjustedHeight,  
         widtha: rect.width, 
         heighta: rect.height,
+      };  
+      });
+      }else{
+        adjustedRects1.value = ''
       }
-    });  
-    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
-    adjustedRects2.value = adjustedRects2.value.map(oldRect => {  
-      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
-      if (newRect) {  
-        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
-      }  
-      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
-    }).concat(newRects.filter(r => !adjustedRects2.value.some(o => o.glassId === r.glassId)));  
-  }
-  if (data.intoGlass && data.intoGlass.length > 0) {  
-    const newRects = data.intoGlass[0].map(rect => {  
-      const scaleFactor =  794.67/5087; 
+  if(data.intoGlass!=null){
+      adjustedRects1.value =  data.intoGlass[0].map(rect => {  
+        isActive: false
+        const scaleFactor =  794.67/5087; 
       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
       let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -104,20 +98,16 @@
         height: adjustedHeight,  
         widtha: rect.width, 
         heighta: rect.height,
+      };  
+      });
+      }else{
+        adjustedRects2.value = ''
       }
-    });  
-    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
-    adjustedRects1.value = adjustedRects1.value.map(oldRect => {  
-      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
-      if (newRect) {  
-        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
-      }  
-      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
-    }).concat(newRects.filter(r => !adjustedRects1.value.some(o => o.glassId === r.glassId)));  
-  }
-  if (data.waitingGlass && data.waitingGlass.length > 0) {  
-    const newRects = data.waitingGlass[0].map(rect => {  
-      const scaleFactor =  1621.78/5190; 
+  // 杩涚倝鍓�
+  if(data.waitingGlass!=null){
+    adjustedRectsa.value = data.waitingGlass[0].map(rect => {  
+        isActive: false
+        const scaleFactor =  1621.78/5190; 
   let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;; 
   let newX = rect.yCoordinate; 
       if (rect.width < rect.height) {
@@ -148,20 +138,16 @@
     height: adjustedHeight,  
     widtha: rect.width, 
     heighta: rect.height,
-  }
-    });  
-    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
-    adjustedRectsa.value = adjustedRectsa.value.map(oldRect => {  
-      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
-      if (newRect) {  
-        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
-      }  
-      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
-    }).concat(newRects.filter(r => !adjustedRectsa.value.some(o => o.glassId === r.glassId)));  
-  }
-  if (data.outGlass && data.outGlass.length > 0) {  
-    const newRects = data.outGlass[0].map(rect => {  
-      const scaleFactor =  1621.78/5190; 
+  };  
+});
+  }else{
+        adjustedRectsa.value = ''
+      }
+    // 宸插嚭鐐�
+  if(data.outGlass!=null){
+    adjustedRectsb.value = data.outGlass[0].map(rect => {  
+        isActive: false
+        const scaleFactor =  1621.78/5190; 
       const scaleFactory =  550/2800; 
       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY;
   let newX = rect.yCoordinate; 
@@ -195,18 +181,12 @@
         height: adjustedHeight,  
         widtha: rect.width, 
         heighta: rect.height,
-  }
-    });  
-    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
-    adjustedRectsb.value = adjustedRectsb.value.map(oldRect => {  
-      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
-      if (newRect) {  
-        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
-      }  
-      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
-    }).concat(newRects.filter(r => !adjustedRectsb.value.some(o => o.glassId === r.glassId)));  
-  }
-}; 
+  };  
+});
+  }else{
+        adjustedRectsb.value = ''
+      }
+};
 onMounted(() => {
   initializeWebSocket(socketUrl, handleMessage);
 });
@@ -239,68 +219,70 @@
       return '#911005';  
   }  
 }
-function showDialog1(rect) {
-  const index = adjustedRects1.value.findIndex(r => r.glassId === rect.glassId);  
-  if (index !== -1) {  
-    adjustedRects1.value[index].isActive = true;  
-  }  
+// if (adjustedRectsb[0].engineerId != null) {
+//     engineerIdDisplayb = adjustedRectsb[0].engineerId
+//   }
+//   if (adjustedRectsa[0].engineerId != null) {
+//     engineerIdDisplaya = adjustedRectsa[0].engineerId
+//   }
+//   if (adjustedRects2[0].engineerId != null) {
+//     engineerIdDisplay2 = adjustedRects2[0].engineerId
+//   }
+//   if (adjustedRects[0].engineerId != null) {
+//     engineerIdDisplay = adjustedRects[0].engineerId
+//   }
+function showDialog1(rect) {  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blind1.value = true;  
+  blind.value = true;  
+  adjustedRects1.value = adjustedRects1.value.map(rect =>  
+    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
+  ); 
 } 
-function showDialog2(rect) {
-  const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId);  
-  if (index !== -1) {  
-    adjustedRects2.value[index].isActive = true;  
-  }  
+function showDialog2(rect) {  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blind2.value = true;  
+  blind.value = true;  
+  adjustedRects2.value = adjustedRects2.value.map(rect =>  
+    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
+  ); 
 } 
-function showDialoga(rect) {
-  const index = adjustedRectsa.value.findIndex(r => r.glassId === rect.glassId);  
-  if (index !== -1) {  
-    adjustedRectsa.value[index].isActive = true;  
-  }  
+function showDialoga(rect) {  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blinda.value = true;  
+  blind.value = true;  
+  adjustedRectsa.value = adjustedRectsa.value.map(rect =>  
+    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
+  ); 
 } 
-function showDialogb(rect) {
-  const index = adjustedRectsb.value.findIndex(r => r.glassId === rect.glassId);  
-  if (index !== -1) {  
-    adjustedRectsb.value[index].isActive = true;  
-  }  
+function showDialogb(rect) {  
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
-  blindb.value = true;  
+  blind.value = true;  
+  adjustedRectsb.value = adjustedRectsb.value.map(rect =>  
+    rect.glass_id === glassId ? { ...rect, isActive: true } : rect  
+  ); 
 } 
-  const handleDialogClose1 = () => {  
-  adjustedRects1.value.forEach(rect => {  
-    rect.isActive = false;  
-  });  
-  blind1.value = false; 
-};  
-  const handleDialogClose2 = () => {  
-  adjustedRects2.value.forEach(rect => {  
-    rect.isActive = false;  
-  });  
-  blind2.value = false; 
-};  
-  const handleDialogClosea = () => {  
-  adjustedRectsa.value.forEach(rect => {  
-    rect.isActive = false;  
-  });  
-  blinda.value = false; 
-};  
-  const handleDialogCloseb = () => {  
-  adjustedRectsb.value.forEach(rect => {  
-    rect.isActive = false;  
-  });  
-  blindb.value = false; 
-};  
+const handleDialogClose = () => {  
+  adjustedRects1.value = adjustedRects1.value.map(rect => ({  
+    ...rect,  
+    isActive: false  
+  }));  
+  // adjustedRects2.value = adjustedRects2.value.map(rect => ({  
+  //   ...rect,  
+  //   isActive: false  
+  // }));  
+  // adjustedRectsa.value = adjustedRectsa.value.map(rect => ({  
+  //   ...rect,  
+  //   isActive: false  
+  // }));  
+  adjustedRectsb.value = adjustedRectsb.value.map(rect => ({  
+    ...rect,  
+    isActive: false  
+  }));  
+} 
 // 鐮存崯
-const handleDamage1 = async () => {
+const handleDamage = async () => {
   try  {
   const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
     glassId: currentGlassId.value,
@@ -311,76 +293,7 @@
     })
     if (response.code == 200) {
       ElMessage.success(response.message);
-      blind1.value = false;
-      updateRectColors();
-    } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.message);
-    }
-}
-catch (error) {
-    // 澶勭悊閿欒
-    console.error(error);
-  }
-}
-const handleDamage2 = async () => {
-  try  {
-  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
-    glassId: currentGlassId.value,
-    // temperingFeedSequence: currenttemperingFeedSequence.value,
-    line: 4001,
-    status: 2,
-    workingProcedure: '閽㈠寲',
-    })
-    if (response.code == 200) {
-      ElMessage.success(response.message);
-      blind2.value = false;
-      updateRectColors();
-    } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
-      ElMessage.error(response.message);
-    }
-}
-catch (error) {
-    // 澶勭悊閿欒
-    console.error(error);
-  }
-}
-const handleDamagea = async () => {
-  try  {
-  const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
-    glassId: currentGlassId.value,
-    // temperingFeedSequence: currenttemperingFeedSequence.value,
-    line: 4001,
-    status: 2,
-    workingProcedure: '閽㈠寲',
-    })
-    if (response.code == 200) {
-      ElMessage.success(response.message);
-      blinda.value = false;
-      updateRectColors();
-    } 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: 2,
-    workingProcedure: '閽㈠寲',
-    })
-    if (response.code == 200) {
-      ElMessage.success(response.message);
-      blindb.value = false;
+      blind.value = false;
       updateRectColors();
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -518,23 +431,8 @@
    </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;">
-          {{ $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;">
-          {{ $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;">
-          {{ $t('order.dilapidation') }}
-        </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-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;">
           {{ $t('order.dilapidation') }}
         </el-button>
   </el-dialog> 
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 075ed55..7f51276 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -4,18 +4,18 @@
 import {useRouter} from "vue-router"
 import { ElMessage, ElMessageBox } from 'element-plus'
 import request from "@/utils/request"
-
+ 
 import { ref, onMounted, onBeforeUnmount,onUnmounted } from 'vue';  
 import { WebSocketHost ,host} from '@/utils/constants'
 import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
 const adjustedRects = ref([]);
 const currentGlassId = ref(null);
 const currenttemperingFeedSequence = ref(null);
-
+ 
 const dialogFormVisible = ref(true)
 const dialogFormVisiblea = ref(false)
 const blind = ref(false)
-
+ 
 const getTableRow = (row,type) =>{
   switch (type) {
     case 'edit' :{
@@ -31,9 +31,11 @@
 }
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`; 
-const handleMessage = (data) => {  
-  if (data.overGlass && data.overGlass.length > 0) {  
-    const newRects = data.overGlass[0].map(rect => {  
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+  if(data.overGlass!=null){
+    adjustedRects.value =  data.overGlass[0].map(rect => {  
       const scaleFactor =  1621.78/5190; 
       let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
       let newX = rect.yCoordinate; 
@@ -48,9 +50,15 @@
     if (rect.angle === 0) {  
     adjustedWidth = widtha * scaleFactor;  
     adjustedHeight = heighta * 0.16;  
+    // adjustedWidtha = widtha;  
+    // adjustedHeighta = heighta;  
+    // newX = 5190 - (rect.yCoordinate + rect.width); 
   } else {  
     adjustedWidth = heighta * scaleFactor;  
     adjustedHeight = widtha * 0.16;  
+    // adjustedWidtha = heighta;  
+    // adjustedHeighta = widtha;  
+    // newX = 5190 - (rect.yCoordinate + rect.height);  
   }  
   return {  
     ...rect, 
@@ -60,20 +68,72 @@
     height: adjustedHeight,  
     widtha: rect.width, 
     heighta: rect.height,
+    // isActive: false,
+  };  
+});
   }
-    });  
+};
+// const handleMessage = (data) => {  
+//   // 鍋囪 data.overGlass[0] 鏄煩褰㈡暟缁�  
+//   const newRects = data.overGlass[0].map(newRect => ({  
+//     ...newRect, 
+//     const scaleFactor = 1621.78 / 5190;  
+//     let widtha, heighta, adjustedWidth, adjustedHeight;  
   
-    // 鍚堝苟鏂版棫鐭╁舰锛屼繚鐣� isActive 鐘舵��  
-    adjustedRects.value = adjustedRects.value.map(oldRect => {  
-      const newRect = newRects.find(r => r.glassId === oldRect.glassId);  
-      if (newRect) {  
-        return { ...oldRect, ...newRect, isActive: oldRect.isActive };  
-      }  
-      return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝鍒欎繚鐣欏師鏍�  
-    }).concat(newRects.filter(r => !adjustedRects.value.some(o => o.glassId === r.glassId)));  
-  }  
-};  
+//     // 浜ゆ崲瀹藉害鍜岄珮搴︼紙濡傛灉鐭╁舰鏄�滄í鍚戔�濈殑锛�  
+//     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 * 0.16;  
+//     } else {  
+//       adjustedWidth = heighta * scaleFactor;  
+//       adjustedHeight = widtha * 0.16;  
+//     }  
+  
+//     // 娉ㄦ剰锛氳繖閲屽彲鑳介渶瑕侀噸鏂拌�冭檻 newX 鐨勮绠楁柟寮�  
+//     // 鏆傛椂淇濈暀涓哄師濮� yCoordinate 鐨勫鐞嗭紝浣嗛�氬父 x 鍧愭爣涓嶅簲鏉ヨ嚜 y 鍧愭爣  
+//     let newX = rect.yCoordinate; // 鍙兘鏄釜閿欒锛岄櫎闈炴湁鐗瑰畾鐢ㄩ��  
+  
+//     // 杩斿洖鏂扮殑鐭╁舰瀵硅薄  
+//     return {  
+//       ...rect, // 澶嶅埗鍘熷鐭╁舰鐨勬墍鏈夊睘鎬�  
+//       xcoordinate: newX * scaleFactor, // 娉ㄦ剰锛氳繖閲岀殑 newX 鍙兘闇�瑕佽皟鏁�  
+//       ycoordinate: rect.xCoordinate * 0.16,  
+//       width: adjustedWidth,  
+//       height: adjustedHeight,  
+//       widtha,  
+//       heighta,  
+//       isActive: false, // 榛樿涓洪潪婵�娲荤姸鎬�  
+//       // 鍙互娣诲姞鍏朵粬闇�瑕佺殑灞炴��  
+//     }
+//   }));  
+  
+  // 浣跨敤鏂版暟鎹洿鏂� adjustedRects  
+  // 娉ㄦ剰锛氳繖閲屾垜浠亣璁� adjustedRects.value 涓殑鐭╁舰涔熸湁 id 灞炴��  
+//   adjustedRects.value = adjustedRects.value.map(oldRect => {  
+//     const updatedRect = newRects.find(newRect => newRect.id === oldRect.id);  
+//     if (updatedRect) {  
+//       // 濡傛灉鎵惧埌浜嗗搴旂殑鐭╁舰锛屽垯鍚堝苟灞炴�у拰淇濈暀鍘熷婵�娲荤姸鎬侊紙濡傛灉闇�瑕佺殑璇濓級  
+//       // 浣嗗湪杩欎釜渚嬪瓙涓紝鎴戜滑鎬绘槸灏� isActive 璁剧疆涓� false  
+//       return {  
+//         ...oldRect,  
+//         ...updatedRect, // 鍚堝苟鏂扮煩褰㈢殑灞炴�э紝浣嗕細瑕嗙洊 isActive  
+//         isActive: false, // 鎬绘槸璁剧疆涓� false锛岄櫎闈炴偍鏈夋洿澶嶆潅鐨勯�昏緫  
+//       };  
+//     }  
+//     // 濡傛灉娌℃湁鎵惧埌瀵瑰簲鐨勭煩褰紝鍒欎繚鐣欏師鏍�  
+//     return oldRect;  
+//   }).concat(newRects.filter(newRect => !adjustedRects.value.some(oldRect => oldRect.id === newRect.id)));  
+//   // concat 鐢ㄤ簬娣诲姞閭d簺鍦� adjustedRects.value 涓笉瀛樺湪鐨勬柊鐭╁舰  
+// };
 function updateRectColors() {  
   adjustedRects.value.forEach(rect => {  
     if (rect.glassId === glassId) {  
@@ -91,22 +151,17 @@
       return '#911005';  
   }  
 }
-function showDialog(rect) {
-  const index = adjustedRects.value.findIndex(r => r.glassId === rect.glassId);  
-  if (index !== -1) {  
-    adjustedRects.value[index].isActive = true;  
-  }  
+function showDialog(rect) {  
+  rect.isActive = true; 
   currentGlassId.value = rect.glassId;  
   currenttemperingFeedSequence.value = rect.temperingFeedSequence;  
   blind.value = true;  
 }  
-  
 const handleDialogClose = () => {  
   adjustedRects.value.forEach(rect => {  
-    rect.isActive = false;  
+    rect.isActive = false; // 鍏抽棴瀵硅瘽妗嗘椂閲嶇疆鎵�鏈夌煩褰㈢殑 isActive 鐘舵��  
   });  
-  blind.value = false; 
-};  
+}; 
 // 鐮存崯
 const handleDamage = async () => {
   try  {
@@ -144,7 +199,7 @@
   closeWebSocket();
 });
 </script>
-
+ 
 <template>
   <div style="margin-top: 10px;">
 <div>
@@ -181,9 +236,9 @@
         </el-button>
   </el-dialog> 
   </div>
-
+ 
 </template>
-
+ 
 <style scoped>
 #boxa{
   border: 1px solid rgb(119, 116, 116);
diff --git a/UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue b/UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue
index 49419f2..9e204b5 100644
--- a/UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue
+++ b/UI-Project/src/views/UnLoadGlass/PrintCustomLabelSemi1.vue
@@ -102,12 +102,18 @@
 <template>
   <!-- <el-button id="printButton" @click="printFlowCard();">鎵撳嵃</el-button> -->
   <div id="printFlowCard" >
-    <template v-for="(item,id) in lastList">
+    <template v-for="(item,index) in lastList">
     <div id="entirety" >
-      <div style="position: absolute;font-weight: bold;margin-left: 5px;" v-if="item.tempering_layout_id!=null">{{ item.tempering_layout_id }}/{{ item.tempering_feed_sequence }}</div>
+     
       <div class="row1">
+        <div style="position: absolute;font-weight: bold;margin-left: 5px;" v-if="item.tempering_layout_id!=null">{{ item.tempering_layout_id }}/{{ item.tempering_feed_sequence }}</div>
         <span>{{ item.customer_name }}</span>&nbsp;
         <span>{{ item.order_id }}</span>
+        <span v-if="item.process.includes('澶硅兌')">鑳剁墖</span>
+        <span v-else-if="item.process.includes('涓┖')">涓┖</span>
+<span v-else-if="item.process.includes('鐧惧彾')">鐧惧彾</span>
+<span v-else></span>
+        <div style="position: absolute;font-weight: bold;margin-left: 210px;margin-top: -26px;" >{{ index+1 }}</div>
       </div>
       <div  class="row2">
         <span>{{ item.project }}</span>&nbsp;
@@ -120,7 +126,7 @@
         <span>{{ item.processing_note }}</span>
       </div>
     </div>
-    <div style="width: 20px" v-if="id%2===0"></div>
+    <div style="width: 20px" v-if="index%2===0"></div>
     </template>
   </div>
 
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 7e3d089..00c35d1 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -303,10 +303,10 @@
 printFlowCardId.value = row.flowCardId;
 printLayer.value = row.layer
 dialogTableVisible1.value = true;
-// setTimeout(() => {
-//   printFlowCard1(); // 鏇挎崲鎴愪綘瑕佹墽琛岀殑鍑芥暟鍚�
-//   //dialogTableVisible1.value = false;
-// }, 1000);
+setTimeout(() => {
+  printFlowCard1(); // 鏇挎崲鎴愪綘瑕佹墽琛岀殑鍑芥暟鍚�
+  //dialogTableVisible1.value = false;
+}, 1000);
 }
 
 const printFlowCard = () => {
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index 2ea5807..47b4769 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -41,8 +41,8 @@
      * 浜哄伐涓嬬墖102
      * 鍑虹墖涓�103
      * 璋冨害涓�104
-     * 鎷胯蛋200
-     * 鐮存崯201
+     * 鐮存崯8
+     * 鎷胯蛋9
      */
     public static final Integer GLASS_STATE_NEW = 0;
     public static final Integer GLASS_STATE_IN = 100;
@@ -50,8 +50,9 @@
     public static final Integer GLASS_STATE_ARTIFICIAL = 102;
     public static final Integer GLASS_STATE_OUT_ING = 103;
     public static final Integer GLASS_STATE_SCHEDULE_ING = 104;
-    public static final Integer GLASS_STATE_TAKE = 200;
-    public static final Integer GLASS_STATE_DAMAGE = 201;
+    public static final Integer GLASS_STATE_DAMAGE = 8;
+    public static final Integer GLASS_STATE_TAKE = 9;
+    public static final List<Integer> GLASS_STATE_DAMAGE_TAKE = Arrays.asList(8, 9);
     public static final List<Integer> GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103, 104);
     public static final List<Integer> GLASS_STATE_IN_ALL_ZERO = Arrays.asList(0, 100, 102, 103, 104);
 
@@ -98,29 +99,29 @@
      * 2 鍗ц浆绔嬭繘鐗囧畬鎴�
      * 3 澶ц溅杩涚墖瀹屾垚
      * 4 澶х悊鐗囩杩涚墖瀹屾垚
-     * 5 澶х悊鐗囩杩涚墖澶辫触
-     * 6 澶х悊鐗囩杩涚墖鐮存崯
+     * 8 澶х悊鐗囩杩涚墖鐮存崯
+     * 9 澶х悊鐗囩杩涚墖鎷胯蛋
      */
     public static final Integer BIG_STORAGE_IN_NEW = 1;
     public static final Integer BIG_STORAGE_IN_UP = 2;
     public static final Integer BIG_STORAGE_IN_CAR = 3;
     public static final Integer BIG_STORAGE_IN_SLOT = 4;
-    public static final Integer BIG_STORAGE_IN_ERROR = 5;
-    public static final Integer BIG_STORAGE_IN_DAMAGE = 6;
+    //    public static final Integer BIG_STORAGE_IN_DAMAGE = 8;
+//    public static final Integer BIG_STORAGE_IN_ERROR = 9;
     public static final List<Integer> BIG_STORAGE_IN_UP_ALL = Arrays.asList(1, 2);
     /**
      * 鍗ц浆绔嬪嚭鐗囪姹�
      * 1 浠诲姟鐢熸垚
      * 2 鐜荤拑杩涘ぇ杞﹀畬鎴�
      * 3 澶ц溅鍑虹墖瀹屾垚
-     * 4 澶х悊鐗囩杩涚墖澶辫触
-     * 5 澶х悊鐗囩杩涚墖鐮存崯
+     * 8 澶х悊鐗囩杩涚墖鐮存崯
+     * 9 澶х悊鐗囩杩涚墖鎷胯蛋
      */
     public static final Integer BIG_STORAGE_OUT_NEW = 1;
     public static final Integer BIG_STORAGE_OUT_CAR = 2;
     public static final Integer BIG_STORAGE_OUT_SUCCESS = 3;
-    public static final Integer BIG_STORAGE_OUT_ERROR = 4;
-    public static final Integer BIG_STORAGE_OUT_DAMAGE = 5;
+    //    public static final Integer BIG_STORAGE_OUT_DAMAGE = 8;
+//    public static final Integer BIG_STORAGE_OUT_ERROR = 9;
     public static final List<Integer> BIG_STORAGE_OUT_ALL = Arrays.asList(2, 3);
 
     /**
@@ -139,8 +140,8 @@
      * 2  杩涚倝瀹屾垚
      * 3  閽㈠寲瀹屾垚
      * 4  鍑虹墖瀹屾垚
-     * 5  鐮存崯
-     * 6  鎷胯蛋
+     * 8  鐮存崯
+     * 9  鎷胯蛋
      */
 
     public static final Integer TEMPERING_NEW = -1;
@@ -149,8 +150,8 @@
     public static final Integer TEMPERING_START = 2;
     public static final Integer TEMPERING_SUCCESS = 3;
     public static final Integer TEMPERING_END = 4;
-    public static final Integer TEMPERING_DAMAGE = 5;
-    public static final Integer TEMPERING_TAKE = 6;
+//    public static final Integer TEMPERING_DAMAGE = 8;
+//    public static final Integer TEMPERING_TAKE = 9;
 
     /**
      * 涓嬬墖
@@ -161,6 +162,7 @@
     public static final List<Integer> G06_WORK_STATION = Arrays.asList(1, 2, 3);
     public static final List<Integer> G11_WORK_STATION = Arrays.asList(4, 5, 6);
     public static final int G13_WORK_STATION = 7;
+    public static final List<Integer> WORK_STATION_ALL = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
 
     /**
      * 鍚敤 1
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
index a3782b3..a993bd7 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/mapper/DamageMapper.java
@@ -1,7 +1,6 @@
 package com.mes.damage.mapper;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.damage.entity.Damage;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -14,6 +13,6 @@
  * @since 2024-06-13
  */
 @DS("hangzhoumes")
-public interface DamageMapper extends MPJBaseMapper<Damage> {
+public interface DamageMapper extends BaseMapper<Damage> {
 
 }
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 05a5e5a..05d6b84 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
@@ -1,11 +1,8 @@
 package com.mes.damage.service;
 
-import cn.hutool.core.date.DateTime;
-import com.github.yulichang.base.MPJBaseService;
-import com.mes.damage.entity.Damage;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.damage.entity.Damage;
 
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -16,11 +13,23 @@
  * @author wu
  * @since 2024-06-13
  */
-public interface DamageService extends MPJBaseService<Damage> {
+public interface DamageService extends IService<Damage> {
 
     List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
 
     void submitDamage(List<Damage> damageList);
 
+    /**
+     * 鍗曚釜鐮存崯
+     *
+     * @param damage
+     */
     void insertDamage(Damage damage);
+
+    /**
+     * 鎵归噺鐮存崯
+     *
+     * @param damageList
+     */
+    void batchInsertDamage(List<Damage> damageList);
 }
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 98587bb..8f87d5a 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
@@ -1,15 +1,12 @@
 package com.mes.damage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.mapper.DamageMapper;
 import com.mes.damage.service.DamageService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
-import com.mes.pp.entity.ReportingWork;
 import com.mes.work_assignment.entity.WorkAssignment;
 import com.mes.work_assignment.mapper.WorkAssignmentMapper;
 import org.springframework.beans.BeanUtils;
@@ -20,7 +17,6 @@
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
-import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -32,7 +28,7 @@
  * @since 2024-06-13
  */
 @Service
-public class DamageServiceImpl extends MPJBaseServiceImpl<DamageMapper, Damage> implements DamageService {
+public class DamageServiceImpl extends ServiceImpl<DamageMapper, Damage> implements DamageService {
 
     @Resource
     GlassInfoMapper glassInfoMapper;
@@ -111,7 +107,33 @@
         damage.setOrderNumber(glassInfo.getGlassType());
         damage.setTechnologyNumber(glassInfo.getLayer());
         damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
-        damage.setType(2);
         baseMapper.insert(damage);
     }
+
+    /**
+     * 娣诲姞鎶ュ伐淇℃伅
+     */
+    @Override
+    public void batchInsertDamage(List<Damage> damageList) {
+        WorkAssignment workAssignment = workAssignmentMapper.selectOne(new LambdaQueryWrapper<WorkAssignment>()
+                .eq(WorkAssignment::getLine, damageList.get(0).getLine())
+                .eq(WorkAssignment::getWorkProcesses, damageList.get(0).getWorkingProcedure()));
+
+        List<String> glassList = damageList.stream().map(Damage::getGlassId).collect(Collectors.toList());
+        List<GlassInfo> glassInfoList = glassInfoMapper.selectList(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassList));
+        Map<String, List<GlassInfo>> listMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
+        for (Damage damage : damageList) {
+            GlassInfo glassInfo = listMap.get(damage.getGlassId()).get(0);
+            BeanUtils.copyProperties(glassInfo, damage);
+            if (workAssignment != null) {
+                damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName());
+                damage.setDeviceName(workAssignment.getDeviceName());
+            }
+            damage.setProcessId(glassInfo.getFlowCardId());
+            damage.setOrderNumber(glassInfo.getGlassType());
+            damage.setTechnologyNumber(glassInfo.getLayer());
+            damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
+        }
+        this.saveBatch(damageList);
+    }
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java
new file mode 100644
index 0000000..a265c19
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/FlowCardController.java
@@ -0,0 +1,21 @@
+package com.mes.pp.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@RestController
+@RequestMapping("/flow_card/flow-card")
+public class FlowCardController {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java
new file mode 100644
index 0000000..3378be3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/FlowCard.java
@@ -0,0 +1,163 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-08-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class FlowCard implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * (宸ョ▼鍙�,2024.0302澶╂満)
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 閿�鍞崟鍙�
+     */
+    private String orderId;
+
+    /**
+     * 鐢熶骇璁㈠崟鍙�
+     */
+    private String productionId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 钀芥灦椤哄簭
+     */
+    private String landingSequence;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 宸ヨ壓纭搴忓彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 鍒嗘灦鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * 浠ヤ紭鍖栨暟閲�
+     */
+    private Integer optimizeQuantity;
+
+    /**
+     * 鎺掔増鐘舵��(榛樿0,1鍏佽鎺掔増2浼樺寲鍗犵敤)
+     */
+    private Integer layoutStatus;
+
+    /**
+     * 琛ョ墖鏁伴噺
+     */
+    private Integer numberPatches;
+
+    /**
+     * 鏈�鍚庡伐搴忔姤宸� 搴撳瓨鏁伴噺
+     */
+    private Integer inventoryQuantity;
+
+    /**
+     * 宸插叆鏁伴噺
+     */
+    private Integer receivedQuantity;
+
+    /**
+     * 琛ョ墖缂栧彿
+     */
+    private String patchId;
+
+    /**
+     * 宸ョ▼鍗犵敤鐘舵�侊紝0涓哄崰鐢�1鍗犵敤
+     */
+    private Integer engineeringOccupancy;
+
+    /**
+     * 宸ョ▼鍙�(2024.0302娣诲姞)
+     */
+    private String projectNo;
+
+    /**
+     * 鍖呰鍓嶅伐搴忔姤宸� 搴撳瓨鏁伴噺
+     */
+    private Integer inventoryNumber;
+
+    /**
+     * 鍏ュ簱鏃堕棿
+     */
+    private LocalDateTime storageTime;
+
+    /**
+     * 鐢熶骇缁堟鐘舵��(榛樿0,1鐢熶骇缁堟)
+     */
+    private Integer terminationStatus;
+
+    /**
+     * 鎵撳嵃鐘舵��
+     */
+    private Integer printStatus;
+
+    /**
+     * 澶囩敤閿�
+     */
+    private Integer alternateKey;
+
+    /**
+     * 鍒嗘灦鍛�
+     */
+    private String founder;
+
+    /**
+     * 鍒嗘灦鏃堕棿
+     */
+    @TableField("splitFrame_time")
+    private LocalDateTime splitframeTime;
+
+    /**
+     * 灞傛暟
+     */
+    private Integer layersNumber;
+
+    /**
+     * 娴佺▼鍗℃墦鍗版帓搴�
+     */
+    private Integer sort;
+
+    /**
+     * 寤虹珛鏃堕棿
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private LocalDateTime updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
index 9a83681..aecb3b9 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.mes.base.entity.BigStorageCageBaseInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -91,4 +92,7 @@
      */
     @ApiModelProperty(value = "宸ョ▼id", position = 17)
     private String engineerId;
+
+    @TableLogic
+    private int deleted;
 }
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 9944d58..c400f4e 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
@@ -108,7 +108,7 @@
     public Integer updateTemperingState(TemperingGlassInfo temperingGlassInfo) {
         UpdateWrapper<TemperingGlassInfo> wrapper = new UpdateWrapper<>();
         wrapper.eq("glass_id",temperingGlassInfo.getGlassId())
-                .lt("state",5)
+                .lt("state",6)
                 .set("state", temperingGlassInfo.getState());;
         if (temperingMapper.update(null,wrapper) > 0) {
             return 200;
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java
new file mode 100644
index 0000000..5fe0e17
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DateUtil.java
@@ -0,0 +1,24 @@
+package com.mes.tools;
+
+import java.util.Calendar;
+import java.util.Date;
+
+public class DateUtil {
+    public static Date getBeginDate(){
+        Calendar now = Calendar.getInstance();
+        Calendar startOfDay = (Calendar) now.clone();
+        startOfDay.set(Calendar.HOUR_OF_DAY, 0);
+        startOfDay.set(Calendar.MINUTE, 0);
+        startOfDay.set(Calendar.SECOND, 0);
+        return startOfDay.getTime();
+    }
+
+    public static Date getEndDate(){
+        Calendar now = Calendar.getInstance();
+        Calendar endOfDay = (Calendar) now.clone();
+        endOfDay.set(Calendar.HOUR_OF_DAY, 23);
+        endOfDay.set(Calendar.MINUTE, 59);
+        endOfDay.set(Calendar.SECOND, 59);
+        return endOfDay.getTime();
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/resources/application.yml b/hangzhoumesParent/common/servicebase/src/main/resources/application.yml
new file mode 100644
index 0000000..0edfb92
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/resources/application.yml
@@ -0,0 +1,8 @@
+mybatis-plus-join:
+  sub-table-logic: true
+mybatis-plus:
+  global-config:
+    db-config:
+      logic-delete-field: deleted
+      logic-delete-value: 1
+      logic-not-delete-value: 0
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
index b8b8a9d..8e16a5e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
@@ -1,12 +1,19 @@
 package com.mes.edgglasstask.controller;
 
 
+import com.mes.edgglasstask.entity.request.EdgGlassInfoRequest;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author wu
@@ -16,5 +23,21 @@
 @RequestMapping("/edgGlassTaskInfo")
 public class EdgGlassTaskInfoController {
 
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
+
+    /**
+     * 璁剧疆纾ㄨ竟闃熷垪鏌ヨ鍙傛暟
+     *
+     * @param request
+     * @return
+     */
+    @PostMapping("/setEdgGlassInfoRequest")
+    @ApiOperation(value = "璁剧疆纾ㄨ竟闃熷垪鏌ヨ鍙傛暟", notes = "璁剧疆纾ㄨ竟闃熷垪鏌ヨ鍙傛暟")
+    public Result<String> setEdgGlassInfoRequest(@RequestBody EdgGlassInfoRequest request) {
+        edgGlassTaskInfoService.setEdgGlassInfoRequest(request);
+        return Result.build(200, "鏌ヨ鎴愬姛", "1");
+    }
+
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
index 1d660e3..387c397 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -1,5 +1,6 @@
 package com.mes.edgglasstask.entity;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -36,4 +37,7 @@
 
     private Date time;
 
+    @TableLogic
+    private int deleted;
+
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java
new file mode 100644
index 0000000..973b4c2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/EdgGlassInfoRequest.java
@@ -0,0 +1,40 @@
+package com.mes.edgglasstask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/8/7 16:16
+ * @Description:
+ */
+@Data
+public class EdgGlassInfoRequest {
+
+    /**
+     * 纾ㄨ竟绾� 2001   2002
+     */
+    private List<Integer> cellList;
+    /**
+     * 鐘舵��  0 寰呭鐞�  1 澶勭悊涓�  2 澶勭悊瀹屾垚
+     */
+    private List<Integer> stateList;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endDate;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/IdentWornRequest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/IdentWornRequest.java
new file mode 100644
index 0000000..a383b93
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/entity/request/IdentWornRequest.java
@@ -0,0 +1,28 @@
+package com.mes.edgglasstask.entity.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/8/10 13:34
+ * @Description:
+ */
+@Data
+public class IdentWornRequest {
+
+    @NotBlank(message = "鐜荤拑ID涓嶈兘涓虹┖")
+    private String glassId;
+
+    @NotNull(message = "鐘舵�佷笉鑳戒负绌�")
+    private int state;
+
+    @NotNull(message = "绾胯矾涓嶈兘涓虹┖")
+    private int line;
+
+    @NotBlank(message = "宸ュ簭涓嶈兘涓虹┖")
+    private String workingProcedure;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
index 1589b7d..45651a3 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -2,10 +2,13 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.entity.request.EdgGlassInfoRequest;
+
+import java.util.List;
 
 /**
  * <p>
- *  鏈嶅姟绫�
+ * 鏈嶅姟绫�
  * </p>
  *
  * @author wu
@@ -13,4 +16,13 @@
  */
 public interface EdgGlassTaskInfoService extends IService<EdgGlassTaskInfo> {
 
+    List<EdgGlassTaskInfo> selectEdgInfo();
+
+    String setEdgGlassInfoRequest(EdgGlassInfoRequest request);
+    /**
+     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
+     * @param
+     * @return
+     */
+    List<EdgGlassTaskInfo> selectTaskCacheIsRun();
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
index 34a06f4..0934ab6 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -1,14 +1,23 @@
 package com.mes.edgglasstask.service.impl;
 
+import cn.smallbun.screw.core.util.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.utils.RedisUtil;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.entity.request.EdgGlassInfoRequest;
 import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper;
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.tools.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author wu
@@ -17,4 +26,51 @@
 @Service
 public class EdgGlassTaskInfoServiceImpl extends ServiceImpl<EdgGlassTaskInfoMapper, EdgGlassTaskInfo> implements EdgGlassTaskInfoService {
 
+    @Autowired
+    RedisUtil redisUtil;
+
+    @Override
+    public List<EdgGlassTaskInfo> selectEdgInfo() {
+        EdgGlassInfoRequest request = redisUtil.getCacheObject("edgGlassRequest");
+
+        if (null == request) {
+            request = new EdgGlassInfoRequest();
+        }
+        if (null == request.getBeginDate()) {
+            request.setBeginDate(DateUtil.getBeginDate());
+            request.setEndDate(DateUtil.getEndDate());
+        }
+        LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassWrapper = new LambdaQueryWrapper<EdgGlassTaskInfo>()
+                .in(CollectionUtils.isNotEmpty(request.getCellList()), EdgGlassTaskInfo::getLine, request.getCellList())
+                .in(CollectionUtils.isNotEmpty(request.getStateList()), EdgGlassTaskInfo::getStatus, request.getStateList())
+                .between(null != request.getBeginDate(), EdgGlassTaskInfo::getTime, request.getBeginDate(), request.getEndDate())
+                .orderByDesc(EdgGlassTaskInfo::getTime);
+        return this.list(edgGlassWrapper);
+    }
+
+    @Override
+    public String setEdgGlassInfoRequest(EdgGlassInfoRequest request) {
+        if (request == null) {
+            redisUtil.deleteObject("edgGlassRequest");
+        } else {
+            redisUtil.setCacheObject("edgGlassRequest", request);
+        }
+        return "success";
+    }
+
+    /**
+     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
+     *
+     * @param
+     * @return
+     */
+    @Override
+    public List<EdgGlassTaskInfo> selectTaskCacheIsRun() {
+        QueryWrapper<EdgGlassTaskInfo> wrapper = new QueryWrapper<EdgGlassTaskInfo>()
+                .select("line")
+                .eq("status", 1)
+                .groupBy("line");
+
+        return this.list(wrapper);
+    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
index e7fea1b..a28f44b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -1,26 +1,23 @@
 package com.mes.edgstoragecage.controller;
 
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.edgstoragecage.service.EdgStorageCageService;
-import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl;
-import com.mes.taskcache.entity.TaskCache;
-import com.mes.taskcache.service.impl.TaskCacheServiceImpl;
 import com.mes.utils.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
-import java.awt.image.ImageProducer;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author zhoush
@@ -40,44 +37,33 @@
     @ApiOperation("鏌ヨ纾ㄨ竟缂撳瓨鐞嗙墖绗煎唴璇︽儏 鍙傛暟()")
     @PostMapping("/selectEdgStorageCage")
     @ResponseBody
-    public Result selectEdgStorageCage () {
-        List<Map<String, Object>> list=edgStorageCageService.selectEdgStorageCages();
-        return Result.build(200,"鎴愬姛",list);
+    public Result selectEdgStorageCage() {
+        List<Map<String, Object>> list = edgStorageCageService.selectEdgStorageCages();
+        return Result.build(200, "鎴愬姛", list);
     }
-//    @ApiOperation("娣诲姞纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氱鍐呯粦瀹氱幓鐠�  鍙傛暟(EdgStorageCage edgStorageCage)")
-//    @PostMapping("/insertEdgStorageCage")
-//    @ResponseBody
-//    public Result insertEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) {
-//        boolean isSucess=edgStorageCageService.updateEdgStorageCage(edgStorageCage);
-//        return Result.build(200,"娣诲姞鎴愬姛",1);
-//    }
+
     @ApiOperation("淇敼纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸杩涜銆愬惎鐢�/绂佺敤銆�")
     @PostMapping("/updateEdgStorageCage")
     @ResponseBody
     public Result updateEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) {
-        String isSucess=edgStorageCageService.updateEdgStorageCage(edgStorageCage)?"鎴愬姛":"澶辫触";
-        return Result.build(200,"銆愬惎鐢�/绂佺敤銆�"+isSucess,1);
+        String isSucess = edgStorageCageService.updateEdgStorageCage(edgStorageCage) ? "鎴愬姛" : "澶辫触";
+        return Result.build(200, "銆愬惎鐢�/绂佺敤銆�" + isSucess, 1);
     }
 
     @ApiOperation("纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄�/鏇存崲/缁戝畾銆� EdgStorageCage鏍煎瓙淇℃伅,EdgStorageCageDetails 鐜荤拑淇℃伅 ")
     @PostMapping("/edgStorageCageGlass")
     @ResponseBody
-    public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails,int edgStorageCageId) {
+    public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails, int edgStorageCageId) {
 
-        String isSucess=edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId,edgStorageCageDetails)?"鎴愬姛":"澶辫触";
-        return Result.build(200,"銆愭竻闄�/鏇存崲/缁戝畾銆�"+isSucess,1);
+        String isSucess = edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId, edgStorageCageDetails) ? "鎴愬姛" : "澶辫触";
+        return Result.build(200, "銆愭竻闄�/鏇存崲/缁戝畾銆�" + isSucess, 1);
     }
-
-
 
     @ApiOperation("纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵��   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�  ")
     @PostMapping("/edgReportStatus")
     @ResponseBody
-    public Result edgReportStatus(@RequestBody Map<String, Object> arguments) {
-        /*arguments.put("line","1002");
-        arguments.put("machine","鍗у紡鐞嗙墖");*/
-        String isSucess=edgStorageCageDetailsService.identWorn(arguments)?"鎴愬姛":"澶辫触";
-        return Result.build(200,"銆愮牬鎹�/鎷胯蛋銆�"+isSucess,1);
+    public Result edgReportStatus(@RequestBody @Validated IdentWornRequest request) {
+        return Result.build(200, "銆愮牬鎹�/鎷胯蛋銆�" + edgStorageCageDetailsService.edgReportStatus(request), 1);
     }
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
index 4f00afb..4e7ef5c 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -1,6 +1,7 @@
 package com.mes.edgstoragecage.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 
 import java.util.List;
@@ -15,13 +16,6 @@
  * @since 2024-04-07
  */
 public interface EdgStorageCageDetailsService extends MPJBaseService<EdgStorageCageDetails> {
-
-    /**
-     * 璇嗗埆 鐮存崯/鎷胯蛋
-     * @param arguments
-     * @return
-     */
-    boolean identWorn(Map<String, Object> arguments);
 
     /**
      * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
@@ -46,9 +40,26 @@
 
     /**
      * 鑾峰彇鍑虹墖淇℃伅鏁版嵁
+     *
      * @param glassId
      * @param threshold
      * @return
      */
     EdgStorageCageDetails selectOutGlass(String glassId, int threshold);
+
+    /**
+     * 璇嗗埆   鎷胯蛋:9/鐮存崯:8
+     *
+     * @param request
+     * @return
+     */
+    String identControls(IdentWornRequest request);
+
+    /**
+     * 纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵��   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�
+     *
+     * @param request
+     * @return
+     */
+    String edgReportStatus(IdentWornRequest request);
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index d0f8f5c..e214749 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.query.MPJLambdaQueryWrapper;
@@ -9,16 +10,15 @@
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.common.config.Const;
 import com.mes.damage.entity.Damage;
-import com.mes.damage.mapper.DamageMapper;
 import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
 import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
-import com.mes.engineering.entity.Engineering;
-import com.mes.engineering.mapper.EngineeringMapper;
-import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
 import com.mes.pp.entity.OptimizeDetail;
 import com.mes.pp.entity.OptimizeLayout;
@@ -29,12 +29,11 @@
 import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import javax.print.attribute.standard.MediaSize;
 import java.util.ArrayList;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -60,12 +59,6 @@
     @Autowired
     EdgStorageCageMapper edgStorageCageMapper;
     @Autowired
-    DamageMapper damageMapper;
-
-    @Autowired
-    EngineeringMapper engineeringMapper;
-
-    @Autowired
     GlassInfoMapper glassInfoMapper;
 
     @Autowired
@@ -74,47 +67,8 @@
     @Autowired
     DamageService damageService;
 
-
-    /**
-     * 璇嗗埆   鎷胯蛋:200/鐮存崯:201
-     *
-     * @param arguments
-     * @return
-     */
-    @Override
-    public boolean identWorn(Map<String,Object> arguments) {
-        String glassId=arguments.get("glassId").toString();
-        int state=arguments.get("state").toString().isEmpty()?0:Integer.parseInt(arguments.get("state").toString());
-        int line=arguments.get("line").toString().isEmpty()?0:Integer.parseInt(arguments.get("line").toString());
-        String workingProcedure=arguments.get("workingProcedure").toString();
-        if(state==0||line==0||workingProcedure==null||glassId==null||glassId.isEmpty()){
-            log.info("鍓嶇浼犻�掓暟鎹笉鍏�:{}",arguments);
-            return false;
-        }
-        List<GlassInfo> GlassInfos = glassInfoMapper.selectList(new MPJLambdaQueryWrapper<GlassInfo>()
-                .selectAll(GlassInfo.class)
-                .eq(GlassInfo::getGlassId, glassId));
-        if (GlassInfos.size() == 1) {
-            Damage damage =new Damage();
-            damage.setGlassId(glassId);
-            damage.setLine(line);
-            damage.setWorkingProcedure(workingProcedure);
-            damage.setRemark("");
-            damage.setStatus(state);//8鐮存崯锛�9鎷胯蛋
-            damageService.insertDamage(damage);
-        }else{
-            return false;
-        }
-        List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
-                .selectAll(EdgStorageCageDetails.class)
-                .eq(EdgStorageCageDetails::getGlassId, glassId));
-        if (edgStorageCageDetails.size() == 1) {
-            EdgStorageCageDetails item = edgStorageCageDetails.get(0);
-            item.setState(state);
-            baseMapper.update(item, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId));
-        }
-        return true;
-    }
+    @Autowired
+    EdgGlassTaskInfoService edgGlassTaskInfoService;
 
     /**
      * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
@@ -123,17 +77,13 @@
      */
     @Override
     public List<Map<String, Object>> selectCutTerritory() {
-        List<UpPattenUsage> upPattenUsage=upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
+        List<UpPattenUsage> upPattenUsage = upPattenUsageMapper.selectList(new MPJLambdaWrapper<UpPattenUsage>()
                 .selectAll(UpPattenUsage.class)
-                .innerJoin(Engineering.class, on -> on
-                        .eq(Engineering::getEngineerId, UpPattenUsage::getEngineeringId))
-                .eq(Engineering::getState,1)
                 .orderByDesc(UpPattenUsage::getState)
-                .orderByDesc(UpPattenUsage::getId)
-        );
+                .orderByDesc(UpPattenUsage::getId));
         if (!upPattenUsage.isEmpty()) {
             UpPattenUsage upPattenUsage1 = upPattenUsage.get(0);
-            List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
+            List<Map<String, Object>> cutTerritorys = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                     .selectAll(OptimizeDetail.class)
                     .selectAs(OptimizeLayout::getWidth, "olWidth")
                     .selectAs(OptimizeLayout::getHeight, "olHeight")
@@ -143,34 +93,29 @@
                     .eq(OptimizeDetail::getProjectNo, upPattenUsage1.getEngineeringId())
                     .eq(OptimizeDetail::getStockId, upPattenUsage1.getLayoutSequence())
             );
-            Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
-                    .selectAll(EdgStorageCageDetails.class)
-                    .eq(EdgStorageCageDetails::getEngineerId,upPattenUsage1.getEngineeringId())
-                    .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
-            ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
-
-            Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
-                    .selectAll(Damage.class)
-                    .eq(Damage::getEngineerId,upPattenUsage1.getEngineeringId())
-            ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage));
-
-            List<Map<String, Object>> resultCutTerritory=new ArrayList<>();
+            List<Map<String, Object>> ResultcutTerritorys = new ArrayList<>();
             for (Map<String, Object> cutTerritory : cutTerritorys) {
+                EdgStorageCageDetails edgStorageCageDetails = baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+                        .selectAll(EdgStorageCageDetails.class)
+                        .eq(EdgStorageCageDetails::getGlassId, cutTerritory.get("glass_id"))
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
 //                log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
-                if(cutTerritory.get("glass_id")==null||"".equals(cutTerritory.get("glass_id"))){
-                    log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}",cutTerritorys);
-                    return new ArrayList<>();
-                }else if(edgMaps.get(cutTerritory.get("glass_id"))!=null){
-                    cutTerritory.put("glass_state",edgMaps.get(cutTerritory.get("glass_id")).getState());
-                }else if(damageMaps.get(cutTerritory.get("glass_id"))!=null){
-                    //log.info("鐜荤拑宸茬牬鎹�/鎷胯蛋-----鍐呭锛歿}",damageMaps.get(item.get("glass_id")));
-                    cutTerritory.put("glass_state",damageMaps.get(cutTerritory.get("glass_id")).getStatus());
-                }else{
-                    cutTerritory.put("glass_state",0);
+                if (edgStorageCageDetails != null) {
+                    cutTerritory.put("glass_state", edgStorageCageDetails.getState());
+                } else {
+                    cutTerritory.put("glass_state", 0);
                 }
-                resultCutTerritory.add(cutTerritory);
+                ResultcutTerritorys.add(cutTerritory);
             }
-            return resultCutTerritory;
+            return ResultcutTerritorys;
+
+//            Sql鐗堟湰
+//            return optimizeDetailMapper.selectJoinMaps(new MPJQueryWrapper<OptimizeDetail>().selectAll(OptimizeDetail.class)
+//                    .select("ol.width as olwidth","ol.height as olheight")
+//                    .leftJoin("optimize_layout ol on t.project_no=ol.project_no and t.stock_id=ol.stock_id")
+//                    .eq("t.project_no", upPattenUsage1.getEngineeringId())
+//                    .eq("t.stock_id",upPattenUsage1.getLayoutSequence())
+//            );
         }
         return null;
     }
@@ -184,9 +129,9 @@
     @Override
     public List<List<Map<String, Object>>> selectCurrentCutTerritory(String current) {
         //缁撴灉
-        List<Map<String, Object>> resultCutTerritory=new ArrayList<>();
+        List<Map<String, Object>> ResultcutTerritorys = new ArrayList<>();
         //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
-        List<Map<String, Object>> cutTerritory=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
+        List<Map<String, Object>> cutTerritorys = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                 .selectAll(OptimizeDetail.class)
                 .selectAs(OptimizeLayout::getWidth, "olWidth")
                 .selectAs(OptimizeLayout::getHeight, "olHeight")
@@ -196,35 +141,32 @@
                 .eq(OptimizeDetail::getProjectNo, current)
         );
 
-        Map<String, EdgStorageCageDetails> edgMaps=baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+        Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
                 .selectAll(EdgStorageCageDetails.class)
-                .eq(EdgStorageCageDetails::getEngineerId,current)
+                .eq(EdgStorageCageDetails::getEngineerId, current)
                 .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
-        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
-
-        Map<String, Damage> damageMaps=damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
-                .selectAll(Damage.class)
-                .eq(Damage::getEngineerId,current)
-        ).stream().collect(Collectors.toMap(Damage::getGlassId,Damage->Damage));
-
-        for (Map<String, Object> item : cutTerritory) {
+        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails));
+        for (Map<String, Object> cutTerritory : cutTerritorys) {
 //                log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
-            if(item.get("glass_id")==null||"".equals(item.get("glass_id"))){
-                log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}",cutTerritory);
+            if (cutTerritory.get("glass_id") == null || "".equals(cutTerritory.get("glass_id"))) {
+                log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}", cutTerritorys);
                 return new ArrayList<>();
-            }else if(edgMaps.get(item.get("glass_id"))!=null){
-                item.put("glass_state",edgMaps.get(item.get("glass_id")).getState());
-            }else if(damageMaps.get(item.get("glass_id"))!=null){
-                //log.info("鐜荤拑宸茬牬鎹�/鎷胯蛋-----鍐呭锛歿}",damageMaps.get(item.get("glass_id")));
-                item.put("glass_state",damageMaps.get(item.get("glass_id")).getStatus());
-            }else{
-                item.put("glass_state",0);
+            } else if (edgMaps.get(cutTerritory.get("glass_id")) != null) {
+                cutTerritory.put("glass_state", edgMaps.get(cutTerritory.get("glass_id")).getState());
+            } else {
+                cutTerritory.put("glass_state", 0);
             }
-            resultCutTerritory.add(item);
+            ResultcutTerritorys.add(cutTerritory);
         }
-        Map<String, List<Map<String, Object>>> groupBy=resultCutTerritory.stream().collect(Collectors.groupingBy(item->item.get("stock_id").toString()));
+        Map<String, List<Map<String, Object>>> groupBy = ResultcutTerritorys.stream().collect(Collectors.groupingBy(item -> item.get("stock_id").toString()));
 //        List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
         return new ArrayList<>(groupBy.values());
+//Sql鐗堟湰
+//        return optimizeDetailMapper.selectJoinMaps(new MPJQueryWrapper<OptimizeDetail>().selectAll(OptimizeDetail.class)
+//                .select("ol.width as olwidth","ol.height as olheight")
+//                .leftJoin("optimize_layout ol on t.project_no=ol.project_no and t.stock_id=ol.stock_id")
+//                .eq("t.project_no",current)
+//        );
     }
 
     /**
@@ -315,22 +257,49 @@
         EdgStorageCageDetails outEdgStorageCageDetails = null;
 
 //        if (queryMaxMinDiff(threshold))
-            //todo:閫昏緫1锛氳幏鍙栦袱鏉$嚎宸插嚭鏈�鍚庝竴鍧楃幓鐠冨湪绗煎唴鐩稿悓灏哄鎵�鍓╂暟閲忥紝浼樺厛璧版暟閲忓皯鐨勭嚎
-            //todo:闇�瑕佸湪鍗у紡鐞嗙墖绗艰鎯呰〃涓柊澧炵姸鎬侊紝鐢ㄦ潵琛ㄧず鐜荤拑杩涘嚭鐞嗙墖绗兼儏鍐�
-            if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) {
-                log.info("鎸夌収涓婁竴鐗囧凡鍑虹幓鐠冨搴}锛岄珮搴}锛屽強鐗堝浘id鍖洪棿{}鍒皗}鑾峰彇鍑虹墖浠诲姟鐜荤拑淇℃伅", oldEdgStorageCageDetails.getWidth()
-                        , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + threshold);
-                outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
-                        .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
-                        .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth())
-                        .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight())
-                        .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
-                        .last("limit 1"));
-                log.info("鍑虹墖浠诲姟鐨勭幓鐠冧俊鎭細{}", outEdgStorageCageDetails);
-            }
+        //todo:閫昏緫1锛氳幏鍙栦袱鏉$嚎宸插嚭鏈�鍚庝竴鍧楃幓鐠冨湪绗煎唴鐩稿悓灏哄鎵�鍓╂暟閲忥紝浼樺厛璧版暟閲忓皯鐨勭嚎
+        //todo:闇�瑕佸湪鍗у紡鐞嗙墖绗艰鎯呰〃涓柊澧炵姸鎬侊紝鐢ㄦ潵琛ㄧず鐜荤拑杩涘嚭鐞嗙墖绗兼儏鍐�
+        if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) {
+            log.info("鎸夌収涓婁竴鐗囧凡鍑虹幓鐠冨搴}锛岄珮搴}锛屽強鐗堝浘id鍖洪棿{}鍒皗}鑾峰彇鍑虹墖浠诲姟鐜荤拑淇℃伅", oldEdgStorageCageDetails.getWidth()
+                    , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + threshold);
+            outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                    .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds)
+                    .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth())
+                    .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight())
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence)
+                    .last("limit 1"));
+            log.info("鍑虹墖浠诲姟鐨勭幓鐠冧俊鎭細{}", outEdgStorageCageDetails);
+        }
         if (outEdgStorageCageDetails == null) {
             outEdgStorageCageDetails = minTemperingLayoutId;
         }
         return outEdgStorageCageDetails;
     }
+
+    @Override
+    public String identControls(IdentWornRequest request) {
+        //灏嗚瘑鍒牬鎹熺殑鐜荤拑鐩存帴鍔犲叆鐮存崯琛�
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(request, damage);
+        damage.setType(request.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        return "success";
+    }
+
+    @Override
+    public String edgReportStatus(IdentWornRequest request) {
+        //灏嗙(杈归槦鍒楃牬鎹熺殑鐜荤拑鐩存帴鍔犲叆鐮存崯琛�
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(request, damage);
+        damage.setType(request.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        //淇敼纾ㄨ竟闃熷垪鏁版嵁鐘舵��
+        edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                .set(EdgGlassTaskInfo::getStatus, request.getState()).eq(EdgGlassTaskInfo::getGlassId, request.getGlassId()));
+        return "success";
+    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
index b11d08b..87716c5 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -153,17 +153,15 @@
         EdgStorageCageDetails edgDItem = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
         if (edgItem != null) {
             //绉婚櫎  锛堢牬鎹�,鐩墠涓や釜姒傚康娣峰悎鍦ㄤ竴璧�,寤鸿鎷嗗紑锛�
-            EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>()
-                    .eq(EdgStorageCageDetails::getSlot, edgStorageCageId));
+            EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, edgStorageCageId));
             if (result != null) {
-                int state=8;
                 result.setSlot(0);
-                result.setState(state);
+                result.setState(201);
                 Damage damage =new Damage();
                 damage.setGlassId(edgStorageCageDetails.getGlassId());
                 damage.setLine(1002);
                 damage.setWorkingProcedure("鍗у紡鐞嗙墖");
-                damage.setStatus(state);
+                damage.setStatus(2);
                 damageService.insertDamage(damage);
                 edgStorageCageDetailsMapper.updateById(result);
             }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 3dcf2d7..d0fb44d 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -6,10 +6,13 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.common.S7object;
 import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.device.PlcParameterObject;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
@@ -34,6 +37,7 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Author : zhoush
@@ -58,6 +62,8 @@
 
     @Autowired
     WebSocketServer webServerService;
+    @Autowired
+    DamageService damageService;
 
     @Value("${mes.threshold}")
     private int threshold;
@@ -88,7 +94,7 @@
 
     public static String engineerId = "";
 
-//    @Scheduled(fixedDelay = 1000)
+    @Scheduled(fixedDelay = 1000)
     public void plcHomeEdgTask() {
         Date startDate = new Date();
         log.info("鏈浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -140,23 +146,36 @@
         log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
     }
 
+
     @Scheduled(fixedDelay = 1000)
-    public void temperingIsRun() {
-        JSONObject jsonObject = new JSONObject();
-        //姝e湪杩涜鐨勪换鍔�
-        List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun();
-        jsonObject.append("taskCaches", taskCaches);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
-        if (sendwServer != null) {
-            for (WebSocketServer webserver : sendwServer) {
-                if (webserver != null) {
-                    webserver.sendMessage(jsonObject.toString());
-                } else {
-                    log.info("Home is closed");
-                }
-            }
+    public void dealDamageTask() {
+        Date startDate = new Date();
+        log.info("鍗у紡鐞嗙墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        List<TaskCache> taskCacheList = taskCacheService.list(new LambdaQueryWrapper<TaskCache>().in(TaskCache::getTaskStatus, Const.GLASS_STATE_DAMAGE_TAKE)
+                .in(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL));
+        if (CollectionUtils.isNotEmpty(taskCacheList)) {
+            //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id
+            List<String> glassList = taskCacheList.stream().map(TaskCache::getGlassId).collect(Collectors.toList());
+            //灏嗙(杈归槦鍒楃殑鏁版嵁鍒犻櫎
+            edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().in(EdgGlassTaskInfo::getGlassId, glassList));
+            //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎
+            taskCacheService.remove(new LambdaQueryWrapper<TaskCache>().in(TaskCache::getGlassId, glassList).in(TaskCache::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL));
+            List<Damage> damageList = taskCacheList.stream().map(e -> {
+                Damage damage = new Damage();
+                damage.setGlassId(e.getGlassId());
+                damage.setLine(e.getEndCell());
+                damage.setWorkingProcedure("鍐峰姞宸�");
+                damage.setRemark("纾ㄨ竟鍓嶅崸寮忕悊鐗�");
+                damage.setStatus(0);
+                damage.setType(e.getTaskStatus());
+                return damage;
+            }).collect(Collectors.toList());
+            damageService.batchInsertDamage(damageList);
         }
+        Date endDate = new Date();
+        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
     }
+
 
     /**
      * 杩涚墖浠诲姟
@@ -174,20 +193,23 @@
 
         //鏌ヨ鐜荤拑骞惰繘琛屼氦鎹�
         GlassInfo glassInfo = queryAndChangeGlass(glassId);
-        log.info("3銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+        if (glassInfo == null) {
+            return;
+        }
+        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
         EdgStorageCageDetails details = new EdgStorageCageDetails();
         BeanUtils.copyProperties(glassInfo, details);
         details.setState(Const.GLASS_STATE_IN);
         details.setSlot(nearestEmpty.getSlot());
         details.setDeviceId(nearestEmpty.getDeviceId());
         edgStorageCageDetailsService.save(details);
-        log.info("4銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
+        log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
         //娣诲姞杩涚墖浠诲姟
         boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
-        log.info("5銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
+        log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
 
         S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
-        log.info("6銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
+        log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
 
 
     }
@@ -202,6 +224,10 @@
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
 //                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
         Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");
+        if ((glassInfo.getWidth() < Double.parseDouble(minTwoFirstLength) && glassInfo.getHeight() < Double.parseDouble(minTwoSecondLength)) || (glassInfo.getWidth() < Double.parseDouble(minTwoSecondLength) && glassInfo.getHeight() < Double.parseDouble(minTwoFirstLength))) {
+            log.info("3銆佺幓鐠冧俊鎭笉绗﹀悎杩涘叆鐞嗙墖绗兼渶灏忓昂瀵革紝鐜荤拑淇℃伅涓簕}", glassInfo);
+            return null;
+        }
         //鎸夌収鐜荤拑灏哄
         LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
                 .eq(GlassInfo::getWidth, glassInfo.getWidth())
@@ -531,7 +557,7 @@
         if (endcell == Const.A10_OUT_TARGET_POSITION) {
             wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                     "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
-                    "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength);
+                    "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength + ")");
         } else {
             wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                     "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
@@ -654,7 +680,7 @@
     }
 
     /**
-     * 娣诲姞鐞嗙墖绗间换鍔�
+     * 娣诲姞纾ㄨ竟闃熷垪淇℃伅
      *
      * @param glassInfo
      * @param endcell
@@ -700,13 +726,19 @@
     public void CacheGlassTasks() {
         JSONObject jsonObject = new JSONObject();
         List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+//        List<Map<String, Object>> currentCutTerritorys=new ArrayList<>();
+//        if(engineerId==null||engineerId.isEmpty()){
+//            //璇嗗埆鎽嗙墖 褰撳墠鐗堝浘鏁版嵁
+//            currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+//        }else{
+//            //璇嗗埆鎽嗙墖 姝ngineerId 宸ョ▼鐗堝浘鏁版嵁
+//            currentCutTerritorys = edgStorageCageDetailsService.selectCurrentCutTerritory(engineerId);
+//        }
         jsonObject.append("currentCutTerritory", currentCutTerritorys);
         //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys);
         //纾ㄨ竟淇℃伅
-        List<Map<String, Object>> EdgTasks1 = taskCacheService.selectEdgInfo("2001");
-        List<Map<String, Object>> EdgTasks2 = taskCacheService.selectEdgInfo("2002");
-        jsonObject.append("EdgTasks1", EdgTasks1);
-        jsonObject.append("EdgTasks2", EdgTasks2);
+        List<EdgGlassTaskInfo> edgTasks = edgGlassTaskInfoService.selectEdgInfo();
+        jsonObject.append("edgTasks", edgTasks);
 
         //鍗у缂撳瓨绗煎唴淇℃伅
         List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages();
@@ -728,11 +760,12 @@
             }
         }
     }
+
     @Scheduled(fixedDelay = 1000)
     public void cacheGlassIsRun() {
         JSONObject jsonObject = new JSONObject();
         //姝e湪杩涜鐨勪换鍔�
-        List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun();
+        List<EdgGlassTaskInfo> taskCaches = edgGlassTaskInfoService.selectTaskCacheIsRun();
         jsonObject.append("taskCaches", taskCaches);
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun");
         if (sendwServer != null) {
@@ -745,6 +778,5 @@
             }
         }
     }
-
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 62508b2..850789e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -1,23 +1,21 @@
 package com.mes.taskcache.controller;
 
+import com.mes.edgglasstask.entity.request.IdentWornRequest;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
-import com.mes.edgstoragecage.service.EdgStorageCageService;
-import com.mes.taskcache.entity.TaskCache;
 import com.mes.taskcache.service.TaskCacheService;
 import com.mes.utils.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
 
-import static com.mes.job.CacheGlassTask.engineerId;
-
 /**
  * <p>
- *  鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
  * </p>
  *
  * @author zhoush
@@ -32,8 +30,6 @@
     private EdgStorageCageDetailsService edgStorageCageDetailsService;
 
     @Autowired
-    private EdgStorageCageService edgStorageCageService;
-    @Autowired
     private TaskCacheService taskCacheService;
 
     @ApiOperation("鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�   鍙傛暟(宸ョ▼鍙�)")
@@ -42,30 +38,31 @@
     public Result cutTerritory(String current) {
         //engineerId=current;
         List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
-        return Result.build(200,"鎴愬姛",h);
+        return Result.build(200, "鎴愬姛", h);
     }
+
     @ApiOperation("璇嗗埆鏄剧ず  褰撳墠鐗堝浘   鍙傛暟()")
     @PostMapping("/currentCutTerritory")
     @ResponseBody
     public Result currentCutTerritory() {
         List<Map<String, Object>> h = edgStorageCageDetailsService.selectCutTerritory();
-        return Result.build(200,"鎴愬姛",h);
+        return Result.build(200, "鎴愬姛", h);
     }
-    @ApiOperation("璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D,鍔熻兘[200锛氭嬁璧帮紝201:鐮存崯]锛�")
+
+    @ApiOperation("璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D,鍔熻兘[9锛氭嬁璧帮紝8:鐮存崯]锛�")
     @PostMapping("/identControls")
     @ResponseBody
-    public Result identControls(@RequestBody Map<String, Object> arguments) {
-        boolean issucess = edgStorageCageDetailsService.identWorn(arguments);
-        return Result.build(200,"鎴愬姛",issucess);
+    public Result<String> identControls(@RequestBody @Validated IdentWornRequest request) {
+        return Result.build(200, "鎴愬姛", edgStorageCageDetailsService.identControls(request));
     }
 
     @ApiOperation("纾ㄨ竟浠诲姟 鍙傛暟()")
     @PostMapping("/selectEdgTask")
     @ResponseBody
     public Result selectEdgTask(@RequestBody Map<String, String> arguments) {
-        String line=arguments.get("line");
-        List<Map<String,Object>> EdgTasks = taskCacheService.selectEdgInfo(line);
-        return Result.build(200,"鎴愬姛",EdgTasks);
+        String line = arguments.get("line");
+        List<Map<String, Object>> EdgTasks = taskCacheService.selectEdgInfo(line);
+        return Result.build(200, "鎴愬姛", EdgTasks);
     }
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
index fb0c415..9226203 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
@@ -1,5 +1,6 @@
 package com.mes.taskcache.entity;
 
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
@@ -36,4 +37,7 @@
      */
     private Date createTime;
 
+    @TableLogic
+    private int deleted;
+
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
index daaf6e3..07275d1 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
@@ -73,11 +73,6 @@
      * @return
      */
     TaskCache selectLastOutCacheInfo(int line);
-    /**
-     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
-     * @param
-     * @return
-     */
-    List<TaskCache> selectTaskCacheIsRun();
+
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
index 0e330b0..df949ef 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
@@ -1,5 +1,6 @@
 package com.mes.taskcache.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -7,6 +8,7 @@
 import com.mes.common.config.Const;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
@@ -23,7 +25,7 @@
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author zhoush
@@ -44,57 +46,59 @@
 
     /**
      * 娣诲姞鐞嗙墖绗间换鍔�
+     *
      * @param taskCache
      * @return
      */
     @Override
-    public boolean insertTaskCache(TaskCache taskCache){
+    public boolean insertTaskCache(TaskCache taskCache) {
         baseMapper.insert(taskCache);
         return true;
     }
 
     /**
      * 鏌ヨ纾ㄨ竟浠诲姟
+     *
      * @param line
      * @return
      */
     @Override
-    public List<Map<String,Object>> selectEdgInfo(String line) {
-        List<TaskCache> taskCache=baseMapper.selectList(new MPJLambdaWrapper<TaskCache>()
+    public List<Map<String, Object>> selectEdgInfo(String line) {
+        List<TaskCache> taskCache = baseMapper.selectList(new MPJLambdaWrapper<TaskCache>()
                 .selectAll(TaskCache.class)
                 .eq(TaskCache::getEndCell, line)
-                .eq(TaskCache::getTaskStatus,1)
+                .eq(TaskCache::getTaskStatus, 1)
                 .orderByAsc(TaskCache::getCreateTime));
-        List<Map<String,Object>> result=new ArrayList<>();
-        int serialNumber=1;
-        for(TaskCache taskCache1:taskCache){
-            Map<String,Object> map=new HashMap<>();
+        List<Map<String, Object>> result = new ArrayList<>();
+        int serialNumber = 1;
+        for (TaskCache taskCache1 : taskCache) {
+            Map<String, Object> map = new HashMap<>();
 //            GlassInfo glassInfo=glassInfoMapper.selectOne(new MPJLambdaWrapper<GlassInfo>()
 //                    .selectAll(GlassInfo.class)
 //                    .eq(GlassInfo::getGlassId,taskCache1.getGlassId()));
-            List<GlassInfo> glassInfos=glassInfoMapper.selectJoinList(GlassInfo.class, new MPJLambdaWrapper<GlassInfo>()
+            List<GlassInfo> glassInfos = glassInfoMapper.selectJoinList(GlassInfo.class, new MPJLambdaWrapper<GlassInfo>()
                     .selectAll(GlassInfo.class)
                     .innerJoin(EdgStorageCageDetails.class, on -> on
                             .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId)
                             .eq(EdgStorageCageDetails::getEngineerId, GlassInfo::getEngineerId))
-                    .eq(GlassInfo::getGlassId,taskCache1.getGlassId())
-                    .eq(EdgStorageCageDetails::getState,Const.GLASS_STATE_OUT)
+                    .eq(GlassInfo::getGlassId, taskCache1.getGlassId())
+                    .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
             );
-            if(glassInfos.size()==1){
-                GlassInfo glassInfo=glassInfos.get(0);
-                map.put("Line",line);//绾胯矾   2001  1绾匡紝 2002 2绾�
-                map.put("Width",glassInfo.getWidth());//瀹�
-                map.put("Height",glassInfo.getHeight());//楂�
-                map.put("Thickness",glassInfo.getThickness());//鍘�
-                map.put("GlassId",glassInfo.getGlassId());//鐜荤拑ID
-                map.put("FlowCardId",glassInfo.getFlowCardId());//娴佺▼鍗″彿
-                map.put("TemperingLayoutId",glassInfo.getTemperingLayoutId());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID
-                map.put("TemperingFeedSequence",glassInfo.getTemperingFeedSequence());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID鍐呯殑搴忓彿
-                map.put("FilmsId",glassInfo.getFilmsid());//鑶滅郴
-                map.put("SerialNumber",serialNumber);//鍑虹墖椤哄簭
+            if (glassInfos.size() == 1) {
+                GlassInfo glassInfo = glassInfos.get(0);
+                map.put("Line", line);//绾胯矾   2001  1绾匡紝 2002 2绾�
+                map.put("Width", glassInfo.getWidth());//瀹�
+                map.put("Height", glassInfo.getHeight());//楂�
+                map.put("Thickness", glassInfo.getThickness());//鍘�
+                map.put("GlassId", glassInfo.getGlassId());//鐜荤拑ID
+                map.put("FlowCardId", glassInfo.getFlowCardId());//娴佺▼鍗″彿
+                map.put("TemperingLayoutId", glassInfo.getTemperingLayoutId());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID
+                map.put("TemperingFeedSequence", glassInfo.getTemperingFeedSequence());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID鍐呯殑搴忓彿
+                map.put("FilmsId", glassInfo.getFilmsid());//鑶滅郴
+                map.put("SerialNumber", serialNumber);//鍑虹墖椤哄簭
                 result.add(map);
-            }else if(glassInfos.size()>1){
-                log.info("鏁版嵁涓嶇鍚堥�昏緫--纾ㄨ竟闃熷垪glassId閲嶅:",glassInfos);
+            } else if (glassInfos.size() > 1) {
+                log.info("鏁版嵁涓嶇鍚堥�昏緫--纾ㄨ竟闃熷垪glassId閲嶅:", glassInfos);
                 return new ArrayList<>();
             }
             serialNumber++;
@@ -111,16 +115,18 @@
 
     /**
      * 鏌ヨ寰呯悊鐗囧伐浣滅殑浠诲姟
+     *
      * @return
      */
     @Override
-    public List<TaskCache> selectCacheInfo(){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0));
+    public List<TaskCache> selectCacheInfo() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0));
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0));
     }
 
     /**
      * 鏌ヨ鍏ㄩ儴浠诲姟
+     *
      * @return
      */
     @Override
@@ -130,61 +136,51 @@
 
     /**
      * 鏌ヨ寰呰繘鐗囦换鍔�
+     *
      * @return
      */
     @Override
-    public List<TaskCache> selectInputTaskCache(){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,1));
+    public List<TaskCache> selectInputTaskCache() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0).eq(TaskCache::getTaskType, 1));
 
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",1));
     }
 
     /**
      * 鏌ヨ寰呭嚭鐗囦换鍔�
+     *
      * @return
      */
     @Override
-    public List<TaskCache> selectOutTaskCache(){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,2));
+    public List<TaskCache> selectOutTaskCache() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0).eq(TaskCache::getTaskType, 2));
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",2));
     }
 
     /**
      * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     *
      * @param line
      * @return
      */
     @Override
-    public List<TaskCache> selectLastOutCacheInfos(int line){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime));
+    public List<TaskCache> selectLastOutCacheInfos(int line) {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell, line).eq(TaskCache::getTaskStatus, 1).orderByDesc(TaskCache::getCreateTime));
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("end_cell",line).eq("task_status",1).orderByDesc("ID"));
     }
 
     /**
      * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     *
      * @param line
      * @return
      */
     @Override
-    public TaskCache selectLastOutCacheInfo(int line){
-        return baseMapper.selectOne(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime));
+    public TaskCache selectLastOutCacheInfo(int line) {
+        return baseMapper.selectOne(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell, line).eq(TaskCache::getTaskStatus, 1).orderByDesc(TaskCache::getCreateTime));
     }
-    /**
-     * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
-     * @param
-     * @return
-     */
-    @Override
-    public List<TaskCache> selectTaskCacheIsRun() {
-        List<TaskCache> taskCaches=null;
-        taskCaches=taskCacheMapper.selectJoinList(TaskCache.class, new MPJLambdaWrapper<TaskCache>()
-                .select("top 4   t.end_cell,ISNULL(b.glass_id, 0)as glass_id")
-                .leftJoin("big_storage_cage_feed_task as b on t.glass_id=b.glass_id ")
-                .groupBy("t.end_cell,b.glass_id,t.create_time")
-                .orderByDesc("t.create_time")
-        );
-        return taskCaches;
-    }
+
+
 
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 3a702c3..8ab9ab1 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
 
 spring:
   profiles:
-    active: prod
+    active: dev
   application:
     name: cacheGlass
 mybatis-plus:
@@ -18,11 +18,11 @@
     secondLength: 2500
   min:
     one: #绗竴鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
-      firstLength: 600
-      secondLength: 350
+      firstLength: 500
+      secondLength: 400
     two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
       firstLength: 400
-      secondLength: 300
+      secondLength: 400
   sequence:
     order: false
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index a255625..b7f6d9b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -221,12 +221,12 @@
         LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper();
         bigStorageCageDetailsWrapper
                 .eq(BigStorageCageDetails::getSlot, slot)
-                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL);
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL);
 
         List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper);
         for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
         ) {
-            double widths = bigStorageCageDetails.getWidth();
+            double widths = Math.max(bigStorageCageDetails.getWidth(),bigStorageCageDetails.getHeight()) ;
             width = width - widths - glassGap;
         }
         //淇敼鏍煎瓙鍓╀綑瀹藉害
@@ -266,7 +266,7 @@
     @Override
     public List<Map<String, Object>> selectBigStorageCageUsage() {
         QueryWrapper<BigStorageCage> wrapper = new QueryWrapper<>();
-        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2) AS percentage,SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count")
+        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count")
 
                 .groupBy("device_id");
         List<Map<String, Object>> bigStorageCageUsages = baseMapper.selectMaps(wrapper);
@@ -289,8 +289,8 @@
         return baseMapper.queryFreeDeviceByUsed(thickness);
     }
 
-    @Override
-    public List<Integer> queryFreeDeviceByNotUsed(double thickness) {
-        return baseMapper.queryFreeDeviceByNotUsed(thickness);
-    }
+//    @Override
+//    public List<Integer> queryFreeDeviceByNotUsed(double thickness) {
+//        return baseMapper.queryFreeDeviceByNotUsed(thickness);
+//    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index 5378df6..db4f8c6 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -128,6 +128,8 @@
         if (!REQUEST_WORD.equals(mesD01Value) && REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) {
             if (!d01GlassId.equals(d01Id)) {
                 judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address);
+                edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                        .set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d01Id));
                 d01GlassId = d01Id;
             }
         }
@@ -135,6 +137,8 @@
         if (!REQUEST_WORD.equals(mesD04Value) && REQUEST_WORD.equals(d04ToMES) && !REQUEST_WORD.equals(d05State)) {
             if (!d04GlassId.equals(d04Id)) {
                 judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address);
+                edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
+                        .set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d04Id));
                 d04GlassId = d04Id;
             }
         }
@@ -346,15 +350,15 @@
                     }
                 }
             }
-            //鍚憄lc鍐欏叆纭瀛�
-            int returnData = 0;
-            int count = 1;
-            while (returnData == 0) {
-                log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
-                S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
-                returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
-                log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
-            }
+//            //鍚憄lc鍐欏叆纭瀛�
+//            int returnData = 0;
+//            int count = 1;
+//            while (returnData == 0) {
+//                log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
+//                S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+//                returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+//                log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+//            }
             Date endDate = new Date();
             log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
             return;
@@ -476,10 +480,10 @@
         log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
         //鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
         List<BigStorageCageFeedTask> inDamageTaskInfoList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
-                .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE));
+                .in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
         if (CollectionUtils.isNotEmpty(inDamageTaskInfoList)) {
             log.info("鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", inDamageTaskInfoList);
-            bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE));
+            bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().in(BigStorageCageFeedTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
             //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
             bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
                     .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
@@ -491,7 +495,8 @@
                 damage.setLine(bigStorageCageFeedTask.getLine());
                 damage.setWorkingProcedure("鍐峰姞宸�");
                 damage.setRemark("杩涚鍓嶅崸杞珛");
-                damage.setStatus(2);
+                damage.setStatus(0);
+                damage.setType(bigStorageCageFeedTask.getTaskState());
                 damageService.insertDamage(damage);
                 slotList.add(bigStorageCageFeedTask.getTargetSlot());
             }
@@ -501,16 +506,15 @@
         }
         //鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
         List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
-                .eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_DAMAGE));
+                .in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
         if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) {
             log.info("鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", outDamageTaskInfoList);
-            bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_DAMAGE));
+            bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().in(BigStorageCageOutTask::getTaskState, Const.GLASS_STATE_DAMAGE_TAKE));
             List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
             //绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
             temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
             //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佸垹闄�
             bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList));
-
             //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
             List<Integer> slotList = new ArrayList<>();
             for (BigStorageCageOutTask bigStorageCageOutTask : outDamageTaskInfoList) {
@@ -519,7 +523,8 @@
                 damage.setLine(bigStorageCageOutTask.getEndSlot());
                 damage.setWorkingProcedure("鍐峰姞宸�");
                 damage.setRemark("鍑虹墖鍚庡崸杞珛");
-                damage.setStatus(2);
+                damage.setStatus(0);
+                damage.setType(bigStorageCageOutTask.getTaskState());
                 damageService.insertDamage(damage);
                 slotList.add(bigStorageCageOutTask.getStartSlot());
             }
@@ -539,7 +544,7 @@
         //1銆佽幏鍙栦换鍔¤〃涓浉閭荤幓鐠�
         List<EdgGlassTaskInfo> edgGlassTaskInfoList = edgGlassTaskInfoService.list(new LambdaQueryWrapper<EdgGlassTaskInfo>()
                 .eq(EdgGlassTaskInfo::getLine, line)
-                .apply("time >= (select time from edg_glass_task_info where glass_id = '" + glassId + "')")
+                .apply("time >= (select time from edg_glass_task_info where glass_id = '" + glassId + "' and deleted = 0)")
                 .orderByAsc(EdgGlassTaskInfo::getTime));
         Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触");
         //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害
@@ -708,7 +713,7 @@
         while (returnData == 0) {
             s7control.writeWord(outLine, 2);
             returnData = s7control.readWord(outLine, 1).get(0);
-            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, returnData);
+            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, returnData);
         }
     }
 
@@ -818,13 +823,13 @@
         bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
                 .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
                 .in(BigStorageCageDetails::getGlassId, glassIds));
-        int returnData = 0;
-        int count = 1;
-        while (returnData == 0) {
-            S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
-            returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
-            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
-        }
+//        int returnData = 0;
+//        int count = 1;
+//        while (returnData == 0) {
+//            S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+//            returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+//            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+//        }
         return Boolean.TRUE;
     }
 
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
index 7ecbf06..0118321 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -169,13 +169,13 @@
     @Scheduled(fixedDelay = 1000)
     public void loadGlassIsRun() {
         JSONObject jsonObject = new JSONObject();
+        //鏄惁寮�濮嬪伐绋�
         Engineering engineering = engineeringService.selectInitiate(1);
-        if (engineering != null){
             jsonObject.append("engineering", engineering);
-        }else {
-            jsonObject.append("engineering", "0");
-        }
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("IsRun");
+        //宸ヤ綅淇℃伅
+        List<UpWorkstation> upWorkstations = upWorkstationService.list();
+        jsonObject.append("list", upWorkstations);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlassIsRun");
         if (sendwServer != null) {
             for (WebSocketServer webserver : sendwServer) {
                 if (webserver != null) {
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 e0a91f0..acd2fcf 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
@@ -1,5 +1,10 @@
 package com.mes.job;
+
 import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.tools.WebSocketServer;
@@ -10,6 +15,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author SNG-010
@@ -20,24 +26,27 @@
 
     @Autowired
     private TemperingGlassInfoService temperingAgoService;
+    @Autowired
+    private DamageService damageService;
+
     /**
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
      */
 
     @Scheduled(fixedDelay = 1000)
-    public void temperingGlassHome(){
+    public void temperingGlassHome() {
         JSONObject jsonObject = new JSONObject();
         //姝e湪绛夊緟杩涚墖鐨勭幓鐠�
         List<TemperingGlassInfo> waitingGlass = temperingAgoService.selectWaitingGlass();
-        if(waitingGlass!=null){
+        if (waitingGlass != null) {
             jsonObject.append("waitingGlass", waitingGlass);
         }
 
         //鑾峰彇鏁村湪鐐変腑鐨勪袱涓増鍥緄d
         List<TemperingGlassInfo> layoutId = temperingAgoService.selectLayoutId();
         //杩涚倝涓殑鐜荤拑
-        if(!layoutId.isEmpty()) {
+        if (!layoutId.isEmpty()) {
             List<TemperingGlassInfo> intoGlass = temperingAgoService.selectIntoGlass(layoutId.get(0));
             jsonObject.append("intoGlass", intoGlass);
             //杩涚倝涓殑绗簩涓増鍥�
@@ -48,7 +57,7 @@
         }
         //鍑虹倝鍚庣殑鐜荤拑
         List<TemperingGlassInfo> outGlass = temperingAgoService.selectOutGlass();
-        if(outGlass!=null){
+        if (outGlass != null) {
             jsonObject.append("outGlass", outGlass);
         }
 
@@ -57,7 +66,27 @@
         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) {
@@ -70,13 +99,16 @@
             }
         }
     }
+
     @Scheduled(fixedDelay = 1000)
-    public void temperingIsRun(){
+    public void temperingIsRun() {
         JSONObject jsonObject = new JSONObject();
         //姝e湪杩涜鐨勪换鍔�
-        List<TemperingGlassInfo>temperingTaskType=temperingAgoService.selectTaskType();
+        List<TemperingGlassInfo> temperingTaskType = temperingAgoService.selectTaskType();
         jsonObject.append("temperingTaskType", temperingTaskType);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
+
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingIsRun");
         if (sendwServer != null) {
             for (WebSocketServer webserver : sendwServer) {
                 if (webserver != null) {
@@ -86,6 +118,7 @@
                 }
             }
         }
+
     }
 
 
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
index 8646b79..ac92054 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
@@ -5,6 +5,8 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.mes.common.S7object;
 import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.device.PlcParameterObject;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
@@ -33,6 +35,10 @@
 
     @Autowired
     private TemperingGlassInfoService temporaryGlassInfoService;
+
+    @Autowired
+    private DamageService damageService;
+
     private static final String ALONE_STATE = "0";
 
 
@@ -54,6 +60,10 @@
         List<Object> temperRecordIdListObj = temporalRecordService.listObjs(new QueryWrapper<TemperingRecord>().select("distinct tempering_layout_id"));
 
         List<String> temperRecordIdList = temperRecordIdListObj.stream().map(String::valueOf).collect(Collectors.toList());
+        if (CollectionUtils.isEmpty(temperRecordIdList)) {
+            log.info("褰撳墠绯荤粺娌℃湁闇�瑕侀挗鍖栫殑鐜荤拑淇℃伅");
+            return;
+        }
         List<TemperingGlassInfo> list = temporaryGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
                 .eq(TemperingGlassInfo::getState, Const.TEMPERING_START).notIn(TemperingGlassInfo::getTemperingLayoutId, temperRecordIdList));
         if (CollectionUtils.isEmpty(list)) {
@@ -77,4 +87,30 @@
     public void temperingGlassAfter() {
 
     }
+
+    @Scheduled(fixedDelay = 1000)
+    public void dealDamageTask() {
+        Date startDate = new Date();
+        log.info("閽㈠寲鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        List<TemperingGlassInfo> temperingGlassInfoList = temporaryGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getState, Const.GLASS_STATE_DAMAGE_TAKE));
+        if (CollectionUtils.isNotEmpty(temperingGlassInfoList)) {
+            //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id
+            List<String> glassList = temperingGlassInfoList.stream().map(TemperingGlassInfo::getGlassId).collect(Collectors.toList());
+            //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎
+            temporaryGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassList));
+            List<Damage> damageList = temperingGlassInfoList.stream().map(e -> {
+                Damage damage = new Damage();
+                damage.setGlassId(e.getGlassId());
+                damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION);
+                damage.setWorkingProcedure("閽㈠寲");
+                damage.setRemark("閽㈠寲");
+                damage.setStatus(0);
+                damage.setType(e.getState());
+                return damage;
+            }).collect(Collectors.toList());
+            damageService.batchInsertDamage(damageList);
+        }
+        Date endDate = new Date();
+        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
new file mode 100644
index 0000000..9f342f0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
@@ -0,0 +1,48 @@
+package com.mes.downglassinfo.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownGlassInfoRequest implements Serializable {
+
+    /**
+     * 宸ヤ綅id
+     */
+    private Integer workStationId;
+
+    /**
+     * 宸ョ▼id
+     */
+    private String engineerId;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date endDate;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java
new file mode 100644
index 0000000..05a9aed
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/request/CacheWornRequest.java
@@ -0,0 +1,28 @@
+package com.mes.downstorage.entity.request;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/8/10 13:34
+ * @Description:
+ */
+@Data
+public class CacheWornRequest {
+
+    @NotBlank(message = "鐜荤拑ID涓嶈兘涓虹┖")
+    private String glassId;
+
+    @NotNull(message = "鐘舵�佷笉鑳戒负绌�")
+    private int state;
+
+    @NotNull(message = "绾胯矾涓嶈兘涓虹┖")
+    private int line;
+
+    @NotBlank(message = "宸ュ簭涓嶈兘涓虹┖")
+    private String workingProcedure;
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
index 18e1259..b204f0c 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -1,14 +1,18 @@
 package com.mes.downstorage.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downglassinfo.service.DownGlassTaskService;
 import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
 import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
@@ -46,6 +50,8 @@
     private DownStorageCageDetailsService downStorageCageDetailsService;
     @Autowired
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+    @Autowired
+    DamageService damageService;
 
     @Override
     public DownGlassTask createDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) {
@@ -128,7 +134,6 @@
     }
 
 
-
     @Override
     public List<Map<String, Object>> selectDownStorageCages() {
         return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class)
@@ -190,7 +195,10 @@
 
         if (downItem != null) {
             //绉婚櫎
-            DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot, downStorageCageId));
+            DownStorageCageDetails result = downStorageCageDetailsMapper
+                    .selectOne(new MPJLambdaWrapper<DownStorageCageDetails>()
+                            .eq(DownStorageCageDetails::getSlot, downStorageCageId)
+                    );
             if (result != null) {
                 result.setSlot(0);
                 downStorageCageDetailsMapper.updateById(result);
@@ -200,4 +208,19 @@
         return true;
     }
 
+    @Override
+    public void deleteDownStorageCage(CacheWornRequest cacheWornRequest) {
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(cacheWornRequest, damage);
+        damage.setType(cacheWornRequest.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>()
+                .set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .eq(DownStorageCageDetails::getGlassId, cacheWornRequest.getGlassId())
+                .eq(DownStorageCageDetails::getState,Const.GLASS_STATE_IN));
+
+    }
+
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index ab141ce..c324ce2 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -3,10 +3,13 @@
 import cn.hutool.core.lang.Assert;
 import cn.smallbun.screw.core.util.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.mes.common.S7object;
 import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.device.PlcParameterObject;
 import com.mes.downglassinfo.entity.DownGlassInfo;
 import com.mes.downglassinfo.entity.DownGlassTask;
@@ -54,9 +57,8 @@
     DownWorkstationService downWorkstationService;
     @Autowired
     DownGlassInfoService downGlassInfoService;
-
-    @Value("${mes.threshold}")
-    private Integer threshold;
+    @Autowired
+    DamageService damageService;
 
     @Value("${mes.throughWidth}")
     private Integer throughWidth;
@@ -126,6 +128,68 @@
         }
     }
 
+    @Scheduled(fixedDelay = 300)
+    public void plcShelfFull() {
+        List<DownWorkstation> list = downGlassInfoService.queryWorkStationIsFull();
+        if (CollectionUtils.isNotEmpty(list)) {
+            S7control s7control = S7object.getinstance().plccontrol;
+            PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+            s7control.writeWord(plcMesObject.getPlcParameter("alarm_signal").getAddress(), 1);
+        }
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void dealDamageTask() {
+        Date startDate = new Date();
+        log.info("涓嬬墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        List<DownGlassTask> downGlassTaskList = downGlassTaskService.list(new LambdaQueryWrapper<DownGlassTask>()
+                .in(DownGlassTask::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL).in(DownGlassTask::getTaskStatus, Const.GLASS_STATE_DAMAGE_TAKE));
+        if (CollectionUtils.isNotEmpty(downGlassTaskList)) {
+            //鑾峰彇鐮存崯/鎷胯蛋鐜荤拑id
+            List<String> glassList = downGlassTaskList.stream().map(DownGlassTask::getGlassId).collect(Collectors.toList());
+            //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎
+            downGlassTaskService.remove(new LambdaQueryWrapper<DownGlassTask>().in(DownGlassTask::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL).in(DownGlassTask::getGlassId, glassList));
+            List<Damage> damageList = downGlassTaskList.stream().map(e -> {
+                Damage damage = new Damage();
+                damage.setGlassId(e.getGlassId());
+                damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION);
+                damage.setWorkingProcedure("涓嬬墖");
+                damage.setRemark("涓嬬墖");
+                damage.setStatus(0);
+                damage.setType(e.getTaskStatus());
+                return damage;
+            }).collect(Collectors.toList());
+            damageService.batchInsertDamage(damageList);
+        }
+        Date endDate = new Date();
+        log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
+
+    /**
+     * 鏇存柊宸茬粦瀹氬伐浣嶆祦绋嬪崱鐨勭牬鎹�/鎷胯蛋鐨勬暟閲忎俊鎭�
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void updateWorkStationOtherCount() {
+        Date startDate = new Date();
+        log.info("涓嬬墖鐮存洿鏂版崯鐜荤拑鏁伴噺浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        //鑾峰彇宸茬粦瀹氭祦绋嬪崱鐨勫伐浣嶄俊鎭�
+        List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                .isNotNull(DownWorkstation::getFlowCardId)
+                .ne(DownWorkstation::getFlowCardId, "")
+                .orderByDesc(DownWorkstation::getWorkstationId));
+        for (DownWorkstation downWorkstation : downWorkstationList) {
+            //鏇存柊宸ヤ綅鍏朵粬鐜荤拑淇℃伅鐨勬暟閲�
+            QueryWrapper<Damage> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("process_id", downWorkstation.getFlowCardId());
+            queryWrapper.eq("technology_number", downWorkstation.getLayer());
+            int otherNumber = damageService.count(queryWrapper);
+            downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getOtherNumber, otherNumber)
+                    .eq(DownWorkstation::getWorkstationId, downWorkstation.getWorkstationId()));
+        }
+        Date endDate = new Date();
+        log.info("涓嬬墖鐮存洿鏂版崯鐜荤拑鏁伴噺浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
+    }
+
     public void inTo(String glassId, String requestWord, String currentSlot) {
         log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅,褰撳墠鏍煎瓙涓�:{}", glassId, currentSlot);
         //娣诲姞杩涚墖浠诲姟  鏌ユ壘绌烘牸
@@ -170,7 +234,7 @@
             }
             if (!checkFlag) {
                 log.info("鏃犵┖鏋跺瓙,鑾峰彇宸茬粦瀹氭灦瀛愮殑娴佺▼鍗′俊鎭�,鏌ョ湅鐜荤拑淇℃伅鏄惁鍙瀵硅皟");
-                List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.FALSE);
+                List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Const.WORK_STATION_ALL, Boolean.FALSE);
                 log.info("鑾峰彇鏋跺瓙涓婂凡缁戝畾娴佺▼鍗¤惤鏋剁殑鏁伴噺鍙婃湭钀芥灦鐨勭幓鐠冩暟鎹細{}", downGlassInfoDTOList);
                 if (CollectionUtils.isEmpty(downGlassInfoDTOList)) {
                     log.info("宸茬粦瀹氭祦绋嬪崱鍧囨棤鏈惤鏋剁幓鐠冿紝璇峰強鏃跺鐞嗘灦瀛愪笂鐨勭幓鐠冿紝娓呴櫎娴佺▼鍗�,鎵ц杩涚墖浠诲姟");
@@ -215,6 +279,7 @@
         BeanUtils.copyProperties(glassInfo, downStorageCageDetails);
         downStorageCageDetails.setState(Const.GLASS_STATE_IN);
         downStorageCageDetails.setSlot(nearestEmpty.getSlot());
+        downStorageCageDetails.setDeviceId(nearestEmpty.getDeviceId());
         downStorageCageDetailsService.save(downStorageCageDetails);
         //        鐢熸垚杩涚墖浠诲姟
         initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
@@ -237,6 +302,7 @@
             //鑾峰彇褰撳墠绗煎瓙绌烘牸淇℃伅
             DownStorageCage empty = downStorageCageService.selectCacheEmpty(Integer.parseInt(currentSlot), Boolean.TRUE);
             cageDetails.setSlot(empty.getSlot());
+            cageDetails.setDeviceId(empty.getDeviceId());
             tempList.add(cageDetails);
         }
         log.info("鍑虹墖2锛氱鍐呯幓鐠冪殑鏁版嵁(鍖呮嫭寰呰繘鐗�)鏈夛細{}", tempList);
@@ -309,6 +375,7 @@
             }
         }
         List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6);
+        //鑾峰彇闈炴湰娆¤惤鏋剁殑鏋跺瓙淇℃伅
         List<Integer> offWorkStationList = workStationAll.stream().filter(e -> !workList.contains(e)).collect(Collectors.toList());
         List<DownStorageCageDetails> list = new ArrayList();
         //鏄惁鏈夌┖鏋跺瓙 true锛氭湁   false:鏃�
@@ -339,8 +406,15 @@
                             .filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
                     //杩囨护绛涢�夎幏鍙栨灦瀛愪笂瀵瑰簲娴佺▼鍗�+灞傛暟鐨勭瀛愬唴鐨勭幓鐠冧俊鎭�
                     list = tempList.stream().filter(item -> listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
+                    if (CollectionUtils.isEmpty(list) && flag08 && !"2".equals(glassStatus13)) {
+                        list = tempList.stream().filter(item -> {
+                            double firstLength = Math.max(item.getWidth(), item.getHeight());
+                            double secondLength = Math.min(item.getWidth(), item.getHeight());
+                            return firstLength > maxWidth || secondLength > maxHeight;
+                        }).collect(Collectors.toList());
+                    }
                 } else {
-                    log.info("瀛樺湪鏈粦瀹氭祦绋嬪崱鏋跺瓙锛岀洿鎺ヨ幏鍙栫鍐呮墍鏈夌幓鐠�,涓旀湭缁戝畾鏋跺瓙鐨勭幓鐠冧俊鎭�");
+                    log.info("瀛樺湪鏈粦瀹氭祦绋嬪崱鏋跺瓙锛岀洿鎺ヨ幏鍙栫鍐呮墍鏈夌幓鐠�,涓旀湭缁戝畾鏋跺瓙鐨勭幓鐠冧俊鎭紙閮藉彲浠ュ嚭鐨勭幓鐠冿級");
                     //鑾峰彇绂佺敤鍙婇潪鏈満姊拌噦鐨勬灦瀛愮殑娴佺▼鍙峰強灞傛暟瀵瑰簲鐨勭幓鐠冧俊鎭�
                     List<DownWorkstation> downWorkstationOffList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
                             .and(i -> i.in(DownWorkstation::getWorkstationId, offWorkStationList).or().eq(DownWorkstation::getEnableState, Const.SLOT_OFF)));
@@ -370,6 +444,8 @@
             log.info("绗煎唴鐜荤拑鏃犳硶鎵ц鍑虹墖");
             return Boolean.FALSE;
         }
+        //鑾峰彇鍏蜂綋鍑洪偅涓�鐗囩幓鐠�
+        //tao:浜哄伐--> 鎵�鏈夋灦瀛愰兘鏈粦瀹氭椂杩涜缁戝畾 --->鏈夋湭缁戝畾鏋跺瓙鏃惰繘琛岀粦瀹� --->缁戝畾杩囨祦绋嬪崱鐨勭幓鐠�-->鐜荤拑娴佺▼鍗″灞�--->鐜荤拑娴佺▼鍗″崟灞�
         String tempGlassId = null;
         Boolean isNeedBind = Boolean.FALSE;
 
@@ -387,16 +463,17 @@
         loop:
         if (StringUtils.isBlank(tempGlassId)) {
             //鑾峰彇姝e湪钀芥灦鐨勭粦瀹氭祦绋嬪崱鐨勪俊鎭�(娴佺▼鍗°�佸眰鏁般�佽惤鏋舵暟閲�)
-            List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.TRUE);
+            //钀芥灦鐜荤拑鏁颁负0锛屽嵆浣跨粦瀹氫簡娴佺▼鍗★紝涔熸棤娉曟壘鍒板搴旂殑鏋跺瓙淇℃伅锛屽彧鑳介噸鏂扮粦瀹�
+            List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationFlowCard(workList);
             List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
             if (CollectionUtils.isEmpty(downGlassFlowList)) {
                 //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃�  鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
                 tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList);
-
                 isNeedBind = Boolean.TRUE;
                 break loop;
             }
             //灏嗙瀛愬唴鐨勭幓鐠冭繘琛岃繃婊わ紝浠呰幏鍙栨棤娉曡惤鏋剁殑娴佺▼鍗$幓鐠�
+            //tao:褰撴湁绌烘灦鏃朵紭鍏堝绗煎唴鍙嚭鐗囦笖鏈粦鏋跺瓙鐨勭幓鐠冭繘鍑虹粦鏋跺苟鍑虹墖
             List<DownStorageCageDetails> noDownLoadList = list.stream().filter(item -> !downGlassFlowList.contains(item.getFlowCardId() + ":" + item.getLayer()))
                     .collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(noDownLoadList)) {
@@ -417,7 +494,7 @@
                 return Boolean.FALSE;
             }
             //灏嗙鍐呯幓鐠冪殑娴佺▼鍗�+灞傚彿 鍜岃惤鏋剁殑娴佺▼鍗� 鍘婚噸锛屽緱鍑哄睍绀烘棤娉曡惤鏋剁殑鐜荤拑锛屽垽鏂幓鐠冩暟鏄惁瓒呰繃闃堝��
-            //绗煎唴鐜荤拑鏄惁鍙惤鏋�:绗煎唴鏄惁鏈夐渶瑕佷腑绌虹殑
+            //绗煎唴鐜荤拑鏄惁鍙惤鏋�:绗煎唴鏄惁鏈夐渶瑕佷腑绌�
             List<DownStorageCageDetails> multiLayerList = list.stream().filter(item -> item.getTotalLayer() >= 2).collect(Collectors.toList());
             if (CollectionUtils.isNotEmpty(multiLayerList)) {
                 for (DownStorageCageDetails item : multiLayerList) {
@@ -434,7 +511,7 @@
                         break loop;
                     }
                     Integer sequence = downGlassInfoService.queryMaxSequence(item.getFlowCardId(), item.getLayer());
-                    log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑閫氳揪娆″簭+1:{}", sequence);
+                    log.info("鑾峰彇褰撳墠鐜荤拑闇�瑕佹斁鐨勬搴忥細绗煎唴鍚屾祦绋� 鍚屽眰鏁扮殑钀芥灦娆″簭+1:{}", sequence);
                     DownGlassInfo downGlassInfo = downGlassInfoService.getOne(new LambdaQueryWrapper<DownGlassInfo>()
                             .eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId())
                             .eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence));
@@ -456,6 +533,7 @@
                         if (CollectionUtils.isNotEmpty(downStorageCageDetails)) {
                             tempGlassId = downStorageCageDetails.get(0).getGlassId();
                             break;
+
                         }
                     }
                 }
@@ -527,6 +605,7 @@
         //钀芥灦鐗囧簭
         downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()));
         downGlassInfo.setWorkStationId(endCell);
+        downGlassInfo.setGmtCreate(new Date());
         downGlassInfoService.save(downGlassInfo);
         //鐢熸垚浠诲姟淇℃伅
         GlassInfo glassInfo = new GlassInfo();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
index 9468ed9..c8c24c9 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -3,7 +3,7 @@
 
 spring:
   profiles:
-    active: dev
+    active: cz
   application:
     name: unLoadGlass
 

--
Gitblit v1.8.0