From 1195e51e67436cf2b9513678b5e9d3f27a043de4 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期一, 22 十二月 2025 08:29:40 +0800
Subject: [PATCH] 1、中空选中除膜改为多选 2、流程卡报工情况查询添加工程号条件,添加线路,备注显示
---
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java | 90 +++++++++++++++++++++-----------------------
1 files changed, 43 insertions(+), 47 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 ae81d1a..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
@@ -11,18 +11,18 @@
import com.mes.s7.entity.S7DataGHTwo;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.service.TemperingGlassInfoService;
-import com.mes.tools.WebSocketServer;
+import com.mes.tools.WebSocketUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+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;
/**
@@ -40,6 +40,8 @@
@Autowired
@Qualifier("s7SerializerGHTwo")
private S7Serializer s7SerializerGHTwo;
+ @Resource
+ private WebSocketUtils webSocketUtils;
@Scheduled(fixedDelay = 1000)
@@ -50,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());
@@ -63,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));
}
}
@@ -76,23 +79,13 @@
//鍑虹倝鍚庣殑鐜荤拑
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());
}
+ webSocketUtils.sendToWeb("temperingGlass", jsonObject);
-
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingGlass");
- if (sendwServer != null) {
- for (WebSocketServer webserver : sendwServer) {
- if (webserver != null) {
- webserver.sendMessage(jsonObject.toString());
- } else {
- log.info("Home is closed");
- }
- }
- }
}
@Scheduled(fixedDelay = 1000)
@@ -101,19 +94,7 @@
//姝e湪杩涜鐨勪换鍔�
List<TemperingGlassInfo> temperingTaskType = temperingGlassInfoService.selectTaskType();
jsonObject.append("temperingTaskType", temperingTaskType);
-
-
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingIsRun");
- if (sendwServer != null) {
- for (WebSocketServer webserver : sendwServer) {
- if (webserver != null) {
- webserver.sendMessage(jsonObject.toString());
- } else {
- log.info("Home is closed");
- }
- }
- }
-
+ webSocketUtils.sendToWeb("temperingIsRun", jsonObject);
}
@Scheduled(fixedDelay = 1000)
@@ -148,21 +129,7 @@
//閽㈠寲楗煎浘鏁版嵁
List<PieChartVO> pieChartVOS = temperingGlassInfoService.queryPieChart();
jsonObject.append("pieChartVOS", pieChartVOS);
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen");
- if (sendwServer != null) {
- for (WebSocketServer webserver : sendwServer) {
- if (webserver != null) {
- webserver.sendMessage(jsonObject.toString());
- List<String> messages = webserver.getMessages();
- if (!messages.isEmpty()) {
- // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
- webserver.clearMessages();
- }
- } else {
- log.info("largenScreen is closed");
- }
- }
- }
+ webSocketUtils.sendToWeb("largenScreen", jsonObject);
}
@@ -214,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