From 4829439b3c4d52ecee6e9858068552b2f9d8ac79 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期三, 17 七月 2024 14:17:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java                                   |   10 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java           |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java                                                          |    5 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java                                          |    6 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java                                  |    3 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java                          |   15 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java |    1 
 UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue                                                                                     |    8 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java                           |    7 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                                    |   54 ++-
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java                  |    3 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java                                                |    3 
 UI-Project/src/assets/dlpl9.png                                                                                                               |    0 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java         |    6 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                                  |    3 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java             |   24 -
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java                            |    3 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java                          |    4 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java              |    1 
 UI-Project/src/assets/d1a.png                                                                                                                 |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java                                            |   26 +
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java                                          |    3 
 UI-Project/src/assets/lp9.png                                                                                                                 |    0 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                         |   10 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java                                                  |    3 
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue                                                                                       |    2 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java                                              |    3 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java                                                |    2 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java                                                  |    2 
 UI-Project/src/router/index.js                                                                                                                |   13 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java                      |   13 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java             |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml                           |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java                                       |    3 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java                                                         |    4 
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java                                |    3 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java                     |    7 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                          |  122 ++------
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java                 |    3 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java                                              |    3 
 UI-Project/src/views/largescreen/largescreen.vue                                                                                              |    2 
 UI-Project/src/views/UnLoadGlass/Landingindication.vue                                                                                        |    8 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                                |   42 +--
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml                            |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java                   |   65 ++++
 UI-Project/src/views/ReportWork/reportWork.vue                                                                                                |  125 ++++++++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java  |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java                                               |    3 
 UI-Project/src/views/Slicecage/slicecage.vue                                                                                                  |  119 +++++---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java                                            |    8 
 UI-Project/src/views/PurchaseReturn/purchaseReturn.vue                                                                                        |    8 
 UI-Project/src/assets/lpa9.png                                                                                                                |    0 
 52 files changed, 472 insertions(+), 310 deletions(-)

diff --git a/UI-Project/src/assets/d1a.png b/UI-Project/src/assets/d1a.png
new file mode 100644
index 0000000..b031d4b
--- /dev/null
+++ b/UI-Project/src/assets/d1a.png
Binary files differ
diff --git a/UI-Project/src/assets/dlpl9.png b/UI-Project/src/assets/dlpl9.png
new file mode 100644
index 0000000..fc78fde
--- /dev/null
+++ b/UI-Project/src/assets/dlpl9.png
Binary files differ
diff --git a/UI-Project/src/assets/lp9.png b/UI-Project/src/assets/lp9.png
new file mode 100644
index 0000000..a976458
--- /dev/null
+++ b/UI-Project/src/assets/lp9.png
Binary files differ
diff --git a/UI-Project/src/assets/lpa9.png b/UI-Project/src/assets/lpa9.png
new file mode 100644
index 0000000..f7f2204
--- /dev/null
+++ b/UI-Project/src/assets/lpa9.png
Binary files differ
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 030de26..d790e4b 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -259,6 +259,19 @@
       },
     ]
   },
+  /*----------- 鎶ュ伐绠$悊 ----------------*/
+  {
+    path: 'reportWork',
+    name: 'reportWork',
+    component: () => import('../views/ReportWork/reportWork.vue'),
+    children:[
+      {
+        path: '/ReportWork/reportWork',
+        name: 'reportWork',
+        component: () => import('../views/ReportWork/reportWork.vue')
+      },
+    ]
+  },
         /*----------- 绠$悊绯荤粺 ----------------*/
         {
           path: 'sys',
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 77bd047..14920eb 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -89,7 +89,7 @@
     >
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div>
    </div>
@@ -106,7 +106,7 @@
     >
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div>
    </div>
@@ -128,7 +128,7 @@
        backgroundColor: rect.state === 0 ? '#dedfe0' : '#d1edc4' }">
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
@@ -149,7 +149,7 @@
        backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }">
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index d987eb8..5c0133f 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -67,7 +67,7 @@
        backgroundColor: rect.state === 4 ? '#d1edc4' : '#f8e3c5' }">
      <div  class="centered-text">
     <div >{{ rect.flowcardId }}</div>  
-    <div style="margin-top: 50px;margin-left: -50px;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
+    <div style="text-align: center;">{{ rect.widtha }}*{{ rect.heighta }}</div>  
   </div>
   </div> 
    </div>
diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
new file mode 100644
index 0000000..cd22ee2
--- /dev/null
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -0,0 +1,125 @@
+<template>
+  <div style="height: 600px;">
+    <span class="demonstration">鐢熶骇鏃堕棿</span>
+    <el-date-picker v-model="timeRange" type="daterange" format="YYYY/MM/DD" value-format="YYYY-MM-DD"
+      start-placeholder="寮�濮嬫椂闂�" end-placeholder="缁撴潫鏃堕棿" :default-time="defaultTime" />
+    <el-select v-model="report.type" placeholder="娓呴�夋嫨绫诲瀷">
+      <el-option label="鍏ㄩ儴" value="0"></el-option>
+      <el-option label="瀹屽伐" value="1"></el-option>
+      <el-option label="鐮存崯" value="2"></el-option>
+      <el-option label="鎷胯蛋" value="3"></el-option>
+    </el-select>
+    <el-select v-model="report.status" placeholder="娓呴�夋嫨鐘舵��">
+      <el-option label="鍏ㄩ儴" value="0"></el-option>
+      <el-option label="鏈姤宸�" value="1"></el-option>
+      <el-option label="寰呮姤宸�" value="2"></el-option>
+      <el-option label="宸叉姤宸�" value="3"></el-option>
+    </el-select>
+    <el-select v-model="report.workProcedure" placeholder="娓呴�夋嫨宸ュ簭">
+      <el-option label="鍏ㄩ儴" value="0"></el-option>
+      <el-option label="鍒囧壊" value="1"></el-option>
+      <el-option label="纾ㄨ竟" value="2"></el-option>
+      <el-option label="閽㈠寲" value="3"></el-option>
+    </el-select>
+    <el-button type="primary" @click="selectReportData()">鏌ヨ</el-button>
+    <el-button type="success">鎶ュ伐</el-button>
+    <el-table height="100%" ref="table" :data="reportData"
+      :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
+      <el-table-column prop="reportData.line" align="center" label="绾胯矾" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="宸ュ簭" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="鐜荤拑id" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="宸ョ▼鍙�" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="閽㈠寲鐗堝浘id" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="鐢熶骇鏃堕棿" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="澶囨敞" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="绫诲瀷" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="鐘舵��" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="娴佺▼鍗�" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="搴忓彿" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="灞�" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="鐮存崯绫诲瀷" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="鐮存崯鍘熷洜" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="璐d换宸ュ簭" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="璐d换浜哄憳" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="璐d换鐝粍" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="璐d换璁惧" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="鎶ュ伐鐝粍" min-width="120" />
+      <el-table-column prop="reportData.line" align="center" label="鎶ュ伐璁惧" min-width="120" />
+    </el-table>
+  </div>
+</template>
+<script setup>
+import { Delete, Upload } from '@element-plus/icons-vue'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { ref, onMounted, onBeforeUnmount, reactive, computed, shallowRef, onUnmounted, watchEffect } from "vue";
+import request from "@/utils/request"
+import { WebSocketHost, host } from '@/utils/constants'
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+const report = ref({
+  type: '',
+  status: '',
+  workProcedure: '',
+});
+const reportData = ref([])
+const timeRange = ref([new Date(2000, 10, 10), new Date(2200, 10, 11)])
+
+
+// 鏌ヨ鏁版嵁
+const selectReportData = async () => {
+  console.log(timeRange.value[0])
+  const response = await request.post("/loadGlass/damage/selectDamage", {
+    startTime: timeRange.value[0],
+    endTime: timeRange.value[1],
+    type: report.value.type,
+    status: report.value.status,
+    workProcedure: report.value.workProcedure,
+  })
+  if (response.code === 200) {
+    reportData.value = response.data;
+    ElMessage.success(response.message);
+  } else {
+    ElMessage.error(response.message);
+  }
+};
+
+const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
+const handleMessage = (data) => {
+  // adjustedRects.value = data.device[0].map(rect => ({  
+  //       ...rect, 
+  //       completed: rect.completedQuantity,
+  //       breakage: rect.breakageQuantity,
+  //       thisProcess: rect.thisProcess,
+  //     })); 
+};
+let socket;
+onMounted(() => {
+  socket = new WebSocket(socketUrl);
+  socket.onmessage = (event) => {
+    const data = JSON.parse(event.data);
+
+    // updateCharts();
+  };
+  // };  
+});
+
+
+
+
+onUnmounted(() => {
+  socket.close();
+});
+
+onMounted(() => {
+  // fetchFlowCardId();
+  // fetchTableData(); // 鑾峰彇鏁版嵁
+  initializeWebSocket(socketUrl, handleMessage);
+});
+onBeforeUnmount(() => {
+  console.log("鍏抽棴浜�")
+  closeWebSocket();
+});
+</script>
+
+<style scoped></style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 5fd9087..749d012 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -69,57 +69,57 @@
 const cell8=ref(true);
 const cell9=ref(true);
 const selectedRow = ref(null); // 瀛樺偍閫変腑鐨勮鏁版嵁  
