From 9887fc7be1578f465eee608e55b65097fa417d4c Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期二, 06 八月 2024 14:38:10 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java           |   48 +++++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java                                  |    8 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java                          |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java            |   12 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java          |    2 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                     |   34 +++
 hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java                              |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml                                      |   20 ++
 UI-Project/src/views/Caching/cachingun.vue                                                                                               |    5 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java                  |   13 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java                 |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                               |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java |   13 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java         |   26 ++
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                                                      |    6 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java                    |   10 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml                             |    3 
 UI-Project/config.js                                                                                                                     |    7 
 UI-Project/src/views/StockBasicData/stockBasicData.vue                                                                                   |   38 ++--
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                           |   56 ++++-
 UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue                                                                                |   38 ++--
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java        |   15 +
 UI-Project/src/lang/zh.js                                                                                                                |    1 
 UI-Project/src/utils/constants.js                                                                                                        |    3 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java                                                |   31 ++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java                                |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java                  |   88 +++++----
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java                                          |   10 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java           |    9 
 UI-Project/src/utils/WebSocketService.js                                                                                                 |   13 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java                                                      |    1 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java                     |    2 
 32 files changed, 392 insertions(+), 138 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index b15a1a5..8801d0c 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,7 +1,10 @@
 export default {
- serverUrl: "10.153.19.150:88/api",
+//  serverUrl: "10.153.19.150:88/api",
 //  serverUrl: "192.168.1.199:88/api",
-  serverUrl2: "10.153.19.150:88"
+ serverUrl: "127.0.0.1:88/api",
+  // serverUrl2: "10.153.19.150:88"
   // serverUrl2: "192.168.1.199:88"
+    serverUrl2: "127.0.0.1:88"
+
   //serverUrl:"res.abeim.cn"
 }
\ No newline at end of file
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index d2c352b..edceed9 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -237,6 +237,7 @@
         takemessage:'鏄惁鎷胯蛋璇ユ潯淇℃伅锛�',
         breakage:'鐮存崯',
         takeout:'鎷胯蛋',
+        glasstype:'鐜荤拑绫诲瀷',
     },
     processCard:{
         intofurnace:'杩涚倝涓�',
diff --git a/UI-Project/src/utils/WebSocketService.js b/UI-Project/src/utils/WebSocketService.js
index 0c2d76f..695f679 100644
--- a/UI-Project/src/utils/WebSocketService.js
+++ b/UI-Project/src/utils/WebSocketService.js
@@ -1,4 +1,5 @@
 // WebSocketService.js
+
 let socket = null;
 export const initializeWebSocket = (socketUrl, messageHandler) => {
   let messages='' ;
@@ -6,10 +7,13 @@
       console.log("Your browser does not support WebSocket");
       return null;
     }
+  
     const socket = new WebSocket(socketUrl);
+  
     socket.onopen = function () {
       console.log("WebSocket is now open");
     };
+  
     socket.onmessage = (msg) => {
       if (!msg.data) {
         return;
@@ -21,14 +25,23 @@
         messages= messages.replace('<END>', '');
         const obj = JSON.parse(messages);
         messages='';
+        
       // 璋冪敤娑堟伅澶勭悊鍑芥暟锛屽皢鏁版嵁浼犻�掔粰 Vue 缁勪欢
       if (messageHandler) {
         messageHandler(obj);
       }
       }
+      
+      
+
+  
+      
     };
+  
     return socket;
   };
