From f46e6a76cee1e4f231fab74981a87947bf84677d Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期二, 15 十月 2024 11:02:47 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java | 65 ++++++++++++++++++++++++++++---- 1 files changed, 57 insertions(+), 8 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java index d0725bc..5390f51 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/command/ShuttleCommandService.java @@ -7,24 +7,20 @@ import com.zy.asrs.wcs.common.ExecuteSupport; import com.zy.asrs.wcs.core.action.LiftAction; import com.zy.asrs.wcs.core.action.ShuttleAction; -import com.zy.asrs.wcs.core.entity.BasShuttle; -import com.zy.asrs.wcs.core.entity.Loc; -import com.zy.asrs.wcs.core.entity.Task; +import com.zy.asrs.wcs.core.entity.*; import com.zy.asrs.wcs.core.model.NavigateNode; import com.zy.asrs.wcs.core.model.command.*; import com.zy.asrs.wcs.core.model.enums.*; -import com.zy.asrs.wcs.core.service.BasShuttleService; -import com.zy.asrs.wcs.core.service.LocService; -import com.zy.asrs.wcs.core.service.TaskService; +import com.zy.asrs.wcs.core.service.*; import com.zy.asrs.wcs.core.utils.*; import com.zy.asrs.wcs.rcs.News; import com.zy.asrs.wcs.rcs.cache.SlaveConnection; -import com.zy.asrs.wcs.core.entity.Motion; import com.zy.asrs.wcs.rcs.model.enums.ShuttleProtocolStatusType; import com.zy.asrs.wcs.rcs.model.enums.SlaveType; import com.zy.asrs.wcs.rcs.model.protocol.LiftProtocol; import com.zy.asrs.wcs.rcs.model.protocol.ShuttleProtocol; -import com.zy.asrs.wcs.core.service.MotionService; +import com.zy.asrs.wcs.rcs.model.protocol.StaProtocol; +import com.zy.asrs.wcs.rcs.thread.DevpThread; import com.zy.asrs.wcs.rcs.thread.LiftThread; import com.zy.asrs.wcs.rcs.thread.ShuttleThread; import lombok.extern.slf4j.Slf4j; @@ -60,6 +56,10 @@ private LiftAction liftAction; @Autowired private LiftDispatcher liftDispatcher; + @Autowired + private BasConveyorService basConveyorService; + @Autowired + private BasConveyorStaService basConveyorStaService; // 璁$畻 public Boolean accept(Motion motion) { @@ -92,6 +92,11 @@ return false; } + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskNo, motion.getTaskNo())); + if (task == null) { + return false; + } + ShuttleAssignCommand assignCommand = new ShuttleAssignCommand(); assignCommand.setShuttleNo(deviceNo); assignCommand.setTaskNo(motion.getTaskNo()); @@ -112,6 +117,48 @@ if (String.valueOf(shuttleProtocol.getCurrentCode()).equals(locService.getOne(new LambdaQueryWrapper<Loc>() .eq(Loc::getLocNo, motion.getTarget()) .eq(Loc::getHostId, motion.getHostId())).getCode())) { + return true; + } + shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread); + shuttleTaskModeType = ShuttleTaskModeType.SHUTTLE_MOVE_LOC_NO; + break; + case SHUTTLE_TRANSPORT://绌挎杞﹁浇璐ц璧� + // 濡傛灉宸茬粡鍦ㄥ綋鍓嶆潯鐮佸垯杩囨护 + if (String.valueOf(shuttleProtocol.getCurrentCode()).equals(locService.getOne(new LambdaQueryWrapper<Loc>() + .eq(Loc::getLocNo, motion.getTarget()) + .eq(Loc::getHostId, motion.getHostId())).getCode())) { + return true; + } + shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.DFX.id, assignCommand, shuttleThread); + shuttleTaskModeType = ShuttleTaskModeType.TRANSPORT; + break; + case SHUTTLE_TRANSPORT_TO_CONVEYOR://绌挎杞﹁浇璐ц繘杈撻�佺嚎 + BasConveyorSta originStaObj = basConveyorStaService.selectBySiteNo(motion.getDockNo());//鑾峰彇杈撻�佺珯鐐� + if (originStaObj == null) { + return false; + } + + BasConveyor basConveyor = basConveyorService.getById(originStaObj.getConveyorId()); + if(basConveyor == null) { + return false; + } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); + if (devpThread == null) { + return false; + } + StaProtocol staProtocol = devpThread.getStation().get(Integer.parseInt(motion.getDockNo()));//杈撻�佺珯 + if (staProtocol == null) { + return false; + } + if (!(staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable())) { + return false; + } + + // 濡傛灉宸茬粡鍦ㄥ綋鍓嶆潯鐮佸垯杩囨护 + if (String.valueOf(shuttleProtocol.getCurrentCode()).equals(locService.getOne(new LambdaQueryWrapper<Loc>() + .eq(Loc::getLocNo, motion.getTarget()) + .eq(Loc::getHostId, motion.getHostId())).getCode())) { return true; } shuttleCommands = this.shuttleAssignCommand(motion.getOrigin(), motion.getTarget(), NavigationMapType.NORMAL.id, assignCommand, shuttleThread); @@ -297,6 +344,8 @@ case SHUTTLE_MOVE_DOWN_PALLET: case SHUTTLE_MOVE_TO_CONVEYOR: case SHUTTLE_MOVE_FROM_CONVEYOR: + case SHUTTLE_TRANSPORT_TO_CONVEYOR://绌挎杞﹁浇璐ц繘杈撻�佺嚎 + case SHUTTLE_TRANSPORT://绌挎杞﹁浇璐ц璧� if (!shuttleProtocol.getCurrentLocNo().equals(motion.getTarget())) { return false; } -- Gitblit v1.9.1