From 3c7d672fb7d6c34742fb7da6f66616ccf3be2c9a Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 08 十一月 2024 14:50:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java |  118 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 107 insertions(+), 11 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index 165ff7f..5d92126 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -1,11 +1,23 @@
 package com.mes.job;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
+import com.kangaroohy.milo.service.MiloService;
+import com.mes.common.config.Const;
+import com.mes.edgglasstaskqueueinfo.entity.EdgGlassTaskQueueInfo;
+import com.mes.edgglasstaskqueueinfo.service.EdgGlassTaskQueueInfoService;
+import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.service.EdgStorageDeviceTaskService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
-import java.util.Arrays;
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @Author : zhoush
@@ -16,14 +28,98 @@
 @Slf4j
 public class OpcCacheGlassTask {
 
-//    @Autowired
-//    MiloService miloService;
-//
-//    @Autowired
-//    SubscriptionCallback cacheGlassSubscriptionCallback;
-//
-//    @Scheduled(fixedDelay = Long.MAX_VALUE)
-//    public void startOpcTask() throws Exception {
-//        miloService.subscriptionFromOpcUa(Arrays.asList("my.device.x1", "my.device.x2"), cacheGlassSubscriptionCallback);
-//    }
+    private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
+
+    private static final String EDG_STORAGE_DEVICE_TWO_TASK = "edg_storage_device_two_task";
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+
+    @Resource(name = "cacheGlassStartCallback")
+    SubscriptionCallback cacheGlassStartCallback;
+
+    @Resource(name = "cacheGlassTestCallback")
+    SubscriptionCallback cacheGlassTestCallback;
+
+    @Resource
+    EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+    @Resource
+    EdgGlassTaskQueueInfoService edgGlassTaskQueueInfoService;
+    private int sum = 0;
+
+    @Scheduled(fixedDelay = 10)
+    public void startOpcTask() throws Exception {
+//        miloService.subscriptionFromOpcUa(Arrays.asList("C101-WL.S7-1200.plc_task_state", "D101-WL.S7-1200.plc_task_state"), cacheGlassStartCallback);
+//        miloService.subscriptionFromOpcUa(Arrays.asList("mes.dec.edg_storage_device_one_task[1].task_state", "D101-WL.S7-1200.plc_task_state"), cacheGlassTestCallback);
+//        log.info("--------------------s---------------------------");
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage("edg_storage_device_one_task");
+        try {
+            if (task == null) {
+                log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
+                return;
+            }
+            if (task.getTaskState() == sum) {
+                return;
+            }
+            sum = task.getTaskState();
+            task.setTaskRunning(sum);
+            log.info("褰撳墠绗瑊}娆℃墽琛�", task.getTaskRunning());
+//            task.setTaskState(task.getTaskRunning());
+            edgStorageDeviceTaskService.updateTaskMessage("edg_storage_device_one_task", task);
+        } catch (Exception e) {
+            log.info("{}", e.getMessage());
+        }
+    }
+
+//    mesControlWord glassId
+//    width height
+//    thickness             filmRemove
+//    deviceControlWord             deviceWarnState
+
+    //    @Scheduled(fixedDelay = 1000)
+    public void edgOpcTask() throws Exception {
+        ReadWriteEntity controlEntity = miloService.readFromOpcUa("A001-MB1.dev.deviceControlWord");
+        String deviceControlWord = (String) controlEntity.getValue();
+        if ("0".equals(deviceControlWord)) {
+            ReadWriteEntity messageEntity = miloService.readFromOpcUa("A001-MB1.dev.mesControlWord");
+            String messageValue = (String) messageEntity.getValue();
+            if ("1".equals(messageValue)) {
+                List<ReadWriteEntity> list = new ArrayList<>();
+                list.add(generateReadWriteEntity("A001-MB1.dev.mesControlWord", 0));
+                miloService.writeToOpcWord(list);
+            }
+            log.info("褰撳墠鏈敹鍒扮(杈规満鐨勮姹備换鍔�");
+            return;
+        }
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_ONE_TASK);
+        String glassId = task.getGlassId();
+        if (StringUtils.isBlank(glassId)) {
+            log.info("纾ㄨ竟鍓嶇殑鏋跺瓙娌℃湁鐜荤拑淇℃伅");
+            return;
+        }
+        //鑾峰彇纾ㄨ竟瀵瑰垪
+        EdgGlassTaskQueueInfo edgInfo = edgGlassTaskQueueInfoService.getOne(new LambdaQueryWrapper<EdgGlassTaskQueueInfo>()
+                .eq(EdgGlassTaskQueueInfo::getGlassId, glassId)
+                .eq(EdgGlassTaskQueueInfo::getState, Const.GLASS_STATE_NEW));
+        if (edgInfo == null) {
+            log.info("瀵瑰垪琛ㄤ腑鐨勭幓鐠僫d閿欒锛岃妫�鏌ユ暟鎹紝鐜荤拑id锛歿}", glassId);
+            return;
+        }
+        List<ReadWriteEntity> list = new ArrayList<>();
+        list.add(generateReadWriteEntity("A001-MB1.dev.mesControlWord", 1));
+        list.add(generateReadWriteEntity("A001-MB1.dev.glassId", glassId));
+        list.add(generateReadWriteEntity("A001-MB1.dev.width", edgInfo.getWidth()));
+        list.add(generateReadWriteEntity("A001-MB1.dev.height", edgInfo.getHeight()));
+        list.add(generateReadWriteEntity("A001-MB1.dev.thickness", edgInfo.getThickness()));
+        list.add(generateReadWriteEntity("A001-MB1.dev.filmRemove", 0));
+        miloService.writeToOpcWord(list);
+    }
+
+    private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
+        ReadWriteEntity readWriteEntity = new ReadWriteEntity();
+        readWriteEntity.setIdentifier(identifier);
+        readWriteEntity.setValue(value);
+        return readWriteEntity;
+    }
 }

--
Gitblit v1.8.0