From c1f06f52a6b7f3337bacd98feb55aca6af8e6e2c Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期五, 05 七月 2024 08:32:09 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java |  135 +++++++++++++++++++++++++++++++++++++-------
 1 files changed, 112 insertions(+), 23 deletions(-)

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 913738d..926922a 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
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.Assert;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.query.MPJQueryWrapper;
@@ -30,6 +31,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Author : zhoush
@@ -91,7 +93,7 @@
                 return;
             }
             log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0");
-            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, (short) 0);
+            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 0);
             return;
         }
         if (!"0".equals(confirmationWrodValue)) {
@@ -167,7 +169,7 @@
         boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
         log.info("5銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
 
-        S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, (short) 1);
+        S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
         log.info("6銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
 
 
@@ -180,8 +182,8 @@
      * @return
      */
     public GlassInfo queryAndChangeGlass(String glassId) {
-        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)
-                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+        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, "鐜荤拑淇℃伅涓嶅瓨鍦�");
         //鎸夌収鐜荤拑灏哄
         LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
@@ -275,8 +277,8 @@
                     List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
                     if (CollectionUtil.isEmpty(list)) {
                         MPJQueryWrapper<GlassInfo> queryWrapper = new MPJQueryWrapper<GlassInfo>()
-                                .selectAll(GlassInfo.class).eq("t.glass_id", glassId)
-                                .inSql("t.engineer_id", "select engineer_id from engineering where state = 1");
+                                .selectAll(GlassInfo.class).eq("t.glass_id", glassId);
+//                                .inSql("t.engineer_id", "select engineer_id from engineering where state = 1");
                         if (endcell == Const.A10_OUT_TARGET_POSITION) {
                             queryWrapper.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 glass_info) t1 " +
@@ -345,8 +347,8 @@
         //todo: 鑾峰彇姝e湪鎵ц鐨勫伐绋嬩俊鎭�
         if (StringUtils.isNotBlank(glassId)) {
             GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
-                    .eq(GlassInfo::getGlassId, glassId)
-                    .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
+                    .eq(GlassInfo::getGlassId, glassId));
+//                    .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
             EdgStorageCageDetails resultDetails = new EdgStorageCageDetails();
             BeanUtils.copyProperties(one, resultDetails);
             glassList.add(resultDetails);
@@ -385,7 +387,7 @@
      * @param width
      * @param height
      */
-    private EdgStorageCageDetails queryMinGlass(Double width, Double height, String glassId) {
+    private EdgStorageCageDetails queryMinGlass(double width, double height, String glassId) {
         //鑾峰彇琛ㄥ唴鐗堝浘id鏈�灏忕殑鐜荤拑淇℃伅
         EdgStorageCageDetails glassDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
                 .eq(EdgStorageCageDetails::getState, 100)
@@ -398,8 +400,8 @@
             return glassDetails;
         }
         GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
-                .eq(GlassInfo::getGlassId, glassId)
-                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1")
+                        .eq(GlassInfo::getGlassId, glassId)
+//                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1")
         );
         EdgStorageCageDetails resultDetails = new EdgStorageCageDetails();
         BeanUtils.copyProperties(one, resultDetails);
@@ -449,7 +451,8 @@
             return null;
         }
         return edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId())
