From d6d0b8c6ba79137a0b12e33e5aa4183343197eb0 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期六, 15 三月 2025 15:07:55 +0800
Subject: [PATCH] 1、记录解决lisec中空出片同一车内的玻璃顺序错乱 2、将报工接口地址改为义乌服务器地址

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java |   61 +++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 22 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 a292646..534dfda 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
@@ -785,52 +785,70 @@
      */
     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 = new ArrayList<>();
         if (1 != isForce) {
             if (taskType == Const.BIG_STORAGE_AFTER_OUT) {
-                if (tempList.size() <= totalLayer) {
-                    int tempSequence = list.get(0).getHollowSequence();
-                    List<BigStorageCageTask> resultList = new ArrayList<>();
-                    for (int i = 0; i < tempList.size(); i++) {
+                //鏍¢獙闃叉灏忎簬绛変簬鎬诲眰鏁扮幓鐠冪墖搴忎笉鍖归厤鐨勯棶棰橈紝璇ラ棶棰樺鍑虹幇鍦ㄥぇ鐗囩幓鐠冿紝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));
+                            resultList.add(templist.get(i));
                         } else {
                             break;
                         }
                     }
-                    bigStorageCageTaskList = resultList;
+                    baseInfoList = resultList;
                 } else {
-                    int remainCount = tempList.size() % totalLayer;
-                    bigStorageCageTaskList = tempList.subList(0, tempList.size() - remainCount);
+                    //澶т簬鎬诲眰鏁板厛鍙杢otalLyaer鍊嶆暟鏁伴噺鐨勭幓鐠冿紝淇濊瘉澶ц溅涓婄殑鐜荤拑鎴愬浼�
+                    int remainCount = templist.size() % totalLayer;
+                    if (targetSlot == 931) {
+                        baseInfoList = templist.subList(0, templist.size() - remainCount);
+                    } else {
+                        //930鏃剁幓鐠冮『搴忓�掑簭銆佸悓涓�瀵圭幓鐠冨�掑簭
+                        baseInfoList = templist.subList(0, templist.size() - remainCount);
+                        Map<Integer, List<T>> listMap = baseInfoList.stream().collect(Collectors.groupingBy(T::getHollowSequence));
+                        Map<Integer, List<T>> sortListMap = new TreeMap<>(Collections.reverseOrder());
+                        sortListMap.putAll(listMap);
+                        List<T> resultList = new ArrayList<>();
+                        for (Map.Entry<Integer, List<T>> e : sortListMap.entrySet()) {
+                            for (T t : e.getValue()) {
+                                resultList.add(t);
+                            }
+                        }
+                        baseInfoList = resultList;
+                    }
                 }
             }
         }
-        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琛ュ叏
-        while (bigStorageCageTaskList.size() < 6) {
+        for (T t : baseInfoList) {
+            bigStorageCageTaskList.add(new BigStorageCageTask(t.getGlassId(), t.getSlot(), targetSlot, 0));
+        }
+        while (baseInfoList.size() < 6) {
             bigStorageCageTaskList.add(new BigStorageCageTask("", 0, 0, 0));
         }
         //娓呯┖浠诲姟琛ㄦ暟鎹�
         bigStorageCageTaskService.removeAll(tableName);
         bigStorageCageTaskService.saveTaskMessage(tableName, bigStorageCageTaskList);
-        List<HollowBigStorageCageHistoryTask> historyList = bigStorageCageTaskList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
+        List<HollowBigStorageCageHistoryTask> historyList = baseInfoList.stream().filter(e -> StringUtils.isNotBlank(e.getGlassId())).map(e -> {
             HollowBigStorageCageHistoryTask history = new HollowBigStorageCageHistoryTask();
             BeanUtils.copyProperties(e, history);
             history.setGlassCount(glassCount);
@@ -838,7 +856,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