From d08e5f29d4aea9f160b45c86e0004efbf34c76bd Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 31 七月 2023 13:54:37 +0800 Subject: [PATCH] 提升机 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 121 +++++++++++++++++++++------------------- 1 files changed, 64 insertions(+), 57 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 8a750bd..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,25 +400,20 @@ } if (staProtocol.isAutoing() && staProtocol.isLoading() - && staProtocol.isInEnable() - // 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) { @@ -455,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; @@ -509,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鍛戒护 @@ -565,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); @@ -778,7 +785,7 @@ if (commands == null) { continue;//鎵句笉鍒拌矾寰勭瓑寰呬笅涓�娆� } - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); //鍒嗛厤鐩爣搴撲綅 shuttleProtocol.setLocNo(wrkMast.getLocNo()); //鐩爣搴撲綅 @@ -804,7 +811,7 @@ shuttleProtocol.setLocNo(liftSiteLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(liftSiteLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵�� } } else if (wrkMast.getWrkSts() == 8) { @@ -825,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()); //鐩爣搴撲綅 @@ -902,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))); @@ -938,13 +945,13 @@ middlePath = nodes.get(nodes.size() - 3); //閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮� middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ()); - middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, 3);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� + middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } else if (nodes.size() > 5) {//涓鐮佷紶鍊掓暟绗簩涓� //涓棿璺緞 middlePath = nodes.get(nodes.size() - 2); //閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮� middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ()); - middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, 2);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� + middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } //鐩爣璺緞 @@ -972,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<>(); @@ -1008,13 +1015,13 @@ middlePath = nodes.get(nodes.size() - 3); //閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮� middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ()); - middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, 3);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� + middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } else if (nodes.size() > 5) {//涓鐮佷紶鍊掓暟绗簩涓� //涓棿璺緞 middlePath = nodes.get(nodes.size() - 2); //閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮� middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ()); - middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, 2);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� + middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } //鐩爣璺緞 @@ -1060,13 +1067,13 @@ middlePath = nodes.get(nodes.size() - 3); //閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮� middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ()); - middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, 3);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� + middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } else if (nodes.size() > 5) {//涓鐮佷紶鍊掓暟绗簩涓� //涓棿璺緞 middlePath = nodes.get(nodes.size() - 2); //閫氳繃xy鍧愭爣灏忚溅浜岀淮鐮� middleCodeNum = NavigatePositionConvert.xyToPosition(middlePath.getX(), middlePath.getY(), middlePath.getZ()); - middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, 2);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� + middleToDistDistance = NavigateUtils.getMiddleToDistDistance(nodes, middlePath);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } //鐩爣璺緞 @@ -1233,7 +1240,7 @@ shuttleProtocol.setSourceLocNo(currentLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(wrkMast.getSourceLocNo()); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(26L);//灏忚溅鎼繍涓� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -1267,7 +1274,7 @@ //鐩爣搴撲綅 assignCommand.setLocNo(liftSiteLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(22L);//灏忚溅杩佺Щ鐘舵�� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -1314,7 +1321,7 @@ shuttleProtocol.setSourceLocNo(liftSiteLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(wrkMast.getSourceLocNo()); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(26L);//灏忚溅鎼繍涓� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -1343,10 +1350,10 @@ //鍒ゆ柇鍏朵粬绌洪棽绌挎杞︽槸鍚︾浠诲姟鏈�杩� String distLocNo = null;//鐩爣鍦扮偣锛屽叆搴�=銆嬫彁鍗囨満鍙o紝鍑哄簱=銆嬭揣鐗╁簱浣嶅彿 - if (wrkMast.getIoType() == 1) { + if (wrkMast.getIoType() < 101 && wrkMast.getIoType() != 11) { //鍏ュ簱 distLocNo = Utils.levToOutInStaLocNo(lev); - }else if(wrkMast.getIoType() == 101){ + }else if(wrkMast.getIoType() >= 101){ //鍑哄簱 distLocNo = locNo; } else if (wrkMast.getIoType() == 11) { @@ -1865,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) { @@ -2119,7 +2126,7 @@ shuttleProtocol.setLocNo(liftSiteLocNo); //鐩爣搴撲綅 assignCommand.setLocNo(liftSiteLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkMast.setWrkSts(5L);//灏忚溅杩佺Щ鐘舵�� if (wrkMastMapper.updateById(wrkMast) > 0) { @@ -2226,7 +2233,7 @@ //鍒嗛厤婧愬簱浣� shuttleProtocol.setSourceLocNo(wrkMast.getSourceLocNo()); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); //鍒嗛厤鐩爣搴撲綅 shuttleProtocol.setLocNo(wrkMast.getLocNo()); //鐩爣搴撲綅 @@ -2744,7 +2751,7 @@ commands.add(command); //鎸囦护闆嗗垎閰� - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkCharge.setWrkSts(56L);//鍏呯數涓姸鎬� if (wrkChargeMapper.updateById(wrkCharge) > 0) { @@ -2786,7 +2793,7 @@ assignCommand.setLocNo(chargeLocNo); //婧愬簱浣� assignCommand.setSourceLocNo(currentLocNo); - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkCharge.setWrkSts(52L);//灏忚溅杩佺Щ鐘舵�� if (wrkChargeMapper.updateById(wrkCharge) > 0) { //涓嬪彂浠诲姟 @@ -2824,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) { @@ -2879,7 +2886,7 @@ commands.add(command); //鎸囦护闆嗗垎閰� - assignCommand.setCommands(commands); +// assignCommand.setCommands(commands); wrkCharge.setWrkSts(56L);//鍏呯數涓姸鎬� if (wrkChargeMapper.updateById(wrkCharge) > 0) { -- Gitblit v1.9.1