From 4e938e0868dd16b682d9f4ce24aadcd93781b7cb Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期六, 26 十月 2024 16:46:53 +0800 Subject: [PATCH] * --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 35 +++++++++++++++++++++++++++-------- 1 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index 221f89c..3a2bf7e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -9,6 +9,7 @@ import com.zy.asrs.service.BasDevpService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.utils.SortTheExecutionOfTheCarUtil; +import com.zy.asrs.utils.TimeCalculatorUtils; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.*; @@ -20,6 +21,7 @@ import com.zy.core.thread.RgvThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -46,6 +48,9 @@ private BasCircularShuttleService basCircularShuttleService; @Autowired private WrkMastService wrkMastService; + + @Value("${constant-parameters.perimeter}") + private Long perimeter; /** * 绔欑偣浠诲姟妫�娴� 鏇存柊灏忚溅浣嶇疆淇℃伅 */ @@ -85,9 +90,12 @@ rgvPosition.add(rgvProtocol.getRgvPos()); rgvPositionList.add(rgvPosition); } - Integer rgvNo = SortTheExecutionOfTheCarUtil.LatelyAndGreaterThan(rgvPositionList, sitePosition); + Integer rgvNo = SortTheExecutionOfTheCarUtil.LatelyAndGreaterThan(rgvPositionList, sitePosition,perimeter); List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true)); + if (basCircularShuttleList.get(0).getRgvNo().equals(rgvNo)){ + return; + } int[][] ints = new int[basCircularShuttleList.size()][2]; for (BasCircularShuttle basCircularShuttle : basCircularShuttleList){ @@ -166,6 +174,15 @@ */ public synchronized void DevpTaskNoRun() { try{ + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 1L).orderBy("modi_time",true)); + if (wrkMasts.isEmpty()){ + return; + } + long differenceInSeconds = TimeCalculatorUtils.differenceInSeconds(wrkMasts.get(0).getModiTime(), new Date()); + if (differenceInSeconds<=5){ + return; + } + BasCircularShuttle basCircularShuttle = basCircularShuttleService.selectOne(new EntityWrapper<BasCircularShuttle>().eq("rgv_id", 1)); RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, basCircularShuttle.getRgvNo()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); @@ -173,7 +190,7 @@ return; } List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",false)); - Integer devNo = SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPositions, rgvProtocol.getRgvPos()); + Integer devNo = SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPositions, rgvProtocol.getRgvPos(),perimeter); BasDevpPosition[] basDevpPositionsList = SortTheExecutionOfTheCarUtil.devpNoSort(basDevpPositions, devNo); BasDevpPosition[] basDevpPositionsListUN = SortTheExecutionOfTheCarUtil.devpNoSortUN(basDevpPositionsList); List<List<WrkMast>> wrkMastLists = getWrkMastLists(basDevpPositionsListUN); @@ -191,12 +208,14 @@ List<WrkMast> wrkMastlistA = new ArrayList<>(); List<WrkMast> wrkMastlistB = new ArrayList<>(); for (BasDevpPosition basDevpPosition : basDevpPositionsListUN){ - WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts",1L)); - if (!Cools.isEmpty(wrkMast)){ - if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN,wrkMast.getSourceStaNo(),wrkMast.getStaNo())){ - wrkMastlistA.add(wrkMast); - } else { - wrkMastlistB.add(wrkMast); + List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no", basDevpPosition.getDevNo()).eq("wrk_sts", 1L).orderBy("modi_time",true)); + for (WrkMast wrkMast:wrkMastList){ + if (!Cools.isEmpty(wrkMast)){ + if (SortTheExecutionOfTheCarUtil.devpNoSortbj(basDevpPositionsListUN,wrkMast.getSourceStaNo(),wrkMast.getStaNo())){ + wrkMastlistA.add(wrkMast); + } else { + wrkMastlistB.add(wrkMast); + } } } } -- Gitblit v1.9.1