From 0ec03c977e15aa7ac16c08e4fa4f0d4c901d19ee Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期二, 07 五月 2024 08:52:26 +0800
Subject: [PATCH] 磨边前缓存 测试代码

---
 hangzhoumesParent/moduleService/CacheGlassModule/pom.xml                                                                                 |    5 
 hangzhoumesParent/gateway/src/main/resources/application.yml                                                                             |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                              |    5 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java                                            |  177 ++++++++++
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java          |   10 
 hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java                              |   35 ++
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java                                   |   12 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java     |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java                             |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/JsonFile/PlcCacheGlass.json                                |  414 +++++++++++++++++++++++++
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java |   59 +++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java                  |    7 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                                                      |   14 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java        |   44 +-
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java         |   17 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java                                                          |   20 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java                  |   19 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java                           |   12 
 hangzhoumesParent/common/springsecurity/src/main/resources/application.yml                                                               |    6 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java                                              |    3 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java                  |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java                 |    4 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java                                            |   12 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java                                              |   36 ++
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java           |    4 
 25 files changed, 854 insertions(+), 69 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java
index fafbd45..c65d8a6 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java
@@ -252,7 +252,7 @@
     }
 
 
-    //璇诲彇String
+    //璇诲彇StringList
     public List<String> readStrings(List<String> addressList) {
         if (s7PLC == null) {
             return null;
@@ -272,6 +272,22 @@
         }
 
         return result;
+    }
+    //璇诲彇瀛楃涓�
+    public String readString(String address) {
+        if (s7PLC == null) {
+            return null;
+        }
+        try {
+            byte[] bytes = s7PLC.readByte(address, 14);
+            if (bytes != null) {
+                return new String(bytes, StandardCharsets.UTF_8);
+            }
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+        return null;
     }
 
 
@@ -314,12 +330,10 @@
         if (s7PLC == null) {
             return null;
         }
-
         List<Short> data = new ArrayList<>();
 
         for (String address : addresses) {
             try {
-
                 // 鍗曚釜鍦板潃
                 Short value = s7PLC.readInt16(address);
                 data.add(value);
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
index d5978be..9b6f864 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
@@ -3,18 +3,18 @@
 spring:
   datasource:
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    url: jdbc:mysql://localhost:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
     username: root
     password: beibo.123/
   cloud:
     nacos:
       discovery:
-        server-addr: 10.153.19.150:8848
+        server-addr: localhost:8848
   application:
     name: security
   redis:
     database: 0
-    host: 10.153.19.150
+    host: localhost
     port: 6379
     password:
   session:
diff --git a/hangzhoumesParent/gateway/src/main/resources/application.yml b/hangzhoumesParent/gateway/src/main/resources/application.yml
index 1452d31..be39617 100644
--- a/hangzhoumesParent/gateway/src/main/resources/application.yml
+++ b/hangzhoumesParent/gateway/src/main/resources/application.yml
@@ -6,7 +6,7 @@
   cloud:
     nacos:
       discovery:
-        server-addr: 10.153.19.150:8848
+        server-addr: localhost:8848
     gateway:
       discovery:
         locator:
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml b/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml
index 63b92ad..eabe196 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml
@@ -17,6 +17,11 @@
             <artifactId>junit</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>com.microsoft.sqlserver</groupId>
+            <artifactId>sqljdbc4</artifactId>
+            <version>4.0</version>
+        </dependency>
 <!--        <dependency>-->
 <!--            <groupId>com.github.yulichang</groupId>-->
 <!--            <artifactId>mybatis-plus-join-boot-starter</artifactId>-->
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java
index f58a1de..44bb258 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -1,11 +1,13 @@
 package com.mes;
 
 import com.mes.common.PlcHomeEdg;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Component;
 
+@Slf4j
 @Component
 @Order(1)
 
@@ -14,8 +16,7 @@
     @Override
     public void run(ApplicationArguments args) throws Exception {
         // TODO Auto-generated method stub
-        //
-        //System.out.println("鍚姩瀹屾垚");
+        log.info("鍚姩瀹屾垚");
        new PlcHomeEdg().start();
 
     }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java
index 5d4e79e..33fd9ea 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java
@@ -4,9 +4,6 @@
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 public class InitUtil {
     //鍒濆鍖杦ord
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/JsonFile/PlcCacheGlass.json b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/JsonFile/PlcCacheGlass.json
new file mode 100644
index 0000000..eed5688
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/JsonFile/PlcCacheGlass.json
@@ -0,0 +1,414 @@
+{
+   "plcAddressBegin":"DB14.0",
+   "plcAddressLenght":"208",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "PLCToMES",  
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "IDStatus1",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "IDStatus2",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"
+       },
+       {
+          "codeId": "IDStatus3",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus4",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus5",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "IDStatus6",
+          "addressIndex":"12",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID1",
+          "addressIndex":"14",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID2",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID3",
+          "addressIndex":"18",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID4",
+          "addressIndex":"20",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID5",
+          "addressIndex":"22",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID6",
+          "addressIndex":"24",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "GaToMES",
+          "addressIndex":"26",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "Height",
+          "addressIndex":"28",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "width",
+          "addressIndex":"30",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "ExportTOMES1",
+          "addressIndex":"32",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "ExportToMES2",
+          "addressIndex":"34",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESToPLC",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID1",
+          "addressIndex":"38",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID2",
+          "addressIndex":"54",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID3",
+          "addressIndex":"70",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID4",
+          "addressIndex":"86",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID5",
+          "addressIndex":"102",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID6",
+          "addressIndex":"118",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESToPLCStart1",
+          "addressIndex":"134",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },{
+         "codeId": "MESToPLCStart2",
+         "addressIndex":"136",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStart3",
+         "addressIndex":"138",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart4",
+         "addressIndex":"140",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart5",
+         "addressIndex":"142",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart6",
+         "addressIndex":"144",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget1",
+         "addressIndex":"146",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget2",
+         "addressIndex":"148",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget3",
+         "addressIndex":"150",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget4",
+         "addressIndex":"152",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget5",
+         "addressIndex":"154",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget6",
+         "addressIndex":"156",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus1",
+         "addressIndex":"158",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus2",
+         "addressIndex":"160",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus3",
+         "addressIndex":"162",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus4",
+         "addressIndex":"164",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus5",
+         "addressIndex":"166",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus6",
+         "addressIndex":"168",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToGaStatus",
+         "addressIndex":"170",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01Err",
+         "addressIndex":"172",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02Err",
+         "addressIndex":"174",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Err",
+         "addressIndex":"176",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Err",
+         "addressIndex":"178",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Err",
+         "addressIndex":"180",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace1",
+         "addressIndex":"182",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace2",
+         "addressIndex":"184",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace3",
+         "addressIndex":"186",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Position",
+         "addressIndex":"188",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Position",
+         "addressIndex":"190",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Position",
+         "addressIndex":"192",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "DeviceState",
+         "addressIndex":"194",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "AllFVRun",
+         "addressIndex":"196",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01State",
+         "addressIndex":"198",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02State",
+         "addressIndex":"200",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01State",
+         "addressIndex":"202",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01State",
+         "addressIndex":"204",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02State",
+         "addressIndex":"206",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+   ]
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
index 2e921b4..4e8fe38 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
@@ -1,24 +1,32 @@
 package com.mes.common;
 
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import java.io.IOException;
 
 import static com.mes.common.InitUtil.readAndUpdateWordValues;
 
 public class PLCAutoMes extends Thread {
 
+    private static final Logger log = LoggerFactory.getLogger(PLCAutoMes.class);
     private static InitUtil initUtil;
 
     // 鍗曚緥瀹炰緥
     private static PLCAutoMes instance;
-    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
+    private static String PlcAlbania;
 
 
 
-    public static PlcParameterObject PlcMesObject = InitUtil.initword(PlcAlbania);
+    public static PlcParameterObject PlcMesObject;
 
     // 绉佹湁鏋勯�犲嚱鏁�
     public PLCAutoMes() throws IOException {
+        PlcAlbania="D:\\SQL\\PlcCacheGlass.json";
+//        PlcAlbania=PLCAutoMes.class.getResource("/JsonFile/PlcCacheGlass.json").getPath();
+        //log.info(PLCAutoMes.class.getResource("").getPath());
+        PlcMesObject = InitUtil.initword(PlcAlbania);
         initUtil = new InitUtil();
     }
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java
index 6321ba4..f4944a9 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java
@@ -1,16 +1,187 @@
 package com.mes.common;
+import cn.hutool.core.date.DateTime;
 import cn.hutool.json.JSONObject;
+import com.github.yulichang.query.MPJLambdaQueryWrapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.taskcache.entity.TaskCache;
+import com.mes.taskcache.mapper.TaskCacheMapper;
+import com.mes.taskcache.service.TaskCacheService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
-
+@Service
+@Slf4j
 public class PlcHomeEdg extends Thread {
+
+
+
+    @Autowired
+    TaskCacheService taskCacheService;
+    @Autowired
+    GlassInfoService glassInfoService;
+    @Autowired
+    EdgStorageCageService edgStorageCageService;
+    @Autowired
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+    @Autowired
+    private EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
+
+    private Map<String,String> mapParameter=new HashMap<String,String>();
+    private Map<String,String> mapValue=new HashMap<String,String>();
+    private Map<String,Object> mapSettings=new HashMap<String,Object>();
+
+
+    private void initialize(){
+        mapParameter.put("A06_request_word","DB11.0");
+        mapParameter.put("A05_scanning_ID","DB11.2");
+        mapParameter.put("MES_confirmation_word","DB11.40");
+        mapParameter.put("A09_glass_status","DB11.70");
+        mapParameter.put("A10_glass_status","DB11.72");
+        mapParameter.put("A09_prohibit_film_production","DB11.74");
+        mapParameter.put("A10_prohibit_film_production","DB11.76");
+        mapSettings.put("territoryPoor",3);
+
+//        mapValue.put("A06_request_word","1");//璇锋眰瀛�
+//        mapValue.put("A05_scanning_ID","7");//璇锋眰ID
+//        mapValue.put("MES_confirmation_word","0");//MES鍙戦�佸瓧
+//        mapValue.put("A09_glass_status","0");//A09鐜荤拑鐘舵��
+//        mapValue.put("A10_glass_status","0");//A09鐜荤拑鐘舵��
+//        mapValue.put("A09_prohibit_film_production","0");//A9绂佹鍑虹墖
+//        mapValue.put("A10_prohibit_film_production","0");//A10绂佹鍑虹墖
+        for (String key:mapParameter.keySet()){
+            String value=S7object.getinstance().plccontrol.readString(mapParameter.get(key));
+            mapValue.put(key,value);
+        }
+    }
+    private void inTo(){
+        List<GlassInfo> glassInfos=glassInfoService.selectId(mapValue.get("A05_scanning_ID"));
+        if(glassInfos.size()<1){
+            log.info("姝ょ幓鐠冪紪鍙蜂笉瀛樺湪");
+        }else if(glassInfos.size()==1){
+            //娣诲姞杩涚墖浠诲姟  鏌ユ壘绌烘牸
+            log.info("姝e父");
+            List<EdgStorageCage> list=edgStorageCageService.selectCacheEmpty();
+
+            if(list.size()>1){
+                EdgStorageCageDetails edgStorageCageDetails=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>()
+                        .eq(EdgStorageCageDetails::getGlassId,glassInfos.get(0).getGlassId()));
+                edgStorageCageDetails.setState(200);
+
+                TaskCache taskCache=new TaskCache();
+                EdgStorageCage edgStorageCage=list.get(0);
+                taskCache.setGlassId(glassInfos.get(0).getGlassId());
+                taskCache.setTaskStatus(0);
+                taskCache.setStartCell(0);
+                taskCache.setEndCell(edgStorageCage.getSlot());
+                taskCache.setTaskType(1);
+                taskCache.setCreateTime(new DateTime());
+                edgStorageCageDetailsMapper.updateById(edgStorageCageDetails);
+                taskCacheService.insertTaskCache(taskCache);
+            }else{
+                log.info("涓嶅瓨鍦ㄧ┖鏍�");
+            }
+        }else{
+            log.info("姝ょ幓鐠冪紪鍙峰瓨鍦ㄥ涓�");
+        }
+    }
+    private void outTo(int line){
+        int endcell=0;
+        EdgStorageCageDetails outEdgStorageCageDetails=new EdgStorageCageDetails();
+        TaskCache taskCacheA09=taskCacheService.selectLastOutCacheInfo("");
+        TaskCache taskCacheA10=taskCacheService.selectLastOutCacheInfo("");
+        //涓ょ嚎鍚勮嚜瑕佸嚭鐨勭幓鐠�
+        EdgStorageCageDetails glassInfo09=edgStorageCageDetailsService.selectConformGlass(taskCacheA09.getGlassId(),(int)mapSettings.get("territoryPoor"));
+        EdgStorageCageDetails glassInfo10=edgStorageCageDetailsService.selectConformGlass(taskCacheA10.getGlassId(),(int)mapSettings.get("territoryPoor"));
+        //鍐冲畾绾胯矾
+        if(line==1){
+            endcell=9000;
+            outEdgStorageCageDetails=glassInfo09;
+        }else if(line==2){
+            endcell=1000;
+            outEdgStorageCageDetails=glassInfo10;
+        }else if(line==3){
+            endcell=9000;//榛樿璧颁竴鍙风嚎  浼樺寲鏂瑰悜鍙牴鎹�  瀵规瘮涓ょ嚎閫熷害/涓ょ嚎褰撳墠浠诲姟鎯呭喌鍋�
+            outEdgStorageCageDetails=glassInfo09;
+        }
+        if(outEdgStorageCageDetails!=null&&endcell>0){
+            TaskCache taskCache=new TaskCache();
+            taskCache.setGlassId(outEdgStorageCageDetails.getGlassId());
+            taskCache.setTaskStatus(0);
+            taskCache.setStartCell(outEdgStorageCageDetails.getSlot());
+            taskCache.setEndCell(endcell);
+            taskCache.setTaskType(2);
+            taskCache.setCreateTime(new DateTime());
+            taskCacheService.insertTaskCache(taskCache);
+        }
+
+
+
+
+    }
     @Override
     public void run() {
-        while (this != null) {
+        boolean start=true;
+        while (this != null&&start) {
             JSONObject jsonObject = new JSONObject();
             try {
                 Thread.sleep(1000);
+                taskCacheService  = WebSocketServer.applicationContext.getBean(TaskCacheService.class);
+                glassInfoService  = WebSocketServer.applicationContext.getBean(GlassInfoService.class);
+                edgStorageCageService  = WebSocketServer.applicationContext.getBean(EdgStorageCageService.class);
+                edgStorageCageDetailsMapper  = WebSocketServer.applicationContext.getBean(EdgStorageCageDetailsMapper.class);
+                initialize();//鍒濆鍖栨暟鎹�
+                log.info("褰撳墠鍙傛暟鍊硷細{}",mapValue);
+                if("0".equals(mapValue.get("A06_request_word"))){
+                    //娓呴櫎
+                    //S7object.getinstance().plccontrol.WriteWord(mapParameter.get("MES_confirmation_word"),(short) 0);
+                }else if("1".equals(mapValue.get("A06_request_word"))&&
+                         "0".equals(mapValue.get("MES_confirmation_word")))
+                {
+
+                    inTo();
+                }else if("2".equals(mapValue.get("A06_request_word"))&&
+                         "0".equals(mapValue.get("MES_confirmation_word"))&&
+                        (
+                         "0".equals(mapValue.get("A09_glass_status"))||
+                         "0".equals(mapValue.get("A10_glass_status"))
+                        )
+                ){
+
+                    outTo(3);
+                }else if("3".equals(mapValue.get("A06_request_word"))&&
+                         "0".equals(mapValue.get("MES_confirmation_word"))){
+                    
+                    if("0".equals(mapValue.get("A09_glass_status"))||"0".equals(mapValue.get("A10_glass_status"))){
+                        outTo(3);
+                    }else{
+                        inTo();
+                    }
+                }
+
+
+//                List<String> address2=new ArrayList<String>();
+//                address.add("");
+//                List<String> list2= S7object.getinstance().plccontrol.readStrings(address);
+//                PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+//                log.info("plcmes:{}",plcmes);
+//                S7object.getinstance().plccontrol.WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+
+//                taskCacheMapper  = WebSocketServer.applicationContext.getBean(TaskCacheMapper.class);
+//                List<TaskCache> list=taskCacheMapper.selectList(null);
+//                log.info("鏁版嵁{}",list);
                 // 娉ㄥ叆mapper
 //                HomeService  = WebSocketServer.applicationContext.getBean(HomeService.class);
 //                QueueMapper  = WebSocketServer.applicationContext.getBean(QueueMapper.class);
@@ -38,7 +209,7 @@
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
-
+//            log.info("鎺ㄦ暟鎹�");
             // jsonObject.append("params", new short[] { 30, 40, });
             ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
             if (sendwServer != null) {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..2929123
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,36 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.tools.S7control;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.1"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port, 0, 0);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
index 3e49ae0..785dd88 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -57,8 +57,8 @@
     @ApiOperation("纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄�/鏇存崲/缁戝畾銆� EdgStorageCage鏍煎瓙淇℃伅,EdgStorageCageDetails 鐜荤拑淇℃伅 ")
     @PostMapping("/edgStorageCageGlass")
     @ResponseBody
-    public Result edgStorageCageGlass(@RequestBody EdgStorageCage edgStorageCage,@RequestBody EdgStorageCageDetails edgStorageCageDetails) {
-        boolean isSucess=edgStorageCageService.updateEdgStorageCageDetails(edgStorageCage,edgStorageCageDetails);
+    public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails,int edgStorageCageId) {
+        boolean isSucess=edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId,edgStorageCageDetails);
         return Result.build(200,"鍒犻櫎鎴愬姛",1);
     }
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
index 99fb29f..11c4269 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
@@ -40,7 +40,7 @@
     /**
      * 鐜荤拑id
      */
-    private Integer glassId;
+    private String glassId;
 
     /**
      * 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
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 e09fb31..6f1479f 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
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.yulichang.base.MPJBaseService;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.pp.entity.OptimizeDetail;
+import com.mes.taskcache.entity.TaskCache;
 
 import java.util.List;
 import java.util.Map;
@@ -39,5 +41,11 @@
      */
     List<Map<String, Object>> selectCurrentCutTerritory(String current);
 
-
+    /**
+     * 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨�  姝ゅ昂瀵哥幓鐠�  濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
+     * @param glassId
+     * @param poor
+     * @return
+     */
+    EdgStorageCageDetails selectConformGlass(String glassId, int poor);
 }
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 a72c8bb..92e8d63 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
@@ -22,7 +22,7 @@
      * 鏌ヨ绗煎唴绌烘牸
      * @return
      */
-    List<Map<String, Object>> selectCacheEmpty();
+    List<EdgStorageCage> selectCacheEmpty();
 
     /**
      * 鏌ヨ绗煎唴鍑虹墖椤哄簭璇︽儏
@@ -43,5 +43,5 @@
      */
     boolean updateEdgStorageCage(EdgStorageCage edgStorageCage);
 
-    boolean updateEdgStorageCageDetails(EdgStorageCage edgStorageCage, EdgStorageCageDetails edgStorageCageDetails);
+    boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails);
 }
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 64837c0..d3d0768 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
@@ -1,17 +1,21 @@
 package com.mes.edgstoragecage.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.query.MPJLambdaQueryWrapper;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
+import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.pp.entity.OptimizeDetail;
 import com.mes.pp.entity.OptimizeLayout;
 import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.taskcache.entity.TaskCache;
 import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,6 +39,9 @@
     UpPattenUsageMapper upPattenUsageMapper;
     @Autowired
     OptimizeDetailMapper optimizeDetailMapper;
+
+    @Autowired
+    EdgStorageCageMapper edgStorageCageMapper;
 
     /**
      * 璇嗗埆   鎷胯蛋:200/鐮存崯:201
@@ -120,4 +127,56 @@
 //        );
     }
 
+    /**
+     * 鏌ヨ绗煎唴鐗堝浘宸�艰寖鍥村唴鐨�  姝ゅ昂瀵哥幓鐠�  濡傛棤鍒欐寜鐓� 閽㈠寲鐗堝浘搴忓彿 浠ュ強鐜荤拑搴忓彿
+     * @param glassId
+     * @param poor
+     * @return
+     */
+    @Override
+    public EdgStorageCageDetails selectConformGlass(String glassId, int poor){
+        //1.鍘荤鍐呮煡璇㈡灏哄鐨勭幓鐠� 鐩墠鐗堝浘宸�煎唴鐨勭幓鐠�  鏄惁鏈夊悓灏哄鐨�
+        //1.1 鏈夊悓灏哄鐨� 鍒欑敓鎴愬悓灏哄鐨勪换鍔�
+        //1.2 鏃犲悓灏哄鐨� 鍒欑敓鎴愮増鍥鹃『搴忔渶灏忕殑鍑虹墖
+        EdgStorageCageDetails edgStorageCageDetails= baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
+                .selectAll(EdgStorageCageDetails.class)
+                .eq(EdgStorageCageDetails::getGlassId,glassId)
+        );
+        List<EdgStorageCageDetails> listEdgStorageCageDetails= baseMapper.selectList(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .lt(EdgStorageCageDetails::getState,200)
+                .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence)
+        );
+        EdgStorageCageDetails minTemperingLayoutId=new EdgStorageCageDetails();
+        if(!listEdgStorageCageDetails.isEmpty()){
+            minTemperingLayoutId=listEdgStorageCageDetails.get(0);
+        }
+        EdgStorageCageDetails result=new EdgStorageCageDetails();
+        if(edgStorageCageDetails!=null&&minTemperingLayoutId!=null){
+            result=edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class,new MPJLambdaWrapper<EdgStorageCage>()
+                    .selectAll(EdgStorageCageDetails.class)
+                    .leftJoin(EdgStorageCageDetails.class,on->on
+                            .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
+                            .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+                    .isNotNull(EdgStorageCageDetails::getSlot)
+                    .eq(EdgStorageCageDetails::getWidth,edgStorageCageDetails.getWidth())
+                    .eq(EdgStorageCageDetails::getHeight,edgStorageCageDetails.getHeight())
+                    .ge(EdgStorageCageDetails::getTemperingLayoutId,minTemperingLayoutId.getTemperingLayoutId())
+                    .le(EdgStorageCageDetails::getTemperingLayoutId,minTemperingLayoutId.getTemperingLayoutId()+poor)
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence)
+            );
+        }
+
+        if (result==null){
+            result=edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class,new MPJLambdaWrapper<EdgStorageCage>()
+                    .selectAll(EdgStorageCageDetails.class)
+                    .leftJoin(EdgStorageCageDetails.class,on->on
+                            .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
+                            .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+                    .isNotNull(EdgStorageCageDetails::getSlot)
+                    .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence)
+            );
+        }
+        return result;
+    }
+
 }
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 4709fcf..2717685 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
@@ -16,6 +16,7 @@
 import com.mes.edgstoragecage.service.EdgStorageCageService;
 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 java.util.Map;
@@ -30,6 +31,7 @@
  * @author zhoush
  * @since 2024-04-07
  */
+@Slf4j
 @Service
 public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
 
@@ -43,14 +45,22 @@
      * @return
      */
     @Override
-    public List<Map<String, Object>> selectCacheEmpty(){
-        return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class).selectAll(EdgStorageCage.class)
-                .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getGlassId)
+    public List<EdgStorageCage> selectCacheEmpty(){
+        return baseMapper.selectJoinList(EdgStorageCage.class,new MPJLambdaWrapper<EdgStorageCage>()
+                .selectAll(EdgStorageCage.class)
                 .leftJoin(EdgStorageCageDetails.class,on->on
                         .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
                         .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
                 .isNull(EdgStorageCageDetails::getSlot)
         );
+
+//        return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class).selectAll(EdgStorageCage.class)
+//                .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getGlassId)
+//                .leftJoin(EdgStorageCageDetails.class,on->on
+//                        .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
+//                        .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+//                .isNull(EdgStorageCageDetails::getSlot)
+//        );
 
 //        return baseMapper.selectJoinMaps(new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
 //                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
@@ -116,28 +126,28 @@
 
     /**
      *淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
-     * @param edgStorageCage
+     * @param edgStorageCageId
      * @param edgStorageCageDetails
      * @return
      */
     @Override
-    public boolean updateEdgStorageCageDetails(EdgStorageCage edgStorageCage,EdgStorageCageDetails edgStorageCageDetails){
-        EdgStorageCage edgItem=baseMapper.selectById(edgStorageCage.getId());
+    public boolean updateEdgStorageCageDetails(int edgStorageCageId,EdgStorageCageDetails edgStorageCageDetails){
+        EdgStorageCage edgItem=baseMapper.selectById(edgStorageCageId);
+        log.info("姝e父"+edgItem);
         EdgStorageCageDetails edgDItem=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
         if (edgItem!=null){
-            if(edgDItem==null){
-                //绉婚櫎鐜荤拑
-                EdgStorageCageDetails result=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getId,edgStorageCageDetails.getId()));
+            //绉婚櫎
+            EdgStorageCageDetails result=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot,edgStorageCageId));
+            if (result!=null){
                 result.setSlot(0);
                 edgStorageCageDetailsMapper.updateById(result);
-            }else{
-                //1.缁戝畾鏂扮殑鐜荤拑    2.鏇存崲鐜荤拑  涓婁竴鐗囨竻闄�   閲嶆柊缁戝畾
-                EdgStorageCageDetails lastResult=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot,edgStorageCage.getSlot()));
-                lastResult.setSlot(0);
-                edgStorageCageDetailsMapper.updateById(lastResult);
-                EdgStorageCageDetails result=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
-                result.setSlot(edgStorageCageDetails.getSlot());
-                edgStorageCageDetailsMapper.updateById(result);
+            }
+            //娣诲姞
+            if(edgDItem!=null){
+                //鍙紶鏍煎瓙  锛氱Щ闄ょ幓鐠�
+                EdgStorageCageDetails newresult=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+                newresult.setSlot(edgItem.getSlot());
+                edgStorageCageDetailsMapper.updateById(newresult);
             }
         }
         return true;
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
index e4b9286..12a725b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
@@ -1,15 +1,17 @@
 package com.mes.taskcache.entity;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 
 @Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
 @TableName("task_cache")
 public class TaskCache {
-    private String ID;//浠诲姟缂栧彿
-    private String startCell;//璧峰
-    private String endCell;//缁撴潫
-    private String taskType;//浠诲姟绫诲瀷
-    private String taskStatus;//浠诲姟鐘舵��
+    private String glassId;//浠诲姟缂栧彿
+    private int startCell;//璧峰
+    private int endCell;//缁撴潫
+    private int taskType;//浠诲姟绫诲瀷
+    private int taskStatus;//浠诲姟鐘舵��
+    private DateTime createTime;//浠诲姟鐘舵��
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java
index 751feda..be66272 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java
@@ -1,5 +1,6 @@
 package com.mes.taskcache.mapper;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.taskcache.entity.TaskCache;
 
@@ -11,6 +12,7 @@
  * @author zhoush
  * @since 2024-04-07
  */
+@DS("salve_hangzhoumes")
 public interface TaskCacheMapper extends BaseMapper<TaskCache> {
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
index 74fb475..f90c418 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
@@ -1,6 +1,8 @@
 package com.mes.taskcache.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.taskcache.entity.TaskCache;
 
 import java.util.List;
@@ -58,5 +60,13 @@
      * @param line
      * @return
      */
-    List<TaskCache> selectLastOutCacheInfo(String line);
+    List<TaskCache> selectLastOutCacheInfos(String line);
+
+    /**
+     * 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+     * @param line
+     * @return
+     */
+    TaskCache selectLastOutCacheInfo(String line);
+
 }
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 ffa237c..4162f02 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
@@ -3,6 +3,8 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.query.MPJLambdaQueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
 import com.mes.taskcache.entity.TaskCache;
@@ -25,6 +27,7 @@
  */
 @Service
 public class TaskCacheServiceImpl extends ServiceImpl<TaskCacheMapper, TaskCache> implements TaskCacheService {
+
 
     /**
      * 娣诲姞鐞嗙墖绗间换鍔�
@@ -94,8 +97,20 @@
      * @return
      */
     @Override
-    public List<TaskCache> selectLastOutCacheInfo(String line){
-        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getID));
+    public List<TaskCache> selectLastOutCacheInfos(String line){
+        return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getGlassId));
 //        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(String line){
