From 21eac69df8b18ef44ab267a4e2efe714f985d8d9 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 29 七月 2023 14:26:57 +0800 Subject: [PATCH] 提升机穿梭车配置 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 110 +++++++++++++++++++++++++++++------------------------- 1 files changed, 59 insertions(+), 51 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 687f65f..45518cf 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.common.SpringUtils; import com.core.exception.CoolException; @@ -200,16 +201,17 @@ } // 杩囨护鐩樼偣/鎷f枡/骞舵澘浠诲姟 -// if (null != wrkMastMapper.selectPickStepByBarcode(barcode)) { -// continue; -// } + WrkMast wrkMast1 = wrkMastMapper.selectPickStepByBarcode(barcode); + if (null != wrkMast1) { + continue; + } // 鍒ゆ柇閲嶅宸ヤ綔妗� -// WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); -// if (wrkMast != null) { -// News.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); -// continue; -// } + WrkMast wrkMast2 = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); + if (wrkMast2 != null) { + News.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast2.getWrkNo()); + continue; + } try { LocTypeDto locTypeDto = new LocTypeDto(staProtocol); @@ -382,6 +384,7 @@ /** * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 */ + @Transactional public synchronized void stnToCrnStnPick(){ for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鎷f枡鍏ュ簱鍙� @@ -397,24 +400,20 @@ } if (staProtocol.isAutoing() && staProtocol.isLoading() - // 0 - 9990 鎴栬�� 9996 - && (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990) + && (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9999) && staProtocol.getStaNo().equals(staProtocol.getSiteId().shortValue()) && staProtocol.isPakMk()){ // 鑾峰彇鏉$爜鎵弿浠俊鎭� -// BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); -// if (barcodeThread == null) { -// continue; -// } + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode()); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); WrkMast wrkMast = null; - if (staProtocol.getWorkNo() > 0 && staProtocol.getWorkNo() < 9990) { - wrkMast = wrkMastMapper.selectPickStep(staProtocol.getWorkNo()); - if (null == wrkMast) { - continue; - } - } else { + wrkMast = wrkMastMapper.selectPickStepByBarcode(barcode); + if (wrkMast == null) { continue; } // if (staProtocol.getWorkNo() == 9996) { @@ -454,6 +453,7 @@ // News.error("{}鏉$爜閿欒锛屾殏鏃犳嫞鏂欎换鍔★紒", barcode); // } // } + if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) { continue; @@ -465,7 +465,7 @@ SearchLocParam param = new SearchLocParam(); param.setWrkNo(wrkMast.getWrkNo()); param.setIoType(wrkMast.getIoType()); - param.setSourceStaNo(wrkMast.getSourceStaNo()); + param.setSourceStaNo(pickSta.getStaNo()); // param.setLocType1(locTypeDto.getLocType1()); String response = new HttpHandler.Builder() .setUri(wmsUrl) @@ -508,14 +508,22 @@ wrkMast.setSourceStaNo(pickSta.getStaNo()); // 婧愮珯 wrkMast.setStaNo(dto.getStaNo()); // 鐩爣绔� wrkMast.setCrnNo(dto.getCrnNo()); - wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣� - wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌� + wrkMast.setLocNo(sourceLocNo); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣� + wrkMast.setShuttleNo(null); // 绌挎杞︽竻绌� wrkMast.setModiTime(new Date()); if (wrkMastMapper.updateById(wrkMast) == 0) { throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�"); } if (wrkMastMapper.setSteEmpty(wrkMast.getWrkNo()) == 0) { throw new CoolException(wrkMast.getWrkNo() + "鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�"); + } + + // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴� + LocMast locMast = locMastService.selectById(sourceLocNo); + locMast.setLocSts("Q"); + locMast.setModiTime(new Date()); + if (!locMastService.updateById(locMast)) { + throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�"); } // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 @@ -564,7 +572,7 @@ * 鍒濆鍖栧疄鏃跺湴鍥� */ public synchronized void initRealtimeBasMap() { - for (int i = 1; i <= 4; i++) {//鎬诲叡鍥涘眰妤� + for (int i = 1; i <= 10; i++) {//鎬诲叡鍥涘眰妤� Object data = redisUtil.get("realtimeBasMap_" + i); if (data == null) {//redis鍦板浘鏁版嵁涓虹┖锛屼粠鏁版嵁搴撲腑鑾峰彇 BasMap basMap = basMapService.selectLatestMap(i); @@ -777,7 +785,7 @@ if (commands == null) { continue;//鎵句笉鍒拌矾寰勭瓑寰呬笅涓�娆� } - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); //鍒嗛厤鐩爣搴撲綅 shuttleProtocol.setLocNo(wrkMast.getLocNo()); //鐩爣搴撲綅 @@ -803,7 +811,7 @@ shuttleProtocol.setLocNo(liftSiteLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(liftSiteLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵�� } } else if (wrkMast.getWrkSts() == 8) { @@ -824,7 +832,7 @@ ShuttleCommand moveCommand = shuttleThread.getMoveCommand(startCode, distCode, 1600, runDirection, null, null, 500); commands.add(0, moveCommand);//灏嗚鎸囦护娣诲姞鍒伴槦澶� - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); //鍒嗛厤鐩爣搴撲綅 shuttleProtocol.setLocNo(wrkMast.getLocNo()); //鐩爣搴撲綅 @@ -901,12 +909,12 @@ //鑾峰彇灏忚溅绉诲姩閫熷害 BasShuttle basShuttle = basShuttleService.selectById(assignCommand.getShuttleNo()); Integer runSpeed = 1000; - if (basShuttle != null) { - Integer runSpeed1 = basShuttle.getRunSpeed(); - if (runSpeed1 != null) { - runSpeed = runSpeed1; - } - } +// if (basShuttle != null) { +// Integer runSpeed1 = basShuttle.getRunSpeed(); +// if (runSpeed1 != null) { +// runSpeed = runSpeed1; +// } +// } //璁$畻灏忚溅璧风偣鍒颁腑鐐规墍闇�鍛戒护 List<NavigateNode> calc = NavigateUtils.calc(startLocNo, locNo, mapType, Utils.getShuttlePoints(shuttleThread.getSlave().getId(), Utils.getLev(startLocNo))); @@ -971,12 +979,12 @@ //鑾峰彇灏忚溅绉诲姩閫熷害 BasShuttle basShuttle = basShuttleService.selectById(assignCommand.getShuttleNo()); Integer runSpeed = 1000; - if (basShuttle != null) { - Integer runSpeed1 = basShuttle.getRunSpeed(); - if (runSpeed1 != null) { - runSpeed = runSpeed1; - } - } +// if (basShuttle != null) { +// Integer runSpeed1 = basShuttle.getRunSpeed(); +// if (runSpeed1 != null) { +// runSpeed = runSpeed1; +// } +// } List<NavigateNode> allNode = new ArrayList<>(); @@ -1232,7 +1240,7 @@ shuttleProtocol.setSourceLocNo(currentLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(wrkMast.getSourceLocNo()); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(26L);//灏忚溅鎼繍涓� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -1266,7 +1274,7 @@ //鐩爣搴撲綅 assignCommand.setLocNo(liftSiteLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(22L);//灏忚溅杩佺Щ鐘舵�� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -1313,7 +1321,7 @@ shuttleProtocol.setSourceLocNo(liftSiteLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(wrkMast.getSourceLocNo()); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(26L);//灏忚溅鎼繍涓� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -1342,10 +1350,10 @@ //鍒ゆ柇鍏朵粬绌洪棽绌挎杞︽槸鍚︾浠诲姟鏈�杩� String distLocNo = null;//鐩爣鍦扮偣锛屽叆搴�=銆嬫彁鍗囨満鍙o紝鍑哄簱=銆嬭揣鐗╁簱浣嶅彿 - if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 10) { + if (wrkMast.getIoType() < 101 && wrkMast.getIoType() != 11) { //鍏ュ簱 distLocNo = Utils.levToOutInStaLocNo(lev); - }else if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103){ + }else if(wrkMast.getIoType() >= 101){ //鍑哄簱 distLocNo = locNo; } else if (wrkMast.getIoType() == 11) { @@ -1864,7 +1872,7 @@ //鎵�闇�鍛戒护缁勫悎瀹屾瘯锛屾洿鏂版暟鎹簱锛屾彁浜ゅ埌绾跨▼鍘诲伐浣� LiftAssignCommand assignCommand = new LiftAssignCommand(); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); assignCommand.setLiftNo(liftProtocol.getLiftNo()); assignCommand.setTaskNo(liftProtocol.getTaskNo()); if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -2118,7 +2126,7 @@ shuttleProtocol.setLocNo(liftSiteLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(liftSiteLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵�� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -2225,7 +2233,7 @@ //鍒嗛厤婧愬簱浣� shuttleProtocol.setSourceLocNo(wrkMast.getSourceLocNo()); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); //鍒嗛厤鐩爣搴撲綅 shuttleProtocol.setLocNo(wrkMast.getLocNo()); //鐩爣搴撲綅 @@ -2743,7 +2751,7 @@ commands.add(command); //鎸囦护闆嗗垎閰� - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkCharge.setWrkSts(56L);//鍏呯數涓姸鎬� if (wrkChargeMapper.updateById(wrkCharge) > 0) { @@ -2785,7 +2793,7 @@ assignCommand.setLocNo(chargeLocNo); //婧愬簱浣� assignCommand.setSourceLocNo(currentLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkCharge.setWrkSts(52L);//灏忚溅杩佺Щ鐘舵�� if (wrkChargeMapper.updateById(wrkCharge) > 0) { //涓嬪彂浠诲姟 @@ -2823,7 +2831,7 @@ wrkCharge.setWrkSts(54L);//鎻愬崌鏈烘惉杩愪腑 //鎵�闇�鍛戒护缁勫悎瀹屾瘯锛屾洿鏂版暟鎹簱锛屾彁浜ゅ埌绾跨▼鍘诲伐浣� LiftAssignCommand assignCommand = new LiftAssignCommand(); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); assignCommand.setLiftNo(liftProtocol.getLiftNo()); assignCommand.setTaskNo(liftProtocol.getTaskNo()); if (wrkChargeMapper.updateById(wrkCharge) > 0) { @@ -2878,7 +2886,7 @@ commands.add(command); //鎸囦护闆嗗垎閰� - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkCharge.setWrkSts(56L);//鍏呯數涓姸鎬� if (wrkChargeMapper.updateById(wrkCharge) > 0) { -- Gitblit v1.9.1