+  
+
   export const closeWebSocket = (socket) => {
     if (socket && socket.readyState === WebSocket.OPEN) {
         socket.close();
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index 67d36d2..7e57f58 100644
--- a/UI-Project/src/utils/constants.js
+++ b/UI-Project/src/utils/constants.js
@@ -1,3 +1,4 @@
 // export const WebSocketHost = "192.168.1.199";
-export const WebSocketHost = "10.153.19.150";
+// export const WebSocketHost = "10.153.19.150";
+export const WebSocketHost = "127.0.0.1";
 export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index 7b55968..737c1de 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -210,11 +210,10 @@
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
   // 鏇存柊 tableData 鐨勬暟鎹�
-  tableData.value = data.params2[0]
-  // tableData.splice(0, tableData.length, ...data.params2[0]);
+  tableData.splice(0, tableData.length, ...data.params[0]);
   // tableData.value = data.params[0]
   // adjustedRects.value = data.EdgStorageCageinfos[0]
-  adjustedRects.value = data.params2[0].map(rect => ({  
+  adjustedRects.value = data.params[0].map(rect => ({  
             ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�  
             width: rect.width * 0.5 ,
             id: rect.id * 10,
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index 5135e96..3292ded 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -20,20 +20,20 @@
 const requestData = {  
   line: 2001  
 };  
-request.post("/cacheGlass/taskCache/selectEdgTask",{
-  ...requestData,  
+// request.post("/cacheGlass/taskCache/selectEdgTask",{
+//   ...requestData,  
 
-}).then((res) => {
-          if (res.code == 200) {
+// }).then((res) => {
+//           if (res.code == 200) {
             
-          console.log(res.data);
-          tableData.value = res.data
-          console.log(res.data[0].slot);
-          } else {
-          ElMessage.warning(res.msg)
+//           console.log(res.data);
+//           tableData.value = res.data
+//           console.log(res.data[0].slot);
+//           } else {
+//           ElMessage.warning(res.msg)
         
-          }
-          });
+//           }
+//           });
 // 鐮存崯
  const open = async(row) => { 
   try {
@@ -49,7 +49,7 @@
     if (confirmResult === 'confirm') {  
       // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
       const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
-        glassId: row.GlassId,
+        glassId: row.glass_id,
         controlsId: 300,
         line: 2001,
         machine: '鍐峰姞宸�',
@@ -82,7 +82,7 @@
     if (confirmResult === 'confirm') {  
       // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
       const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
-        glassId: row.GlassId,
+        glassId: row.glass_id,
         controlsId: 301,
         line: 2001,
         machine: '鍐峰姞宸�',
@@ -127,13 +127,11 @@
         <el-table height="240" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="GlassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
-          <el-table-column prop="Height" align="center" :label="$t('workOrder.height')" min-width="80" />
-          <el-table-column prop="Width" align="center" :label="$t('workOrder.width')" min-width="120" />
-          <el-table-column prop="Thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
-          <el-table-column prop="FilmsId" align="center" :label="$t('workOrder.coatingtypes')" min-width="120" />
-          <el-table-column prop="SerialNumber" align="center" :label="$t('workOrder.productionsequence')" min-width="120" />
-          <el-table-column prop="FlowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="120" />
+        <el-table-column prop="glass_id" align="center" :label="$t('workOrder.glassID')" min-width="180" />
+          <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" />
+          <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
+          <el-table-column prop="glass_type" align="center" :label="$t('workOrder.glasstype')" min-width="120" />
           <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
             <template #default="scope">
               <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
diff --git a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
index 57e6567..3b1ac08 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
@@ -20,20 +20,20 @@
 const requestData = {  
   line: 2002
 };  
-request.post("/cacheGlass/taskCache/selectEdgTask",{
-  ...requestData,  
+// request.post("/cacheGlass/taskCache/selectEdgTask",{
+//   ...requestData,  
 
-}).then((res) => {
-          if (res.code == 200) {
+// }).then((res) => {
+//           if (res.code == 200) {
             
-          console.log(res.data);
-          tableData.value = res.data
-          console.log(res.data[0].slot);
-          } else {
-          ElMessage.warning(res.msg)
+//           console.log(res.data);
+//           tableData.value = res.data
+//           console.log(res.data[0].slot);
+//           } else {
+//           ElMessage.warning(res.msg)
         
-          }
-          });
+//           }
+//           });
 // 鐮存崯
  const open = async(row) => {  
   try {
@@ -49,7 +49,7 @@
     if (confirmResult === 'confirm') {  
       // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
       const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
-        glassId: row.GlassId,
+        glassId: row.glass_id,
         controlsId: 300,
         line: 2002,
         machine: '鍐峰姞宸�',
@@ -82,7 +82,7 @@
     if (confirmResult === 'confirm') {  
       // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛  
       const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
-        glassId: row.GlassId,
+        glassId: row.glass_id,
         controlsId: 301,
         line: 2002,
         machine: '鍐峰姞宸�',
@@ -128,13 +128,11 @@
         <el-table height="240" ref="table" 
         @selection-change="handleSelectionChange"
         :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
-          <el-table-column prop="GlassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
-          <el-table-column prop="Height" align="center" :label="$t('workOrder.height')" min-width="80" />
-          <el-table-column prop="Width" align="center" :label="$t('workOrder.width')" min-width="120" />
-          <el-table-column prop="Thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
-          <el-table-column prop="FilmsId" align="center" :label="$t('workOrder.coatingtypes')" min-width="120" />
-          <el-table-column prop="SerialNumber" align="center" :label="$t('workOrder.productionsequence')" min-width="120" />
-          <el-table-column prop="FlowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="120" />
+          <el-table-column prop="glass_id" align="center" :label="$t('workOrder.glassID')" min-width="180" />
+          <el-table-column prop="width" align="center" :label="$t('workOrder.width')" min-width="120" />
+          <el-table-column prop="height" align="center" :label="$t('workOrder.height')" min-width="80" />
+          <el-table-column prop="thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
+          <el-table-column prop="glass_type" align="center" :label="$t('workOrder.glasstype')" min-width="120" />
           <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
             <template #default="scope">
               <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index c0fbde6..844a323 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -15,6 +15,7 @@
 import { WebSocketHost ,host} from '@/utils/constants'
 const dialogFormVisiblea = ref(false)
 const dialogFormVisiblea2 = ref(false)
+const dialogFormVisibleaDownGlass = ref(false)
 // 鏁版嵁
 const loading = ref(false);
 // 寮规鏄剧ず鎺у埗
@@ -25,6 +26,7 @@
 const flowCardId = ref('');
 const flowCardOptions = ref('[]');
 const tableData = reactive([]);
+const downGlass= ref([]);
 // 鏂规硶
 const handleSelectionChange = () => {
   // 澶勭悊琛ㄦ牸琛岄�夋嫨浜嬩欢
@@ -144,7 +146,13 @@
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
   // 鏇存柊 tableData 鐨勬暟鎹�
-  tableData.splice(0, tableData.length, ...data.params[0]);
+  if(data.sendDownGlass!=null){
+    downGlass.value=data.sendDownGlass[0][1];
+    console.log(downGlass.value);
+    console.log(tableData.value);
+  }
+  // tableData.splice(0, tableData.length, ...data.params[0]);
+
 //  console.log("鏇存柊鍚庢暟鎹�", data.params[0]);
 };
 // 鍒濆鍖� WebSocket锛屽苟浼犻�掓秷鎭鐞嗗嚱鏁�
@@ -208,6 +216,7 @@
 </script>
 <template>
   <div>
+    <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisibleaDownGlass = true">钀芥灦璇︽儏</el-button>
     <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;">
@@ -230,7 +239,6 @@
             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>
@@ -241,9 +249,29 @@
             <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button>
             <el-button size="mini" type="text" plain  @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear') }}</el-button>
           </template>
+          
         </el-table-column>
         </el-table>
+        
       </div>
+      <el-dialog v-model="dialogFormVisibleaDownGlass" top="2vh" width="97%" :title="$t('searchOrder.cageinformation')">
+        <el-table height="200px" ref="table" 
+        @selection-change="handleSelectionChange"
+        :data="downGlass" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+        <el-table-column prop="workStationId" align="center" :label="$t('宸ヤ綅鍙�')" min-width="80" />
+        <el-table-column prop="engineerId" align="center" :label="$t('宸ョ▼鍙�')" min-width="80" />
+          <el-table-column prop="flowCardId" align="center" :label="$t('娴佺▼鍗″彿')" min-width="80" />
+          <el-table-column prop="layer" align="center" :label="$t('灞�')" min-width="120" />
+          <el-table-column prop="sequence" align="center" :label="$t('椤哄簭')" min-width="150" />
+          <el-table-column prop="width" align="center" :label="$t('瀹�')" min-width="120" />
+          <el-table-column prop="height" align="center" :label="$t('楂�')" min-width="120" />
+          <el-table-column prop="Filmsid" align="center" :label="$t('鑶滅郴')" min-width="120" />
+          <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="120" />
+          <el-table-column prop="glassId" align="center" :label="$t('鐜荤拑id')" min-width="120" />
+          
+        </el-table>
+      </el-dialog>
+      
     </el-card>
     <!-- workstationId: '1',
     workstationId: '1005',
@@ -260,6 +288,7 @@
     </div>
     </div>
     </el-card>
+    
   </div>
 
     <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
@@ -279,6 +308,7 @@
     </div>
     <template #footer>
       <div id="dialog-footer">
+
         <el-button type="primary" @click="handleConfirm">
           {{ $t('reportWork.sure') }}
         </el-button>
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index 2ea5807..2c2763a 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -161,6 +161,7 @@
     public static final List<Integer> G06_WORK_STATION = Arrays.asList(1, 2, 3);
     public static final List<Integer> G11_WORK_STATION = Arrays.asList(4, 5, 6);
     public static final int G13_WORK_STATION = 7;
+    public static final List<Integer> WORK_STATION_ALL = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
 
     /**
      * 鍚敤 1
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
index 1589b7d..3443a6f 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -3,9 +3,12 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
- *  鏈嶅姟绫�
+ * 鏈嶅姟绫�
  * </p>
  *
  * @author wu
@@ -13,4 +16,5 @@
  */
 public interface EdgGlassTaskInfoService extends IService<EdgGlassTaskInfo> {
 
+    List<Map<String, Object>> selectEdgInfo(String line);
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
index 34a06f4..b88c9c6 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -1,14 +1,18 @@
 package com.mes.edgglasstask.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper;
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author wu
@@ -17,4 +21,13 @@
 @Service
 public class EdgGlassTaskInfoServiceImpl extends ServiceImpl<EdgGlassTaskInfoMapper, EdgGlassTaskInfo> implements EdgGlassTaskInfoService {
 
+    @Override
+    public List<Map<String, Object>> selectEdgInfo(String line) {
+        LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassWrapper = new LambdaQueryWrapper<>();
+        edgGlassWrapper
+                .eq(EdgGlassTaskInfo::getLine, line)
+                .eq(EdgGlassTaskInfo::getStatus, "1")
+                .orderByDesc(EdgGlassTaskInfo::getTime);
+        return baseMapper.selectMaps(edgGlassWrapper);
+    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
index 3a3bb31..1edada5 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -34,7 +34,7 @@
      * @param current
      * @return
      */
-    List<Map<String, Object>> selectCurrentCutTerritory(String current);
+    List<List<Map<String, Object>>> selectCurrentCutTerritory(String current);
 
     /**
      * 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨�  姝ゅ昂瀵哥幓鐠�  濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index fd28610..acf0dff 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -142,7 +142,7 @@
             List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                     .selectAll(OptimizeDetail.class)
                     .selectAs(OptimizeLayout::getWidth, "olWidth")
-                    .selectAs(OptimizeLayout::getWidth, "olHeight")
+                    .selectAs(OptimizeLayout::getHeight, "olHeight")
                     .leftJoin(OptimizeLayout.class, on -> on
                             .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
                             .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
@@ -183,14 +183,14 @@
      * @return
      */
     @Override
-    public List<Map<String, Object>> selectCurrentCutTerritory(String current) {
-        //鏈�缁堣繑鍥炵粨鏋�
+    public List<List<Map<String, Object>>> selectCurrentCutTerritory(String current) {
+        //缁撴灉
         List<Map<String, Object>> ResultcutTerritorys=new ArrayList<>();
         //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
         List<Map<String, Object>> cutTerritorys=optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
                 .selectAll(OptimizeDetail.class)
                 .selectAs(OptimizeLayout::getWidth, "olWidth")
-                .selectAs(OptimizeLayout::getWidth, "olHeight")
+                .selectAs(OptimizeLayout::getHeight, "olHeight")
                 .leftJoin(OptimizeLayout.class, on -> on
                         .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
                         .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
@@ -202,7 +202,6 @@
                 .eq(EdgStorageCageDetails::getEngineerId,current)
                 .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
         ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails->EdgStorageCageDetails));
-
         for (Map<String, Object> cutTerritory : cutTerritorys) {
 //                log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
             if(cutTerritory.get("glass_id")==null||"".equals(cutTerritory.get("glass_id"))){
@@ -215,7 +214,9 @@
             }
             ResultcutTerritorys.add(cutTerritory);
         }
-        return ResultcutTerritorys;
+        Map<String, List<Map<String, Object>>> groupBy=ResultcutTerritorys.stream().collect(Collectors.groupingBy(item->item.get("stock_id").toString()));
+//        List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
+        return new ArrayList<>(groupBy.values());
 //Sql鐗堟湰
 //        return optimizeDetailMapper.selectJoinMaps(new MPJQueryWrapper<OptimizeDetail>().selectAll(OptimizeDetail.class)
 //                .select("ol.width as olwidth","ol.height as olheight")
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 0dd3ec0..48df75a 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
@@ -21,7 +21,6 @@
 import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.taskcache.entity.TaskCache;
 import com.mes.taskcache.service.TaskCacheService;
-import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
@@ -87,7 +86,7 @@
     @Value("${mes.min.two.secondLength}")
     private String minTwoSecondLength;
 
-    public static String engineerId="";
+    public static String engineerId = "";
 
     @Scheduled(fixedDelay = 1000)
     public void plcHomeEdgTask() {
@@ -140,11 +139,12 @@
         Date endDate = new Date();
         log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
     }
+
     @Scheduled(fixedDelay = 1000)
-    public void temperingIsRun(){
+    public void temperingIsRun() {
         JSONObject jsonObject = new JSONObject();
         //姝e湪杩涜鐨勪换鍔�
-        List<TaskCache>taskCaches=taskCacheService.selectTaskCacheIsRun();
+        List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun();
         jsonObject.append("taskCaches", taskCaches);
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
         if (sendwServer != null) {
@@ -157,6 +157,7 @@
             }
         }
     }
+
     /**
      * 杩涚墖浠诲姟
      *
@@ -173,20 +174,23 @@
 
         //鏌ヨ鐜荤拑骞惰繘琛屼氦鎹�
         GlassInfo glassInfo = queryAndChangeGlass(glassId);
-        log.info("3銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+        if (glassInfo == null) {
+            return;
+        }
+        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
         EdgStorageCageDetails details = new EdgStorageCageDetails();
         BeanUtils.copyProperties(glassInfo, details);
         details.setState(Const.GLASS_STATE_IN);
         details.setSlot(nearestEmpty.getSlot());
         details.setDeviceId(nearestEmpty.getDeviceId());
         edgStorageCageDetailsService.save(details);
-        log.info("4銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
+        log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
         //娣诲姞杩涚墖浠诲姟
         boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
-        log.info("5銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
+        log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
 
         S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
-        log.info("6銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
+        log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
 
 
     }
@@ -201,6 +205,10 @@
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
 //                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
         Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");
+        if ((glassInfo.getWidth() < Double.parseDouble(minTwoFirstLength) && glassInfo.getHeight() < Double.parseDouble(minTwoSecondLength)) || (glassInfo.getWidth() < Double.parseDouble(minTwoSecondLength) && glassInfo.getHeight() < Double.parseDouble(minTwoFirstLength))) {
+            log.info("3銆佺幓鐠冧俊鎭笉绗﹀悎杩涘叆鐞嗙墖绗兼渶灏忓昂瀵革紝鐜荤拑淇℃伅涓簕}", glassInfo);
+            return null;
+        }
         //鎸夌収鐜荤拑灏哄
         LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
                 .eq(GlassInfo::getWidth, glassInfo.getWidth())
@@ -316,7 +324,7 @@
                             BeanUtils.copyProperties(one, resultDetails);
                             glassInfo = resultDetails;
                         } else {
-                            log.info("鑾峰彇绗煎唴鐜荤拑鍜屽甫杩涚墖鐜荤拑涓虹┖鎴栬�呬笉绗﹀悎纾ㄨ竟灏哄");
+                            log.info("鑾峰彇绗煎唴鐜荤拑鍜屽緟杩涚墖鐜荤拑涓虹┖鎴栬�呬笉绗﹀悎纾ㄨ竟灏哄");
                         }
                     } else {
                         glassInfo = queryMinGlass(list.get(0).getWidth(), list.get(0).getHeight(), glassId);
@@ -530,12 +538,12 @@
         if (endcell == Const.A10_OUT_TARGET_POSITION) {
             wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                     "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
-                    "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
-                    + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
+                    "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength);
         } else {
             wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                     "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
-                    "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
+                    "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+                    + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
         }
         wrapper.last("order by count(t.glass_id) desc  limit 2");
         List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
@@ -698,7 +706,7 @@
     @Scheduled(fixedDelay = 1000)
     public void CacheGlassTasks() {
         JSONObject jsonObject = new JSONObject();
-        List<Map<String, Object>> currentCutTerritorys= edgStorageCageDetailsService.selectCutTerritory();
+        List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
 //        List<Map<String, Object>> currentCutTerritorys=new ArrayList<>();
 //        if(engineerId==null||engineerId.isEmpty()){
 //            //璇嗗埆鎽嗙墖 褰撳墠鐗堝浘鏁版嵁
@@ -710,8 +718,8 @@
         jsonObject.append("currentCutTerritory", currentCutTerritorys);
         //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys);
         //纾ㄨ竟淇℃伅
-        List<Map<String, Object>> EdgTasks1 = taskCacheService.selectEdgInfo("2001");
-        List<Map<String, Object>> EdgTasks2 = taskCacheService.selectEdgInfo("2002");
+        List<Map<String, Object>> EdgTasks1 = edgGlassTaskInfoService.selectEdgInfo("2001");
+        List<Map<String, Object>> EdgTasks2 = edgGlassTaskInfoService.selectEdgInfo("2002");
         jsonObject.append("EdgTasks1", EdgTasks1);
         jsonObject.append("EdgTasks2", EdgTasks2);
 
@@ -735,6 +743,22 @@
             }
         }
     }
-
+    @Scheduled(fixedDelay = 1000)
+    public void cacheGlassIsRun(){
+        JSONObject jsonObject = new JSONObject();
+        //姝e湪杩涜鐨勪换鍔�
+        List<TaskCache>taskCaches=taskCacheService.selectTaskCacheIsRun();
+        jsonObject.append("taskCaches", taskCaches);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 8122b36..99a18f1 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -41,7 +41,7 @@
     @ResponseBody
     public Result cutTerritory(String current) {
         //engineerId=current;
-        List<Map<String, Object>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
+        List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
         return Result.build(200,"鎴愬姛",h);
     }
     @ApiOperation("璇嗗埆鏄剧ず  褰撳墠鐗堝浘   鍙傛暟()")
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
index 0e330b0..cf78834 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
@@ -1,5 +1,6 @@
 package com.mes.taskcache.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
@@ -7,6 +8,7 @@
 import com.mes.common.config.Const;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.service.DamageService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
@@ -23,7 +25,7 @@
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author zhoush
@@ -44,57 +46,59 @@
 
     /**
      * 娣诲姞鐞嗙墖绗间换鍔�
+     *
      * @param taskCache
      * @return
      */
     @Override
-    public boolean insertTaskCache(TaskCache taskCache){
+    public boolean insertTaskCache(TaskCache taskCache) {
         baseMapper.insert(taskCache);
         return true;
     }
 
     /**
      * 鏌ヨ纾ㄨ竟浠诲姟
+     *
      * @param line
      * @return
      */
     @Override
-    public List<Map<String,Object>> selectEdgInfo(String line) {
-        List<TaskCache> taskCache=baseMapper.selectList(new MPJLambdaWrapper<TaskCache>()
+    public List<Map<String, Object>> selectEdgInfo(String line) {
+        List<TaskCache> taskCache = baseMapper.selectList(new MPJLambdaWrapper<TaskCache>()
                 .selectAll(TaskCache.class)
                 .eq(TaskCache::getEndCell, line)
-                .eq(TaskCache::getTaskStatus,1)
+                .eq(TaskCache::getTaskStatus, 1)
                 .orderByAsc(TaskCache::getCreateTime));
-        List<Map<String,Object>> result=new ArrayList<>();
-        int serialNumber=1;
-        for(TaskCache taskCache1:taskCache){
-            Map<String,Object> map=new HashMap<>();
+        List<Map<String, Object>> result = new ArrayList<>();
+        int serialNumber = 1;
+        for (TaskCache taskCache1 : taskCache) {
+            Map<String, Object> map = new HashMap<>();
 //            GlassInfo glassInfo=glassInfoMapper.selectOne(new MPJLambdaWrapper<GlassInfo>()
 //                    .selectAll(GlassInfo.class)
 //                    .eq(GlassInfo::getGlassId,taskCache1.getGlassId()));
-            List<GlassInfo> glassInfos=glassInfoMapper.selectJoinList(GlassInfo.class, new MPJLambdaWrapper<GlassInfo>()
+            List<GlassInfo> glassInfos = glassInfoMapper.selectJoinList(GlassInfo.class, new MPJLambdaWrapper<GlassInfo>()
                     .selectAll(GlassInfo.class)
                     .innerJoin(EdgStorageCageDetails.class, on -> on
                             .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId)
                             .eq(EdgStorageCageDetails::getEngineerId, GlassInfo::getEngineerId))
-                    .eq(GlassInfo::getGlassId,taskCache1.getGlassId())
-                    .eq(EdgStorageCageDetails::getState,Const.GLASS_STATE_OUT)
+                    .eq(GlassInfo::getGlassId, taskCache1.getGlassId())
+                    .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
             );
-            if(glassInfos.size()==1){
-                GlassInfo glassInfo=glassInfos.get(0);
-                map.put("Line",line);//绾胯矾   2001  1绾匡紝 2002 2绾�
-                map.put("Width",glassInfo.getWidth());//瀹�
-                map.put("Height",glassInfo.getHeight());//楂�
-                map.put("Thickness",glassInfo.getThickness());//鍘�
-                map.put("GlassId",glassInfo.getGlassId());//鐜荤拑ID
-                map.put("FlowCardId",glassInfo.getFlowCardId());//娴佺▼鍗″彿
-                map.put("TemperingLayoutId",glassInfo.getTemperingLayoutId());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID
-                map.put("TemperingFeedSequence",glassInfo.getTemperingFeedSequence());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID鍐呯殑搴忓彿
-                map.put("FilmsId",glassInfo.getFilmsid());//鑶滅郴
-                map.put("SerialNumber",serialNumber);//鍑虹墖椤哄簭
+            if (glassInfos.size() == 1) {
+                GlassInfo glassInfo = glassInfos.get(0);
+                map.put("Line", line);//绾胯矾   2001  1绾匡紝 2002 2绾�
+                map.put("Width", glassInfo.getWidth());//瀹�
+                map.put("Height", glassInfo.getHeight());//楂�
+                map.put("Thickness", glassInfo.getThickness());//鍘�
+                map.put("GlassId", glassInfo.getGlassId());//鐜荤拑ID
+                map.put("FlowCardId", glassInfo.getFlowCardId());//娴佺▼鍗″彿
+                map.put("TemperingLayoutId", glassInfo.getTemperingLayoutId());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID
+                map.put("TemperingFeedSequence", glassInfo.getTemperingFeedSequence());// 鏆備笉鏄剧ず  閽㈠寲鐗堝浘ID鍐呯殑搴忓彿
+                map.put("FilmsId", glassInfo.getFilmsid());//鑶滅郴
+                map.put("SerialNumber", serialNumber);//鍑虹墖椤哄簭
                 result.add(map);
-            }else if(glassInfos.size()>1){
-                log.info("鏁版嵁涓嶇鍚堥�昏緫--纾ㄨ竟闃熷垪glassId閲嶅:",glassInfos);
+            } else if (glassInfos.size() > 1) {
+                log.info("鏁版嵁涓嶇鍚堥�昏緫--纾ㄨ竟闃熷垪glassId閲嶅:", glassInfos);
                 return new ArrayList<>();
             }
             serialNumber++;
@@ -111,16 +115,18 @@
 
     /**
      * 鏌ヨ寰呯悊鐗囧伐浣滅殑浠诲姟
+     *
      * @return
      */
     @Override
-    public List<TaskCache> selectCacheInfo(){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0));
+    public List<TaskCache> selectCacheInfo() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0));
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0));
     }
 
     /**
      * 鏌ヨ鍏ㄩ儴浠诲姟
+     *
      * @return
      */
     @Override
@@ -130,54 +136,60 @@
 
     /**
      * 鏌ヨ寰呰繘鐗囦换鍔�
+     *
      * @return
      */
     @Override
-    public List<TaskCache> selectInputTaskCache(){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,1));
+    public List<TaskCache> selectInputTaskCache() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0).eq(TaskCache::getTaskType, 1));
 
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",1));
     }
 
     /**
      * 鏌ヨ寰呭嚭鐗囦换鍔�
+     *
      * @return
      */
     @Override
-    public List<TaskCache> selectOutTaskCache(){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,2));
+    public List<TaskCache> selectOutTaskCache() {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus, 0).eq(TaskCache::getTaskType, 2));
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",2));
     }
 
     /**
      * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     *
      * @param line
      * @return
      */
     @Override
-    public List<TaskCache> selectLastOutCacheInfos(int line){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime));
+    public List<TaskCache> selectLastOutCacheInfos(int line) {
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell, line).eq(TaskCache::getTaskStatus, 1).orderByDesc(TaskCache::getCreateTime));
 //        return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("end_cell",line).eq("task_status",1).orderByDesc("ID"));
     }
 
     /**
      * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     *
      * @param line
      * @return
      */
     @Override
-    public TaskCache selectLastOutCacheInfo(int line){
-        return baseMapper.selectOne(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime));
+    public TaskCache selectLastOutCacheInfo(int line) {
+        return baseMapper.selectOne(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell, line).eq(TaskCache::getTaskStatus, 1).orderByDesc(TaskCache::getCreateTime));
     }
+
     /**
      * 鏌ヨ鍒ゆ柇纾ㄨ竟绾挎槸鍚︽湁鐜荤拑杩愯
+     *
      * @param
      * @return
      */
     @Override
     public List<TaskCache> selectTaskCacheIsRun() {
-        List<TaskCache> taskCaches=null;
-        taskCaches=taskCacheMapper.selectJoinList(TaskCache.class, new MPJLambdaWrapper<TaskCache>()
+        List<TaskCache> taskCaches = null;
+        taskCaches = taskCacheMapper.selectJoinList(TaskCache.class, new MPJLambdaWrapper<TaskCache>()
                 .select("top 4   t.end_cell,ISNULL(b.glass_id, 0)as glass_id")
                 .leftJoin("big_storage_cage_feed_task as b on t.glass_id=b.glass_id ")
                 .groupBy("t.end_cell,b.glass_id,t.create_time")
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 3a702c3..2e190f0 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -18,11 +18,11 @@
     secondLength: 2500
   min:
     one: #绗竴鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
-      firstLength: 600
-      secondLength: 350
+      firstLength: 500
+      secondLength: 400
     two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
       firstLength: 400
-      secondLength: 300
+      secondLength: 400
   sequence:
     order: false
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
index 8264682..9e6a161 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -138,7 +138,7 @@
 
     @Test
     public void testEngineerCutTerritory() {
-        List<Map<String, Object>> map = edgStorageCageDetailsService.selectCurrentCutTerritory("P24051806");
+        List<List<Map<String, Object>>> map = edgStorageCageDetailsService.selectCurrentCutTerritory("P24051806");
         log.info("鍒囧壊宸ョ▼鐗堝浘淇℃伅锛歿}", Arrays.asList(map));
     }
 
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 def27db..5378df6 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
@@ -802,7 +802,7 @@
                     trainNumber = trainNumber + 1;
                     serialNumber = 1;
                     maxX = e.getXCoordinate();
-                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+                    bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
                             e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1));
                 }
             } else {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
index 7ecbf06..0a371fb 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -43,7 +43,7 @@
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
      */
 
-    @Scheduled(fixedDelay = 300)
+    @Scheduled(fixedDelay = 30000)
     public void plcLoadGlassTask() throws InterruptedException {
         try {
             //鑾峰彇鑱旀満鐘舵��
@@ -87,7 +87,7 @@
         }
     }
 
-    @Scheduled(fixedDelay = 300)
+    @Scheduled(fixedDelay = 30000)
     public void plcLoadGlassReport() {
         //鑾峰彇鏄惁鏈夋眹鎶�
         String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
@@ -152,8 +152,8 @@
     public void loadGlassStatus() {
         JSONObject jsonObject = new JSONObject();
         //姝e湪杩涜鐨勪换鍔�
-        String inkageStatus =plcParameterObject.getPlcParameter("InkageStatus").getValue();
-//        String inkageStatus ="1";
+//        String inkageStatus =plcParameterObject.getPlcParameter("InkageStatus").getValue();
+        String inkageStatus ="1";
         jsonObject.append("InkageStatus", inkageStatus);
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlass");
         if (sendwServer != null) {
@@ -175,7 +175,7 @@
         }else {
             jsonObject.append("engineering", "0");
         }
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("IsRun");
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("loadGlassIsRun");
         if (sendwServer != null) {
             for (WebSocketServer webserver : sendwServer) {
                 if (webserver != null) {
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
index e0a91f0..4a9356e 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
@@ -76,7 +76,7 @@
         //姝e湪杩涜鐨勪换鍔�
         List<TemperingGlassInfo>temperingTaskType=temperingAgoService.selectTaskType();
         jsonObject.append("temperingTaskType", temperingTaskType);
-        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingIsRun");
         if (sendwServer != null) {
             for (WebSocketServer webserver : sendwServer) {
                 if (webserver != null) {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
index c9a17a1..3f8d7d5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
@@ -1,5 +1,10 @@
 package com.mes.downglassinfo.controller;
 
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -7,5 +12,12 @@
 @RequestMapping("/downGlassInfo")
 public class DownGlassInfoController {
 
+    @Autowired
+    DownGlassInfoService downGlassInfoService;
+
+    @RequestMapping("/selectDownGlassInfo")
+    public Result<String> setDownGlassInfoRequest(@RequestBody DownGlassInfoRequest request) {
+        return Result.success(downGlassInfoService.setDownGlassInfoRequest(request));
+    }
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
index add927c..c7d5a67 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -7,6 +7,7 @@
 import org.springframework.stereotype.Component;
 
 import java.io.Serializable;
+import java.util.Date;
 
 /**
  * <p>
@@ -79,5 +80,10 @@
      */
     private String glassId;
 
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Date gmtCreate;
+
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
new file mode 100644
index 0000000..aa307b9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/request/DownGlassInfoRequest.java
@@ -0,0 +1,48 @@
+package com.mes.downglassinfo.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownGlassInfoRequest implements Serializable {
+
+    /**
+     * 宸ヤ綅id
+     */
+    private Integer workStationId;
+
+    /**
+     * 宸ョ▼id
+     */
+    private String engineerId;
+
+    /**
+     * 寮�濮嬫椂闂�
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date beginDate;
+
+    /**
+     * 缁撴潫鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date endDate;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
index 1a6ba68..da649b8 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
@@ -33,5 +33,13 @@
      * @param isDownload 鏄惁鑾峰彇鏈惤鏋剁幓鐠冧俊鎭�  True 宸茶惤鏋�  false 鏈惤鏋�
      * @return
      */
-    List<DownGlassInfoDTO> queryWorkStationIsIn(@Param(value = "isDownload") Boolean isDownload);
+    List<DownGlassInfoDTO> queryWorkStationIsIn(@Param(value = "workList") List<Integer> workList, @Param(value = "isDownload") Boolean isDownload);
+
+    /**
+     * 鑾峰彇
+     *
+     * @param workList
+     * @return
+     */
+    List<DownGlassInfoDTO> queryWorkStationFlowCard(@Param(value = "workList") List<Integer> workList);
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
index 0830e6b..f829ea4 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
 import com.mes.downworkstation.entity.dto.DownGlassInfoDTO;
 
 import java.util.List;
@@ -31,7 +32,15 @@
      * @param isDownload true/false
      * @return
      */
-    List<DownGlassInfoDTO> queryWorkStationIsIn(Boolean isDownload);
+    List<DownGlassInfoDTO> queryWorkStationIsIn(List<Integer> workList, Boolean isDownload);
+
+    /**
+     * 鑾峰彇鎸囧畾鏋跺瓙宸茬粦瀹氭祦绋嬪崱鐨勬灦瀛愭湭钀界幓鐠冪殑鏁版嵁淇℃伅
+     *
+     * @param workList 鎸囧畾鐨勬灦瀛愬彿
+     * @return
+     */
+    List<DownGlassInfoDTO> queryWorkStationFlowCard(List<Integer> workList);
 
     /**
      * 鐢熸垚鍑虹墖浠诲姟
@@ -40,4 +49,6 @@
      * @return
      */
     boolean generateOutGlassTask(String glassId);
+
+    String setDownGlassInfoRequest(DownGlassInfoRequest request);
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
index b39daf2..06ea03a 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -5,7 +5,9 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.common.config.Const;
+import com.mes.common.utils.RedisUtil;
 import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
 import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
 import com.mes.downglassinfo.service.DownGlassInfoService;
 import com.mes.downstorage.entity.DownStorageCageDetails;
@@ -27,6 +29,9 @@
 
     @Autowired
     DownStorageCageDetailsService downStorageCageDetailsService;
+
+    @Autowired
+    RedisUtil redisUtil;
 
     /**
      * 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
@@ -60,8 +65,15 @@
     }
 
     @Override
-    public List<DownGlassInfoDTO> queryWorkStationIsIn(Boolean isDownload) {
-        return baseMapper.queryWorkStationIsIn(isDownload);
+    public List<DownGlassInfoDTO> queryWorkStationIsIn(List<Integer> workList, Boolean isDownload) {
+        //鎸夌収瑕佹眰鑾峰彇宸茶惤鏋�/鏈惤鏋剁殑鐜荤拑淇℃伅
+        return baseMapper.queryWorkStationIsIn(workList, isDownload);
+    }
+
+    @Override
+    public List<DownGlassInfoDTO> queryWorkStationFlowCard(List<Integer> workList) {
+        //鑾峰彇宸茬粦瀹氭祦绋嬪崱鐨勬灦瀛愭湭钀界幓鐠冪殑鏁版嵁淇℃伅
+        return baseMapper.queryWorkStationFlowCard(workList);
     }
 
     @Override
@@ -82,4 +94,14 @@
         BeanUtils.copyProperties(details, glassInfo);
         return downLoadCacheGlassTask.initDownGlassTask(glassInfo, details.getSlot(), Const.G13_WORK_STATION, 2);
     }
+
+    @Override
+    public String setDownGlassInfoRequest(DownGlassInfoRequest request) {
+        if (request == null) {
+            redisUtil.deleteObject("downGlassRequest");
+        } else {
+            redisUtil.setCacheObject("downGlassRequest", request);
+        }
+        return "success";
+    }
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
index 54966ee..5d2a5d5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -71,12 +71,19 @@
      */
     boolean DirectConnection(GlassInfo glassInfo);
 
+    /**
+     * 鑾峰彇褰撳墠闈炴湰鏋跺瓙鍙惤鏋剁殑鐜荤拑淇℃伅
+     *
+     * @param glassId
+     * @param workList G06/G11:浼犲叆G06瀹為檯鑾峰彇鐨勪负鍙惤鏋禛11鐨勭幓鐠� 鍙嶄箣鍚岀悊
+     * @return
+     */
     String getGlassInfoMaxCount(String glassId, List<Integer> workList);
 
     /**
      * @param glassId
      * @param ControlsId
-     * @return  鐮存崯
+     * @return 鐮存崯
      */
     boolean identWorn(String glassId, int ControlsId);
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index ab141ce..3e8dcab 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
@@ -170,7 +170,7 @@
             }
             if (!checkFlag) {
                 log.info("鏃犵┖鏋跺瓙,鑾峰彇宸茬粦瀹氭灦瀛愮殑娴佺▼鍗′俊鎭�,鏌ョ湅鐜荤拑淇℃伅鏄惁鍙瀵硅皟");
-                List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.FALSE);
+                List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Const.WORK_STATION_ALL, Boolean.FALSE);
                 log.info("鑾峰彇鏋跺瓙涓婂凡缁戝畾娴佺▼鍗¤惤鏋剁殑鏁伴噺鍙婃湭钀芥灦鐨勭幓鐠冩暟鎹細{}", downGlassInfoDTOList);
                 if (CollectionUtils.isEmpty(downGlassInfoDTOList)) {
                     log.info("宸茬粦瀹氭祦绋嬪崱鍧囨棤鏈惤鏋剁幓鐠冿紝璇峰強鏃跺鐞嗘灦瀛愪笂鐨勭幓鐠冿紝娓呴櫎娴佺▼鍗�,鎵ц杩涚墖浠诲姟");
@@ -309,6 +309,7 @@
             }
         }
         List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6);
+        //鑾峰彇闈炴湰娆¤惤鏋剁殑鏋跺瓙淇℃伅
         List<Integer> offWorkStationList = workStationAll.stream().filter(e -> !workList.contains(e)).collect(Collectors.toList());
         List<DownStorageCageDetails> list = new ArrayList();
         //鏄惁鏈夌┖鏋跺瓙 true锛氭湁   false:鏃�
@@ -387,12 +388,12 @@
         loop:
         if (StringUtils.isBlank(tempGlassId)) {
             //鑾峰彇姝e湪钀芥灦鐨勭粦瀹氭祦绋嬪崱鐨勪俊鎭�(娴佺▼鍗°�佸眰鏁般�佽惤鏋舵暟閲�)
-            List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationIsIn(Boolean.TRUE);
+            //todo:钀芥灦鐜荤拑鏁颁负0锛屽嵆浣跨粦瀹氫簡娴佺▼鍗★紝涔熸棤娉曟壘鍒板搴旂殑鏋跺瓙淇℃伅锛屽彧鑳介噸鏂扮粦瀹�
+            List<DownGlassInfoDTO> downGlassInfoDTOList = downGlassInfoService.queryWorkStationFlowCard(workList);
             List<String> downGlassFlowList = downGlassInfoDTOList.stream().map(item -> item.getFlowCardId() + ":" + item.getLayer()).collect(Collectors.toList());
             if (CollectionUtils.isEmpty(downGlassFlowList)) {
                 //鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃�  鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
                 tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList);
-
                 isNeedBind = Boolean.TRUE;
                 break loop;
             }
@@ -527,6 +528,7 @@
         //钀芥灦鐗囧簭
         downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()));
         downGlassInfo.setWorkStationId(endCell);
+        downGlassInfo.setGmtCreate(new Date());
         downGlassInfoService.save(downGlassInfo);
         //鐢熸垚浠诲姟淇℃伅
         GlassInfo glassInfo = new GlassInfo();
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
index 7a84902..2877e21 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -2,13 +2,18 @@
 
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mes.common.config.Const;
+import com.mes.common.utils.RedisUtil;
 import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.entity.request.DownGlassInfoRequest;
 import com.mes.downglassinfo.service.DownGlassInfoService;
 import com.mes.downstorage.service.DownStorageCageService;
 import com.mes.downworkstation.entity.DownWorkstation;
 import com.mes.downworkstation.service.DownWorkstationService;
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -28,6 +33,9 @@
     private DownStorageCageService downStorageCageService;
     @Autowired
     private DownGlassInfoService downGlassInfoService;
+
+    @Autowired
+    private RedisUtil redisUtil;
 
     @Scheduled(fixedDelay = 2000)
     public void sendDownWorkstations() {
@@ -101,14 +109,27 @@
 
     @Scheduled(fixedDelay = 2000)
     public void sendDownGlassInfo() {
+        DownGlassInfoRequest request = redisUtil.getCacheObject("downGlassRequest");
+        if (null == request) {
+            request = new DownGlassInfoRequest();
+        }
         log.info("鍙戦�佸綋鍓嶆鍦ㄦ墽琛屽伐绋嬪凡钀芥灦鐨勭幓鐠冧俊鎭�");
-        List<DownGlassInfo> downGlassInfos = downGlassInfoService.list(new LambdaQueryWrapper<DownGlassInfo>()
-                .inSql(DownGlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+        LambdaQueryWrapper<DownGlassInfo> wrapper = new LambdaQueryWrapper<DownGlassInfo>()
+                .between(null != request.getBeginDate(), DownGlassInfo::getGmtCreate, request.getBeginDate(), request.getEndDate())
+                .eq(StringUtils.isNotBlank(request.getEngineerId()), DownGlassInfo::getEngineerId, request.getEngineerId());
+        if (null == request.getWorkStationId() || 0 == request.getWorkStationId()) {
+            wrapper.in(DownGlassInfo::getWorkStationId, Const.WORK_STATION_ALL);
+        } else {
+            wrapper.eq(DownGlassInfo::getWorkStationId, request.getWorkStationId());
+        }
+        List<DownGlassInfo> downGlassInfos = downGlassInfoService.list(wrapper);
         Map<Integer, List<DownGlassInfo>> listMap = downGlassInfos.stream().collect(Collectors.groupingBy(DownGlassInfo::getWorkStationId));
+        List<Object> engineerIdListTemp = downGlassInfoService.listObjs(new QueryWrapper<DownGlassInfo>().select("distinct engineer_id"));
+        List<String> engineerIdList = engineerIdListTemp.stream().map(String::valueOf).collect(Collectors.toList());
         JSONObject jsonObject4 = new JSONObject();
-        List<Map<String, Object>> list = downStorageCageService.selectDownStorageCages();
-        jsonObject4.append("params", listMap);
-        ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("sendDownGlass");
+        jsonObject4.append("downGlassInfos", listMap);
+        jsonObject4.append("engineerIdList", engineerIdList);
+        ArrayList<WebSocketServer> sendwServer4 = WebSocketServer.sessionMap.get("unloadglass");
         if (sendwServer4 != null) {
             for (WebSocketServer webserver : sendwServer4) {
                 if (webserver != null && webserver.session.isOpen()) {
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
index f13a7b4..c633e7d 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -58,16 +58,36 @@
         AND T.LAYER = T1.LAYER
         LEFT JOIN DOWN_GLASS_INFO T2 ON T1.GLASS_ID = T2.GLASS_ID
         <where>
+            t.workstation_id in
+            <foreach collection="workList" item="item" open='(' close=')' separator=','>
+                #{item}
+            </foreach>
             <if test="!isDownload">
                 AND T2.GLASS_ID IS NULL
             </if>
             <if test="isDownload">
                 AND T2.GLASS_ID IS not NULL
             </if>
+
         </where>
         ORDER BY
         T.RACKS_NUMBER DESC,
         T1.TEMPERING_LAYOUT_ID,
         T1.TEMPERING_FEED_SEQUENCE DESC
     </select>
+    <select id="queryWorkStationFlowCard" resultMap="downGlassInfo">
+        SELECT
+        T.FLOW_CARD_ID,
+        T.LAYER,
+        T.RACKS_NUMBER
+        FROM
+        DOWN_WORKSTATION T
+        where
+        (t.flow_card_id is not null and t.flow_card_id != '')
+        and t.workstation_id in
+        <foreach collection="workList" item="item" open='(' close=')' separator=','>
+            #{item}
+        </foreach>
+        ORDER BY T.RACKS_NUMBER DESC
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
index ee9090e..5d6f3ef 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownStorageCageDetailsMapper.xml
@@ -28,12 +28,11 @@
         FROM DOWN_STORAGE_CAGE_DETAILS
         WHERE STATE = 100
         and (FLOW_CARD_ID, LAYER) not in (
-        select FLOW_CARD_ID, LAYER from down_workstation where flow_card_id is not null and workstation_id not in
+        select FLOW_CARD_ID, LAYER from down_workstation where flow_card_id is not null and workstation_id in
         <foreach collection="workList" item="item" open='(' close=')' separator=','>
             #{item}
         </foreach>
         )
-
         GROUP BY FLOW_CARD_ID, LAYER
         ORDER BY COUNT(FLOW_CARD_ID) DESC
         LIMIT 1 )

--
Gitblit v1.8.0