From fcbbdae83021f307f382447452f458e640520848 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期四, 12 九月 2024 08:33:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java |   61 ++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 5 deletions(-)

diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index c324ce2..f3a73be 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -30,6 +30,7 @@
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -80,6 +81,7 @@
 
 
     @Scheduled(fixedDelay = 300)
+    @Async
     public void plcHomeEdgTask() {
         PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
         String requestWord = plcParameterObject.getPlcParameter("requestWord").getValue();
@@ -129,6 +131,7 @@
     }
 
     @Scheduled(fixedDelay = 300)
+    @Async
     public void plcShelfFull() {
         List<DownWorkstation> list = downGlassInfoService.queryWorkStationIsFull();
         if (CollectionUtils.isNotEmpty(list)) {
@@ -139,6 +142,7 @@
     }
 
     @Scheduled(fixedDelay = 1000)
+    @Async
     public void dealDamageTask() {
         Date startDate = new Date();
         log.info("涓嬬墖鐮存崯鐜荤拑娓呴櫎浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -149,6 +153,20 @@
             List<String> glassList = downGlassTaskList.stream().map(DownGlassTask::getGlassId).collect(Collectors.toList());
             //灏嗕换鍔¤〃涓殑鏁版嵁鍒犻櫎
             downGlassTaskService.remove(new LambdaQueryWrapper<DownGlassTask>().in(DownGlassTask::getTaskType, Const.GLASS_CACHE_TYPE_OUT_ALL).in(DownGlassTask::getGlassId, glassList));
+            //娓呴櫎涓嬬墖鐜荤拑淇℃伅琛ㄦ暟鎹�
+            downGlassInfoService.remove(new LambdaQueryWrapper<DownGlassInfo>().in(DownGlassInfo::getGlassId, glassList));
+            //涓嬬墖鏁伴噺-1
+            for (DownGlassTask downGlassTask : downGlassTaskList
+            ) {
+                if (Const.GLASS_CACHE_TYPE_OUT_ALL.equals(downGlassTask.getTaskType())) {
+                    downWorkstationService.update(
+                            new LambdaUpdateWrapper<DownWorkstation>()
+                                    .setSql("racks_number = racks_number-1")
+                                    .eq(DownWorkstation::getWorkstationId, downGlassTask.getEndCell())
+                    );
+
+                }
+            }
             List<Damage> damageList = downGlassTaskList.stream().map(e -> {
                 Damage damage = new Damage();
                 damage.setGlassId(e.getGlassId());
@@ -169,6 +187,7 @@
      * 鏇存柊宸茬粦瀹氬伐浣嶆祦绋嬪崱鐨勭牬鎹�/鎷胯蛋鐨勬暟閲忎俊鎭�
      */
     @Scheduled(fixedDelay = 1000)
+    @Async
     public void updateWorkStationOtherCount() {
         Date startDate = new Date();
         log.info("涓嬬墖鐮存洿鏂版崯鐜荤拑鏁伴噺浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -229,6 +248,7 @@
                     log.info("鏈夌┖鏋跺瓙,灏嗘祦绋嬪崱涓庢灦瀛愬ソ缁戝畾锛屾墽琛岃繘鐗囦换鍔� 缁撴潫");
                     //缁戝畾娴佺▼鍗�
                     downWorkstationService.updateFlowCardIdAndCount(glassInfo.getFlowCardId(), list.get(0).getWorkstationId(), glassInfo.getLayer());
+//                    downWorkstationService.updateFlowCardIdAndCount(glassInfo.getFlowCardId(), list.get(0).getId(), glassInfo.getLayer());
                     checkFlag = Boolean.TRUE;
                 }
             }
@@ -277,12 +297,18 @@
         //灏嗕换鍔℃彃鍏ョ悊鐗囩璇︽儏琛�
         DownStorageCageDetails downStorageCageDetails = new DownStorageCageDetails();
         BeanUtils.copyProperties(glassInfo, downStorageCageDetails);
+        //褰撻渶瑕佸悎骞惰惤鏋舵椂涓嶇粦瀹氬眰鍙�
+        if(glassInfo.getCombine()==0){
+            downStorageCageDetails.setLayer(null);
+        }
         downStorageCageDetails.setState(Const.GLASS_STATE_IN);
         downStorageCageDetails.setSlot(nearestEmpty.getSlot());
         downStorageCageDetails.setDeviceId(nearestEmpty.getDeviceId());
         downStorageCageDetailsService.save(downStorageCageDetails);
         //        鐢熸垚杩涚墖浠诲姟
         initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
+        //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+        damageService.deleteByGlassId(glassInfo.getGlassId());
     }
 
     public Boolean outTo(String glassStatus06, String out08Glassstate, String glassStatus11, String
@@ -299,6 +325,10 @@
         if (StringUtils.isNotBlank(glassId)) {
             GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
             BeanUtils.copyProperties(glassInfo, cageDetails);
+            //褰撻渶瑕佸悎骞惰惤鏋舵椂涓嶇粦瀹氬眰鍙�
+            if(glassInfo.getCombine()==0){
+                cageDetails.setLayer(null);
+            }
             //鑾峰彇褰撳墠绗煎瓙绌烘牸淇℃伅
             DownStorageCage empty = downStorageCageService.selectCacheEmpty(Integer.parseInt(currentSlot), Boolean.TRUE);
             cageDetails.setSlot(empty.getSlot());
@@ -367,11 +397,21 @@
         List<Integer> workList = new ArrayList();
         if (flag08) {
             if (!"2".equals(glassStatus11)) {
-                workList.addAll(Const.G11_WORK_STATION);
+                List<Integer> wroklistOne = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, Const.G11_WORK_STATION))
+                        .stream()
+                        .map(DownWorkstation::getWorkstationId)
+                        .collect(Collectors.toList());
+                workList.addAll(wroklistOne);
             }
         } else {
             if (!"2".equals(glassStatus06)) {
-                workList.addAll(Const.G06_WORK_STATION);
+                List<Integer> wroklistTwo = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, Const.G06_WORK_STATION))
+                        .stream()
+                        .map(DownWorkstation::getWorkstationId)
+                        .collect(Collectors.toList());
+                workList.addAll(wroklistTwo);
             }
         }
         List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6);
@@ -580,15 +620,24 @@
             if (null != emptyDownWorkstation) {
                 log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱");
                 downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getWorkstationId(), downStorageCageDetails.getLayer());
+//                downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getId(), downStorageCageDetails.getLayer());
                 endCell = emptyDownWorkstation.getWorkstationId();
             } else {
+                //todo:澧炲姞铏氭嫙宸ヤ綅,缁戝畾娴佺▼鍗�
+//                downWorkstationService.insertDownWorkstation();
+//                endCell = Const.G13_WORK_STATION;
+//                downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getId(), downStorageCageDetails.getLayer());
                 log.info("娌℃湁绌烘灦瀛愪俊鎭紝鏃犳硶缁戝畾娴佺▼鍗�");
                 return Boolean.FALSE;
             }
         } else {
-            DownWorkstation workstation = downWorkstationService.getOne(new LambdaUpdateWrapper<DownWorkstation>()
-                    .eq(DownWorkstation::getFlowCardId, downStorageCageDetails.getFlowCardId()).eq(DownWorkstation::getLayer, downStorageCageDetails.getLayer()));
-            endCell = workstation.getWorkstationId();
+            if (downStorageCageDetails.getWidth() > maxWidth || downStorageCageDetails.getHeight() > maxHeight) {
+                endCell = Const.G13_WORK_STATION;
+            } else {
+                DownWorkstation workstation = downWorkstationService.getOne(new LambdaUpdateWrapper<DownWorkstation>()
+                        .eq(DownWorkstation::getFlowCardId, downStorageCageDetails.getFlowCardId()).eq(DownWorkstation::getLayer, downStorageCageDetails.getLayer()));
+                endCell = workstation.getWorkstationId();
+            }
         }
         //鏇存柊钀芥灦鐜荤拑鏁伴噺
         if (endCell == Const.G13_WORK_STATION) {
@@ -610,6 +659,8 @@
         //鐢熸垚浠诲姟淇℃伅
         GlassInfo glassInfo = new GlassInfo();
         BeanUtils.copyProperties(downStorageCageDetails, glassInfo);
+        //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+        damageService.deleteByGlassId(glassInfo.getGlassId());
         return initDownGlassTask(glassInfo, downStorageCageDetails.getSlot(), endCell, taskType);
     }
 

--
Gitblit v1.8.0