-
-
+ 
+ 
     // 褰撳墠椤电爜鍜屾瘡椤垫樉绀虹殑鏉℃暟
     const currentPage = ref(1);
     const itemsPerPage = computed(() => {
       if (currentPage.value === 1) {
-        return 21;
+        return 55;
       } else if (currentPage.value === 2) {
-        return 21;
+        return 55;
       } else if (currentPage.value === 3) {
-        return 21;
+        return 55;
       } else if (currentPage.value === 4) {
-        return 20;
+        return 55;
       } else if (currentPage.value === 5) {
-        return 21;
+        return 55;
       } else if (currentPage.value === 6) {
         return 25;
       } else if (currentPage.value === 7) {
-        return 51;
+        return 30;
       } else if (currentPage.value === 8) {
         return 25;
       } else {
         return 25; // 榛樿鍊硷紝鍙互鏍规嵁瀹為檯闇�姹備慨鏀�
       }
     });
-
+ 
     // 璁$畻鍒嗛〉鍚庣殑鏁版嵁
     const paginatedUsers = computed(() => {
       const startIndex = calculateStartIndex();
       const endIndex = startIndex + itemsPerPage.value;
       return tableData.value.slice(startIndex, endIndex);
     });
-
+ 
     // 璁$畻褰撳墠椤电殑璧峰绱㈠紩
     function calculateStartIndex() {
       let index = 0;
       for (let i = 1; i < currentPage.value; i++) {
         if (i === 1) {
-          index += 21;
+          index += 55;
         } else if (i === 2) {
-          index += 21;
+          index += 55;
         } else if (i === 3) {
-          index += 21;
+          index += 55;
         }else if (i === 4) {
-          index += 20;
+          index += 55;
         }else if (i === 5) {
-          index += 21;
+          index += 55;
         }else if (i === 6) {
           index += 25;
         }else if (i === 7) {
-          index += 51;
+          index += 30;
         }else if (i === 8) {
           index += 25;
         } else {
@@ -145,7 +145,7 @@
         currentPage.value++;
       }
     };
-
+ 
     // 鎬婚〉鏁拌绠�
     const totalPages = computed(() => {
       // let total = 0;
@@ -162,9 +162,9 @@
       // }
       return 9;
     });
-
-
-
+ 
+ 
+ 
 const getTableRow = (row,type) =>{
   switch (type) {
     case 'edit' :{
@@ -452,7 +452,7 @@
       ElMessage.success(response.message);
       glassId.value = '';
       tableDataf.value = '';
-
+ 
       } else {  
       ElMessage.error(response.message);
       }  
@@ -469,21 +469,38 @@
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
   // 鏇存柊 tableData 鐨勬暟鎹�
-  tableDatac.value = data.bigStorageCageDetailsOutTask[0]
-  tableDatad.value = data.bigStorageCageDetailsFeedTask[0]
+  if(data.bigStorageCageDetailsOutTask!=null){
+    tableDatac.value = data.bigStorageCageDetailsOutTask[0]
+    adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);
+  }
+  if(data.bigStorageCageDetailsFeedTask!=null){
+    tableDatad.value = data.bigStorageCageDetailsFeedTask[0]
+    adjust.value = data.bigStorageCageDetailsFeedTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined); 
+  }
+  
   // adjust.value = data.bigStorageCageDetailsFeedTask[0].map(rect => ({  
   //           ...rect, 
   //         })); 
-  adjusta.value = data.bigStorageCageDetailsOutTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);  
-  adjust.value = data.bigStorageCageDetailsFeedTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);  
+     
 //   const adjust = computed(() => {  
 //   return data.value.bigStorageCageDetailsFeedTask[0].filter(rect => rect.slot !== null && rect.slot !== undefined);  
 // }); 
+if(data.bigStorageCageInfo!=null){
   tableData.value = data.bigStorageCageInfo[0]
+}
+if(data.temperingGlassInfoList!=null){
   tableDatab.value = data.temperingGlassInfoList[0]
+}
+if(data.bigStorageCageUsage!=null){
   tableDatae.value = data.bigStorageCageUsage[0]
+}
+if(data.carPostion!=null){
   carPosition.value = data.carPostion[0]
-  window.localStorage.setItem('length', data.bigStorageCageInfos[0][1].length)
+}
+  
+  
+  if(data.bigStorageCageInfos!=null){
+    window.localStorage.setItem('length', data.bigStorageCageInfos[0][1].length)
   let length = window.localStorage.getItem('length')
   adjustedRects.value = data.bigStorageCageInfos[0][1].map(rect => ({  
             ...rect, 
@@ -530,12 +547,15 @@
             height: 20/length,
             top: 29/length
           })); 
+  }
+ 
+  
 };
 // 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
 onMounted(() => {
   // fetchFlowCardId();
   initializeWebSocket(socketUrl, handleMessage);
-
+ 
 });
 function getStatusType(enableState: number) {  
   switch (enableState) {  
@@ -599,7 +619,7 @@
     <el-button style="margin-top: 5px;margin-left: 10px;"   id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button>
     <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
-        <el-table height="100%" ref="table" 
+        <el-table height="100px" ref="table" 
         :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="bigStorageCageOutTask.glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="120" />
           <el-table-column prop="bigStorageCageOutTask.startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
@@ -634,7 +654,7 @@
     </el-card>
     <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
-        <el-table height="100%" ref="table" 
+        <el-table height="100px" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="120" />
@@ -667,7 +687,7 @@
         </el-table>
       </div>
     </el-card>
-    <div style="padding: 10px;display: flex;height:110px;">
+    <div style="padding: 10px;display: flex;height:130px;">
             <div v-for="(item, index) in tableDatae" :key="index" id="occupy">  
                <el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>  
                <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">  
@@ -681,7 +701,7 @@
     </div>
 <!-- // 鐖剁骇妗� -->
 <div class="img-dlpl" >
-    <div class="img-car1" :style="'z-index:999;left:247px;top:' + 350*carPosition[0] + 'px;position:absolute;'">
+    <div class="img-car1" :style="'z-index:999;left:270px;top:' + 350*carPosition[0] + 'px;position:absolute;'">
       <div  
       v-for="(rect, index) in adjusta"  
       :key="rect.id"  
@@ -689,13 +709,13 @@
        width: '30px',
        height: '5px',
        backgroundColor: '#409EFF',
-       marginLeft: index * 5+ `px`,
+       marginLeft: 5+ `px`,
        top: '10px',
        }"  
     >
     </div>
     </div>
-    <div class="img-car4" :style="'z-index:999;left:704px;top:' + 350*carPosition[1] + 'px;position:absolute;'">
+    <div class="img-car4" :style="'z-index:999;left:740px;top:' + 350*carPosition[1] + 'px;position:absolute;'">
       <div  
       v-for="(rect, index) in adjust"  
       :key="rect.id"  
@@ -703,14 +723,14 @@
        width: '30px',
        height: '5px',
        backgroundColor: '#409EFF',
-       marginLeft: index * 5+ `px`,
+       marginLeft: 5+ `px`,
        top: '10px',
        }"  
     >
     </div>
     </div>
     <div style="position: relative;">
-    <div v-show="cell1" style="width: 227px;height: 29px;position: relative;top:55px;left: 465px;">
+    <div v-show="cell1" style="width: 227px;height: 29px;position: relative;top:50px;left: 495px;">
       <div  
       v-for="(rect, index) in adjustedRects"  
       :key="rect"  
