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