From d3df1630ad3e1c71b61d177ee818d5c5c94e97c0 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期六, 11 十月 2025 18:45:29 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/YiWuProject

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java |  183 ++++++++++++---------------------------------
 1 files changed, 48 insertions(+), 135 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
index 947ba9f..a49c7f9 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassNewTask.java
@@ -87,32 +87,25 @@
     @Qualifier("s7SerializerMBTwo")
     private S7Serializer s7SerializerMBTwo;
 
-    //    @Value("${mes.threshold}")
+
     private int threshold;
-    //    @Value("${mes.cellLength}")
+
     private int cellLength;
-    //    @Value("${mes.ratio}")
+
     private int ratio;
 
-    //    @Value("${mes.min.one.firstLength}")
     private int minOneFirstLength;
-    //
-//    @Value("${mes.min.one.secondLength}")
+
     private int minOneSecondLength;
-    //
-//    @Value("${mes.min.two.firstLength}")
+
     private int minTwoFirstLength;
-    //
-//    @Value("${mes.min.two.secondLength}")
+
     private int minTwoSecondLength;
-    //
-//    @Value("${mes.max.firstLength}")
+
     private int maxTwoFirstLength;
-    //
-//    @Value("${mes.max.secondLength}")
+
     private int maxTwoSecondLength;
-    //
-//    @Value("${mes.maxThickness}")
+
     private int maxThickness;
 
     private String glassInIdOne = "";
@@ -124,16 +117,14 @@
     public void startOneOpcTask() throws Exception {
         S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class);
         S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class);
+        S7DataWLExtra s7DataWLExtraTwo = s7SerializerWLTwo.read(S7DataWLExtra.class);
         log.info("涓�绾垮崸鐞�: {}", s7DataWLOne);
         //鑾峰彇绗簩鏉$嚎璺殑鍗у紡鐞嗙墖绗肩姸鎬�
-//        ReadWriteEntity twoInkageEntity = miloService.readFromOpcUa("WL2.WL2.deviceState");
         Boolean twoInkageEntity = s7DataWLTwo.getDeviceState();
-//        Boolean twoInkageEntity = Boolean.FALSE;
         //榛樿鍙窇涓�鍙板崸寮忕悊鐗�,涓ゆ潯绾胯矾閮藉彲浠ヨ蛋
         int cellFlag = 1;
         //濡傛灉涓ゆ潯绾块兘鍚姩鍒欏彧鑳借窇涓�鏉$嚎
-//        if (twoInkageEntity != null && !Boolean.parseBoolean(twoInkageEntity.getValue() + "")) {
-        if (twoInkageEntity != null && !twoInkageEntity) {
+        if (!twoInkageEntity && !Const.OUT_DISABLE.equals(s7DataWLExtraTwo.getD06SlotState())) {
             cellFlag = 2;
         }
         startOneOpcTaskChild(s7DataWLOne, 1, cellFlag);
@@ -143,18 +134,17 @@
     public void startTwoOpcTask() throws Exception {
         S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class);
         S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class);
+        S7DataWLExtra s7DataWLExtraTwo = s7SerializerWLTwo.read(S7DataWLExtra.class);
         log.info("浜岀嚎鍗х悊: {}", s7DataWLTwo);
-//        ReadWriteEntity oneInkageEntity = miloService.readFromOpcUa("WL1.WL1.deviceState");
         Boolean oneInkageEntity = s7DataWLOne.getDeviceState();
         int cellFlag = 1;
-//        if (oneInkageEntity != null && !Boolean.parseBoolean(oneInkageEntity.getValue() + "")) {
-        if (oneInkageEntity != null && !oneInkageEntity) {
+        if (!oneInkageEntity && !Const.OUT_DISABLE.equals(s7DataWLExtraTwo.getD06SlotState())) {
             cellFlag = 2;
         }
         startOneOpcTaskChild(s7DataWLTwo, 2, cellFlag);
+
     }
 
-    //    private void startOneOpcTaskChild(String tableName, int device, int cellFlag) throws Exception {
     private void startOneOpcTaskChild(S7DataWL task, int device, int cellFlag) throws Exception {
         threshold = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_THRESHOLD);
         cellLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_CELL_LENGTH);