@@ -741,7 +761,7 @@
       </div>
     </div>
     </div>
- <div v-show="cell2" style="width: 227px;height: 29px;position: relative;top:56px;left: 465px;">
+ <div v-show="cell2" style="width: 227px;height: 29px;position: relative;top:51px;left: 495px;">
   <div  
       v-for="(rect, index) in adjustedRectsa"  
       :key="rect.id"  
@@ -772,7 +792,7 @@
       </div>
     </div>
     </div>
-  <div v-show="cell3" style="width: 227px;height: 29px;position: absolute;top:117px;left: 465px;">
+  <div v-show="cell3" style="width: 227px;height: 29px;position: absolute;top:110px;left: 495px;">
     <div  
       v-for="(rect, index) in adjustedRectsb"  
       :key="rect.id"  
@@ -802,7 +822,7 @@
       </div>
     </div>
     </div>
-  <div v-show="cell4" style="width: 227px;height: 29px;position: absolute;top:148px;left: 465px;">
+  <div v-show="cell4" style="width: 227px;height: 29px;position: absolute;top:140px;left: 495px;">
     <div  
       v-for="(rect, index) in adjustedRectsc"  
       :key="rect.id"  
@@ -833,7 +853,7 @@
       </div>
     </div>
     </div>
-  <div v-show="cell5" style="width: 227px;height: 29px;position: absolute;top:208px;left: 465px;">
+  <div v-show="cell5" style="width: 227px;height: 29px;position: absolute;top:170px;left: 495px;">
     <div  
       v-for="(rect, index) in adjustedRectsd"  
       :key="rect.id"  
@@ -864,7 +884,7 @@
       </div>
     </div>
     </div>
-  <div v-show="cell6" style="width: 227px;height: 29px;position: absolute;top:238px;left: 465px;">
+  <div v-show="cell6" style="width: 227px;height: 29px;position: absolute;top:241px;left: 495px;">
     <div  
       v-for="(rect, index) in adjustedRectse"  
       :key="rect.id"  
@@ -895,7 +915,7 @@
       </div>
     </div>
     </div>
-  <div v-show="cell7" style="width: 227px;height: 29px;position: absolute;top:269px;left: 465px;">
+  <div v-show="cell7" style="width: 227px;height: 29px;position: absolute;top:271px;left: 495px;">
     <div  
       v-for="(rect, index) in adjustedRectsf"  
       :key="rect.id"  
@@ -926,7 +946,7 @@
       </div>
     </div>
     </div>
-  <div v-show="cell8" style="width: 227px;height: 29px;position: absolute;top:300px;left: 465px;">
+  <div v-show="cell8" style="width: 227px;height: 29px;position: absolute;top:301px;left: 495px;">
     <div  
       v-for="(rect, index) in adjustedRectsg"  
       :key="rect.id"  
@@ -957,7 +977,7 @@
       </div>
     </div>
     </div>
-  <div v-show="cell9" style="width: 227px;height: 29px;position: absolute;top:300px;left: 465px;">
+  <div v-show="cell9" style="width: 227px;height: 29px;position: absolute;top:332px;left: 495px;">
     <div  
       v-for="(rect, index) in adjustedRectsh"  
       :key="rect.id"  
@@ -1019,8 +1039,8 @@
           </el-input>
           <el-button type="primary" plain style="margin-left: 10px;" @click="searchout">{{ $t('searchOrder.search') }}</el-button>
     </div>
-
-    <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 500px;">
+ 
+    <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
         <el-table height="100%" ref="table"
         :data="tableDataf" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="120" />
@@ -1320,8 +1340,9 @@
 }
  
 .img-dlpl{
-  margin-left: 80px;
-  background-image:url('../../assets/dlpl.png');
+  margin-left: 20px;
+  margin-top: 20px;
+  background-image:url('../../assets/dlpl9.png');
   background-repeat: no-repeat;
     background-attachment: local;
     min-height: 400px;
@@ -1333,7 +1354,7 @@
 }
 .img-car1{
   display: flex;
-  background-image:url('../../assets/lp.png');
+  background-image:url('../../assets/lp9.png');
   position: absolute;
   background-repeat: no-repeat;
     background-attachment: local;
@@ -1346,7 +1367,7 @@
 }
 .img-car4{
   display: flex;
-  background-image:url('../../assets/lpa.png');
+  background-image:url('../../assets/lpa9.png');
   position: absolute;
   background-repeat: no-repeat;
     background-attachment: local;
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 89d7621..36af612 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="glass-rack">
     <div >
-      <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
+      <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg">
         <g stroke="null" id="Layer_1">
           <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
           <g v-for="(rack, index) in racks" :key="index"   :data="tableData">
@@ -42,11 +42,11 @@
 import { initializeWebSocket } from '@/utils/WebSocketService';
  import { WebSocketHost } from '@/utils/constants';
 const racks = ref([
-  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '',downGlassInfoList:"" } },
+  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456',downGlassInfoList:"" } },
  
-  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '',downGlassInfoList:"" } },
+  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678',downGlassInfoList:"" } },
  
-  { x: 140, y: 320, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: '' ,downGlassInfoList:""} }
+  { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' ,downGlassInfoList:""} }
   
 ]);
 
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index 6566fde..c42fbe5 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="glass-rack">
     <div >
-      <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
+      <svg width="500" height="370" xmlns="http://www.w3.org/2000/svg">
         <g stroke="null" id="Layer_1">
           <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
           <g v-for="(rack, index) in racks" :key="index">
@@ -42,11 +42,11 @@
 import { initializeWebSocket } from '@/utils/WebSocketService';
 import { WebSocketHost ,host} from '@/utils/constants'
 const racks = ref([
-  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '' } },
+  { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
  
-  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: '' } },
+  { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG12345678' } },
  
-  { x: 140, y: 320, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: '' } }
+  { x: 140, y: 280, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 20, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
   
 ]);
 
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 644af5a..640d82f 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,10 +1,8 @@
 <script setup>
 import {Search} from "@element-plus/icons-vue";
 import {reactive, onMounted, onBeforeUnmount} from "vue";
-
 import {useRouter} from "vue-router"
 const router = useRouter()
-
 import { useI18n } from 'vue-i18n'
   const { t } = useI18n()
   let language = ref(localStorage.getItem('lang') || 'zh')
@@ -39,7 +37,6 @@
     fetchFlowCardId(); 
   dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
-
 //鑾峰彇娴佺▼鍗″彿
 const fetchFlowCardId = async () => {
   try {
@@ -59,7 +56,6 @@
   }
 };
 //纭
-
 const handleConfirm = async () => {
   try {
     const firstPart = flowCardId.value.split('|')[0].trim(); // 
@@ -68,9 +64,7 @@
       workstationId: workstationId.value,
       flowCardId: firstPart,
       layer:twoPart
-
     }); 
-
     console.log(response)
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
@@ -88,16 +82,12 @@
     console.error(error);
   }
 };
-
-
 const updatePageData = () => {
   // 鍋囪浣犵殑椤甸潰涓婃湁涓�涓悕涓� tableData 鐨� Vue 缁勪欢
   // 浣犲彲浠ョ洿鎺ユ洿鏂� tableData 鐨勬暟鎹�
   fetchTableData()
   // 浣跨敤 $forceUpdate() 寮哄埗鏇存柊缁勪欢
-
 };
-
 const handleBindRack2 = (row) => {
   workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
   dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
@@ -129,8 +119,6 @@
             dialogFormVisiblea2.value = false;
     }
 };
-
-
 // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
 const fetchTableData = async () => {
   try {
@@ -151,78 +139,43 @@
     ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
   }
 };
-
-
 const socketUrl = `ws://${WebSocketHost}:${host}/api/unLoadGlass/api/talk/unloadglass`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
-
   // 鏇存柊 tableData 鐨勬暟鎹�
-
   tableData.splice(0, tableData.length, ...data.params[0]);
 //  console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
-
 };
-
 // 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
-
 onMounted(() => {
   fetchFlowCardId();
   fetchTableData(); // 鑾峰彇鏁版嵁
   initializeWebSocket(socketUrl, handleMessage);
 });
-
 onBeforeUnmount(() => {
   console.log("鍏抽棴浜�")
   closeWebSocket();
 });
