From 99573d3503e32befd853dda7cc0180e01a4c8597 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期日, 13 十月 2024 12:17:44 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/kernel/AnalyzeService.java | 167 +++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 112 insertions(+), 55 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 9a2e59d..936f22f 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 @@ -24,6 +24,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; /** @@ -54,7 +55,18 @@ @Autowired private BasConveyorStaService basConveyorStaService; @Autowired + private BasConveyorService basConveyorService; + @Autowired private TaskCtgService taskCtgService; + + public Integer getStaByLev(Integer lev) { + HashMap<Integer, Integer> map = new HashMap<>(); + map.put(1, 31006); + map.put(2, 31007); + map.put(3, 31008); + + return map.get(lev); + } public List<Motion> generateMotion(Task task) { List<Motion> motionList = new ArrayList<>(); @@ -101,6 +113,11 @@ LiftProtocol liftProtocol = liftThread.getStatus(); if (liftProtocol == null || liftProtocol.getLiftNo() == null) { + return motionList; + } + + BasConveyorSta basConveyorStaDest = basConveyorStaService.selectBySiteNo(task.getDestSite()); + if (basConveyorStaDest == null) { return motionList; } @@ -151,8 +168,9 @@ , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getDestLoc())); - dto.setStaNo(Integer.parseInt(task.getDestSite())); - dto.setSync(0);//寮傛鎵ц + dto.setStaNo(getStaByLev(Utils.getLev(task.getDestLoc()))); + dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue()); +// dto.setSync();//寮傛鎵ц })) )); @@ -216,7 +234,8 @@ , MotionDto.build((dto -> { dto.setLiftNo(transferLiftDevice.getId().intValue()); dto.setLev(Utils.getLev(task.getDestLoc())); - dto.setStaNo(Integer.parseInt(task.getDestSite())); + dto.setStaNo(getStaByLev(Utils.getLev(task.getDestLoc()))); + dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue()); })) )); @@ -232,6 +251,15 @@ dto.setLocNo(standbyLocNoTo); })), MotionCtgType.SHUTTLE_MOVE + )); + + // 閿佸畾鐩爣妤煎眰绌挎杞﹀緟鏈轰綅璺緞 + motionList.addAll(kernelService.mapLockPath( + null, + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLocNo(standbyLocNoFrom); + })) )); // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌绌挎杞﹀眰 @@ -400,6 +428,11 @@ return motionList; } + BasConveyorSta basConveyorStaOrigin = basConveyorStaService.selectBySiteNo(task.getOriginSite()); + if (basConveyorStaOrigin == null) { + return motionList; + } + //妫�娴嬬┛姊溅鏄惁鏈変换鍔$粦瀹� boolean shuttleResult = Utils.checkShuttleHasBinding(shuttleDevice, task.getTaskNo()); if (shuttleResult) { @@ -506,22 +539,6 @@ MotionCtgType.SHUTTLE_PALLET_DOWN )); - // 鎻愬崌鏈鸿浇璐хЩ鍔� - motionList.addAll(kernelService.liftMoveGoods( - MotionDto.build((dto -> { - dto.setLiftNo(transferLiftDevice.getId().intValue()); - dto.setLev(Utils.getLev(task.getOriginLoc())); - dto.setStaNo(Integer.parseInt(task.getOriginSite()));//璧峰绔欑偣 - })) - , MotionDto.build((dto -> { - dto.setLiftNo(transferLiftDevice.getId().intValue()); - dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞� - dto.setStaNo(31004);//鍑哄簱绔欑偣 - dto.setSync(0);//寮傛鎵ц - dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 - })) - )); - // 绌挎杞︽彁鍗囨満寰呮満浣� - 鍒板緟鏈轰綅 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { @@ -531,22 +548,40 @@ MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(shuttleFromLiftStandbyLoc); + dto.setSync(0);//寮傛鎵ц + dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀惧皬杞� })), MotionCtgType.SHUTTLE_MOVE )); - // 杈撻�佺嚎杩愯緭鑷冲嚭搴撳彛 - motionList.addAll(kernelService.conveyorOutbound( + // 鎻愬崌鏈鸿浇璐хЩ鍔� + motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { - dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); - dto.setStaNo(basConveyorPath.getDeviceStn()); - })), - MotionDto.build((dto -> { - dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); - dto.setStaNo(basConveyorPath.getStnNo()); - })), - MotionCtgType.CONVEYOR_OUTBOUND + dto.setLiftNo(transferLiftDevice.getId().intValue()); + dto.setLev(Utils.getLev(task.getOriginLoc())); + dto.setStaNo(getStaByLev(Utils.getLev(task.getOriginLoc())));//璧峰绔欑偣 + })) + , MotionDto.build((dto -> { + dto.setLiftNo(transferLiftDevice.getId().intValue()); + dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞� + dto.setStaNo(31001);//鍑哄簱绔欑偣 + dto.setDevpNo(basConveyorStaOrigin.getConveyorDeviceId().intValue()); + dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 + })) )); + + // 杈撻�佺嚎杩愯緭鑷冲嚭搴撳彛 +// motionList.addAll(kernelService.conveyorOutbound( +// MotionDto.build((dto -> { +// dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); +// dto.setStaNo(basConveyorPath.getDeviceStn()); +// })), +// MotionDto.build((dto -> { +// dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); +// dto.setStaNo(basConveyorPath.getStnNo()); +// })), +// MotionCtgType.CONVEYOR_OUTBOUND +// )); /** * 浜屻�佸嚭搴撹捣濮嬪眰娌℃湁绌挎杞� @@ -565,6 +600,15 @@ dto.setLocNo(standbyLocNoTo); })), MotionCtgType.SHUTTLE_MOVE + )); + + // 閿佸畾鐩爣妤煎眰绌挎杞﹀緟鏈轰綅璺緞 + motionList.addAll(kernelService.mapLockPath( + null, + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLocNo(standbyLocNoFrom); + })) )); // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌绌挎杞﹀眰 @@ -704,22 +748,6 @@ MotionCtgType.SHUTTLE_PALLET_DOWN )); - // 鎻愬崌鏈鸿浇璐хЩ鍔� - motionList.addAll(kernelService.liftMoveGoods( - MotionDto.build((dto -> { - dto.setLiftNo(transferLiftDevice.getId().intValue()); - dto.setLev(Utils.getLev(task.getOriginLoc())); - dto.setStaNo(Integer.parseInt(task.getOriginSite()));//璧峰绔欑偣 - })) - , MotionDto.build((dto -> { - dto.setLiftNo(transferLiftDevice.getId().intValue()); - dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞� - dto.setStaNo(31004);//鍑哄簱绔欑偣 - dto.setSync(0);//寮傛鎵ц - dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 - })) - )); - // 绌挎杞︽彁鍗囨満寰呮満浣� - 鍒板緟鏈轰綅 motionList.addAll(kernelService.shuttleMove( MotionDto.build((dto -> { @@ -729,22 +757,40 @@ MotionDto.build((dto -> { dto.setShuttleNo(shuttleDevice.getId().intValue()); dto.setLocNo(shuttleFromLiftStandbyLoc); + dto.setSync(0);//寮傛鎵ц + dto.setReleaseShuttle(1);//鎵ц瀹屾垚鍚庨噴鏀剧┛姊溅 })), MotionCtgType.SHUTTLE_MOVE )); - // 杈撻�佺嚎杩愯緭鑷冲嚭搴撳彛 - motionList.addAll(kernelService.conveyorOutbound( + // 鎻愬崌鏈鸿浇璐хЩ鍔� + motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { - dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); - dto.setStaNo(basConveyorPath.getDeviceStn()); - })), - MotionDto.build((dto -> { - dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); - dto.setStaNo(basConveyorPath.getStnNo()); - })), - MotionCtgType.CONVEYOR_OUTBOUND + dto.setLiftNo(transferLiftDevice.getId().intValue()); + dto.setLev(Utils.getLev(task.getOriginLoc())); + dto.setStaNo(getStaByLev(Utils.getLev(task.getOriginLoc())));//璧峰绔欑偣 + })) + , MotionDto.build((dto -> { + dto.setLiftNo(transferLiftDevice.getId().intValue()); + dto.setLev(1);//鍏夋嘲1灞傛槸杈撻�佺嚎灞� + dto.setStaNo(31001);//鍑哄簱绔欑偣 + dto.setDevpNo(basConveyorStaOrigin.getConveyorDeviceId().intValue()); + dto.setReleaseLift(1);//鎵ц瀹屾垚鍚庨噴鏀炬彁鍗囨満 + })) )); + + // 杈撻�佺嚎杩愯緭鑷冲嚭搴撳彛 +// motionList.addAll(kernelService.conveyorOutbound( +// MotionDto.build((dto -> { +// dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); +// dto.setStaNo(basConveyorPath.getDeviceStn()); +// })), +// MotionDto.build((dto -> { +// dto.setDevpNo(basConveyorPath.getDeviceId().intValue()); +// dto.setStaNo(basConveyorPath.getStnNo()); +// })), +// MotionCtgType.CONVEYOR_OUTBOUND +// )); } @@ -1126,6 +1172,15 @@ MotionCtgType.SHUTTLE_MOVE )); + // 閿佸畾鐩爣妤煎眰绌挎杞﹀緟鏈轰綅璺緞 + motionList.addAll(kernelService.mapLockPath( + null, + MotionDto.build((dto -> { + dto.setShuttleNo(shuttleDevice.getId().intValue()); + dto.setLocNo(standbyLocNoFrom); + })) + )); + // 鎻愬崌鏈虹┖杞界Щ鍔ㄥ埌绌挎杞﹀眰 motionList.addAll(kernelService.liftMove( null @@ -1409,6 +1464,7 @@ if(basConveyorStaOrigin == null || basConveyorStaDest == null) { return motionList; } + // 鎻愬崌鏈虹Щ鍔ㄦ墭鐩� motionList.addAll(kernelService.liftMoveGoods( MotionDto.build((dto -> { @@ -1419,6 +1475,7 @@ , MotionDto.build((dto -> { dto.setLiftNo(device.getId().intValue()); dto.setLev(Utils.getLev(basConveyorStaDest.getLocNo())); + dto.setDevpNo(basConveyorStaDest.getConveyorDeviceId().intValue()); dto.setStaNo(Integer.parseInt(task.getDestSite())); })) )); -- Gitblit v1.9.1