From 1c207b3181f1bf89f2e1f5ea4772ed58a2c3d748 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期三, 09 四月 2025 09:54:55 +0800
Subject: [PATCH] 添加参数公共类与脚本

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java |   74 +++++++++++++++++++++++++------------
 1 files changed, 50 insertions(+), 24 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 4b228ec..fa45fe7 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
@@ -145,7 +145,8 @@
         for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
             if (entry.getValue() > 1) {
                 log.info("杩涚墖鐜荤拑{}瀛樺湪鐩稿悓锛岀粨鏉熸湰娆′换鍔�", entry.getKey());
-                //todo:鍚憄lc鍙戦�佹姤璀�
+                //鍚憄lc鍙戦�佹姤璀�:鍚屼竴杞﹁繘鐗囩幓鐠冨瓨鍦ㄧ浉鍚�
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 2));
                 return;
             }
         }
@@ -153,14 +154,16 @@
                 .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO));
         if (CollectionUtil.isNotEmpty(detailsList)) {
             log.info("鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑{}锛岀粨鏉熸湰娆′换鍔�", detailsList);
-            //todo:鍚憄lc鍙戦�佹姤璀�
+            //鍚憄lc鍙戦�佹姤璀�:鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 4));
             return;
         }
         List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList));
 
         if (glassInfoList.size() != inTaskList.size()) {
             log.info("杩涚墖浠诲姟鏁伴噺{}涓庣幓鐠冩暟閲弡}涓嶅尮閰嶏紝缁撴潫鏈杩涚墖", inTaskList.size(), glassInfoList.size());
-            //todo:鍚憄lc鍙戦�佹姤璀�
+            //鍚憄lc鍙戦�佹姤璀�:杩涚墖浠诲姟鏁伴噺涓庣郴缁熸煡璇㈠埌鐨勭幓鐠冩暟閲忎笉鍖归厤
+            miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 8));
             return;
         }
         //鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
@@ -172,18 +175,20 @@
                     .ge(HollowBigStorageCage::getMaxThickness, entry.getKey()));
             if (count < entry.getValue()) {
                 log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
-                //todo:鍚憄lc鍙戦�佹姤璀�
+                //鍚憄lc鍙戦�佹姤璀�:绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 16));
                 return;
             }
         }
-        //todo:瓒呭ぇ灏哄
+        //瓒呭ぇ灏哄
         if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() > slotMaxthickness) {
             int count = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
                     .eq(HollowBigStorageCageDetails::getSlot, THROUGH_SLOT)
                     .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
             if (count > 0) {
                 log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
-                //todo:鍚憄lc鍙戦�佹姤璀�
+                //鍚憄lc鍙戦�佹姤璀�:鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝鏃犳硶缁х画鐩撮��
+                miloService.writeToOpcWord(generateReadWriteEntity("DLP2A.DLP2A.alarmSignal", 64));
                 return;
             }
         }
@@ -737,7 +742,7 @@
     }
 
 
-    private <T extends HollowBigStorageCageBaseInfo> Boolean hollowOutGlassByIsPair(List<T> list, int targetSlot, int isPair, int totalLayer, int isForce) {
+    private <T extends HollowBigStorageCageBaseInfo> Boolean hollowOutGlassByIsPair(List<T> list, int targetSlot, int isPair, int totalLayer, int isForce) throws Exception {
         List<T> resultList = new ArrayList<>();
         List<T> tempList = new ArrayList<>();
         int taskType = Const.BIG_STORAGE_AFTER_OUT;
@@ -762,6 +767,13 @@
                         .ge(HollowBigStorageCage::getMaxThickness, list.get(0).getThickness())
                         .eq(HollowBigStorageCage::getRemainWidth, slotWidth)
                         .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
+
+                if (null == storageCage) {
+                    //鍚憄lc鍙戦�佹姤璀�:鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝鏃犳硶缁х画鐩撮��
+                    miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 16));
+                    Assert.isFalse(storageCage == null, "浠诲姟璋冨害娌℃湁澶氫綑鏍煎瓙锛岀粨鏉熻皟搴︿换鍔�");
+                }
+
                 targetSlot = storageCage.getSlot();
                 hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
                         .set(HollowBigStorageCage::getRemainWidth, 0).eq(HollowBigStorageCage::getSlot, targetSlot));
