From 09402133807b1e774e658a13ad365b2e6efca25b Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期一, 21 四月 2025 16:06:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java
new file mode 100644
index 0000000..cf7b7c0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java
@@ -0,0 +1,77 @@
+package com.mes.job;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/10/10 8:05
+ * @Description:
+ */
+@Component
+@Slf4j
+public class OpcEdgTask {
+
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Resource
+    GlassInfoService glassInfoService;
+
+
+    @Scheduled(fixedDelay = 2000)
+    public void startOneEdgTask() throws Exception {
+        startEdgTaskChild("01");
+    }
+
+    @Scheduled(fixedDelay = 2000)
+    public void startTwoEdgTask() throws Exception {
+        startEdgTaskChild("02");
+    }
+
+    private void startEdgTaskChild(String cell) throws Exception {
+        ReadWriteEntity request = miloService.readFromOpcUa("MB04.MB04.request" + cell);
+        if (null == request || "0".equals(request.getValue() + "")) {
+            log.info("鏈敹鍒扮幓鐠冭姹傦紝缁撴潫鏈浠诲姟");
+            return;
+        }
+        ReadWriteEntity glassIdEntity = miloService.readFromOpcUa("MB04.MB04.plc_glass_id_" + cell);
+
+        if (null == glassIdEntity || StringUtils.isEmpty(glassIdEntity.getValue() + "")) {
+            log.info("鏈夎姹備絾鐜荤拑id涓虹┖锛岀粨鏉熸湰娆′换鍔�");
+            return;
+        }
+        String glassId = glassIdEntity.getValue() + "";
+        log.info("鑾峰彇鍒皗}绾跨殑鐜荤拑id:{}", cell, glassId);
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+
+        List<ReadWriteEntity> ualist = new ArrayList<>();
+        miloService.writeToOpcUa(generateReadWriteEntity("MB04.MB04.mes_glass_Id_" + cell, glassId));
+        ualist.add(generateReadWriteEntity("MB04.MB04.width" + cell, (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+        ualist.add(generateReadWriteEntity("MB04.MB04.height" + cell, (int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+        ualist.add(generateReadWriteEntity("MB04.MB04.thickness" + cell, (int) glassInfo.getThickness() * 10));
+        miloService.writeToOpcWord(ualist);
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
+    }
+
+}

--
Gitblit v1.8.0