@@ -167,7 +157,6 @@
         maxTwoSecondLength = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MAX_SECOND_LENGTH);
         maxThickness = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_MAX_THICKNESS);
 
-//        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
 
         if (task == null) {
             log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
@@ -187,21 +176,19 @@
             //杩涚墖浠诲姟
             log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
             log.info("杩涚墖浠诲姟锛氳繘鐗囩幓鐠僫d涓猴細{}", task.getGlassIdIn());
-            intoTask(task, "", device);
+            intoTask(task, device);
         } else if (request == 2 && taskRunning == 0) {
             //鍑虹墖浠诲姟
-            outTask(task, "", device, cellFlag);
+            outTask(task, device, cellFlag);
         } else if (request == 3 && taskRunning == 0) {
             //鐩撮�氫换鍔�
             log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
-            if (!outTask(task, "", device, cellFlag)) {
-                intoTask(task, "", device);
+            if (!outTask(task, device, cellFlag)) {
+                intoTask(task, device);
             }
         } else if (request == 4) {
             log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
             log.info("灏嗗惎鍔ㄥ瓙鏀逛负4");
-//            task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING);
-//            edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
             if (device == 2) {
                 task.setTaskRunning(Const.GLASS_CACHE_TYPE_RUNNING);
                 s7SerializerWLTwo.write(S7DataWL.builder().taskRunning(Const.GLASS_CACHE_TYPE_RUNNING).build());
@@ -217,22 +204,12 @@
             log.info("鐜荤拑寮傚父澶勭悊");
             damageTask(task, "", device);
         }
-//    } catch(Exception e)
-//
-//    {
-//        log.info("鎵ц浠诲姟杩囩▼涓彂鐢熷紓甯革紝浠诲姟瀛梴}锛寋}", task.getTaskState(), e.getMessage());
-//        log.info("灏嗗惎鍔ㄥ瓧鏀逛负0");
-//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
-//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
-//    }
 
     }
 
 
     @Scheduled(fixedDelay = 1000)
     public void edgOneOpcTask() throws Exception {
-//        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_ONE_TASK);
-//        String glassId = task.getGlassId();
         S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class);
         String glassId = s7DataWLOne.getGlassId();
         log.info("1鍙风嚎鐜荤拑id{},鍘嗗彶id{}", glassId, glassIdOne);
@@ -244,12 +221,8 @@
     }
 
     @Scheduled(fixedDelay = 1000)