-
-const getTagType =(status) => {
-      return status === 1 ? 'success' : 'danger';
-      // 鏍规嵁鐘舵�佸�煎喅瀹氭爣绛剧被鍨嬶紝杩欓噷鍋囪鐘舵�佷负1鏃朵负鎴愬姛锛堢豢鑹诧級锛屽惁鍒欎负澶辫触锛堢孩鑹诧級
-    }
-
-    const toggleStatus = (row) => {
-      // 鍒囨崲鏂欐灦鐘舵�佺殑閫昏緫
-      row.enableState = 1 - row.enableState; // Toggle between 0 and 1
-      // 姝ゅ鍙互娣诲姞淇濆瓨鐘舵�佺殑閫昏緫锛屾瘮濡傝皟鐢� API 鏇存柊鏁版嵁
-      updateRowStatus(row);
-    };
-
-    const updateRowStatus = async (row) => {
-  try {
-    // 鍋囪浣犵殑鍚庣 API 鎺ユ敹 PUT 璇锋眰锛屽苟涓旈渶瑕佷紶閫� row.id 鍜� row.enableState 鍙傛暟
-   
-
-    const response = await request.post('unLoadGlass/downWorkStation/updateDownWorkstation', {
-      enableState:row.enableState,
-      id:row.id
-    }); 
-    console.log('Updated row status:', response.data);
-    // 鍙互鏍规嵁鍚庣杩斿洖鐨勬暟鎹繘琛岃繘涓�姝ュ鐞嗭紝姣斿鏇存柊鏈湴鐘舵�佺瓑
-  } catch (error) {
-    console.error('Error updating row status:', error);
-    // 澶勭悊閿欒鎯呭喌锛屾瘮濡傛彁绀虹敤鎴锋洿鏂板け璐�
-  }
-};
-
-
+// beforeUnmount(() => {
+//   closeWebSocket();
+// });
+// setInterval(fetchTableData, 2000)
 </script>
-
 <template>
   <div>
-    <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
-      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;">
-        <el-table height="100%" ref="table" 
+    <el-card style="flex: 1;" v-loading="loading">
+      <el-card style="flex: 1;margin-left: 4px;margin-top: 1px;" v-loading="loading">
+      <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+        <el-table height="200px" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
           <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
           <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')" min-width="120" />
-          <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="120" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="150" />
           <el-table-column prop="totalquantity" align="center" :label="$t('reportWork.totalquantity')" min-width="120" />
           <el-table-column prop="racksnumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
           <el-table-column prop="layer" align="center" label="灞傛暟" min-width="120" />
-          <el-table-column prop="otherNumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
+          <el-table-column prop="artificialnumber" align="center" label="浜哄伐涓嬬墖鏁�" min-width="120" />
           <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" />
           <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
           <el-table-column
@@ -232,10 +185,7 @@
             prop="enableState"
           >
           <template #default="scope">
-           
-            <el-tag :type="getTagType(scope.row.enableState)" @click="toggleStatus(scope.row)">
-          {{ scope.row.enableState === 1 ? $t('reportWork.enable') : $t('reportWork.unenable') }}
-        </el-tag>
+            <el-tag type="success" >{{ scope.row.enableState==1? $t('reportWork.enable') : $t('reportWork.unenable')}}</el-tag>
           </template>
           </el-table-column>
           <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
@@ -247,7 +197,22 @@
         </el-table>
       </div>
     </el-card>
-
+    <!-- workstationId: '1',
+    workstationId: '1005',
+    flowCardId: '183.6',
+    totalquantity: '1991',
+    racksnumber:"1",
+    work_state: '寰呰瘑鍒�', -->
+  <div style="display: flex;" class="awatch">
+  <div id="main-body">
+      <Landingindication></Landingindication>
+    </div>
+  <div id="main-bodya">
+    <Landingindicationtwo></Landingindicationtwo>
+    </div>
+    </div>
+    </el-card>
+  </div>
 
     <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
@@ -273,12 +238,7 @@
       </div>
     </template>
   </el-dialog>
-
-
-
-
   <el-dialog v-model="dialogFormVisiblea2" top="21vh" width="30%" :title="$t('reportWork.clearglass')">
-
     <template #footer>
       <div id="dialog-footer">
         <el-button type="primary" @click="handleclear">
@@ -288,26 +248,8 @@
       </div>
     </template>
   </el-dialog>
-
-
-    <!-- workstationId: '1',
-    workstationId: '1005',
-    flowCardId: '183.6',
-    totalquantity: '1991',
-    racksnumber:"1",
-    work_state: '寰呰瘑鍒�', -->
-  </div>
-  <div style="display: flex;">
-  <div id="main-body">
-      <Landingindication></Landingindication>
-    </div>
-  <div id="main-bodya">
-    <Landingindicationtwo></Landingindicationtwo>
-    </div></div>
 </template>
-
 <style scoped>
-
 #dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
 #dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
 #dialog-footer{
@@ -323,15 +265,15 @@
    background-color: #337ecc;
    margin-left: 28%;
 }
-#awatch{
-  height: 450px;
+.awatch{
+  max-width: 100%;
 }
 #main-body{
-  margin-top: -20px;
-  margin-left: 200px;
+  margin-top: -40px;
+  margin-left: 150px;
 }
 #main-bodya{
-  margin-top: -10px;
+  margin-top: -40px;
   margin-left: 100px;
 }
 </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/largescreen/largescreen.vue b/UI-Project/src/views/largescreen/largescreen.vue
index bd8d350..7c3603a 100644
--- a/UI-Project/src/views/largescreen/largescreen.vue
+++ b/UI-Project/src/views/largescreen/largescreen.vue
@@ -26,7 +26,7 @@
       </el-table>
 </div> 
 <div id="center" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 750px;">
-  <img src="../../assets/d1.png" alt="" style="margin-left: -30px; width: 110%;height: 100%;position: relative;"> 
+  <img src="../../assets/d1a.png" alt="" style="margin-left: -10px; width: 100%;height: 100%;position: relative;"> 
 </div>
 <div id="centerright" style="margin-top: 10px;margin-left: 10px; height: 240px;width: 240px;background-color: #911005;">
   <el-table height="240" ref="table" width="340px"
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
index b821404..9cd2ca4 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -5,14 +5,14 @@
 import com.mes.damage.entity.Damage;
 import com.mes.damage.service.DamageService;
 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.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
-
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -22,6 +22,7 @@
  * @author wu
  * @since 2024-06-25
  */
