From b804d88d626d1df675a3278c859b37758c55432b Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 18 十二月 2025 13:42:06 +0800
Subject: [PATCH] 1、增加流程卡进度查询,可根据工程号,流程卡号,玻璃id查看进度情况 2、钢化界面增加颜色对应注释,版图增加落架顺序 3、两个大理片界面笼子上色块显示修改为根据玻璃宽度显示 4、中空大理片右侧缺片情况显示优化 5、是否除膜从领取工程取消,在中空领取任务时选择除膜膜系(不除膜时不选择膜系),当配方中是需要除膜时并且选择的膜系与小片膜系一样时发送除膜信息 6、中空领取任务界面流程卡数量不等于已配对数量时高亮显示 7、磨边队列当后面玻璃磨边完成扫码但前面玻璃还未扫到码时高亮显示

---
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java |   43 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 36 insertions(+), 7 deletions(-)

diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
index 9e4c69a..0ba7fb6 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
@@ -21,9 +21,8 @@
 import javax.annotation.Resource;
 import java.time.LocalDate;
 import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -53,7 +52,7 @@
         try {
             waitingGlass = selectWaitingGlassByOpc();
             if (CollectionUtil.isNotEmpty(waitingGlass)) {
-                jsonObject.append("waitingGlass", waitingGlass);
+                jsonObject.append("waitingGlass", markSequence(waitingGlass));
             }
         } catch (Exception e) {
             log.info("閽㈠寲鍓嶈幏鍙栧紓甯革細{}", e.getMessage());
@@ -66,9 +65,10 @@
                     if (i != 0) {
                         jsonName = jsonName + i;
                     }
-                    jsonObject.append(jsonName, temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
+                    List<TemperingGlassInfo> intoGlassList = temperingGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
                             .eq(TemperingGlassInfo::getEngineerId, intoGlass.get(i).getEngineerId())
-                            .eq(TemperingGlassInfo::getTemperingLayoutId, intoGlass.get(i).getTemperingLayoutId())));
+                            .eq(TemperingGlassInfo::getTemperingLayoutId, intoGlass.get(i).getTemperingLayoutId()));
+                    jsonObject.append(jsonName, markSequence(intoGlassList));
                 }
 
             }
@@ -79,7 +79,7 @@
             //鍑虹倝鍚庣殑鐜荤拑
             List<TemperingGlassInfo> outGlass = temperingGlassInfoService.selectOutGlass();
             if (CollectionUtil.isNotEmpty(outGlass)) {
-                jsonObject.append("outGlass", outGlass);
+                jsonObject.append("outGlass", markSequence(outGlass));
             }
         } catch (Exception e) {
             log.info("閽㈠寲鍓嶈幏鍙栧紓甯革細{}", e.getMessage());
@@ -181,4 +181,33 @@
             return tempList;
         }
     }
+
+
+    public List<TemperingGlassInfo> markSequence(List<TemperingGlassInfo> tempGlass) {
+
+        // 1. 姝ラ1锛氬畾涔夊垎缁勯敭鎻愬彇瑙勫垯锛堟槑纭被鍨嬶紝閬垮厤娉涘瀷鎺ㄥ娣蜂贡锛�
+        // 缁勫悎閿細flowCardId + "_" + layer锛堜繚璇乫lowCardId+layer鍞竴锛�
+        Function<TemperingGlassInfo, String> keyExtractor = info ->
+                info.getFlowCardId() + "_" + (info.getLayer() == null ? "" : info.getLayer());
+
+        // 2. 姝ラ2锛氭寜缁勫悎閿垎缁勶紙瀹屽叏渚濊禆缂栬瘧鍣ㄨ嚜鍔ㄦ帹瀵兼硾鍨嬶紝鏃犳樉寮忔寚瀹氾級
+        // 浣跨敤LinkedHashMap淇濊瘉鍒嗙粍椤哄簭涓庡師濮嬫暟鎹竴鑷�
+        Map<String, List<TemperingGlassInfo>> groupMap = tempGlass.stream()
+                .collect(Collectors.groupingBy(
+                        keyExtractor,          // 鍒嗙粍閿�
+                        LinkedHashMap::new,    // 澶栧眰Map瀹炵幇锛堟湁搴忥級
+                        Collectors.toList()    // 鍐呭眰List鏀堕泦鍣�
+                ));
+
+        // 3. 姝ラ3锛氫负姣忎釜鍒嗙粍鍐呯殑鍏冪礌鏍囪sequence锛堜粠1寮�濮嬶級
+        groupMap.forEach((key, glassList) -> {
+            // 閬嶅巻鍒嗙粍鍐呯殑鍒楄〃锛屾寜椤哄簭璧嬪�約equence
+            for (int i = 0; i < glassList.size(); i++) {
+                glassList.get(i).setSequence(i + 1); // sequence浠�1寮�濮�
+            }
+        });
+
+        // 5. 杩斿洖鏍囪鍚庣殑瀹屾暣鍒楄〃锛堝師鍒楄〃宸查�氳繃寮曠敤淇敼锛�
+        return tempGlass;
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0