From 1566e4c7604d85737ea67fe6757e71b8185fa48e Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期二, 18 十一月 2025 16:52:42 +0800
Subject: [PATCH] 添加设备管理页面,添加测试设备任务监控页面
---
mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceInteractionServiceImpl.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 55 insertions(+), 0 deletions(-)
diff --git a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceInteractionServiceImpl.java b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceInteractionServiceImpl.java
index 9c6fb3f..73cb33a 100644
--- a/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceInteractionServiceImpl.java
+++ b/mes-processes/mes-plcSend/src/main/java/com/mes/device/service/impl/DeviceInteractionServiceImpl.java
@@ -1,6 +1,10 @@
package com.mes.device.service.impl;
+import com.mes.device.entity.DeviceConfig;
+import com.mes.interaction.DeviceLogicHandler;
+import com.mes.interaction.DeviceLogicHandlerFactory;
import com.mes.device.request.DeviceGlassFeedRequest;
+import com.mes.device.service.DeviceConfigService;
import com.mes.device.service.DeviceControlProfileService;
import com.mes.device.service.DeviceInteractionService;
import com.mes.device.service.DevicePlcOperationService;
@@ -25,9 +29,30 @@
private final DeviceControlProfileService controlProfileService;
private final DevicePlcOperationService devicePlcOperationService;
+ private final DeviceConfigService deviceConfigService;
+ private final DeviceLogicHandlerFactory handlerFactory;
+ /**
+ * 鎵ц鐜荤拑涓婃枡鍐欏叆锛堝吋瀹规棫鎺ュ彛锛屼繚鐣欏師鏈夐�昏緫锛�
+ */
@Override
public DevicePlcVO.OperationResult feedGlass(DeviceGlassFeedRequest request) {
+ // 浼樺厛浣跨敤鏂扮殑澶勭悊鍣ㄦ灦鏋�
+ DeviceConfig deviceConfig = deviceConfigService.getDeviceById(request.getDeviceId());
+ if (deviceConfig != null) {
+ DeviceLogicHandler handler = handlerFactory.getHandler(deviceConfig.getDeviceType());
+ if (handler != null) {
+ // 浣跨敤鏂版灦鏋勬墽琛�
+ Map<String, Object> params = new HashMap<>();
+ params.put("glassIds", request.getGlassIds());
+ params.put("positionCode", request.getPositionCode());
+ params.put("positionValue", request.getPositionValue());
+ params.put("triggerRequest", request.getTriggerRequest());
+ return handler.execute(deviceConfig, "feedGlass", params);
+ }
+ }
+
+ // 闄嶇骇鍒板師鏈夐�昏緫锛堝吋瀹规棫浠g爜锛�
DeviceControlProfile profile = controlProfileService.getProfile(request.getDeviceId());
Map<String, Object> payload = buildGlassPayload(profile, request);
String opName = "鐜荤拑涓婃枡";
@@ -37,6 +62,36 @@
return devicePlcOperationService.writeFields(request.getDeviceId(), payload, opName);
}
+ /**
+ * 鎵ц璁惧閫昏緫鎿嶄綔锛堟柊鎺ュ彛锛屼娇鐢ㄥ鐞嗗櫒鏋舵瀯锛�
+ */
+ @Override
+ public DevicePlcVO.OperationResult executeOperation(Long deviceId, String operation, Map<String, Object> params) {
+ // 鑾峰彇璁惧閰嶇疆
+ DeviceConfig deviceConfig = deviceConfigService.getDeviceById(deviceId);
+ if (deviceConfig == null) {
+ return DevicePlcVO.OperationResult.builder()
+ .success(false)
+ .message("璁惧涓嶅瓨鍦�: " + deviceId)
+ .build();
+ }
+
+ // 鑾峰彇瀵瑰簲鐨勫鐞嗗櫒
+ DeviceLogicHandler handler = handlerFactory.getHandler(deviceConfig.getDeviceType());
+ if (handler == null) {
+ return DevicePlcVO.OperationResult.builder()
+ .success(false)
+ .message("涓嶆敮鎸佺殑璁惧绫诲瀷: " + deviceConfig.getDeviceType())
+ .build();
+ }
+
+ // 鎵ц鎿嶄綔
+ return handler.execute(deviceConfig, operation, params != null ? params : new HashMap<>());
+ }
+
+ /**
+ * 鏋勫缓鐜荤拑涓婃枡鏁版嵁锛堝吋瀹规棫閫昏緫锛�
+ */
private Map<String, Object> buildGlassPayload(DeviceControlProfile profile, DeviceGlassFeedRequest request) {
if (CollectionUtils.isEmpty(profile.getGlassSlots())) {
throw new IllegalStateException("璁惧鏈厤缃幓鐠冩Ы浣嶄俊鎭�");
--
Gitblit v1.8.0