+        return baseMapper.selectOne(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getGlassId));
+    }
+
+
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index adff7bf..936cde1 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -7,15 +7,21 @@
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
         hangzhoumes:
-          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
+          url: jdbc:mysql://localhost:3306/hangzhoumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
         pp:
-          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          #url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
+          url: jdbc:mysql://localhost:3306/pp?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_hangzhoumes:
+          url: jdbc:sqlserver://localhost:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
 #        pp:
 #          url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8
 #          username: root
@@ -29,12 +35,12 @@
   cloud:
     nacos:
       discovery:
-        server-addr: 10.153.19.150:8848
+        server-addr: localhost:8848
   application:
     name: cacheGlass
   redis:
     database: 0
-    host: 10.153.19.150
+    host: localhost
     port: 6379
     password: 123456
   session:
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 2b083c4..1931f0a 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -4,12 +4,18 @@
 import com.github.yulichang.query.MPJLambdaQueryWrapper;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.github.yulichang.toolkit.JoinWrappers;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.edgstoragecage.service.EdgStorageCageService;
 import com.mes.edgstoragecage.service.impl.EdgStorageCageServiceImpl;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.pp.entity.OptimizeDetail;
 import com.mes.pp.entity.OptimizeLayout;
 import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.taskcache.entity.TaskCache;
