From e970c1670c36fc0d3f04dac0a81e504638828919 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期三, 10 七月 2024 19:50:31 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 79 +++++++++++++++++++-------------------- 1 files changed, 39 insertions(+), 40 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java index 43aae13..46b9d35 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java @@ -2,27 +2,23 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.framework.common.Cools; +import com.zy.asrs.framework.common.R; import com.zy.asrs.wcs.core.domain.dto.MotionDto; -import com.zy.asrs.wcs.core.entity.BasConveyorPath; -import com.zy.asrs.wcs.core.entity.ShuttleStandby; -import com.zy.asrs.wcs.core.entity.Task; +import com.zy.asrs.wcs.core.entity.*; import com.zy.asrs.wcs.core.model.enums.DeviceCtgType; import com.zy.asrs.wcs.core.model.enums.MotionCtgType; +import com.zy.asrs.wcs.core.model.enums.TaskCtgType; import com.zy.asrs.wcs.core.model.enums.TaskStsType; -import com.zy.asrs.wcs.core.service.BasConveyorPathService; -import com.zy.asrs.wcs.core.service.ShuttleStandbyService; -import com.zy.asrs.wcs.core.service.TaskService; +import com.zy.asrs.wcs.core.service.*; import com.zy.asrs.wcs.core.utils.ConveyorDispatcher; import com.zy.asrs.wcs.core.utils.LiftDispatcher; import com.zy.asrs.wcs.core.utils.ShuttleDispatcher; import com.zy.asrs.wcs.core.utils.Utils; import com.zy.asrs.wcs.rcs.cache.SlaveConnection; -import com.zy.asrs.wcs.core.entity.Motion; import com.zy.asrs.wcs.rcs.entity.Device; 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.service.DeviceService; import com.zy.asrs.wcs.rcs.thread.LiftThread; import com.zy.asrs.wcs.rcs.thread.ShuttleThread; @@ -57,6 +53,8 @@ private ShuttleStandbyService shuttleStandbyService; @Autowired private BasConveyorPathService basConveyorPathService; + @Autowired + private TaskCtgService taskCtgService; public List<Motion> generateMotion(Task task) { List<Motion> motionList = new ArrayList<>(); @@ -119,13 +117,6 @@ return motionList; } - //妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹� - boolean liftResult = Utils.checkLiftHasBinding(Integer.parseInt(transferLiftDevice.getDeviceNo())); - if (liftResult) { - //瀛樺湪浠诲姟锛岀姝㈣В鏋� - return motionList; - } - //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満 ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>() .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId()) @@ -167,6 +158,7 @@ dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getDestLoc())); dto.setStaNo(0);//鎻愬崌鏈哄唴渚� + dto.setSync(0);//寮傛鎵ц })) )); @@ -178,7 +170,6 @@ })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); - dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLocNo(standbyLocNoTo); })), MotionCtgType.SHUTTLE_MOVE @@ -234,6 +225,7 @@ null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); + dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 })) )); @@ -383,6 +375,7 @@ null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); + dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 })) )); @@ -459,13 +452,6 @@ return motionList; } - //妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹� - boolean liftResult = Utils.checkLiftHasBinding(Integer.parseInt(transferLiftDevice.getDeviceNo())); - if (liftResult) { - //瀛樺湪浠诲姟锛岀姝㈣В鏋� - return motionList; - } - //鑾峰彇灏忚溅寰呮満搴撲綅 ==> 杩涙彁鍗囨満 ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>() .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId()) @@ -496,10 +482,18 @@ //绌挎杞﹀嚭鎻愬崌鏈哄悗灏忚溅寰呮満浣� String shuttleFromLiftStandbyLoc = shuttleStandbyFrom.getStandbyLoc(); + //鑾峰彇鍑哄簱浠诲姟绫诲瀷 + TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() + .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) + .eq(TaskCtg::getStatus, 1)); + if (taskCtg == null) { + return motionList; + } //鑾峰彇杈撻�佺嚎璺緞 BasConveyorPath basConveyorPath = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>() .eq(BasConveyorPath::getDeviceStn, task.getOriginSite()) - .eq(BasConveyorPath::getDeviceNo, liftProtocol.getLiftNo())); + .eq(BasConveyorPath::getDeviceNo, liftProtocol.getLiftNo()) + .eq(BasConveyorPath::getTypeNo, taskCtg.getId())); if (basConveyorPath == null) { return motionList; } @@ -628,6 +622,8 @@ dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(5);//绱㈢墝椤圭洰5灞傛槸杈撻�佺嚎灞� dto.setStaNo(1);//鎻愬崌鏈哄乏渚� + dto.setSync(0);//寮傛鎵ц + dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 })) )); @@ -773,6 +769,7 @@ null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); + dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 })) )); @@ -808,17 +805,17 @@ MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); - dto.setLocNo(standbyLocNoTo); + dto.setLocNo(standbyLocNoFrom); })), MotionCtgType.SHUTTLE_MOVE )); - // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌绌挎杞﹀眰 + // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌鐩爣灞� motionList.addAll(kernelService.liftMove( null , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); - dto.setLev(Utils.getLev(shuttleLocNo)); + dto.setLev(Utils.getLev(originLoc)); })) )); @@ -834,12 +831,12 @@ motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); - dto.setLocNo(standbyLocNoTo); + dto.setLocNo(standbyLocNoFrom); })), MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLiftNo(transferLiftDevice.getId().intValue()); - dto.setLocNo(liftLocNoTo); + dto.setLocNo(liftLocNoFrom); })), MotionCtgType.SHUTTLE_MOVE_TO_LIFT )); @@ -886,6 +883,7 @@ dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(5);//绱㈢墝椤圭洰5灞傛槸杈撻�佺嚎灞� dto.setStaNo(1);//鎻愬崌鏈哄乏渚� + dto.setSync(0);//寮傛鎵ц })) )); @@ -970,13 +968,6 @@ //妫�娴嬬┛姊溅鏄惁鏈変换鍔$粦瀹� boolean shuttleResult = Utils.checkShuttleHasBinding(shuttleDevice, task.getTaskNo()); if (shuttleResult) { - //瀛樺湪浠诲姟锛岀姝㈣В鏋� - return motionList; - } - - //妫�娴嬫彁鍗囨満鏄惁鏈変换鍔$粦瀹� - boolean liftResult = Utils.checkLiftHasBinding(Integer.parseInt(transferLiftDevice.getDeviceNo())); - if (liftResult) { //瀛樺湪浠诲姟锛岀姝㈣В鏋� return motionList; } @@ -1142,16 +1133,15 @@ MotionCtgType.SHUTTLE_MOVE )); - task.setLiftNo(Integer.parseInt(transferLiftDevice.getDeviceNo())); - taskService.updateById(task); } // 绌挎杞﹀紑濮嬪厖鐢� - motionList.addAll(kernelService.shuttleCharge( + motionList.addAll(kernelService.shuttleAction( null, MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); - })) + })), + MotionCtgType.SHUTTLE_CHARGE_ON )); return motionList; @@ -1189,6 +1179,15 @@ // 鍒ゆ柇绌挎杞︽槸鍚﹀湪鐩爣灞� if (Utils.getLev(shuttleLocNo) == Utils.getLev(locNo)) { + // 绌挎杞﹀叧闂厖鐢� + motionList.addAll(kernelService.shuttleAction( + null, + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + })), + MotionCtgType.SHUTTLE_CHARGE_OFF + )); + // 绌挎杞﹁蛋琛岃嚦鐩爣搴撲綅 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { -- Gitblit v1.9.1