@@ -785,37 +797,52 @@
      */
     private <T extends HollowBigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName, int targetSlot, int state, int taskType, int totalLayer, int isForce) {
         //浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
-        List<BigStorageCageTask> tempList = new ArrayList<>();
-        List<T> tempTList = new ArrayList<>();
+        List<T> templist = new ArrayList<>();
         //鎵撹溅鍓╀綑灏哄
         Integer remainWidth = carWidth;
         for (T e : list) {
-            if (tempList.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
+            if (templist.size() >= outCarMaxSize || Math.max((int) e.getWidth(), (int) e.getHeight()) > remainWidth) {
                 break;
             }
             //璁$畻褰撳墠鍑虹墖杞﹀墿灏哄
             remainWidth = remainWidth - Math.max((int) e.getWidth(), (int) e.getHeight()) - glassGap;
-            tempTList.add(e);
-            tempList.add(new BigStorageCageTask(e.getGlassId(), e.getSlot(), targetSlot,
-                    0));
+            templist.add(e);
         }
-        Assert.isFalse(CollectionUtil.isEmpty(tempList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
-        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", tempList.size());
-        List<BigStorageCageTask> bigStorageCageTaskList = tempList;
+        Assert.isFalse(CollectionUtil.isEmpty(templist), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+        log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", templist.size());
+        List<T> baseInfoList = templist;
         if (1 != isForce) {
             if (taskType == Const.BIG_STORAGE_AFTER_OUT) {
-                if (tempList.size() <= totalLayer) {
-                    bigStorageCageTaskList = tempList;
+                //鏍¢獙闃叉灏忎簬绛変簬鎬诲眰鏁扮幓鐠冪墖搴忎笉鍖归厤鐨勯棶棰橈紝璇ラ棶棰樺鍑虹幇鍦ㄥぇ鐗囩幓鐠冿紝3灞�
+                if (templist.size() <= totalLayer) {
+                    int tempSequence = templist.get(0).getHollowSequence();
+                    List<T> resultList = new ArrayList<>();
+                    for (int i = 0; i < templist.size(); i++) {
+                        if (tempSequence == list.get(i).getHollowSequence()) {
+                            resultList.add(templist.get(i));
+                        } else {
+                            break;
+                        }
+                    }
+                    baseInfoList = resultList;
                 } else {
-                    int remainCount = tempList.size() % totalLayer;
-                    bigStorageCageTaskList = tempList.subList(0, tempList.size() - remainCount);
+                    //澶т簬鎬诲眰鏁板厛鍙杢otalLyaer鍊嶆暟鏁伴噺鐨勭幓鐠冿紝淇濊瘉澶ц溅涓婄殑鐜荤拑鎴愬浼�
+                    int remainCount = templist.size() % totalLayer;
+                    if (targetSlot == 930) {
+                        baseInfoList = templist.subList(0, totalLayer);
+                    } else {
+                        baseInfoList = templist.subList(0, templist.size() - remainCount);
+                    }
                 }
             }
         }
-
-        List<String> glassIds = bigStorageCageTaskList.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
-        int glassCount = bigStorageCageTaskList.size();
+        List<String> glassIds = baseInfoList.stream().map(T::getGlassId).collect(Collectors.toList());
+        int glassCount = baseInfoList.size();
+        List<BigStorageCageTask> bigStorageCageTaskList = new ArrayList<>();
         //鐢熸垚鍑虹墖浠诲姟鏉℃暟涓嶈冻6琛ュ叏
+        for (T t : baseInfoList) {
+            bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
+        }
         while (bigStorageCageTaskList.size() < 6) {
             bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
         }
@@ -830,7 +857,6 @@
             return history;
         }).collect(Collectors.toList());
         hollowBigStorageCageHistoryTaskService.saveBatch(historyList);
-
         log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄嚭鐗囦腑", glassIds);
         hollowBigStorageCageDetailsService.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
                 .set(HollowBigStorageCageDetails::getState, state)

--
Gitblit v1.8.0