-    public void edgTwoOpcTask() throws Exception {
-//        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_TWO_TASK);
-//        String glassId = task.getGlassId();
+    public void edgTwoOpcTask() {
         S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class);
-//        S7DataMB s7DataMB = s7SerializerMBOne.read(S7DataMB.class);
-//        log.info("纾ㄨ竟鏁版嵁{}", s7DataMB);
         String glassId = s7DataWLTwo.getGlassId();
         log.info("2鍙风嚎鐜荤拑id{},鍘嗗彶id{}", glassId, glassIdTwo);
         if (StringUtils.isBlank(glassId) || glassId.equals(glassIdTwo)) {
@@ -259,7 +232,7 @@
         edgTaskChild(glassId, 2);
     }
 
-    private void edgTaskChild(String glassId, int cell) throws Exception {
+    private void edgTaskChild(String glassId, int cell) {
         ratio = sysConfigService.queryConfigValue(ConstSysConfig.CACHE_RATIO);
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1"));
         if (glassInfo == null) {
@@ -267,16 +240,6 @@
             return;
         }
         String toEndingId = glassInfo.getTemperingLayoutId() + "" + glassInfo.getTemperingFeedSequence();
-//        List<ReadWriteEntity> list = new ArrayList<>();
-////        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".mesControl", true));
-//        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".glassId", Integer.parseInt(toEndingId)));
-//        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".toEdingId", Integer.parseInt(toEndingId)));
-//        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".width", (int) Math.max(glassInfo.getWidth() * ratio, glassInfo.getHeight() * ratio)));
-//        list.add(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".height", (int) Math.min(glassInfo.getWidth() * ratio, glassInfo.getHeight() * ratio)));
-//
-//        miloService.writeToOpcUa(list);
-//        miloService.writeToOpcWord(generateReadWriteEntity("MB" + cell + ".MB" + cell + ".thickness", (int) glassInfo.getThickness() * ratio));
-
         S7DataMB s7DataMB = new S7DataMB();
         s7DataMB.setToEdingId(Integer.parseInt(toEndingId));
         s7DataMB.setGlassId(Integer.parseInt(toEndingId));
@@ -310,9 +273,9 @@
         }
     }
 
-    private boolean intoTask(S7DataWL task, String tableName, int deviceId) {
+    private boolean intoTask(S7DataWL task, int deviceId) {
         Date startDate = new Date();
-        log.info("寮�濮嬫墽琛岃繘鐗囦换鍔★紝浠诲姟淇℃伅涓猴細{},琛ㄥ悕涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{}", task, tableName, deviceId, startDate);
+        log.info("寮�濮嬫墽琛岃繘鐗囦换鍔★紝浠诲姟淇℃伅涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{}", task, deviceId, startDate);
         //鑾峰彇鐜荤拑鐨勫熀鏈俊鎭�
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
         if (null == glassInfo) {
@@ -342,7 +305,6 @@
             log.info("缁撴潫杩涚墖浠诲姟璁惧涓簕}锛岀粨鏉熸椂闂翠负锛歿}锛屽叡鑰楁椂锛歿}ms", deviceId, endDate, endDate.getTime() - startDate.getTime());
             return Boolean.FALSE;
         }
-//        EdgStorageCage edgStorageCage = edgStorageCageService.selectNearestEmpty(task.getCurrentCell(), deviceId, Boolean.FALSE);
         EdgStorageCage edgStorageCage = edgStorageCageService.selectNearestEmpty(Integer.parseInt(task.getCurrentCell().toString()), deviceId, Boolean.FALSE);
         Assert.isTrue(null != edgStorageCage, "鏍煎瓙宸叉弧");
         log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
@@ -354,9 +316,6 @@
         edgStorageCageDetailsService.save(details);
 
         //鏇存柊浠诲姟淇℃伅
-//        task.setStartCell(edgStorageCage.getSlot());
-//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN);
-//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
         task.setStartCell(edgStorageCage.getSlot());
         task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN);
         if (deviceId == 1) {
@@ -382,44 +341,20 @@
         return Boolean.TRUE;
     }
 
-    private boolean outTask(S7DataWL task, String tableName, int deviceId, int cellFlag) throws Exception {
+    private boolean outTask(S7DataWL task, int deviceId, int cellFlag) {
         Date startDate = new Date();
         //鑾峰彇瀵瑰簲鐨勮澶囩姸鎬佷俊鎭�
-//        ReadWriteEntity oneOutStateEntity = miloService.readFromOpcUa("WL1.WL1.slotState");
-//        ReadWriteEntity twoOutStateEntity = miloService.readFromOpcUa("WL2.WL2.slotState");
-//        ReadWriteEntity d06OutStateEntity = miloService.readFromOpcUa("WL2.WL2.d06SlotState");
         S7DataWL s7DataWLOne = s7SerializerWLOne.read(S7DataWL.class);
         S7DataWL s7DataWLTwo = s7SerializerWLTwo.read(S7DataWL.class);
         S7DataWLExtra s7DataWLExtraTwo = s7SerializerWLTwo.read(S7DataWLExtra.class);
-        Integer oneOutStateEntity = s7DataWLOne.getSlotState();
-        Integer twoOutStateEntity = s7DataWLTwo.getSlotState();
-        Integer d06OutStateEntity = s7DataWLExtraTwo.getD06SlotState();
+        Integer oneOutState = s7DataWLOne.getSlotState();
+        Integer twoOutState = s7DataWLTwo.getSlotState();
+        Integer d06OutState = s7DataWLExtraTwo.getD06SlotState();
         //鐘舵�佹湁3涓儏鍐碉細0绌洪棽 1蹇欑 2绂佺敤
-        String oneOutState = Const.OUT_DISABLE;
-        String twoOutState = Const.OUT_DISABLE;
-        String d06OutState = Const.OUT_DISABLE;
-//        if (null != oneOutStateEntity && null != oneOutStateEntity.getValue()) {
-//            oneOutState = oneOutStateEntity.getValue().toString();
-//        }
-        if (null != oneOutStateEntity) {
-            oneOutState = oneOutStateEntity.toString();
-        }
-//        if (null != twoOutStateEntity && null != twoOutStateEntity.getValue()) {
-//            twoOutState = twoOutStateEntity.getValue().toString();
-//        }
-        if (null != twoOutStateEntity) {
-            twoOutState = twoOutStateEntity.toString();
-        }
         //涓ゆ潯绾块兘涓虹鐢ㄥ垯涓嶅嚭鐜荤拑
         if (Const.OUT_DISABLE.equals(oneOutState) && Const.OUT_DISABLE.equals(twoOutState)) {
-            log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", oneOutState, oneOutState);
+            log.info("璁惧{}:A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", deviceId, oneOutState, oneOutState);
             return Boolean.FALSE;
-        }
-//        if (null != d06OutStateEntity && null != d06OutStateEntity.getValue()) {
-//            d06OutState = d06OutStateEntity.getValue().toString();
-//        }
-        if (null != d06OutStateEntity) {
-            d06OutState = d06OutStateEntity.toString();
         }
         //鑾峰彇d06鐗囧彴鐘舵��
         // 1:涓�瀵逛竴鐨勬儏鍐典笅涓嶉渶瑕佸垽鏂璬06鐘舵��
@@ -427,18 +362,14 @@
         // 3:浜屽彿绾夸竴瀵瑰鐨勬儏鍐典笅锛岃幏鍙栦竴鍙风嚎纾ㄨ竟鍓嶇墖鍙癈08鐨勭姸鎬侊紝C08闈炵鐢ㄦ椂锛屼竴鍙风嚎灏嗘寜鐓06鐗囧彴鐘舵�佽寰楀嚭鐗�
         if (cellFlag == 2) {
             if (deviceId == 1) {
-                twoOutState = Const.OUT_DISABLE.equals(twoOutState) ? Const.OUT_DISABLE : d06OutState;
+                twoOutState = twoOutState & d06OutState;
             } else {
-                oneOutState = Const.OUT_DISABLE.equals(oneOutState) ? Const.OUT_DISABLE : d06OutState;
-            }
-            if (Const.OUT_BUSY.equals(oneOutState) && Const.OUT_BUSY.equals(twoOutState)) {
-                log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", oneOutState, oneOutState);
-                return Boolean.FALSE;
+                oneOutState = oneOutState & d06OutState;
             }
         }
 
-        log.info("寮�濮嬫墽琛屽嚭鐗�/鐩撮�氫换鍔★紝浠诲姟淇℃伅涓猴細{},琛ㄥ悕涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{},涓�鍙风嚎鐘舵�侊細{}锛屼簩鍙风嚎鐘舵�侊細{}",
-                task, tableName, deviceId, startDate, oneOutState, twoOutState);
+        log.info("寮�濮嬫墽琛屽嚭鐗�/鐩撮�氫换鍔★紝浠诲姟淇℃伅涓猴細{},璁惧id:{},寮�濮嬫椂闂达細{},涓�鍙风嚎鐘舵�侊細{}锛屼簩鍙风嚎鐘舵�侊細{}",
+                task, deviceId, startDate, oneOutState, twoOutState);
         //鑾峰彇褰撳墠闇�瑕佽蛋閭f潯绾�
         int cell = 0;
         if (cellFlag == 1) {
@@ -449,29 +380,27 @@
             } else if (Const.OUT_FREE.equals(oneOutState)) {
                 cell = Const.ONE_OUT_TARGET_POSITION;
             } else {
-                return Boolean.FALSE;
+                cell = Const.TWO_OUT_TARGET_POSITION;
             }
         }
-        if (Const.OUT_FREE.equals(oneOutState) && Const.OUT_FREE.equals(twoOutState)) {
-            if (cellFlag == 2) {
-                if (!outChildTask(task, tableName, deviceId, cell, startDate)) {
-                    cell = cell == Const.ONE_OUT_TARGET_POSITION ? Const.TWO_OUT_TARGET_POSITION : Const.ONE_OUT_TARGET_POSITION;
-                    return outChildTask(task, tableName, deviceId, cell, startDate);
-                }
-            } else {
-                return outChildTask(task, tableName, deviceId, cell, startDate);
+        log.info("{}绾胯矾璁$畻瀹屾垚锛歿}", deviceId, cell);
+        if (cellFlag == 2) {
+            if (!outChildTask(task, deviceId, cell, startDate)) {
+                cell = cell == Const.ONE_OUT_TARGET_POSITION ? Const.TWO_OUT_TARGET_POSITION : Const.ONE_OUT_TARGET_POSITION;
+                return outChildTask(task, deviceId, cell, startDate);
             }
         } else {
-            return outChildTask(task, tableName, deviceId, cell, startDate);
+            return outChildTask(task, deviceId, cell, startDate);
         }
         return Boolean.TRUE;
     }
 
-    private boolean outChildTask(S7DataWL task, String tableName, int deviceId, int cell, Date startDate) {
+    private boolean outChildTask(S7DataWL task, int deviceId, int cell, Date startDate) {
         EdgStorageCageDetails edgStorageCageDetails = null;
 
         //绗煎唴鏄増鍥剧浉宸槸鍚﹁秴杩囬槇鍊�
         boolean flag = queryMaxMinDiffByDevice(threshold, deviceId);
+        log.info("{}闃堝�艰绠楀畬鎴愶細{}", deviceId, flag);
         if (flag) {
             //鍏堟壘鏈�灏忕増鍥剧増搴忕殑鐜荤拑灏忕墖
             EdgStorageCageDetails minEdgDetails = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
@@ -495,15 +424,18 @@
                 );
             }
         }
+        log.info("{}鎸夌収闃堝�兼煡鎵剧粨鏋滐細{}", deviceId, edgStorageCageDetails);
         if (null == edgStorageCageDetails) {
 //        鑾峰彇鍘嗗彶琛ㄤ腑涓婃浠诲姟鏈�鍚庝竴鐗囧昂瀵�
             EdgStorageDeviceTaskHistory edgeData = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
                     .eq(EdgStorageDeviceTaskHistory::getDeviceId, cell)
                     .in(EdgStorageDeviceTaskHistory::getTaskType, Const.GLASS_CACHE_TYPE_OUT, Const.GLASS_CACHE_TYPE_THROUGH)
                     .orderByDesc(EdgStorageDeviceTaskHistory::getId).last("limit 1"));
+            log.info("{}鑾峰彇涓婃浠诲姟淇℃伅锛歿}", deviceId, edgeData);
             if (null != edgeData) {
                 GlassInfo glassOutInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, edgeData.getGlassIdOut()));
                 //绗煎唴鐨勭幓鐠冪殑灏哄鏄惁鍜屼笂涓�娆′换鍔′竴鑷�
+
                 edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsBySize(deviceId, task.getCurrentCell(), glassOutInfo.getWidth(), glassOutInfo.getHeight(), cell, maxThickness);
                 if (null == edgStorageCageDetails && StringUtils.isNotBlank(task.getGlassIdIn())) {
                     GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
@@ -519,11 +451,13 @@
                 }
             }
         }
+        log.info("{}鑾峰彇鍘嗗彶琛ㄤ腑涓婃浠诲姟鏈�鍚庝竴鐗囧昂瀵革細{}", deviceId, edgStorageCageDetails);
         //鍓嶉潰宸茬粡灏哄闂澶勭悊瀹屾瘯锛屽紑濮嬭绠楁棤鐩稿悓灏哄鐨勬柊鐜荤拑灏忕墖
         if (null == edgStorageCageDetails) {
             edgStorageCageDetails = edgStorageCageDetailsService.queryEdgStorageDetailsByLimitSize(deviceId, Integer.parseInt(task.getCurrentCell().toString()), 0, 0,
                     cell, minOneFirstLength, minOneSecondLength, maxTwoFirstLength, maxTwoSecondLength, maxThickness);
         }
+        log.info("{}寮�濮嬭绠楁棤鐩稿悓灏哄鐨勬柊鐜荤拑灏忕墖锛歿}", deviceId, edgStorageCageDetails);
         if (edgStorageCageDetails == null && StringUtils.isNotBlank(task.getGlassIdIn())) {
             //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
             GlassInfo glassInInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, task.getGlassIdIn()));
