From 21092d29c1c0cd1003bb32bf91fddae265a8baea Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 20 十一月 2024 08:41:11 +0800
Subject: [PATCH] 1、卧理单条磨边线对接完成,另一条线等待IP确认 2、大理片笼提交部分代码

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java |  124 +++++++++++++++++++++--------------------
 1 files changed, 64 insertions(+), 60 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 5d92126..e57b73d 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,12 +1,15 @@
 package com.mes.job;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 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.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.opctask.entity.EdgStorageDeviceTask;
 import com.mes.opctask.service.EdgStorageDeviceTaskService;
 import lombok.extern.slf4j.Slf4j;
@@ -17,6 +20,7 @@
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
 
 /**
@@ -46,80 +50,80 @@
     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());
-        }
+    @Resource
+    GlassInfoService glassInfoService;
+
+    private String glassIdOne = "";
+    private String glassIdTwo = "";
+
+    @Scheduled(fixedDelay = Long.MAX_VALUE)
+    public void startOneOpcTask() throws Exception {
+        miloService.subscriptionFromOpcUa(Arrays.asList("mes.WL1.edg_storage_device_one_task[1].task_state"), cacheGlassStartCallback);
     }
 
-//    mesControlWord glassId
-//    width height
-//    thickness             filmRemove
-//    deviceControlWord             deviceWarnState
+    @Scheduled(fixedDelay = Long.MAX_VALUE)
+    public void startTwoOpcTask() throws Exception {
+        miloService.subscriptionFromOpcUa(Arrays.asList("mes.WL2.edg_storage_device_two_task[1].task_state"), cacheGlassStartCallback);
+    }
 
-    //    @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;
-        }
+    @Scheduled(fixedDelay = 1000)
+    public void edgOneOpcTask() throws Exception {
         EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_ONE_TASK);
         String glassId = task.getGlassId();
-        if (StringUtils.isBlank(glassId)) {
-            log.info("纾ㄨ竟鍓嶇殑鏋跺瓙娌℃湁鐜荤拑淇℃伅");
+        if (StringUtils.isBlank(glassId) || glassId.equals(glassIdOne)) {
+            log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 1);
             return;
         }
-        //鑾峰彇纾ㄨ竟瀵瑰垪
-        EdgGlassTaskQueueInfo edgInfo = edgGlassTaskQueueInfoService.getOne(new LambdaQueryWrapper<EdgGlassTaskQueueInfo>()
-                .eq(EdgGlassTaskQueueInfo::getGlassId, glassId)
-                .eq(EdgGlassTaskQueueInfo::getState, Const.GLASS_STATE_NEW));
-        if (edgInfo == null) {
+        edgTaskChild(glassId, 1);
+    }
+
+    @Scheduled(fixedDelay = 1000)
+    public void edgTwoOpcTask() throws Exception {
+        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(EDG_STORAGE_DEVICE_TWO_TASK);
+        String glassId = task.getGlassId();
+        if (StringUtils.isBlank(glassId) || glassId.equals(glassIdTwo)) {
+            log.info("{}鍙风嚎纾ㄨ竟鍓嶇幓鐠冩湭灏变綅锛岀粨鏉熸湰娆′换鍔�", 2);
+            return;
+        }
+        edgTaskChild(glassId, 2);
+    }
+
+    private void edgTaskChild(String glassId, int cell) throws Exception {
+        GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+        if (glassInfo == null) {
             log.info("瀵瑰垪琛ㄤ腑鐨勭幓鐠僫d閿欒锛岃妫�鏌ユ暟鎹紝鐜荤拑id锛歿}", glassId);
             return;
         }
+        String toEndingId = glassInfo.getTemperingLayoutId() + "" + glassInfo.getTemperingFeedSequence();
         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);
+        list.add(generateReadWriteEntity("PLC.MB" + cell + ".mesControl", true));
+        list.add(generateReadWriteEntity("PLC.MB" + cell + ".glassId", Integer.parseInt(toEndingId)));
+        list.add(generateReadWriteEntity("PLC.MB" + cell + ".toEdingId", Integer.parseInt(toEndingId)));
+        list.add(generateReadWriteEntity("PLC.MB" + cell + ".width", (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+        list.add(generateReadWriteEntity("PLC.MB" + cell + ".height", (int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+
+        miloService.writeToOpcUa(list);
+        miloService.writeToOpcWord(generateReadWriteEntity("PLC.MB" + cell + ".thickness", (int) glassInfo.getThickness() * 10));
+        //淇敼纾ㄨ竟瀵瑰垪涓殑纾ㄨ竟绾胯矾鍙婄姸鎬�
+        edgGlassTaskQueueInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskQueueInfo>()
+                .set(EdgGlassTaskQueueInfo::getLine, cell)
+                .set(EdgGlassTaskQueueInfo::getState, 1)
+                .eq(EdgGlassTaskQueueInfo::getGlassId, glassId)
+                .eq(EdgGlassTaskQueueInfo::getState, Const.GLASS_STATE_NEW));
+        if (cell == 1) {
+            glassIdOne = glassId;
+        } else {
+            glassIdTwo = glassId;
+        }
+
     }
 
     private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {
-        ReadWriteEntity readWriteEntity = new ReadWriteEntity();
-        readWriteEntity.setIdentifier(identifier);
-        readWriteEntity.setValue(value);
-        return readWriteEntity;
+        return ReadWriteEntity.builder()
+                .identifier(identifier)
+                //Kep涓槸Long绫诲瀷锛屽嵆锛欼nt32锛孞ava涓殑int绫诲瀷
+                .value(value)
+                .build();
     }
 }

--
Gitblit v1.8.0