From 26caccd05881f23189bdc8cc4db892e2b789e57d Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 04 九月 2025 13:47:10 +0800
Subject: [PATCH] 1、中空调整:定任务优先级可控,界面新增按钮 2、中空缺片详情报破损功能以实现

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java |   74 ++++++++++++++++++++++--------------
 1 files changed, 45 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 202efb4..1867c5d 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);
+
     /**
      * 鐩撮�氭牸瀛�
      */
@@ -375,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
@@ -391,34 +394,47 @@
         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)
+                            );
+                }
+            } 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)
+                        );
+            } else {
+                break;
+            }
         }
 
         if (null != hollowGlassOutRelationInfo) {
@@ -853,7 +869,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 {
@@ -862,7 +878,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()));
             }
         }
@@ -1049,7 +1065,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