From 22f5cee4b4f9a717df573456f3b149be697b17d1 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 03 七月 2024 08:36:10 +0800
Subject: [PATCH] 下片优化出片逻辑 大理片出片:出片线路调整

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java |  129 ++++++++++++++++++++++++++++++++++++------
 1 files changed, 109 insertions(+), 20 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..62186a5 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
@@ -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);
@@ -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