-                .inSql(EdgStorageCageDetails::getEngineerId, "select engineer_id from engineering where state = 1").last(" limit 1 "));
+//                .inSql(EdgStorageCageDetails::getEngineerId, "select engineer_id from engineering where state = 1")
+                .last(" limit 1 "));
     }
 
     /**
@@ -464,10 +467,10 @@
      */
     private Integer queryLineByGlassInfo(EdgStorageCageDetails a08EdgStorageCageDetails, EdgStorageCageDetails a10EdgStorageCageDetails,
                                          EdgStorageCageDetails glassInfo, int out08Glassstate, int out10Glassstate) {
-        boolean b08 = a08EdgStorageCageDetails != null && a08EdgStorageCageDetails.getHeight().equals(glassInfo.getHeight())
-                && a08EdgStorageCageDetails.getWidth().equals(glassInfo.getWidth());
-        boolean b10 = a10EdgStorageCageDetails != null && a10EdgStorageCageDetails.getHeight().equals(glassInfo.getHeight())
-                && a10EdgStorageCageDetails.getWidth().equals(glassInfo.getWidth());
+        boolean b08 = a08EdgStorageCageDetails != null && a08EdgStorageCageDetails.getHeight() == glassInfo.getHeight()
+                && a08EdgStorageCageDetails.getWidth() == glassInfo.getWidth();
+        boolean b10 = a10EdgStorageCageDetails != null && a10EdgStorageCageDetails.getHeight() == glassInfo.getHeight()
+                && a10EdgStorageCageDetails.getWidth() == glassInfo.getWidth();
         //瀛樺湪鍑虹墖浠诲姟 07涓虹┖
         if (b10) {
             return out10Glassstate == 2 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
@@ -488,7 +491,7 @@
     public EdgStorageCageDetails queryChangeGlassInfo(int endcell, String glassId) {
         //鑾峰彇绗煎瓙鍐呮暟閲忓墠浜岀殑鐜荤拑鏁伴噺
         MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>();
-        wrapper.select("count(t.glass_id), t.width, t.height")
+        wrapper.select("count(t.glass_id) as count, t.width, t.height")
                 .eq("t.state", Const.GLASS_STATE_IN)
                 .groupBy("t.width, t.height");
         if (endcell == Const.A09_OUT_TARGET_POSITION) {
@@ -505,16 +508,16 @@
         //鑾峰彇瀹介珮鎷嶇涓�鐨勭幓鐠冧俊鎭�
         EdgStorageCageDetails firstSize = list.get(0);
         Integer firstCount = firstSize.getCount();
-        Double firstWidth = firstSize.getWidth();
-        Double firstHeight = firstSize.getHeight();
+        double firstWidth = firstSize.getWidth();
+        double firstHeight = firstSize.getHeight();
         if (list.size() == 1) {
             return queryMinGlass(firstWidth, firstHeight, glassId);
         }
         //鑾峰彇瀹介珮鎷嶇浜岀殑鐜荤拑淇℃伅
         EdgStorageCageDetails secondSize = list.get(1);
         Integer secondCount = secondSize.getCount();
-        Double secondWidth = secondSize.getWidth();
-        Double secondHeight = secondSize.getHeight();
+        double secondWidth = secondSize.getWidth();
+        double secondHeight = secondSize.getHeight();
         //鑾峰彇鏁伴噺鍓�2鐨勭幓鐠冩暟閲忔瘮渚�
         Integer mix = firstCount / secondCount;
         log.info("鑾峰彇鐜荤拑鏁伴噺鍓�2鐨勭幓鐠冨崰姣斾负锛歿}", mix);
@@ -534,7 +537,7 @@
             EdgStorageCageDetails outGlassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
                     .eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()));
             log.info("{}绾挎湁鍑虹墖浠诲姟淇℃伅,浠诲姟淇℃伅涓簕}锛岀幓鐠冧俊鎭负{}", endcell, taskCache, outGlassInfo);
-            if (outGlassInfo.getWidth().equals(firstWidth) && outGlassInfo.getHeight().equals(firstHeight)) {
+            if (outGlassInfo.getWidth() == firstWidth && outGlassInfo.getHeight() == firstHeight) {
                 log.info("鏁伴噺鏈�澶氱殑瀹絳}楂榹}鍜寋}绾夸换鍔$殑瀹絳}楂榹}鐩稿悓锛屽嚭鏁伴噺鎺掔浜岀殑鐜荤拑锛屽{}楂榹}",
                         firstWidth, firstHeight, endcell, outGlassInfo.getWidth(), outGlassInfo.getHeight(), secondWidth, secondHeight);
                 return queryMinGlass(secondWidth, secondHeight, glassId);
@@ -586,7 +589,7 @@
             }
             boolean glassSizeStatus = saveGlassSize(glassInfo);
             log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus);
-            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, (short) 1);
+            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
             log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�");
             return Boolean.TRUE;
         }
@@ -629,5 +632,91 @@
         return edgGlassTaskInfoService.save(edgGlassTaskInfo);
     }
 
+    /**
+     * 褰撳墠鍒囧壊鐗堝浘淇℃伅
+     *
+     * @param
+     * @return
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void currentCutTerritory() {
+        JSONObject jsonObject = new JSONObject();
+        List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+        jsonObject.append("currentCutTerritory", currentCutTerritorys);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlass");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+    /**
+     * 纾ㄨ竟浠诲姟
+     *
+     * @param
+     * @return
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void selectEdgTask() {
+        JSONObject jsonObject = new JSONObject();
+        List<Map<String, Object>> EdgTasks1 = taskCacheService.selectEdgInfo("2001");
+        List<Map<String, Object>> EdgTasks2 = taskCacheService.selectEdgInfo("2002");
+        jsonObject.append("EdgTasks1", EdgTasks1);
+        jsonObject.append("EdgTasks2", EdgTasks2);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlass");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+    /**
+     * 纾ㄨ竟鍓� 缂撳瓨鍐呬俊鎭�
+     *
+     * @param
+     * @return
+     */
+    @Scheduled(fixedDelay = 1000)
+    public void selectEdgStorageCage() {
+        JSONObject jsonObject = new JSONObject();
+        List<Map<String, Object>> EdgStorageCageinfos = edgStorageCageService.selectEdgStorageCages();
+        jsonObject.append("EdgStorageCageinfos", EdgStorageCageinfos);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlass");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                    List<String> messages = webserver.getMessages();
+                    if (!messages.isEmpty()) {
+                        // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                        webserver.clearMessages();
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
 
 }

--
Gitblit v1.8.0