From 48c8dc276bc64c127be67934dae1067287af9216 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 08 七月 2024 14:40:07 +0800
Subject: [PATCH] 磨边前卧式理片出片逻辑调整

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java |  119 ++++++++++++++++++++++-------------------------------------
 1 files changed, 44 insertions(+), 75 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 62186a5..abd6d98 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
@@ -66,11 +66,17 @@
     @Value("${mes.sequence.order}")
     private boolean sequenceOrder;
 
-    @Value("${mes.firstLength}")
+    @Value("${mes.max.firstLength}")
     private String firstLength;
 
-    @Value("${mes.secondLength}")
+    @Value("${mes.max.secondLength}")
     private String secondLength;
+
+    @Value("${mes.min.firstLength}")
+    private String minFirstLength;
+
+    @Value("${mes.min.secondLength}")
+    private String minSecondLength;
 
     @Scheduled(fixedDelay = 1000)
     public void plcHomeEdgTask() {
@@ -93,7 +99,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)) {
@@ -169,7 +175,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銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
 
 
@@ -235,7 +241,7 @@
 //        1.2.3銆佹寜鐓у嚭鐗囦俊鎭幓璇︽儏琛ㄦ煡璇㈡牸瀛愬湪绗煎瓙閲岄潰鍓╀綑鐩稿悓灏哄鐨勭幓鐠冩暟鎹笖浠ョ増鍥緄d銆佺増搴忓崌搴忔帓搴�  鍙栫涓�鍧楃幓鐠冨嚭鐗�
 //        2銆佸鏋滄病鏈夊巻鍙插嚭鐗囦换鍔�
 //        2.1銆佸嚭褰撳墠鐗堝浘id鏈�灏忕増搴忔渶灏忕殑鐜荤拑锛堥棶棰橈細涓ゆ潯绾块兘娌℃湁鍘嗗彶浠诲姟锛屽嚭鐗囨椂涓ゆ潯绾跨殑鐜荤拑灏哄鐩稿悓锛屾槸鍚︽壘灏哄涓嶅悓鐨勶級
-        if (out08Glassstate == 2 && out10Glassstate == 2) {
+        if ((out08Glassstate == 2 && out10Glassstate == 2) || (out08Glassstate == 0 && out10Glassstate == 0)) {
             log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖");
             return Boolean.FALSE;
         }
@@ -258,9 +264,9 @@
             endcell = queryLineByGlassInfo(a09EdgGlass, a10EdgGlass, glassInfo, out08Glassstate, out10Glassstate);
         } else {
             //鍒ゆ柇涓ゆ潯绾挎槸鍚﹂兘绌洪棽
-            endcell = out10Glassstate == 2 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+            endcell = out08Glassstate == 2 ? Const.A10_OUT_TARGET_POSITION : Const.A09_OUT_TARGET_POSITION;
 
-            if ((out08Glassstate == 0 && out10Glassstate == 0) || (out08Glassstate == 1 && out10Glassstate == 1)) {
+            if (out08Glassstate == 1 && out10Glassstate == 1) {
                 EdgStorageCageDetails a09EdgGlass = queryGlassByTaskCache(Const.A09_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
                 EdgStorageCageDetails a10EdgGlass = queryGlassByTaskCache(Const.A10_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT_ALL);
                 if (a09EdgGlass == null && a10EdgGlass == null) {
@@ -272,6 +278,10 @@
                         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 <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+                    } 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 >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
                     }
                     wrapper.last("order by count(t.glass_id) desc  limit 2");
                     List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
@@ -280,9 +290,13 @@
                                 .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 " +
+                            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 <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+                        } 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 >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
                         }
                         GlassInfo one = glassInfoService.getOne(queryWrapper);
                         if (one != null) {
@@ -472,13 +486,13 @@
         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;
-        }
         if (b08) {
             return out08Glassstate == 2 ? Const.A10_OUT_TARGET_POSITION : Const.A09_OUT_TARGET_POSITION;
         }
-        return out10Glassstate == 2 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+        if (b10) {
+            return out10Glassstate == 2 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+        }
+        return out08Glassstate == 2 ? Const.A10_OUT_TARGET_POSITION : Const.A09_OUT_TARGET_POSITION;
     }
 
     /**
@@ -494,10 +508,14 @@
         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) {
+        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 <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+        } 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 >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
         }
         wrapper.last("order by count(t.glass_id) desc  limit 2");
         List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
@@ -587,9 +605,9 @@
                 boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), glassInfo.getSlot(), endcell, Const.GLASS_CACHE_TYPE_OUT);
                 log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus);
             }
-            boolean glassSizeStatus = saveGlassSize(glassInfo);
+            boolean glassSizeStatus = saveGlassSize(glassInfo, endcell);
             log.info("7銆佹坊鍔犲嚭鐗囩幓鐠冨昂瀵镐俊鎭埌纾ㄨ竟鍓嶇幓鐠冭〃鏄惁瀹屾垚锛歿}", glassSizeStatus);
-            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, (short) 1);
+            S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
             log.info("8銆佸彂閫佺‘璁ゅ瓧宸插畬鎴�");
             return Boolean.TRUE;
         }
@@ -620,87 +638,38 @@
      * 娣诲姞鐞嗙墖绗间换鍔�
      *
      * @param glassInfo
+     * @param endcell
      * @return
      */
-    private boolean saveGlassSize(EdgStorageCageDetails glassInfo) {
+    private boolean saveGlassSize(EdgStorageCageDetails glassInfo, int endcell) {
         EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
         BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
         edgGlassTaskInfo.setHeight((int) (glassInfo.getHeight() * ratio));
         edgGlassTaskInfo.setWidth((int) (glassInfo.getWidth() * ratio));
         edgGlassTaskInfo.setThickness((int) (glassInfo.getThickness() * ratio));
         edgGlassTaskInfo.setStatus(Const.EDG_GLASS_BEFORE);
+        edgGlassTaskInfo.setLine(endcell);
+        edgGlassTaskInfo.setTime(new Date());
         return edgGlassTaskInfoService.save(edgGlassTaskInfo);
     }
 
-    /**
-     * 褰撳墠鍒囧壊鐗堝浘淇℃伅
-     *
-     * @param
-     * @return
-     */
+
     @Scheduled(fixedDelay = 1000)
-    public void currentCutTerritory() {
+    public void CacheGlassTasks() {
         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) {

--
Gitblit v1.8.0