+import com.mes.taskcache.mapper.TaskCacheMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -37,11 +43,29 @@
     EdgStorageCageDetailsService edgStorageCageDetailsService;
 
     @Autowired
+    TaskCacheMapper taskCacheMapper;
+    @Autowired
     OptimizeDetailMapper optimizeDetailMapper;
+    @Autowired
+    GlassInfoService glassInfoService;
 
     @Test
     public void testFindPath() {
-        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+        String url=getClass().getResource("").getPath();
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList(url));
+    }
+
+    @Test
+    public void testSqlServer() {
+                List<TaskCache> list=taskCacheMapper.selectList(null);
+                log.info("鏁版嵁{}",list);
+        log.info("Sql鏁版嵁锛歿}", Arrays.asList(list));
+    }
+
+    @Test
+    public void testglassinfo() {
+        List<GlassInfo> glassInfos=glassInfoService.selectId("7");
+        log.info("鐜荤拑鏁版嵁鏁版嵁锛歿}", Arrays.asList(glassInfos));
     }
 
     @Test
@@ -51,7 +75,7 @@
     }
     @Test
     public void testSelectCacheEmpty() {
-        List<Map<String, Object>> map= edgStorageCageService.selectCacheEmpty();
+        List<EdgStorageCage> map= edgStorageCageService.selectCacheEmpty();
         log.info("绗煎唴绌烘牸锛歿}", Arrays.asList(map));
     }
     @Test
