From dd60bcc7b38c2a19c02a20550a393987fc5a5a27 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 07 八月 2024 16:26:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java |  100 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 72 insertions(+), 28 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 39ed6ed..48df75a 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -21,7 +21,6 @@
 import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.taskcache.entity.TaskCache;
 import com.mes.taskcache.service.TaskCacheService;
-import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
@@ -75,11 +74,19 @@
     @Value("${mes.max.secondLength}")
     private String secondLength;
 
-    @Value("${mes.min.firstLength}")
-    private String minFirstLength;
+    @Value("${mes.min.one.firstLength}")
+    private String minOneFirstLength;
 
-    @Value("${mes.min.secondLength}")
-    private String minSecondLength;
+    @Value("${mes.min.one.secondLength}")
+    private String minOneSecondLength;
+
+    @Value("${mes.min.two.firstLength}")
+    private String minTwoFirstLength;
+
+    @Value("${mes.min.two.secondLength}")
+    private String minTwoSecondLength;
+
+    public static String engineerId = "";
 
     @Scheduled(fixedDelay = 1000)
     public void plcHomeEdgTask() {
@@ -116,7 +123,7 @@
             inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
         } else if ("2".equals(taskRequestTypeValue)) {
             //09绌洪棽 锛�1      10绌洪棽 锛�2        閮界┖闂诧細3    鍏朵粬0
-            log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+            log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�");
             outTo(Integer.parseInt(out08Glassstate),
                     Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", 0);
         } else if ("3".equals(taskRequestTypeValue)) {
@@ -132,11 +139,12 @@
         Date endDate = new Date();
         log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
     }
+
     @Scheduled(fixedDelay = 1000)
-    public void temperingIsRun(){
+    public void temperingIsRun() {
         JSONObject jsonObject = new JSONObject();
         //姝e湪杩涜鐨勪换鍔�
-        List<TaskCache>taskCaches=taskCacheService.selectTaskCacheIsRun();
+        List<TaskCache> taskCaches = taskCacheService.selectTaskCacheIsRun();
         jsonObject.append("taskCaches", taskCaches);
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("isRun");
         if (sendwServer != null) {
@@ -149,6 +157,7 @@
             }
         }
     }
+
     /**
      * 杩涚墖浠诲姟
      *
@@ -165,20 +174,23 @@
 
         //鏌ヨ鐜荤拑骞惰繘琛屼氦鎹�
         GlassInfo glassInfo = queryAndChangeGlass(glassId);
-        log.info("3銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
+        if (glassInfo == null) {
+            return;
+        }
+        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
         EdgStorageCageDetails details = new EdgStorageCageDetails();
         BeanUtils.copyProperties(glassInfo, details);
         details.setState(Const.GLASS_STATE_IN);
         details.setSlot(nearestEmpty.getSlot());
         details.setDeviceId(nearestEmpty.getDeviceId());
         edgStorageCageDetailsService.save(details);
-        log.info("4銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
+        log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details);
         //娣诲姞杩涚墖浠诲姟
         boolean taskCache = saveTaskCache(details.getGlassId(), 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
-        log.info("5銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
+        log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃鏄惁瀹屾垚锛歿}", taskCache);
 
         S7object.getinstance().plccontrol.writeWord(confirmationWrodAddress, 1);
-        log.info("6銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
+        log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚");
 
 
     }
@@ -193,6 +205,10 @@
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
 //                .inSql(GlassInfo::getEngineerId, "select engineer_id from engineering where state = 1"));
         Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");
+        if ((glassInfo.getWidth() < Double.parseDouble(minTwoFirstLength) && glassInfo.getHeight() < Double.parseDouble(minTwoSecondLength)) || (glassInfo.getWidth() < Double.parseDouble(minTwoSecondLength) && glassInfo.getHeight() < Double.parseDouble(minTwoFirstLength))) {
+            log.info("3銆佺幓鐠冧俊鎭笉绗﹀悎杩涘叆鐞嗙墖绗兼渶灏忓昂瀵革紝鐜荤拑淇℃伅涓簕}", glassInfo);
+            return null;
+        }
         //鎸夌収鐜荤拑灏哄
         LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
                 .eq(GlassInfo::getWidth, glassInfo.getWidth())
@@ -244,7 +260,7 @@
 //        2銆佸鏋滄病鏈夊巻鍙插嚭鐗囦换鍔�
 //        2.1銆佸嚭褰撳墠鐗堝浘id鏈�灏忕増搴忔渶灏忕殑鐜荤拑锛堥棶棰橈細涓ゆ潯绾块兘娌℃湁鍘嗗彶浠诲姟锛屽嚭鐗囨椂涓ゆ潯绾跨殑鐜荤拑灏哄鐩稿悓锛屾槸鍚︽壘灏哄涓嶅悓鐨勶級
         if ((out08Glassstate == 2 && out10Glassstate == 2) || (out08Glassstate == 0 && out10Glassstate == 0)) {
-            log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖");
+            log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", out08Glassstate, out10Glassstate);
             return Boolean.FALSE;
         }
         log.info("0銆佸嚭鐗囦换鍔″嚭鐨勭姸鎬�:A09:銆恵}銆�;A10:銆恵}銆�)", out08Glassstate, out10Glassstate);
@@ -280,26 +296,27 @@
                     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 + ") ");
+                                "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+                                + " and t1.second_length between " + minTwoSecondLength + " and " + 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 + ") ");
+                                "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
                     }
                     wrapper.last("order by count(t.glass_id) desc  limit 2");
                     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");
                         if (endcell == Const.A10_OUT_TARGET_POSITION) {
-                            wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+                            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 edg_storage_cage_details) t1 " +
-                                    "on t.glass_id = t1.glass_id and (t1.first_length <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+                                    "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+                                    + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
                         } else {
-                            wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+                            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 edg_storage_cage_details) t1 " +
-                                    "on t.glass_id = t1.glass_id and (t1.first_length >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
+                                    "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
                         }
                         GlassInfo one = glassInfoService.getOne(queryWrapper);
                         if (one != null) {
@@ -307,7 +324,7 @@
                             BeanUtils.copyProperties(one, resultDetails);
                             glassInfo = resultDetails;
                         } else {
-                            log.info("鑾峰彇绗煎唴鐜荤拑鍜屽甫杩涚墖鐜荤拑涓虹┖鎴栬�呬笉绗﹀悎纾ㄨ竟灏哄");
+                            log.info("鑾峰彇绗煎唴鐜荤拑鍜屽緟杩涚墖鐜荤拑涓虹┖鎴栬�呬笉绗﹀悎纾ㄨ竟灏哄");
                         }
                     } else {
                         glassInfo = queryMinGlass(list.get(0).getWidth(), list.get(0).getHeight(), glassId);
@@ -521,11 +538,12 @@
         if (endcell == Const.A10_OUT_TARGET_POSITION) {
             wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                     "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
-                    "on t.glass_id = t1.glass_id and (t1.first_length <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+                    "on t.glass_id = t1.glass_id and (t1.first_length >= " + minOneFirstLength + " and t1.second_length >= " + minOneSecondLength);
         } else {
             wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
                     "case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
-                    "on t.glass_id = t1.glass_id and (t1.first_length >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
+                    "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+                    + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
         }
         wrapper.last("order by count(t.glass_id) desc  limit 2");
         List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
@@ -563,7 +581,7 @@
                 return queryMinGlass(firstSize.getWidth(), firstSize.getHeight(), glassId);
             }
             EdgStorageCageDetails outGlassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
-                    .eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()));
+                    .eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()).last("limit 1"));
             log.info("{}绾挎湁鍑虹墖浠诲姟淇℃伅,浠诲姟淇℃伅涓簕}锛岀幓鐠冧俊鎭负{}", endcell, taskCache, outGlassInfo);
             if (outGlassInfo.getWidth() == firstWidth && outGlassInfo.getHeight() == firstHeight) {
                 log.info("鏁伴噺鏈�澶氱殑瀹絳}楂榹}鍜寋}绾夸换鍔$殑瀹絳}楂榹}鐩稿悓锛屽嚭鏁伴噺鎺掔浜岀殑鐜荤拑锛屽{}楂榹}",
@@ -658,6 +676,8 @@
         edgGlassTaskInfo.setStatus(Const.EDG_GLASS_BEFORE);
         edgGlassTaskInfo.setLine(endcell);
         edgGlassTaskInfo.setTime(new Date());
+        //鍏堝皢鍘嗗彶瀵瑰垪琛ㄤ腑鏈幓鐠冪殑鏁版嵁鍒犻櫎锛岄噸鏂版柊澧炰竴浠芥渶鏂扮殑鏁版嵁
+        edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().eq(EdgGlassTaskInfo::getGlassId, glassInfo.getGlassId()));
         return edgGlassTaskInfoService.save(edgGlassTaskInfo);
     }
 
@@ -686,12 +706,20 @@
     @Scheduled(fixedDelay = 1000)
     public void CacheGlassTasks() {
         JSONObject jsonObject = new JSONObject();
-        //璇嗗埆鎽嗙墖
         List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+//        List<Map<String, Object>> currentCutTerritorys=new ArrayList<>();
+//        if(engineerId==null||engineerId.isEmpty()){
+//            //璇嗗埆鎽嗙墖 褰撳墠鐗堝浘鏁版嵁
+//            currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
+//        }else{
+//            //璇嗗埆鎽嗙墖 姝ngineerId 宸ョ▼鐗堝浘鏁版嵁
+//            currentCutTerritorys = edgStorageCageDetailsService.selectCurrentCutTerritory(engineerId);
+//        }
         jsonObject.append("currentCutTerritory", currentCutTerritorys);
+        //log.info("鏈璇嗗埆鐗堝浘{},++++{}",engineerId,currentCutTerritorys);
         //纾ㄨ竟淇℃伅
-        List<Map<String, Object>> EdgTasks1 = taskCacheService.selectEdgInfo("2001");
-        List<Map<String, Object>> EdgTasks2 = taskCacheService.selectEdgInfo("2002");
+        List<Map<String, Object>> EdgTasks1 = edgGlassTaskInfoService.selectEdgInfo("2001");
+        List<Map<String, Object>> EdgTasks2 = edgGlassTaskInfoService.selectEdgInfo("2002");
         jsonObject.append("EdgTasks1", EdgTasks1);
         jsonObject.append("EdgTasks2", EdgTasks2);
 
@@ -715,6 +743,22 @@
             }
         }
     }
-
+    @Scheduled(fixedDelay = 1000)
+    public void cacheGlassIsRun(){
+        JSONObject jsonObject = new JSONObject();
+        //姝e湪杩涜鐨勪换鍔�
+        List<TaskCache>taskCaches=taskCacheService.selectTaskCacheIsRun();
+        jsonObject.append("taskCaches", taskCaches);
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cacheGlassIsRun");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
 
 }

--
Gitblit v1.8.0