From d41ce9c4703807bf2607a74b8305c1d78aed4ec1 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 22 九月 2025 13:52:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java |   81 ++++++++++++++++++++++++++--------------
 1 files changed, 52 insertions(+), 29 deletions(-)

diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
index da9d263..67d8ed8 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -104,6 +104,9 @@
     private static final String BIG_STORAGE_CAGE_IN_TWO_TASK = "big_storage_cage_in_two_task";
     private static final String BIG_STORAGE_CAGE_OUT_TWO_TASK = "big_storage_cage_out_two_task";
 
+    private static final List<Integer> ONE_LINE_FIRST = Arrays.asList(930, 931, 932);
+    private static final List<Integer> TWO_LINE_FIRST = Arrays.asList(931, 930, 932);
+
     /**
      * 鐩撮�氭牸瀛�
      */
@@ -307,6 +310,7 @@
             hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
                     .set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_TAKE)
                     .eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_NEW));
+
             hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
                     .set(HollowGlassRelationInfo::getGlassId, null)
                     .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
@@ -315,6 +319,8 @@
                     .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
                     .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
             );
+            //灏嗘牸瀛愬昂瀵告仮澶�
+            hollowBigStorageCageService.resetCage();
             return;
         }
         //鍘嗗彶鏁版嵁鍏ュ簱
@@ -372,14 +378,14 @@
             return;
         }
         //鑾峰彇鎵�鏈夌┖闂茬殑绾胯矾淇℃伅
-        List<Integer> freeLineList = new ArrayList<>();
+        HashMap<Integer, Boolean> map = new HashMap<>();
         //鑾峰彇绌洪棽涓旈鍙栦换鍔$殑鏁版嵁淇℃伅锛屾病鏈変换鍔$洿鎺ヨ蛋鐜荤拑璋冨害
         try {
             if (CMJ1ModbusTcp.checkConnected()) {
                 Boolean oneState = CMJ1ModbusTcp.readUInt16(42027 - 40001) != 0;
-                if (oneState) {
-                    freeLineList.add(930);
-                }
+                map.put(930, oneState);
+            } else {
+                map.put(930, Boolean.FALSE);
             }
         } catch (Exception e) {
             //nothing
@@ -388,34 +394,51 @@
         try {
             S7DataZKExtra s7DataZKExtra = s7SerializerZKQ2.read(S7DataZKExtra.class);
             log.info("涓┖棰濆璇诲彇{}", s7DataZKExtra);
-            Boolean twoState = s7DataZKExtra.getIsFree();
-            Boolean threeState = s7DataZKExtra.getIsFree03();
-            if (twoState) {
-                freeLineList.add(931);
-            }
-            if (threeState) {
-                freeLineList.add(932);
-            }
+            map.put(931, s7DataZKExtra.getIsFree());
+            map.put(932, s7DataZKExtra.getIsFree03());
         } catch (Exception e) {
             //nothing
             log.info("浜�/涓夌嚎绾跨┖闂茬姸鎬佽幏鍙栧紓甯�");
         }
-        HollowGlassOutRelationInfo hollowGlassOutRelationInfo = null;
-        if (CollectionUtil.isNotEmpty(freeLineList)) {
-            hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
-                    .getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
-                            .in(HollowGlassOutRelationInfo::getCell, freeLineList)
-                            .eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
-                            .orderByAsc(HollowGlassOutRelationInfo::getUpdateTime).last("limit 1")
-                    );
+        List<Integer> resultList = new ArrayList<>();
+        if (redisUtil.getCacheObject("priorityHollowSwitch")) {
+            resultList = TWO_LINE_FIRST;
+        } else {
+            resultList = ONE_LINE_FIRST;
         }
 
-        if (hollowGlassOutRelationInfo == null) {
-            hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
-                    .getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
-                            .eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
-                            .orderByAsc(HollowGlassOutRelationInfo::getUpdateTime).last("limit 1")
-                    );
+        HollowGlassOutRelationInfo hollowGlassOutRelationInfo = null;
+        int cell = -1;
+        for (Integer i : resultList) {
+            if (null == hollowGlassOutRelationInfo) {
+                Boolean entity = map.get(i);
+                cell = i;
+                if (null != entity && entity) {
+                    hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
+                            .getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                                    .eq(HollowGlassOutRelationInfo::getCell, cell)
+                                    .eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+                                    .orderByAsc(HollowGlassOutRelationInfo::getId)
+                                    .last("limit 1")
+                            );
+                }
+            } else {
+                break;
+            }
+        }
+        for (Integer i : resultList) {
+            if (null == hollowGlassOutRelationInfo) {
+                cell = i;
+                hollowGlassOutRelationInfo = hollowGlassOutRelationInfoService
+                        .getOne(new LambdaQueryWrapper<HollowGlassOutRelationInfo>()
+                                .eq(HollowGlassOutRelationInfo::getCell, cell)
+                                .eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+                                .orderByAsc(HollowGlassOutRelationInfo::getId)
+                                .last("limit 1")
+                        );
+            } else {
+                break;
+            }
         }
 
         if (null != hollowGlassOutRelationInfo) {
@@ -850,7 +873,7 @@
             List<String> glassList = noDealTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
             hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
                     .set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
-                    .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                    .notIn(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
                     .in(HollowBigStorageCageDetails::getGlassId, glassList));
 
         } else {
@@ -859,7 +882,7 @@
                 hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
                         .set(HollowBigStorageCageDetails::getSlot, item.getStartSlot())
                         .set(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN)
-                        .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                        .notIn(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
                         .eq(HollowBigStorageCageDetails::getGlassId, item.getGlassId()));
             }
         }
@@ -1046,7 +1069,7 @@
         hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
                 .set(HollowBigStorageCageDetails::getState, state)
                 .set(Const.BIG_STORAGE_AFTER_DISPATCH.equals(taskType), HollowBigStorageCageDetails::getSlot, targetSlot)
-                .ne(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .notIn(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_OUT, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
                 .in(HollowBigStorageCageDetails::getGlassId, glassIds));
         try {
             s7DataZKDLPTwo = new S7DataZKDLPTwo();

--
Gitblit v1.8.0