@@ -85,4 +109,11 @@
         log.info("鍒囧壊褰撳墠鐗堝浘淇℃伅1锛歿}", Arrays.asList(map2));
     }
 
+    @Test
+    public void testOutTask() {
+        EdgStorageCageDetails edgStorageCageDetails=edgStorageCageDetailsService.selectConformGlass("1",3);
+
+        log.info("鍒囧壊褰撳墠鐗堝浘淇℃伅1锛歿}", Arrays.asList(edgStorageCageDetails));
+    }
+
 }
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 de2da46..fe782a6 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
@@ -38,6 +38,9 @@
     private DownStorageCageMapper downStorageCageMapper;
 
     @Autowired
+    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+
+    @Autowired
     private GlassInfoService glassInfoService;
 
     @Autowired
@@ -57,7 +60,7 @@
     public List<DownStorageCageDetails> getCacheLeisure() {
         log.info(" 鏌ヨ绗煎瓙鍐呯┖闂�");
         List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                         .select("escd.*")
                         .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                         .isNull("escd.slot")
@@ -87,7 +90,7 @@
     public List<DownStorageCageDetails> getCacheOut(int start, int end) {
         log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
         return  downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                         .select("escd.*")
                         .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                         .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
@@ -107,7 +110,7 @@
     public List<Map> getCacheInfo() {
         log.info(" 鏌ヨ绗煎瓙鍐呬俊鎭�");
         return downStorageCageMapper.selectJoinList(
-                Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
+                Map.class, new MPJQueryWrapper<DownStorageCage>()
                         .select("escd.*")
                         .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                         .orderByAsc("t.slot")
@@ -121,7 +124,7 @@
     public List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width) {
         log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌鐩稿悓鐗堝浘id骞朵笖澶т簬鍓嶉潰鐨勯『搴忕殑绌烘牸");
         List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                         .select("escd.*")
                         .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                         .isNotNull("escd.slot")
@@ -143,7 +146,7 @@
     public List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width) {
         log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿");
         return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                         .select("escd.*")
                         .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                         .isNotNull("escd.slot")
@@ -160,7 +163,7 @@
     public List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width) {
         log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿");
         return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                         .select("escd.*")
                         .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                         .isNotNull("escd.slot")
@@ -183,7 +186,7 @@
         log.info(" 鍗曠墖鎯呭喌  鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌鐩稿悓娴佺▼鍗″彿鐨勭┖鏍�");
 
         return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
+                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
                         .select("escd.*")
                         .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
                         .isNotNull("escd.slot")
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
index 0787b09..e0ecf93 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -5,8 +5,6 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springframework.data.annotation.Id;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
 //import javax.persistence.Id;
 
 import java.io.Serializable;
@@ -29,11 +27,6 @@
      * id
      */
     @TableId(value = "id", type = IdType.AUTO)
-
-
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
 
     /**
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
index afcddd1..712baab 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -61,7 +61,7 @@
 //宸ヤ綅鏄剧ず
     @Override
     public List<Map<String, Object>> getTotalGlassDimensionsByWorkstation() {
-        MPJQueryWrapper<DownWorkstionAndDownGlassinfo> queryWrapper = new MPJQueryWrapper<>();
+        MPJQueryWrapper<DownWorkstation> queryWrapper = new MPJQueryWrapper<>();
         queryWrapper.select("t.workstation_id", "t.flow_card_id", "COALESCE(SUM(b.width), 0) AS totalwidth", "COALESCE(SUM(b.height), 0) AS totalheight")
                 .leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id")
                 .groupBy("t.workstation_id", "t.flow_card_id");

--
Gitblit v1.8.0