@@ -540,6 +474,7 @@
                 log.info("鐩撮�氫换鍔$洰鏍囩嚎璺负{},杩涚墖鐜荤拑灏哄涓簕}*{},涓嶇鍚堝嚭鐗囨潯浠�", cell, maxLength, minLength);
             }
         }
+        log.info("{}鐩撮�氫换鍔★細{}", deviceId, edgStorageCageDetails);
         if (edgStorageCageDetails == null) {
             //鍜屼笂娆′换鍔′笉瀛樺湪鐩稿悓灏哄
             log.info("绗煎唴娌℃湁鐜荤拑浜�");
@@ -551,7 +486,7 @@
             if (3 != task.getTaskState()) {
                 return Boolean.FALSE;
             }
-            log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
+            log.info("5銆亄}鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", edgStorageCageDetails);
             if (glassInIdOne.equals(task.getGlassIdIn()) || glassInIdTwo.equals(task.getGlassIdIn())) {
                 log.info("鐜荤拑id涓庝笂娆$浉鍚岋紝绂佹杩涚墖");
                 return Boolean.FALSE;
@@ -565,11 +500,7 @@
                 GlassInfo one = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
                 BeanUtils.copyProperties(one, edgStorageCageDetails);
             }
-            EdgStorageCage storageCage = edgStorageCageService.getOne(new LambdaQueryWrapper<EdgStorageCage>()
-                    .eq(EdgStorageCage::getDeviceId, deviceId)
-                    .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
-                    .ge(EdgStorageCage::getRemainWidth, cellLength)
-                    .last("order by abs(slot - " + task.getCurrentCell() + ") limit 1"));
+            EdgStorageCage storageCage = edgStorageCageService.selectNearestEmpty(Integer.parseInt(task.getCurrentCell().toString()), deviceId, Boolean.TRUE);
             Assert.isTrue(null != storageCage, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
             log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", storageCage);
             edgStorageCageDetails.setSlot(storageCage.getSlot());
@@ -605,7 +536,6 @@
         task.setStartCell(edgStorageCageDetails.getSlot());
         task.setTaskRunning(taskType);
         task.setEndCell(cell);
-//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
         if (deviceId == 1) {
             s7SerializerWLOne.write(
                     S7DataWL.builder()
@@ -652,10 +582,6 @@
         }
         Date startDate = new Date();
         log.info("寮�濮嬫墽琛屽畬鎴愪换鍔″悗娓呴櫎鍔ㄤ綔锛屼换鍔′俊鎭负锛歿},琛ㄥ悕涓猴細{},寮�濮嬫椂闂达細{}", task, tableName, startDate);
-//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
-//        task.setGlassIdOut("");
-//        task.setStartCell(0);
-//        task.setEndCell(0);
         EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
                 .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
                 .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
@@ -673,12 +599,6 @@
             );
         }
         //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
-
-//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
-//        task.setGlassIdOut("");
-//        task.setStartCell(0);
-//        task.setEndCell(0);
-//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
         if (device == 1) {
             s7SerializerWLOne.write(
                     S7DataWL.builder()
@@ -738,12 +658,6 @@
                     .set(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_FAILURE)
             );
         }
-        //鏈�鍚庢洿鏂颁换鍔★紝淇濊瘉浠诲姟鍓嶇殑鍔ㄤ綔閮藉仛瀹�
-//        task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
-//        task.setGlassIdOut("");
-//        task.setStartCell(0);
-//        task.setEndCell(0);
-//        edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
         if (device == 1) {
             s7SerializerWLOne.write(
                     S7DataWL.builder()
@@ -777,7 +691,6 @@
      */
     public String queryAndChangeGlass(String glassId) {
         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, "鐜荤拑淇℃伅涓嶅瓨鍦�");        //鎸夌収鐜荤拑灏哄
         LambdaQueryWrapper<GlassInfo> queryWrapper = new LambdaQueryWrapper<GlassInfo>()
                 .eq(GlassInfo::getWidth, glassInfo.getWidth())

--
Gitblit v1.8.0