From 16f4bb3c28fc85cffcc511718c903ada9fdab134 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期五, 26 十二月 2025 16:59:45 +0800
Subject: [PATCH] 调用mes导入工程参数修改,Excel表数据流程卡号一致;增加读取层号/工程号方法; 工程号一致覆盖更新
---
mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java | 87 ++++++++++++++++++++++---------------------
1 files changed, 44 insertions(+), 43 deletions(-)
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java b/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java
index b49102b..fcc73ee 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/interaction/vehicle/handler/LoadVehicleLogicHandler.java
@@ -27,6 +27,7 @@
import javax.annotation.PreDestroy;
import java.util.*;
import java.util.concurrent.*;
+import java.util.stream.Collectors;
/**
* 澶ц溅璁惧閫昏緫澶勭悊鍣�
@@ -137,7 +138,7 @@
Map<String, Object> params,
Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
log.info("鎵ц澶ц溅璁惧鎿嶄綔: deviceId={}, deviceName={}, operation={}",
deviceId, deviceConfig.getDeviceName(), operation);
@@ -288,7 +289,7 @@
Map<String, Object> logicParams) {
VehicleTask task = new VehicleTask();
- task.setTaskId(generateTaskId(deviceConfig.getDeviceId()));
+ task.setTaskId(generateTaskId(String.valueOf(deviceConfig.getId())));
task.setTaskName("澶ц溅璁惧-" + operation);
task.setOperation(operation);
@@ -364,7 +365,7 @@
Boolean triggerRequest = (Boolean) params.getOrDefault("triggerRequest", autoFeed);
List<GlassInfo> plannedGlasses = planGlassLoading(glassInfos, vehicleCapacity, glassGap,
- deviceConfig.getDeviceId());
+ String.valueOf(deviceConfig.getId()));
if (plannedGlasses == null) {
// 鐜荤拑娌℃湁闀垮害鏃惰繑鍥瀗ull琛ㄧず閿欒
return DevicePlcVO.OperationResult.builder()
@@ -436,7 +437,7 @@
// 濡傛灉鎵ц鎴愬姛锛屾洿鏂颁綅缃俊鎭埌鐘舵��
if (Boolean.TRUE.equals(result.getSuccess())) {
VehicleStatus status = statusManager.getOrCreateVehicleStatus(
- deviceConfig.getDeviceId(), deviceConfig.getDeviceName());
+ String.valueOf(deviceConfig.getId()), deviceConfig.getDeviceName());
if (positionCode != null || positionValue != null) {
VehiclePosition position = new VehiclePosition(positionCode, positionValue);
status.setCurrentPosition(position);
@@ -521,15 +522,15 @@
// 閲嶇疆鏃讹紝娓呴櫎浠诲姟骞舵仮澶嶄负绌洪棽鐘舵�侊紝鍋滄鐩戞帶
if (Boolean.TRUE.equals(result.getSuccess())) {
- statusManager.clearVehicleTask(deviceConfig.getDeviceId());
- statusManager.updateVehicleStatus(deviceConfig.getDeviceId(), VehicleState.IDLE);
- stopStateMonitoring(deviceConfig.getDeviceId());
+ statusManager.clearVehicleTask(String.valueOf(deviceConfig.getId()));
+ statusManager.updateVehicleStatus(String.valueOf(deviceConfig.getId()), VehicleState.IDLE);
+ stopStateMonitoring(String.valueOf(deviceConfig.getId()));
handleStopTaskMonitor(deviceConfig);
handleStopIdleMonitor(deviceConfig);
updateDeviceOnlineStatus(deviceConfig, true);
} else {
// 鍗充究閲嶇疆澶辫触锛屼篃灏濊瘯鍋滄鍐呴儴鐩戞帶锛岄伩鍏嶄换鍔″彇娑堝悗浠嶇劧鍙嶅鍐橮LC
- stopStateMonitoring(deviceConfig.getDeviceId());
+ stopStateMonitoring(String.valueOf(deviceConfig.getId()));
handleStopTaskMonitor(deviceConfig);
handleStopIdleMonitor(deviceConfig);
}
@@ -636,15 +637,15 @@
// 娓呯┖鍚庯紝鎭㈠涓虹┖闂茬姸鎬侊紝鍋滄鐩戞帶
if (Boolean.TRUE.equals(result.getSuccess())) {
- statusManager.clearVehicleTask(deviceConfig.getDeviceId());
- statusManager.updateVehicleStatus(deviceConfig.getDeviceId(), VehicleState.IDLE);
- stopStateMonitoring(deviceConfig.getDeviceId());
+ statusManager.clearVehicleTask(String.valueOf(deviceConfig.getId()));
+ statusManager.updateVehicleStatus(String.valueOf(deviceConfig.getId()), VehicleState.IDLE);
+ stopStateMonitoring(String.valueOf(deviceConfig.getId()));
handleStopTaskMonitor(deviceConfig);
handleStopIdleMonitor(deviceConfig);
updateDeviceOnlineStatus(deviceConfig, true);
} else {
// 鍐欏叆澶辫触涔熷皾璇曞仠姝㈢洃鎺э紝閬垮厤浠诲姟鍙栨秷鍚庝粛鏃ц繍琛�
- stopStateMonitoring(deviceConfig.getDeviceId());
+ stopStateMonitoring(String.valueOf(deviceConfig.getId()));
handleStopTaskMonitor(deviceConfig);
handleStopIdleMonitor(deviceConfig);
}
@@ -661,7 +662,7 @@
deviceStatusService.updateDeviceOnlineStatus(deviceConfig.getId(), status);
} catch (Exception e) {
log.warn("鍚屾璁惧鍦ㄧ嚎鐘舵�佸埌鏁版嵁搴撳け璐�: deviceId={}, online={}, error={}",
- deviceConfig.getDeviceId(), online, e.getMessage());
+ String.valueOf(deviceConfig.getId()), online, e.getMessage());
}
}
@@ -869,7 +870,7 @@
* 瀹氭湡妫�鏌ュぇ杞︾殑 state1~6锛屽綋妫�娴嬪埌 state=1 鏃惰嚜鍔ㄥ崗璋冨崸杞珛璁惧
*/
private void startStateMonitoring(DeviceConfig deviceConfig, Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
// 濡傛灉宸茬粡鍦ㄧ洃鎺э紝鍏堝仠姝㈡棫鐨勭洃鎺т换鍔�
stopStateMonitoring(deviceId);
@@ -940,7 +941,7 @@
* 妫�鏌ュぇ杞︾姸鎬佸苟鍗忚皟鍗ц浆绔嬭澶囷紙鍐呴儴鏂规硶锛岀敱鐩戞帶绾跨▼璋冪敤锛�
*/
private void checkAndCoordinateState(DeviceConfig deviceConfig) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
List<String> alreadyCoordinated = coordinatedStates.get(deviceId);
if (alreadyCoordinated == null) {
alreadyCoordinated = new CopyOnWriteArrayList<>();
@@ -1228,7 +1229,7 @@
Map<String, Object> params,
Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
// 鍋滄鏃х殑鐩戞帶浠诲姟
handleStopIdleMonitor(deviceConfig);
@@ -1286,7 +1287,7 @@
* 鍋滄绌洪棽鐩戞帶
*/
private DevicePlcVO.OperationResult handleStopIdleMonitor(DeviceConfig deviceConfig) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
ScheduledFuture<?> future = idleMonitoringTasks.remove(deviceId);
if (future != null && !future.isCancelled()) {
future.cancel(false);
@@ -1307,7 +1308,7 @@
Map<String, Object> params,
Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
PlcClient plcClient = getPlcClient(deviceConfig);
if (plcClient == null) {
return DevicePlcVO.OperationResult.builder()
@@ -1506,8 +1507,8 @@
// 濡傛灉鏈夊璁惧浠诲姟涓婁笅鏂囷紝鍒欒褰曟湰娆ES涓嬪彂鐨勭幓鐠僆D鍒楄〃鍒颁笂涓嬫枃锛屼緵鍒嗘壒鏍¢獙浣跨敤
if (params != null) {
Object ctxObj = params.get("_taskContext");
- if (ctxObj instanceof com.mes.task.model.TaskExecutionContext) {
- com.mes.task.model.TaskExecutionContext ctx = (com.mes.task.model.TaskExecutionContext) ctxObj;
+ if (ctxObj instanceof TaskExecutionContext) {
+ TaskExecutionContext ctx = (TaskExecutionContext) ctxObj;
List<String> batchIds = new ArrayList<>();
for (GlassTaskInfo g : glasses) {
if (g != null && g.glassId != null && !g.glassId.isEmpty()) {
@@ -1552,7 +1553,7 @@
String taskType = isOutbound ? "鍑虹墖" : "杩涚墖";
String glassIds = glasses.stream()
.map(g -> g.glassId)
- .collect(java.util.stream.Collectors.joining(","));
+ .collect(Collectors.joining(","));
log.info("MES{}浠诲姟宸插垱寤�: deviceId={}, glassCount={}, glassIds=[{}], 璧峰浣嶇疆={}鏍�, 鐩爣浣嶇疆={}鏍�, 璺濈{}鏍�->{}鏍�, gotime={}ms({}绉�), cartime={}ms({}绉�)",
taskType, deviceId, glasses.size(), glassIds,
firstGlass.startPosition, firstGlass.targetPosition,
@@ -1700,7 +1701,7 @@
*/
private Integer getCurrentPosition(DeviceConfig deviceConfig, Map<String, Object> logicParams) {
// 浠庣姸鎬佺鐞嗗櫒鑾峰彇
- VehicleStatus status = statusManager.getVehicleStatus(deviceConfig.getDeviceId());
+ VehicleStatus status = statusManager.getVehicleStatus(String.valueOf(deviceConfig.getId()));
if (status != null && status.getCurrentPosition() != null) {
return status.getCurrentPosition().getPositionValue();
}
@@ -1791,7 +1792,7 @@
Map<String, Object> params,
Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
// 鍋滄鏃х殑鐩戞帶浠诲姟
handleStopTaskMonitor(deviceConfig);
@@ -1832,7 +1833,7 @@
MesTaskInfo taskInfo,
Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
PlcClient plcClient = getPlcClient(deviceConfig);
if (plcClient == null) {
return;
@@ -1886,7 +1887,7 @@
if (taskInfo.brokenGlassIndices != null && taskInfo.brokenGlassIndices.contains(i)) {
updateStateIfNeeded(deviceConfig, plcClient, stateValues, stateField, 8, taskInfo);
log.info("鐜荤拑鏍囪涓虹牬鎹�: deviceId={}, stateField={}, glassIndex={}",
- deviceConfig.getDeviceId(), stateField, i);
+ String.valueOf(deviceConfig.getId()), stateField, i);
continue;
}
@@ -1894,7 +1895,7 @@
if (elapsed >= state3TimeoutTime && (currentState == null || currentState < 2)) {
updateStateIfNeeded(deviceConfig, plcClient, stateValues, stateField, 3, taskInfo);
log.warn("浠诲姟瓒呮椂鏈畬鎴�: deviceId={}, stateField={}, elapsed={}ms, expectedTime={}ms",
- deviceConfig.getDeviceId(), stateField, elapsed, state2Time);
+ String.valueOf(deviceConfig.getId()), stateField, elapsed, state2Time);
continue;
}
@@ -1971,7 +1972,7 @@
// 娉ㄦ剰锛氬鏋滃綋鍓峴tate宸茬粡鏄�3锛堟湭瀹屾垚锛夋垨8锛堢牬鎹燂級锛屼笉鍐嶆洿鏂�
if (currentState != null && (currentState == 3 || currentState == 8)) {
log.debug("浠诲姟鐘舵�佸凡涓哄紓甯哥姸鎬侊紝涓嶅啀鏇存柊: deviceId={}, stateField={}, currentState={}, targetState={}",
- deviceConfig.getDeviceId(), stateField, currentState, targetState);
+ String.valueOf(deviceConfig.getId()), stateField, currentState, targetState);
return false;
}
@@ -1983,12 +1984,12 @@
plcClient.writeData(payload);
log.info("浠诲姟鐘舵�佸凡鏇存柊鍒癙LC: deviceId={}, stateField={}, currentState={}, targetState={}",
- deviceConfig.getDeviceId(), stateField, currentState, targetState);
+ String.valueOf(deviceConfig.getId()), stateField, currentState, targetState);
// 杩斿洖true琛ㄧず鐘舵�佸彂鐢熶簡鍙樺寲
return true;
} catch (Exception e) {
log.error("鍐欏叆PLC state瀛楁澶辫触: deviceId={}, stateField={}, targetState={}, error={}",
- deviceConfig.getDeviceId(), stateField, targetState, e.getMessage());
+ String.valueOf(deviceConfig.getId()), stateField, targetState, e.getMessage());
return false;
}
}
@@ -2066,11 +2067,11 @@
.map(g -> g.glassId)
.collect(java.util.stream.Collectors.joining(","));
log.info("宸茬粰MES姹囨姤({}浠诲姟): deviceId={}, glassCount={}, glassIds=[{}]",
- taskType, deviceConfig.getDeviceId(), taskInfo.glasses.size(), glassIds);
+ taskType, String.valueOf(deviceConfig.getId()), taskInfo.glasses.size(), glassIds);
// 澶氳澶囦换鍔″満鏅笅锛屼笉鍦ㄨ繖閲岄樆濉炵瓑寰匨ES纭锛岀敱浠诲姟寮曟搸瀹氭椂璋冪敤checkMesConfirm
} catch (Exception e) {
- log.error("缁橫ES姹囨姤寮傚父: deviceId={}", deviceConfig.getDeviceId(), e);
+ log.error("缁橫ES姹囨姤寮傚父: deviceId={}", String.valueOf(deviceConfig.getId()), e);
}
}
@@ -2081,7 +2082,7 @@
public DevicePlcVO.OperationResult checkMesConfirm(DeviceConfig deviceConfig,
Map<String, Object> params,
Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
PlcClient plcClient = getPlcClient(deviceConfig);
if (plcClient == null) {
return DevicePlcVO.OperationResult.builder()
@@ -2166,9 +2167,9 @@
} catch (Exception e) {
log.warn("MES纭瓒呮椂鏃舵竻绌轰换鍔$姸鎬佸け璐�: deviceId={}, error={}", deviceId, e.getMessage());
}
- statusManager.updateVehicleStatus(deviceConfig.getDeviceId(), VehicleState.ERROR);
- statusManager.clearVehicleTask(deviceConfig.getDeviceId());
- currentTasks.remove(deviceConfig.getDeviceId());
+ statusManager.updateVehicleStatus(String.valueOf(deviceConfig.getId()), VehicleState.ERROR);
+ statusManager.clearVehicleTask(String.valueOf(deviceConfig.getId()));
+ currentTasks.remove(String.valueOf(deviceConfig.getId()));
handleStopTaskMonitor(deviceConfig);
return DevicePlcVO.OperationResult.builder()
@@ -2195,11 +2196,11 @@
// 浠诲姟瀹屾垚锛屾仮澶嶄负绌洪棽鐘舵��
statusManager.updateVehicleStatus(
- deviceConfig.getDeviceId(), VehicleState.IDLE);
- statusManager.clearVehicleTask(deviceConfig.getDeviceId());
+ String.valueOf(deviceConfig.getId()), VehicleState.IDLE);
+ statusManager.clearVehicleTask(String.valueOf(deviceConfig.getId()));
// 绉婚櫎浠诲姟璁板綍锛堝鏋滄湁锛�
- currentTasks.remove(deviceConfig.getDeviceId());
+ currentTasks.remove(String.valueOf(deviceConfig.getId()));
// 鍋滄浠诲姟鐩戞帶
handleStopTaskMonitor(deviceConfig);
@@ -2209,7 +2210,7 @@
payload.put("plcRequest", 1);
plcClient.writeData(payload);
- log.info("MES浠诲姟宸茬‘璁ゅ畬鎴�: deviceId={}", deviceConfig.getDeviceId());
+ log.info("MES浠诲姟宸茬‘璁ゅ畬鎴�: deviceId={}", String.valueOf(deviceConfig.getId()));
String taskType = (taskInfo != null && taskInfo.isOutbound) ? "鍑虹墖" : "杩涚墖";
return DevicePlcVO.OperationResult.builder()
.success(true)
@@ -2233,7 +2234,7 @@
.data(data)
.build();
} catch (Exception e) {
- log.error("妫�鏌ES纭鐘舵�佸紓甯�: deviceId={}", deviceConfig.getDeviceId(), e);
+ log.error("妫�鏌ES纭鐘舵�佸紓甯�: deviceId={}", String.valueOf(deviceConfig.getId()), e);
return DevicePlcVO.OperationResult.builder()
.success(false)
.message("妫�鏌ES纭鐘舵�佸紓甯�: " + e.getMessage())
@@ -2249,7 +2250,7 @@
private DevicePlcVO.OperationResult handleMarkBroken(DeviceConfig deviceConfig,
Map<String, Object> params,
Map<String, Object> logicParams) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
MesTaskInfo taskInfo = currentTasks.get(deviceId);
if (taskInfo == null) {
return DevicePlcVO.OperationResult.builder()
@@ -2341,7 +2342,7 @@
payload.put("plcReport", 0);
plcClient.writeData(payload);
} catch (Exception e) {
- log.error("娓呯┖浠诲姟鐘舵�佸紓甯�: deviceId={}", deviceConfig.getDeviceId(), e);
+ log.error("娓呯┖浠诲姟鐘舵�佸紓甯�: deviceId={}", String.valueOf(deviceConfig.getId()), e);
}
}
@@ -2349,7 +2350,7 @@
* 鍋滄浠诲姟鐩戞帶
*/
private DevicePlcVO.OperationResult handleStopTaskMonitor(DeviceConfig deviceConfig) {
- String deviceId = deviceConfig.getDeviceId();
+ String deviceId = String.valueOf(deviceConfig.getId());
ScheduledFuture<?> future = taskMonitoringTasks.remove(deviceId);
if (future != null && !future.isCancelled()) {
future.cancel(false);
--
Gitblit v1.8.0