From f656de144ce68b49401a3bfc12bd6e1c33cbd281 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期二, 25 七月 2023 13:55:16 +0800 Subject: [PATCH] 捡料 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 69 +++++++++++++++++++--------------- 1 files changed, 38 insertions(+), 31 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..08aad9e 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鍛戒护 @@ -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);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } //鐩爣璺緞 @@ -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);//璁$畻涓棿鐐瑰埌鐩爣鐐硅璧拌窛绂� } //鐩爣璺緞 @@ -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) { -- Gitblit v1.9.1