From 7f42a1951c9aea0f03443c8b8f65b79df7168b36 Mon Sep 17 00:00:00 2001 From: zc <zc@123> Date: 星期一, 05 五月 2025 09:12:53 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java | 7 ++- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 20 +++++++--- src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java | 36 ++++++++++++++++++ src/main/java/com/zy/common/service/CommonService.java | 4 +- 4 files changed, 57 insertions(+), 10 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 27bc4e9..9215770 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -36,13 +36,11 @@ import com.zy.core.thread.impl.FyDevpThread; import com.zy.core.thread.impl.NormalLedThread; import com.zy.system.service.ConfigService; -import io.swagger.models.auth.In; 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 java.io.IOException; import java.util.*; /** @@ -486,13 +484,22 @@ if (staProtocol == null) { continue; } - + List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("wrk_sts", WrkStsType.OUTBOUND_SHUTTLE_RUN.sts, WrkStsType.OUTBOUND_SHUTTLE_RUN_COMPLETE.sts).in("sta_no", 1013, 1024)); + if (wrkMastList != null && wrkMastList.size() >= 2) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃烦杩囷紝瀛樺湪2鏉″伐浣滄。", wrkMast.getWrkNo()); + continue; + } if (!staProtocol.isAutoing()) { - News.info("{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId()); + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屼笉鍦ㄨ嚜鍔ㄧ姸鎬�", wrkMast.getWrkNo(), staProtocol.getSiteId()); continue; } if (!isOutEnable(devpThread, wrkMast.getStaNo())) { - News.info("{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId()); + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}绔欑偣锛屾病鏈夊彲鍑轰俊鍙�", wrkMast.getWrkNo(), staProtocol.getSiteId()); + continue; + } + StaProtocol staProtocol2 = station.get(wrkMast.getStaNo() + 2); + if (staProtocol2.isLoading()) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿222", wrkMast.getWrkNo(), wrkMast.getStaNo() + 2); continue; } String locNo = "1200301"; @@ -502,7 +509,7 @@ boolean dispatchShuttle = shuttleDispatchUtils.searchDispatchShuttleNoLift(wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), locNo, "TRANSPORT_DEVP"); if (!dispatchShuttle) { - News.info("{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo()); + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛岃皟搴﹀皬杞﹀け璐�", wrkMast.getWrkNo()); continue; } WrkMast wrkMast2 = wrkMastService.selectByMainWrkNo(wrkMast.getWrkNo()); @@ -1471,6 +1478,7 @@ continue;//灏忚溅鏈埌杈剧洰鏍囧眰 } wrkMast.setWrkSts(WrkStsType.MOVE_OUT_LIFT_COMPLETE.sts); + wrkMast.setLiftNo(null); shuttleThread.setSyncTaskNo(0); } else if (wrkMast.getWrkSts() == WrkStsType.MOVE_SHUTTLE.sts) { //310.灏忚溅绉诲姩涓� ==> 311.灏忚溅绉诲姩瀹屾垚 diff --git a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java index 1013d93..8b296a1 100644 --- a/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/NoLiftOutServiceImpl.java @@ -34,6 +34,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; @Slf4j @Service("noLiftOutService") @@ -65,6 +66,7 @@ /** * 浠庢病鏈夋彁鍗囨満渚у嚭搴擄紝鏈変袱绉嶆儏鍐碉紝涓�绉�1锛�5搴撳埌鍚屽眰锛屼竴绉嶉潪1锛�5搴撳埌1锛�5锛屽垯闇�瑕佹彁鍗囨満 + * * @param wrkMast */ public void shuttleMoveExecute(WrkMast wrkMast, Integer staNo, Integer lev) { @@ -744,6 +746,23 @@ return false; } + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + Map<Integer, StaProtocol> station = devpThread.getStation(); + StaProtocol staProtocol2 = null; + if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) { + staProtocol2 = station.get(1015); + if (staProtocol2.isLoading()) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12432", wrkMast.getWrkNo(), 1015); + return false; + } + } else { + staProtocol2 = station.get(1026); + if (staProtocol2.isLoading()) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12341", wrkMast.getWrkNo(), 1026); + return false; + } + } + ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(shuttleProtocol.getShuttleNo()); // 鍥涘悜绌挎杞︾紪鍙� assignCommand.setTaskMode(ShuttleTaskModeType.MOVE_LOC_NO.id);//灏忚溅绉诲簱浠诲姟 @@ -884,6 +903,23 @@ News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}灏忚溅锛屽皬杞﹀繖纰屼腑锛岀姝㈡淳鍙�", wrkMast.getWrkNo(), shuttleProtocol.getShuttleNo()); return false; } + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + Map<Integer, StaProtocol> station = devpThread.getStation(); + StaProtocol staProtocol2 = null; + if (Utils.getLev(shuttleThread.getStatus().getCurrentLocNo()) == 1) { + staProtocol2 = station.get(1015); + if (staProtocol2.isLoading()) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12432", wrkMast.getWrkNo(), 1015); + return false; + } + } else { + staProtocol2 = station.get(1026); + if (staProtocol2.isLoading()) { + News.taskInfo(wrkMast.getWrkNo(), "{}浠诲姟锛寋}鍙疯緭閫佺嚎鏈夌墿12341", wrkMast.getWrkNo(), 1026); + return false; + } + } + if (!shuttleProtocol.getCurrentLocNo().equals(wrkMast.getSourceLocNo())) { return false; diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 6807dbb..3695334 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -175,7 +175,7 @@ } //鍏ュ簱浠诲姟 - public boolean createInTask(CreateInTaskParam param) { + public synchronized boolean createInTask(CreateInTaskParam param) { Date now = new Date(); LocMast locMast = locMastService.queryByLoc(param.getLocNo()); if (null == locMast) { @@ -220,7 +220,7 @@ } //鍑哄簱浠诲姟 - public boolean createOutTask(CreateOutTaskParam param) { + public synchronized boolean createOutTask(CreateOutTaskParam param) { Date now = new Date(); LocMast locMast = locMastService.queryByLoc(param.getSourceLocNo()); if (null == locMast) { diff --git a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java index 10bd959..68a2f30 100644 --- a/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java +++ b/src/main/java/com/zy/core/dispatcher/ShuttleDispatchUtils.java @@ -30,7 +30,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.rmi.CORBA.Util; import java.util.*; /** @@ -363,7 +362,7 @@ /** * 璋冨害杞﹁締 */ - public boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) { + public synchronized boolean searchDispatchShuttleNoLift(Integer wrkNo, String sourceLocNo, String locNo, String flag) { ArrayList<ShuttleThread> diffLev = new ArrayList<>();//涓嶅悓妤煎眰鐨勭┛姊溅 int lev1 = 0; boolean tongLev = false; @@ -389,6 +388,10 @@ continue;//灏忚溅琚鐢� } } + WrkMast wrkMast = wrkMastService.selectByShuttleNo(basShuttle.getShuttleNo()); + if(wrkMast!=null){ + continue; + } diffLev.add(shuttleThread); if (lev1 != 0) { if (lev1 == Utils.getLev(shuttleProtocol.getCurrentLocNo())) { -- Gitblit v1.9.1