From 9152c5394d4fd9d14d1a5fb9de9d441450b2bac6 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 20 十一月 2024 08:41:13 +0800
Subject: [PATCH] 1、卧理进出片订阅功能直接按订阅结果判断,订阅后查询数据库,可能造成数据重复读,任务重复执行问题 2、大理片笼新增任务表、任务历史表脚本 3、大理片笼进片任务功能开发已完成50%

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java |   70 +++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 19 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
index 076ad78..2284d1e 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageTask.java
@@ -3,10 +3,11 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
-import com.kangaroohy.milo.service.MiloService;
+import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.entity.BigStorageDTO;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
 import com.mes.bigstoragecageIntask.entity.BigStorageCageInTask;
 import com.mes.bigstoragecageIntask.service.BigStorageCageInTaskService;
 import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
@@ -17,20 +18,22 @@
 import com.mes.common.config.Const;
 import com.mes.damage.entity.Damage;
 import com.mes.damage.service.DamageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import com.mes.tools.service.BigStorageBaseService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -51,28 +54,39 @@
     private DamageService damageService;
 
     @Resource
+    private GlassInfoService glassInfoService;
+    @Resource
+    private BigStorageCageService bigStorageCageService;
+
+    @Resource
     private BigStorageBaseService baseService;
     @Resource
     private BigStorageCageInTaskService bigStorageBaseInTaskService;
 
-    @Autowired(required = false)
-    MiloService miloService;
+    @Value("${mes.glassGap}")
+    private Integer glassGap;
 
-    @Resource(name = "bigStorageStartCallback")
-    SubscriptionCallback bigStorageStartCallback;
+//    @Resource
+//    private BigStorageCage bigStorageBaseInTaskService;
+
+//    @Autowired(required = false)
+//    MiloService miloService;
+//
+//    @Resource(name = "bigStorageStartCallback")
+//    SubscriptionCallback bigStorageStartCallback;
 
 
-    @Scheduled(fixedDelay = Long.MAX_VALUE)
-    public void startOpcTask() throws Exception {
-        //璁惧涓�浜岀殑杩涚墖璇锋眰
-        miloService.subscriptionFromOpcUa(Arrays.asList("my.device01.x1", "my.device02.x1"), bigStorageStartCallback);
-    }
+//    @Scheduled(fixedDelay = Long.MAX_VALUE)
+//    public void startOpcTask() throws Exception {
+//        //璁惧涓�浜岀殑杩涚墖璇锋眰
+//        miloService.subscriptionFromOpcUa(Arrays.asList("my.device01.x1", "my.device02.x1"), bigStorageStartCallback);
+//    }
 
-    @Scheduled(fixedDelay = Long.MAX_VALUE)
-    public void outOpcTask() throws Exception {
-        //璁惧1鐨勫嚭鐗囪姹�
-        miloService.subscriptionFromOpcUa(Arrays.asList("my.device03.x1"), bigStorageStartCallback);
-    }
+//    @Scheduled(fixedDelay = Long.MAX_VALUE)
+//    public void outOpcTask() throws Exception {
+//        //璁惧1鐨勫嚭鐗囪姹�
+//        miloService.subscriptionFromOpcUa(Arrays.asList("my.device03.x1"), bigStorageStartCallback);
+//    }
 
 
     @Scheduled(fixedDelay = 200)
@@ -82,7 +96,25 @@
         if (CollectionUtils.isEmpty(inTaskList)) {
             log.info("褰撳墠澶ц溅鏃犺繘鐗囦换鍔★紝缁撴潫鏈湴瀹氭椂浠诲姟");
         }
-        inTaskList
+        List<String> glassIdList = inTaskList.stream().map(BigStorageCageInTask::getGlassId).collect(Collectors.toList());
+        Map<String, List<BigStorageCageInTask>> taskMap = inTaskList.stream().collect(Collectors.groupingBy(BigStorageCageInTask::getGlassId));
+        List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, glassIdList));
+        //todo:璁$畻鐩爣鏍煎瓙
+        for (GlassInfo info : glassInfoList) {
+            //鑾峰彇鐩爣鏍煎瓙淇℃伅
+            BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
+//            涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>()
+                    .set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+                    .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
+            BigStorageCageInTask task = taskMap.get(info.getGlassId()).get(0);
+            task.setTargetSlot(bigStorageDTO.getSlot());
+            task.setGlassId(info.getGlassId());
+            task.setTaskRunning(Const.BIG_STORAGE_TASK_RUNNING);
+            bigStorageBaseInTaskService.updateTaskMessage("", task);
+            //todo:瀛樻斁鍘嗗彶浠诲姟
+        }
+
     }
 
 

--
Gitblit v1.8.0