+@Api(description = "鎶ュ伐淇℃伅")
 @RestController
 @RequestMapping("/damage")
 public class DamageController {
@@ -29,20 +30,27 @@
     @Autowired
     private DamageService damageService;
     @ApiOperation("鎶ュ伐鏁版嵁鏌ヨ")
-    @GetMapping("/selectDamage")
-    public Result selectDamage(DateTime startTime , DateTime endTime,int type,int status,int workingProcedureId) {
-        return Result.build(200,"鏌ヨ鎴愬姛",damageService.selectDamage(startTime,endTime,type,status,workingProcedureId));
+    @ResponseBody
+    @PostMapping("/selectDamage")
+    public Result selectDamage(@RequestBody Map map) {
+        String startTime=map.get("startTime").toString();
+        String endTime=map.get("endTime").toString();
+        int type =Integer.parseInt(map.get("type").toString());
+        int status =Integer.parseInt(map.get("status").toString());
+        int workingProcedure =Integer.parseInt(map.get("workingProcedure").toString());
+//        String startTime , String endTime, int type, int status, int workingProcedure
+        return Result.build(200,"鏌ヨ鎴愬姛",damageService.selectDamage(startTime,endTime,type,status,workingProcedure));
     }
 
     @ApiOperation("鎶ュ伐")
-    @GetMapping("/submitDamage")
+    @PostMapping("/submitDamage")
     public Result submitDamage(DateTime startTime , DateTime endTime,int type,int status,int workingProcedureId) {
         damageService.submitDamage(startTime,endTime,type,status,workingProcedureId);
         return Result.build(200,"鎶ュ伐鎴愬姛",1);
     }
 
     @ApiOperation("鎶ュ伐鏁版嵁淇敼")
-    @GetMapping("/updateDamage")
+    @PostMapping("/updateDamage")
     public Result updateDamage(List<Damage> damageList) {
         damageService.updateBatchById(damageList);
         return Result.build(200,"淇敼鎴愬姛",1);
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java
index 2d78544..52b355e 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/entity/Damage.java
@@ -2,8 +2,9 @@
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.sql.Timestamp;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -52,7 +53,7 @@
     /**
      * 鐢熶骇鏃堕棿
      */
-    private LocalDateTime damageTime;
+    private Timestamp damageTime;
 
     /**
      * 澶囨敞
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 43d1142..e5acd8b 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
@@ -4,6 +4,7 @@
 import com.mes.damage.entity.Damage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -16,7 +17,7 @@
  */
 public interface DamageService extends IService<Damage> {
 
-    List<Damage> selectDamage(DateTime startTime, DateTime endTime, int type, int status, int workingProcedureId);
+    List<Damage> selectDamage(String startTime, String endTime, int type, int status, int workingProcedureId);
 
     void submitDamage(DateTime startTime, DateTime endTime, int type, int status, int workingProcedureId);
 
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 b81f7b2..d3aa888 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
@@ -3,7 +3,6 @@
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.mapper.DamageMapper;
 import com.mes.damage.service.DamageService;
@@ -16,6 +15,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.sql.Timestamp;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -39,7 +39,7 @@
      * 鏌ヨ鎶ュ伐淇℃伅
      */
     @Override
-    public List<Damage> selectDamage(DateTime startTime, DateTime endTime, int type, int status, int workingProcedureId){
+    public List<Damage> selectDamage(String startTime, String endTime, int type, int status, int workingProcedure){
         LambdaQueryWrapper<Damage> damageSelectWrapper =new LambdaQueryWrapper<>();
         damageSelectWrapper.between(Damage::getDamageTime,startTime,endTime);
         if (type!=0){
@@ -48,8 +48,8 @@
         if (status!=0){
             damageSelectWrapper.eq(Damage::getStatus,status);
         }
-        if(workingProcedureId!=0){
-            damageSelectWrapper.eq(Damage::getWorkingProcedure,workingProcedureId);
+        if(workingProcedure!=0){
+            damageSelectWrapper.eq(Damage::getWorkingProcedure,workingProcedure);
         }
         return baseMapper.selectList(damageSelectWrapper);
     }
@@ -96,7 +96,7 @@
         damage.setProcessId(glassInfo.getFlowCardId());
         damage.setOrderNumber(glassInfo.getGlassType());
         damage.setTechnologyNumber(glassInfo.getLayer());
-        damage.setDamageTime(LocalDateTime.now());
+        damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now()));
         damage.setType(2);
         baseMapper.insert(damage);
     }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
index fc7e13f..b2a6af1 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -1,7 +1,8 @@
 package com.mes.glassinfo.service;
 
-import com.mes.glassinfo.entity.GlassInfo;
 import com.github.yulichang.base.MPJBaseService;
+import com.mes.glassinfo.entity.GlassInfo;
+
 import java.util.List;
 import java.util.Map;
 
@@ -24,11 +25,10 @@
        */
       void saveGlassInfo(List<GlassInfo> glassinfo);
 
-      int getGlassInfoCountByFlowCardId(String flowCardId,int layer);
+      int getGlassInfoCountByFlowCardId(String flowCardId, int layer);
 
       /**
-       * @return
-       * 鏌ヨ鎵�鏈夊伐绋嬬姸鎬佷笉涓�300涓嶅悓娴佺▼鍗″彿
+       * @return 鏌ヨ鎵�鏈夊伐绋嬬姸鎬佷笉涓�300涓嶅悓娴佺▼鍗″彿
        */
       List<Map<String, Object>> getFlowCardId();
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
index c143b88..10ab730 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -11,9 +11,9 @@
 import com.mes.pp.entity.OptimizeProject;
 import com.mes.pp.mapper.OptimizeProjectMapper;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -31,7 +31,7 @@
 @Service
 @Slf4j
 public class GlassInfoServiceImpl extends MPJBaseServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
-    @Autowired
+    @Resource
     OptimizeProjectMapper optimizeProjectMapper;
 
     @Override
@@ -42,7 +42,7 @@
             optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>()
                     .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,c.x_axis,c.y_axis,b.project_no,b.glass_id,c.rotate_angle")
                     .leftJoin("optimize_detail b on t.project_no=b.project_no")
-                                    .leftJoin("optimize_heat_detail c on c.project_no=t.project_no and b.heat_layout_id=c.layout_id and b.heat_layout_sort=c.sort")
+                    .leftJoin("optimize_heat_detail c on c.project_no=t.project_no and b.heat_layout_id=c.layout_id and b.heat_layout_sort=c.sort")
                     //.eq("t.state",100)
                     .eq("t.project_no", engineeringId));
         }
@@ -89,7 +89,7 @@
 
 
     @Override
-    public int getGlassInfoCountByFlowCardId(String flowCardId,int layer) {
+    public int getGlassInfoCountByFlowCardId(String flowCardId, int layer) {
         return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda()
                 .eq(GlassInfo::getFlowCardId, flowCardId)
                 .eq(GlassInfo::getLayer, layer));
@@ -121,7 +121,7 @@
         List<Map<String, Object>> result = glassInfos.stream()
                 .map(glassInfo -> {
                     Map<String, Object> map = new HashMap<>();
-                    map.put("flow_card_id", glassInfo.getFlowCardId()+" | "+glassInfo.getLayer());
+                    map.put("flow_card_id", glassInfo.getFlowCardId() + " | " + glassInfo.getLayer());
                     // 濡傛灉杩樻湁鍏朵粬瀛楁闇�瑕佹坊鍔犲埌 map 涓紝鍦ㄨ繖閲岀户缁坊鍔�
                     return map;
                 })
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java
index 59ed7a3..0f6b968 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeDetailMapper.java
@@ -1,10 +1,8 @@
 package com.mes.pp.mapper;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.pp.entity.OptimizeDetail;
-import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -15,7 +13,6 @@
  * @since 2024-04-16
  */
 @DS("pp")
-@Mapper
 public interface OptimizeDetailMapper extends MPJBaseMapper<OptimizeDetail> {
 
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java
index 857d2a9..20f9c71 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeLayoutMapper.java
@@ -3,7 +3,6 @@
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.pp.entity.OptimizeLayout;
-import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -14,7 +13,6 @@
  * @since 2024-04-16
  */
 @DS("pp")
-@Mapper
 public interface OptimizeLayoutMapper extends MPJBaseMapper<OptimizeLayout> {
 
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java
index 08c1911..2449b5f 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/OptimizeProjectMapper.java
@@ -1,11 +1,9 @@
 package com.mes.pp.mapper;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.pp.entity.OptimizeProject;
 import com.mes.pp.entity.request.OptimizeRequest;
-import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
@@ -17,7 +15,6 @@
  * @author zhoush
  * @since 2024-04-16
  */
-@Mapper
 @DS("pp")
 public interface OptimizeProjectMapper extends MPJBaseMapper<OptimizeProject> {
     List<OptimizeProject> saveProject(OptimizeRequest optimizeRequest);
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
index 11ce5dd..a67c8f2 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/WebSocketServer.java
@@ -43,6 +43,8 @@
     public void onOpen(Session session, @PathParam("username") String username) {
         this.username = username;
         this.session = session;
+        this.session.setMaxTextMessageBufferSize(12*1024*1024);
+        this.session.setMaxBinaryMessageBufferSize(12*1024*1024);
         List<WebSocketServer> webSocketServers = sessionMap.get(username);
         if (webSocketServers == null) {
             ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
@@ -96,7 +98,7 @@
      *
      * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
      */
-    @OnMessage
+    @OnMessage(maxMessageSize = 5242880)
     public void onMessage(String message, Session session, @PathParam("username") String username) {
         log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
         JSONObject obj = JSONUtil.parseObj(message);
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
index 2384256..9b35277 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
@@ -5,9 +5,11 @@
 import com.mes.damage.service.DamageService;
 import com.mes.utils.Result;
 import com.mes.work_assignment.service.WorkAssignmentService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
@@ -20,14 +22,15 @@
  * @author wu
  * @since 2024-07-01
  */
+@Api(description = "鍊肩彮淇℃伅")
 @RestController
-@RequestMapping("/work_assignment/work-assignment")
+@RequestMapping("/work_assignment")
 public class WorkAssignmentController {
 
     @Autowired
     private WorkAssignmentService workAssignmentService;
     @ApiOperation("鍊肩彮鏁版嵁鏌ヨ")
-    @GetMapping("/selectWorkAssignment")
+    @PostMapping("/selectWorkAssignment")
     public Result selectWorkAssignment(int line,String workingProcedure) {
         return Result.build(200,"鏌ヨ鎴愬姛",workAssignmentService.selectWorkAssignment(line,workingProcedure));
     }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
index b1ef2d6..ae06d40 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
@@ -2,7 +2,6 @@
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.menu.entity.SysMenu;
-import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
@@ -14,7 +13,7 @@
  * @author zhoush
  * @since 2024-04-11
  */
-@Mapper
+
 public interface SysMenuMapper extends MPJBaseMapper<SysMenu> {
 
     List<String> selectPermsByUserId(long parseLong);
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
index d9251c1..bf1bf6d 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
@@ -2,7 +2,6 @@
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.role.entity.SysRole;
-import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,7 +11,6 @@
  * @author zhoush
  * @since 2024-04-11
  */
-@Mapper
 public interface SysRoleMapper extends MPJBaseMapper<SysRole> {
 
 }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
index 451d7fe..0cfc7df 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.role.entity.SysRoleMenu;
-import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,7 +11,7 @@
  * @author zhoush
  * @since 2024-04-11
  */
-@Mapper
+
 public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
 
 }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
index f3e2f25..68d34de 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
@@ -2,7 +2,6 @@
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.userinfo.entity.SysUser;
-import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,7 +11,7 @@
  * @author zhoush
  * @since 2024-04-11
  */
-@Mapper
+
 public interface SysUserMapper extends MPJBaseMapper<SysUser> {
 
 }
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
index cfd9a6f..697ca74 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
@@ -2,7 +2,6 @@
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.userinfo.entity.SysUserRole;
-import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,7 +11,7 @@
  * @author zhoush
  * @since 2024-04-11
  */
-@Mapper
+
 public interface SysUserRoleMapper extends MPJBaseMapper<SysUserRole> {
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
index f52662f..cd22d48 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
@@ -25,11 +25,6 @@
      */
     EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag);
 
-    /**
-     * 鏌ヨ绗煎唴绌烘牸
-     * @return
-     */
-    List<EdgStorageCage> selectCacheEmpty();
 
     /**
      * 鏌ヨ绗煎唴鍑虹墖椤哄簭璇︽儏
@@ -45,11 +40,19 @@
 
     /**
      * 淇敼鐞嗙墖绗间俊鎭�
+     *
      * @param edgStorageCage
      * @return
      */
     boolean updateEdgStorageCage(EdgStorageCage edgStorageCage);
 
+    /**
+     * 鏇存柊鐞嗙墖绗艰鎯呬俊鎭�
+     *
+     * @param edgStorageCageId
+     * @param edgStorageCageDetails
+     * @return
+     */
     boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails);
 
 }
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 c4b5266..f7600e6 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
@@ -13,9 +13,9 @@
 import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 
@@ -31,9 +31,9 @@
 @Service
 public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
 
-    @Autowired
+    @Resource
     EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
-    @Autowired
+    @Resource
     UpPattenUsageMapper upPattenUsageMapper;
 
     @Override
@@ -44,6 +44,7 @@
                         .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
                         .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
                 .isNull(EdgStorageCageDetails::getSlot)
+                .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
                 .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
         );
         if (flag && CollectionUtil.isNotEmpty(emptyList)) {
@@ -53,23 +54,6 @@
             return null;
         }
         return emptyList.get(0);
-    }
-
-    /**
-     * 鏌ヨ绗煎唴绌烘牸
-     *
-     * @return
-     */
-    @Override
-    public List<EdgStorageCage> selectCacheEmpty() {
-        return baseMapper.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
-                .selectAll(EdgStorageCage.class)
-                .leftJoin(EdgStorageCageDetails.class, on -> on
-                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
-                        .eq(EdgStorageCageDetails::getState, "100"))
-                .isNull(EdgStorageCageDetails::getSlot)
-                .last("order by abs(t.slot - 4)  asc")
-        );
     }
 
     /**
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 1ac00f6..98206a6 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,6 +6,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.device.PlcParameterObject;
@@ -128,27 +129,6 @@
         }
         Date endDate = new Date();
         log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
-    }
-
-    public void plcToHomeEdgTask() {
-        // log.info("鎺ㄦ暟鎹�");
-        // jsonObject.append("params", new short[] { 30, 40, });
-//        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
-//        if (sendwServer != null) {
-//            for (WebSocketServer webserver : sendwServer) {
-//                webserver.sendMessage(jsonObject.toString());
-//                if (webserver != null) {
-//
-//                    List<String> messages = webserver.getMessages();
-//
-//                    if (!messages.isEmpty()) {
-//                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-//                        webserver.clearMessages();
-//                    }
-//                }
-//
-//            }
-//        }
     }
 
     /**
@@ -277,6 +257,7 @@
                     MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>();
                     wrapper.select("count(t.glass_id), t.width, t.height")
                             .eq("t.state", Const.GLASS_STATE_IN)
+                            .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
                             .groupBy("t.width, t.height");
                     if (endcell == Const.A10_OUT_TARGET_POSITION) {
                         wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
@@ -372,8 +353,9 @@
             glassList.add(resultDetails);
         }
         //鑾峰彇绗煎唴鐜荤拑
-        List<EdgStorageCageDetails> details = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>()
-                .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+        List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class)
+                .leftJoin(EdgStorageCage.class, on -> on.eq(EdgStorageCage::getSlot, EdgStorageCageDetails::getSlot).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                .eq(EdgStorageCage::getEnableState, Const.SLOT_ON));
         glassList.addAll(details);
         return glassList;
 
@@ -384,19 +366,20 @@
      *
      * @return
      */
-    private boolean queryMaxMinDiff(int threshold) {
+    public boolean queryMaxMinDiff(int threshold) {
         //鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
         QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>();
         queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff")
-                .eq("state", Const.GLASS_STATE_IN);
+                .eq("state", Const.GLASS_STATE_IN)
+                .inSql("slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON);
         List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
+        //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊�
         if (CollectionUtil.isNotEmpty(list)) {
-            Long diff = (Long) list.get(0);
+            int diff = (int) list.get(0);
             return diff > threshold;
         } else {
             return Boolean.FALSE;
         }
-
     }
 
     /**
@@ -411,6 +394,7 @@
                 .eq(EdgStorageCageDetails::getState, 100)
                 .eq(width != 0, EdgStorageCageDetails::getWidth, width)
                 .eq(height != 0, EdgStorageCageDetails::getHeight, height)
+                .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
                 .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId)
                 .orderBy(Boolean.TRUE, sequenceOrder, EdgStorageCageDetails::getTemperingFeedSequence)
                 .last("limit 1"));
@@ -446,6 +430,7 @@
                 .eq("t.glass_id", taskCache.getGlassId())
                 .ne("t1.glass_id", taskCache.getGlassId())
                 .eq("t1.state", Const.GLASS_STATE_IN)
+                .inSql("t1.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
                 .orderByAsc("t1.tempering_layout_id")
                 .orderBy(Boolean.TRUE, sequenceOrder, "t1.tempering_feed_sequence");
         List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, mpjLambdaWrapper);
@@ -469,7 +454,7 @@
             return null;
         }
         return edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId())
-//                .inSql(EdgStorageCageDetails::getEngineerId, "select engineer_id from engineering where state = 1")
+                .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
                 .last(" limit 1 "));
     }
 
@@ -513,6 +498,7 @@
         MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>();
         wrapper.select("count(t.glass_id) as count, t.width, t.height")
                 .eq("t.state", Const.GLASS_STATE_IN)
+                .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
                 .groupBy("t.width, t.height");
         if (endcell == Const.A10_OUT_TARGET_POSITION) {
             wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
index 9b6ecc4..5a79a88 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
@@ -46,15 +46,26 @@
     private Integer slot;
 
     /**
+     * 鏍呮牸鍙�
+     */
+    @ApiModelProperty(value = "鏈�灏忓帤搴�", position = 5)
+    private Integer minThickness;
+    /**
+     * 鏍呮牸鍙�
+     */
+    @ApiModelProperty(value = "鏈�澶у帤搴�", position = 6)
+    private Integer maxThickness;
+
+    /**
      * 鍚敤鐘舵��
      */
-    @ApiModelProperty(value = "鍚敤鐘舵��", position = 5)
+    @ApiModelProperty(value = "鍚敤鐘舵��", position = 7)
     private Integer enableState;
 
     /**
      * 鍓╀綑瀹藉害
      */
-    @ApiModelProperty(value = "鍓╀綑瀹藉害", position = 6)
+    @ApiModelProperty(value = "鍓╀綑瀹藉害", position = 8)
     private Integer remainWidth;
 
     @ApiModelProperty(hidden = true)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
index da14719..495b06a 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
@@ -24,7 +24,7 @@
      *
      * @return
      */
-    TemperingLayoutDTO temperingIsAll();
+    List<TemperingLayoutDTO> temperingIsAll();
 
     /**
      * 鑾峰彇姣忎釜閽㈠寲鐗堝浘鍗犵敤鐨勬牸瀛愭暟閲�
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
index 83d86fe..5fbc212 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -47,7 +47,7 @@
      *
      * @return
      */
-    TemperingLayoutDTO temperingIsAll();
+    List<TemperingLayoutDTO> temperingIsAll();
 
     /**
      * 鑾峰彇姣忎釜閽㈠寲鐗堝浘鍗犵敤鐨勬牸瀛愭暟閲�
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index 5b09ac0..96d4e3b 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -96,13 +96,14 @@
                     .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
                     .isNull(BigStorageCageFeedTask::getTargetSlot);
             List<BigStorageCageFeedTask> bigStorageCageFeedTaskNoTargetList = bigStorageCageFeedTaskMapper.selectList(feedTaskNoTargetWrapper);
-            for (BigStorageCageFeedTask bigStorageCageFeedTask:bigStorageCageFeedTaskNoTargetList
-                 ) {
-                BigStorageCageDetails bigStorageCageDetails=new BigStorageCageDetails();
+            for (BigStorageCageFeedTask bigStorageCageFeedTask : bigStorageCageFeedTaskNoTargetList
+            ) {
+                BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
                 LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>();
-                glassInfoWrapper.eq(GlassInfo::getGlassId,bigStorageCageFeedTask.getGlassId());
-                GlassInfo glassInfo= glassInfoMapper.selectOne(glassInfoWrapper);
+                glassInfoWrapper.eq(GlassInfo::getGlassId, bigStorageCageFeedTask.getGlassId());
+                GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper);
                 BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
+                bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
                 bigStorageCageDetailsList.add(bigStorageCageDetails);
             }
             return bigStorageCageDetailsList;
@@ -285,9 +286,12 @@
             bigStorageDTO.setSlot(bigStorageCage.getSlot());
             return bigStorageDTO;
         }
+        //todo:鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
         bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
                 .eq(BigStorageCage::getRemainWidth, slotWidth)
                 .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+                .gt(BigStorageCage::getMaxThickness, glassInfo.getThickness())
+                .orderByAsc(BigStorageCage::getDeviceId)
                 .last("limit 1"));
         Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
         bigStorageDTO = new BigStorageDTO();
@@ -297,7 +301,7 @@
     }
 
     @Override
-    public TemperingLayoutDTO temperingIsAll() {
+    public List<TemperingLayoutDTO> temperingIsAll() {
         return baseMapper.temperingIsAll();
     }
 
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 7ce8d3f..baa9974 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
@@ -241,7 +241,9 @@
         MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
         wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
                 .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
-                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL));
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL))
+                        .orderByAsc(BigStorageCage::getDeviceId)
+                        .orderByAsc(BigStorageCage::getSlot);
         return bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper);
     }
 
@@ -262,7 +264,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,COUNT(device_id) - 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) 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);
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
index e200106..95616b3 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -33,13 +33,14 @@
     private TemperingGlassInfoService temperingGlassInfoService;
 
     private JSONObject jsonObject = new JSONObject();
+    private JSONObject jsonObject1 = new JSONObject();
     public void queryDataSource1() throws InterruptedException {
         List<Double> carPostion=new ArrayList<>();
         carPostion.add(0.25);
         carPostion.add(0.5);
         jsonObject.append("carPostion",carPostion);
         //鐣岄潰灞曠ず绗煎瓙淇℃伅
-        jsonObject.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
+        jsonObject1.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
 
         //杩涚墖浠诲姟鏁版嵁
         List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectTask(1);
@@ -71,16 +72,19 @@
     @Scheduled(fixedDelay = 1000)
     public void plcStorageCageTask() throws InterruptedException {
         jsonObject = new JSONObject();
+        jsonObject1 = new JSONObject();
         try {
             //鏌ヨ浣跨敤鏁版嵁婧�1鏌ヨ鏁版嵁
             queryDataSource1();
             //鏌ヨ浣跨敤鏁版嵁婧�2鏌ヨ鏁版嵁
             queryDataSource2();
+
             ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage");
             if (sendwServer != null) {
                 for (WebSocketServer webserver : sendwServer) {
                     if (webserver != null) {
                         webserver.sendMessage(jsonObject.toString());
+                        webserver.sendMessage(jsonObject1.toString());
                         List<String> messages = webserver.getMessages();
                         if (!messages.isEmpty()) {
                             // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
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 ad16377..5430e36 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
@@ -263,23 +263,27 @@
             return;
         }
         //閽㈠寲浼樺厛锛氳幏鍙栫悊鐗囩  鐜荤拑灏忕墖  鐮存崯琛� 鏁伴噺   鍒ゆ柇绗煎唴鐗堝浘鏄惁鍒伴綈
-        TemperingLayoutDTO temperingLayoutDTO = bigStorageCageDetailsService.temperingIsAll();
-        if (null != temperingLayoutDTO) {
-            //鐜荤拑鍒伴綈
+        List<TemperingLayoutDTO> temperingLayoutDTOList = bigStorageCageDetailsService.temperingIsAll();
+        if (CollectionUtils.isNotEmpty(temperingLayoutDTOList)) {
+            //鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
             //鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟  缁撴潫
-            List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
-                    .selectAll(GlassInfo.class)
-                    .select("-1 as state")
-                    .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
-                    .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
-                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
-                    .eq(GlassInfo::getTemperingLayoutId, temperingLayoutDTO.getTemperingLayoutId())
-                    .eq(GlassInfo::getEngineerId, temperingLayoutDTO.getEngineerId()));
-            temperingGlassInfoService.saveBatch(temperingGlassInfos);
-            computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
-            Date endDate = new Date();
-            log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
-            return;
+            for (TemperingLayoutDTO item : temperingLayoutDTOList) {
+                List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+                        .selectAll(GlassInfo.class)
+                        .select("-1 as state")
+                        .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+                        .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
+                        .eq(GlassInfo::getEngineerId, item.getEngineerId()));
+                if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+                    temperingGlassInfoService.saveBatch(temperingGlassInfos);
+                    computeOutGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+                    Date endDate = new Date();
+                    log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+                    return;
+                }
+            }
         }
         //鏈埌榻� 鎵ц鍐呴儴璋冨害浠诲姟
         TemperingLayoutDTO temperingOccupySlot = bigStorageCageDetailsService.queryTemperingOccupySlot();
@@ -377,27 +381,29 @@
         Boolean flag = Boolean.TRUE;
         //2銆佽幏鍙栧崸杞珛
         Integer widthFirst = Math.max(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+        Integer heightFirst = Math.min(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
         if (edgGlassTaskInfoList.size() == 1) {
             if (remainWidth >= widthFirst) {
                 if (glassCount < inCarMaxSize) {
-                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst);
+                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
                 } else {
-                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst);
+                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
                 }
             } else {
                 flag = Boolean.FALSE;
             }
         } else {
             Integer widthSecond = Math.max(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+            Integer heightSecond = Math.min(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
             if (remainWidth >= widthFirst) {
                 if (remainWidth - widthFirst - glassGap >= widthSecond) {
                     if (glassCount < inCarMaxSize) {
-                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst);
+                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightSecond);
                     } else {
-                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst);
+                        addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond);
                     }
                 } else {
-                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst);
+                    addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond);
                 }
             } else {
                 flag = Boolean.FALSE;
@@ -414,13 +420,14 @@
     /**
      * 娣诲姞浠诲姟淇℃伅
      */
-    private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width) {
+    private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width, Integer height) {
         BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask();
         bigStorageCageFeedTask.setGlassId(glassId);
         bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_IN_NEW);
         bigStorageCageFeedTask.setLine(line);
         bigStorageCageFeedTask.setTaskType(taskType);
         bigStorageCageFeedTask.setWidth(width);
+        bigStorageCageFeedTask.setHeight(height);
         bigStorageCageFeedTask.setCreateTime(new Date());
         return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask);
     }
@@ -576,6 +583,9 @@
     public Boolean computeIsRun(int line, String glassId) {
         //鑾峰彇鍗ц浆绔嬪墿浣欏搴�
         BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line);
+        if (sitToUpRemainWidth.getGlassCount() == 0) {
+            return Boolean.FALSE;
+        }
         //鑾峰彇鐜荤拑淇℃伅
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
         return sitToUpRemainWidth.getWidth() < glassInfo.getWidth();
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
index 82d885e..5468375 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -61,6 +61,7 @@
 
     @Override
     public boolean saveBatch(List<TemperingGlassInfo> list) {
+        log.info("闇�瑕侀挗鍖栫殑鐜荤拑涓猴細{}", list);
         return baseMapper.saveBatch(list);
     }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index a0f23bf..8306c6f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -40,7 +40,7 @@
                              WHERE STATE in (100, 101, 102)
                              GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID
             AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID
-            AND T2.COUNT = T3.COUNT LIMIT 1
+            AND T2.COUNT = T3.COUNT
     </select>
 
     <select id="queryTemperingOccupySlot" resultMap="temperingLayoutDTO">
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
index 2776022..0a32e28 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
@@ -33,7 +33,7 @@
                             ELSE HEIGHT
                             END MAX_LENGTH
                  FROM BIG_STORAGE_CAGE_FEED_TASK
-                 WHERE LINE = 2002
+                 WHERE LINE = #{line}
                    AND TASK_STATE IN (1, 2)
              ) T
     </select>
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
index 65bf9c0..6e45b69 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -1,7 +1,9 @@
 package com.mes;
 
+import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
 import com.mes.common.config.Const;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.service.DamageService;
@@ -13,7 +15,9 @@
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 /**
  * @Author : zhoush
@@ -34,6 +38,67 @@
     @Autowired
     DamageService damageService;
 
+    @Autowired
+    BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
+
+    @Test
+    public void testInsertSlot() {
+        List<BigStorageCage> list = new ArrayList();
+        for (int j = 1; j <= 5; j++) {
+            for (int i = 1 + (55 * (j - 1)); i <= 55 * j; i++) {
+                BigStorageCage cage = new BigStorageCage();
+                cage.setDeviceId(j);
+                cage.setSlot(i);
+                cage.setMinThickness(4);
+                cage.setMaxThickness(6);
+                cage.setEnableState(1);
+                cage.setRemainWidth(5000);
+                list.add(cage);
+            }
+        }
+        for (int i = 276; i <= 300; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(6);
+            cage.setSlot(i);
+            cage.setMinThickness(8);
+            cage.setMaxThickness(12);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        for (int i = 301; i <= 330; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(7);
+            cage.setSlot(i);
+            cage.setMinThickness(8);
+            cage.setMaxThickness(12);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        for (int i = 331; i <= 355; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(8);
+            cage.setSlot(i);
+            cage.setMinThickness(8);
+            cage.setMaxThickness(12);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        for (int i = 356; i <= 380; i++) {
+            BigStorageCage cage = new BigStorageCage();
+            cage.setDeviceId(9);
+            cage.setSlot(i);
+            cage.setMinThickness(15);
+            cage.setMaxThickness(19);
+            cage.setEnableState(1);
+            cage.setRemainWidth(5000);
+            list.add(cage);
+        }
+        bigStorageCageService.saveBatch(list);
+    }
+
     @Test
     public void testFindPath() {
         log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java
index ecd3ec9..ab8c084 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/loadposition/mapper/LoadPositionMapper.java
@@ -3,8 +3,6 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.loadposition.entity.LoadPosition;
 
-import org.apache.ibatis.annotations.Mapper;
-
 /**
  *  
  *
@@ -12,7 +10,7 @@
  * @since 2024-07-09 14:51:27
  *
  */
-@Mapper
+
 public interface LoadPositionMapper extends BaseMapper<LoadPosition> {
 
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java
index 513aff2..5eb15ee 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawusage/mapper/RawUsageMapper.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.rawusage.entity.RawUsage;
-import org.apache.ibatis.annotations.Mapper;
 /**
  *  
  *
@@ -10,7 +9,7 @@
  * @since 2024-07-09 14:51:27
  *
  */
-@Mapper
+
 public interface RawUsageMapper extends BaseMapper<RawUsage> {
 
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
index 3570a5a..fc31d55 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/shelfrack/mapper/ShelfRackMapper.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.shelfrack.entity.ShelfRack;
-import org.apache.ibatis.annotations.Mapper;
 /**
  *  
  *
@@ -10,7 +9,7 @@
  * @since 2024-07-09 14:51:27
  *
  */
-@Mapper
+
 public interface ShelfRackMapper extends BaseMapper<ShelfRack> {
 
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
index 43a8507..4d99c52 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/storagetask/mapper/StorageTaskMapper.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.storagetask.entity.StorageTask;
-import org.apache.ibatis.annotations.Mapper;
 /**
  *  
  *
@@ -10,7 +9,7 @@
  * @since 2024-07-09 14:51:27
  *
  */
-@Mapper
+
 public interface StorageTaskMapper extends BaseMapper<StorageTask> {
 
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
index 327b48e..50991e4 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
@@ -2,7 +2,6 @@
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.downstorage.entity.DownStorageCageDetails;
-import org.apache.ibatis.annotations.Mapper;
 
 /**
  * <p>
@@ -12,7 +11,7 @@
  * @author zhoush
  * @since 2024-03-27
  */
-@Mapper
+
 public interface DownStorageCageDetailsMapper extends MPJBaseMapper<DownStorageCageDetails> {
 
     DownStorageCageDetails getGlassInfoMaxCount();
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 ce6cbc1..18e1259 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
@@ -95,6 +95,7 @@
                                 .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
                                 .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
                         .isNull(DownStorageCageDetails::getSlot)
+                        .eq(DownStorageCage::getEnableState, Const.SLOT_ON)
                         .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
         );
         if (flag && CollectionUtil.isNotEmpty(emptyList)) {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
index 75bcc83..2c548c5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
@@ -2,14 +2,9 @@
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.downworkstation.entity.DownWorkstation;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
 import org.springframework.stereotype.Repository;
-
-import java.util.List;
 
 /**
  * <p>
@@ -19,7 +14,7 @@
  * @author zhoush
  * @since 2024-03-27
  */
-@Mapper
+
 
 @Repository
 @InterceptorIgnore(tenantLine = "true")
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
index b9b2df0..0098390 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
@@ -4,7 +4,6 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.downworkstation.entity.DownWorkstation;
 import com.mes.downworkstation.entity.DownWorkstationTask;
-import org.mapstruct.Mapper;
 
 import java.util.List;
 
@@ -18,7 +17,7 @@
  */
 
 @DS("salve_hangzhoumes")
-@Mapper
+
 public interface DownWorkstationTaskMapper extends BaseMapper<DownWorkstationTask> {
 
     List<DownWorkstationTask> selectList();
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 24c88d4..d319f27 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
@@ -305,7 +305,7 @@
         if (CollectionUtils.isNotEmpty(workList)) {
             List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
                     .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, workList));
-            log.info("鏋跺瓙琚鐢紝鏃犳硶鍑虹墖钀芥灦");
+//            log.info("鏋跺瓙琚鐢紝鏃犳硶鍑虹墖钀芥灦");
             if (CollectionUtils.isEmpty(downWorkstationList)) {
                 log.info("绗煎瓙琚鐢紝鏃犳硶璧版満姊拌噦涓嬬墖");
                 //璧颁汉宸ヤ笅鐗�
@@ -489,6 +489,7 @@
         //鐢熸垚浠诲姟淇℃伅
         DownGlassInfo downGlassInfo = new DownGlassInfo();
         BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo);
+        //todo锛氳惤鏋剁墖搴�
         downGlassInfoService.save(downGlassInfo);
         //鐢熸垚浠诲姟淇℃伅
         GlassInfo glassInfo = new GlassInfo();

--
Gitblit v1.8.0