From a00400cf9f975a7dbccf3436cf3b57c1fb476597 Mon Sep 17 00:00:00 2001 From: 1 <1> Date: 星期三, 15 十月 2025 09:15:45 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 543 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 369 insertions(+), 174 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 1b70a6d..a828e56 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.common.DateUtils; +import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.ArmOrderAssignmentParam; @@ -106,6 +107,8 @@ private BasArmService basArmService; @Autowired private BasArmMastService basArmMastService; + @Autowired + private ApiLogService apiLogService; @Value("${wms.url}") private String wmsUrl; @@ -115,7 +118,7 @@ @Value("${inventory.number}") private Integer inventoryNumber; - public Integer wrkNo = 10000; + public Integer wrkNo = 10001; public static final List<Integer> LEFT_POSITION = Arrays.asList(1018,2018); /** * 缁勬墭 @@ -136,6 +139,9 @@ continue; } else { staProtocol = staProtocol.clone(); + } + if(!staProtocol.isLoading()){ + continue; } if (barcodeThread == null) { @@ -179,7 +185,7 @@ } // 閫�鍥� if (back) { -// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); + News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); if (!staProtocol.isLoading()){ @@ -193,11 +199,14 @@ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); } staProtocol.setWorkNo(wrkNo); - News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); + News.info("寮傚父鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); + staProtocol.setBarcode(barcode); + staProtocol.setPakMk(false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + System.out.println(staProtocol); log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); } @@ -206,7 +215,9 @@ && staProtocol.isLoading() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() - && staProtocol.isPakMk()) { + && staProtocol.isPakMk() + && staProtocol.getWorkNo() == 0 + ) { if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { // News.error(JSON.toJSONString(staProtocol)); News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); @@ -216,9 +227,10 @@ MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); } staProtocol.setWorkNo(wrkNo); - News.info("{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); + News.info("鏉$爜鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); + staProtocol.setBarcode(barcode); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta()); @@ -244,6 +256,12 @@ int wrkNo1 = basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())); if (wrkNo1 != 0){ News.error(barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,璇锋煡鐪媁CS杈撻�佺嚎鐣岄潰,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + StaProtocol staProtocolNew = new StaProtocol(); + staProtocolNew.setWorkNo(wrkMast.getWrkNo()); + staProtocolNew.setStaNo(RouteUtils.SouStaEnd(wrkMast.getStaNo(),wrkMast.getSourceStaNo())); + staProtocolNew.setSiteId(staProtocol.getSiteId()); + staProtocolNew.setBarcode(barcode); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocolNew)); if (ledThread != null) { News.error(methodName + ":鎵爜澶辫触锛岃閲嶈瘯"); MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, barcode + "鏉$爜宸插瓨鍦ㄧ姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑浠诲姟,宸ヤ綔鍙�="+ wrkMast.getWrkNo())); @@ -253,6 +271,8 @@ barcodeThread.setBarcode(""); staProtocol.setWorkNo(wrkMast.getWrkNo()); staProtocol.setStaNo(RouteUtils.SouStaEnd(null,wrkMast.getSourceStaNo())); + staProtocol.setBarcode(barcode); + devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); log.info("杈撻�佺嚎涓嬪彂(瀛樺湪璁惧涓婅蛋鐨勫伐浣滄。锛岀洿鎺ヤ笅鍙戯紒))锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); @@ -341,7 +361,7 @@ staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); -// + News.info("浠诲姟涓嬪彂鍒ゆ柇{}鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg,wrkNo); // if (ledThread != null) { String errorMsg = jsonObject.getString("msg"); if (!Cools.isEmpty(errorMsg)) { @@ -1348,10 +1368,10 @@ // continue; } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� -// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") +// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") // && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { - if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") && !staProtocol.isLoading() ) { // if (slave.getId() == 1 || slave.getId() == 2){ // if (staProtocol.isLoading() || staProtocol.getWorkNo() != 0 || !staProtocol.isOutEnable()){ @@ -2612,7 +2632,7 @@ } public synchronized void autoEmptyIn() { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); List<Integer> list = new ArrayList<>(); list.add(1038); for (Integer site:list){ @@ -3053,18 +3073,22 @@ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId()); continue; } + if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){ + rgvThread.setPaking(true); + continue; + } //灏忚溅鏃犱换鍔℃椂璺宠繃 if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){ continue; } if(!rgvThread.isPaking()){ continue; + } - List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(rgv.getId()); - if(wrkMastStaLock.size() == 1){ + if(!basRgv.getPakAll().equals("1")){ continue; } - if(rgvThread.isPakIn()){ + if(basRgv.getPakIn().equals("1")){ for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣 boolean flag = false; @@ -3095,35 +3119,42 @@ } BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - Integer workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1(); //鍏ュ簱鏀捐揣浼樺厛宸ヤ綅2鎵ц + Integer workNo = 0; + if(rgvProtocol.getTaskNo2() > 9999|| rgvProtocol.getTaskNo1() > 9999){ + workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1() : rgvProtocol.getTaskNo2(); + }else{ + workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1(); + } WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo); WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo); if( null == wrkMastSta ) { News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); continue; } - - boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ try{ rgvThread.setPaking(false); - wrkMast.setSheetNo("2"); + if(wrkMast != null){ + wrkMast.setSheetNo("2"); + wrkMastMapper.updateById(wrkMast); + } wrkMastSta.setWrkSts(2); wrkMastStaMapper.updateById(wrkMastSta); - wrkMastMapper.updateById(wrkMast); log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); + log.error("鏇存柊灏忚溅浠诲姟澶辫触"+ e); } } else { log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); } } + basRgv.setPakRgv("1"); + basRgvService.updateById(basRgv); } //鍑哄簱鏀捐揣 - if( rgvThread.isPakOut()){ + if( basRgv.getPakOut().equals("1")){ for(RgvSlave.RgvStn rgvStn : rgv.getRgvOutPStn()){//鍏ュ簱鏀捐揣绔欑偣 boolean flag = false; @@ -3155,13 +3186,14 @@ BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� Integer workNo = 0; - if(rgvThread.isPakToCrn()){ + if(basRgv.getPakToCrn().equals("1")){ workNo = rgvProtocol.getTaskNo1() !=0 ? rgvProtocol.getTaskNo1():rgvProtocol.getTaskNo2(); //姝e父鎯呭喌鍑哄簱鏀捐揣浼樺厛宸ヤ綅1鏀� }else{ workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2():rgvProtocol.getTaskNo1(); //鎺ラ┏鎯呭喌浼樺厛宸ヤ綅2鏀� } WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo);//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 + WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo); if( null == wrkMastSta ) { News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍑哄簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); @@ -3171,6 +3203,10 @@ if (sign){ try{ rgvThread.setPaking(false); + if(wrkMast != null){ + wrkMast.setSheetNo("2"); + wrkMastMapper.updateById(wrkMast); + } wrkMastSta.setWrkSts(2); wrkMastStaMapper.updateById(wrkMastSta); log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); @@ -3183,8 +3219,9 @@ } } + basRgv.setPakRgv("1"); + basRgvService.updateById(basRgv); } - rgvThread.setPakRgv(true);//浼樺厛鏀捐揣瀹屾垚锛屽紑鍚璋冨害 } } /** @@ -3196,6 +3233,11 @@ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); if (rgvProtocol == null) { + continue; + } + BasRgv basRgv = basRgvService.selectById(rgv.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId()); continue; } Long taskNo1 = Long.valueOf(rgvProtocol.getTaskNo1()); @@ -3221,11 +3263,22 @@ && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 && !rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing()){ - rgvThread.setPakRgv(true); + List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(); + List<WrkMastSta> wrkMastStaLockT = wrkMastStaService.selectLockWrkT(); + + if(wrkMastStaLock.size() > 0 && rgvProtocol.getRgvNo() == 1){ + continue ; + } + if(wrkMastStaLockT.size() > 0 && rgvProtocol.getRgvNo() == 2){ + continue ; + } + basRgv.setPakRgv("1"); + basRgv.setPakToCrn("1"); + basRgv.setPakIn("1"); + basRgv.setPakOut("1"); + basRgv.setPakAll("1"); + basRgvService.updateById(basRgv); rgvThread.setPakMk(true); - rgvThread.setPakIn(true); - rgvThread.setPakOut(true); - rgvThread.setPakToCrn(true); } } @@ -3243,39 +3296,53 @@ if (rgvProtocol == null) { continue; } + BasRgv basRgv = basRgvService.selectById(rgv.getId()); if (basRgv == null) { log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId()); continue; } if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){ -// log.error("瑙i攣"); rgvThread.setPaking(true); } + if(rgvProtocol.isLoaded1ing() && rgvProtocol.isLoaded2ing()){ + basRgv.setPakAll("1"); + basRgvService.updateById(basRgv); + } // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� - if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn() && rgvThread.isPaking()) { + if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && + rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() + && basRgv.getPakToCrn().equals("1") && rgvThread.isPaking()) { News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�"); // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 // rgvRunWrkMastInTest(); if (rgvProtocol.getLastIo().equals("I")) { - if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) { + if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) { //mark - 1 - .... - this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + if (rgvProtocol.getTaskNo1()==0){ + this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + } rgvProtocol.setLastIo("O"); - } else if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) { + } else if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) { //mark - 2 - .... - this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + if (rgvProtocol.getTaskNo2()==0){ + this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + } rgvProtocol.setLastIo("I"); } } // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡 else if (rgvProtocol.getLastIo().equals("O")) { - if (basRgv.getOutEnable().equals("1") && rgvThread.isPakOut()) { - this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + if (basRgv.getOutEnable().equals("1") && basRgv.getPakOut().equals("1")) { + if (rgvProtocol.getTaskNo2()==0){ + this.rgvRunWrkMastOut(rgv, rgvProtocol,mark); // 鍑哄簱 + } rgvProtocol.setLastIo("I"); - } else if (basRgv.getInEnable().equals("1") && rgvThread.isPakIn()) { - this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + } else if (basRgv.getInEnable().equals("1") && basRgv.getPakIn().equals("1")) { + if (rgvProtocol.getTaskNo1()==0){ + this.rgvRunWrkMastIn(rgv, rgvProtocol,mark); // 鍏ュ簱 + } rgvProtocol.setLastIo("O"); } } @@ -3285,9 +3352,9 @@ if(wrkMastSta1 != null && wrkMastSta2 != null){ rgvThread.setPakMk(false); //灏忚溅鍙屽伐浣嶉攣瀹� } - if(!rgvThread.isPakToCrn()){ - rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟 - } +// if(!rgvThread.isPakToCrn()){ +// rgvRunWrkToCrn(rgv, rgvProtocol,mark); //鑻ュ皬杞﹀彇鍒颁竴涓帴椹充换鍔★紝绗簩涓伐浣嶅彧鑳藉彇鎺ラ┏浠诲姟 +// } // if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getTaskNo1() == 0 && rgvThread.isPakIn() && rgvThread.isPakRgv()){ // rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣 // } @@ -3344,6 +3411,11 @@ public synchronized void rgvRunWrkMastIn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark) { for (RgvSlave.RgvStn rgvStn : slave.getRgvInTStn()) {//rgv鍏ュ簱鍙栬揣绔欑偣 boolean flag = false; + BasRgv basRgv = basRgvService.selectById(slave.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId()); + continue; + } //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣 DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); @@ -3363,7 +3435,14 @@ News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); continue; } - wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); + if((staProtocol.getWorkNo()>9999 && staProtocol2.getWorkNo()>9999) || (staProtocol.getWorkNo()<10000 && staProtocol2.getWorkNo()<10000)){ + //褰撹繛缁彇璐х珯鐐逛负鐩稿悓绫诲瀷鏃舵墠鑳借繛缁彇 + wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); + } + + } + if(rgvProtocol.getTaskNo2() > 9999 && staProtocol.getWorkNo() < 10000){ + continue; } if (staProtocol == null) { @@ -3395,7 +3474,8 @@ case 2: route = RouteUtils.getRouteTwo();break; } basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 + basRgvMapService.updateById(basRgvMap); + WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 if( null == wrkMastSta ) { News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); continue; @@ -3409,7 +3489,10 @@ result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta2.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 } if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 - rgvThread.setPakRgv(false); + basRgv.setPakRgv("0"); + basRgvService.updateById(basRgv); + +// rgvThread.setPakRgv(false); continue; } wrkMastSta.setWorkSta(wrkMastSta2 !=null ? 1 : 2); @@ -3417,18 +3500,26 @@ boolean sign = false; sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ - if(wrkMastSta3 != null){ - wrkMastSta3.setMk(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta3); - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); - }catch (Exception e){ - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); - } + if(wrkMastSta3 != null ){ + List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart()); + if(wrkMastStaPaking.size() < 1){//宸叉湁鏍囪涓嶅啀鏍囪 + wrkMastSta3.setMk(1); + basRgv.setPakAll("0"); + basRgvService.updateById(basRgv); + + try{ + wrkMastStaMapper.updateById(wrkMastSta3); + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); + }catch (Exception e){ + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); + } + } } - rgvThread.setPaking(false); - rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁� + basRgv.setPakOut("0");//鍑哄簱涓嶅厑璁� + basRgvService.updateById(basRgv); + rgvThread.setPaking(false);//浠诲姟涓嬪彂閿佸畾 + try{ wrkMastSta.setWrkSts(1); wrkMastStaMapper.updateById(wrkMastSta); @@ -3453,6 +3544,11 @@ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); + BasRgv basRgv = basRgvService.selectById(slave.getId()); + if (basRgv == null) { + log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", slave.getId()); + continue; + } StaProtocol staProtocol2 = null; WrkMastSta wrkMastSta3 = null; @@ -3504,6 +3600,7 @@ case 2: route = RouteUtils.getRouteTwo();break; } basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� + basRgvMapService.updateById(basRgvMap); WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 if( null == wrkMastSta ) { News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); @@ -3515,7 +3612,10 @@ result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 } if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 - rgvThread.setPakRgv(false); + basRgv.setPakRgv("0"); + basRgvService.updateById(basRgv); + +// rgvThread.setPakRgv(false); continue; } wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣� @@ -3524,20 +3624,31 @@ sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){ - rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔� - } - if(wrkMastSta3 != null){ - wrkMastSta3.setMk(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta3); - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); - }catch (Exception e){ - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); - } + basRgv.setPakToCrn("0"); + basRgvService.updateById(basRgv); +// rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔� } + + if(wrkMastSta3 != null ){ + List<WrkMastSta> wrkMastStaPaking = wrkMastStaService.selectPakingWrk(wrkMastSta3.getStaStart()); + if(wrkMastStaPaking.size() < 1){ + wrkMastSta3.setMk(1); + basRgv.setPakAll("0"); + basRgvService.updateById(basRgv); + try{ + wrkMastStaMapper.updateById(wrkMastSta3); + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); + }catch (Exception e){ + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); + } + } + } + basRgv.setPakIn("0"); + basRgvService.updateById(basRgv); + rgvThread.setPaking(false); - rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� +// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� try{ wrkMastSta.setWrkSts(1); wrkMastStaMapper.updateById(wrkMastSta); @@ -3556,94 +3667,94 @@ /** * 灏忚溅鍑哄簱鎺ラ┏浠诲姟鍙栬揣涓嬪彂 */ - public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){ - for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣 - boolean flag = false; - //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣 - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); - StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); - RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); - StaProtocol staProtocol2 = null; - if(rgvStn.getStaNo2()!= null ){ - staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2()); - if (staProtocol2 == null) { - News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); - continue; - } else { - staProtocol2 = staProtocol2.clone(); - } - BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2()); - if (staDetl2 == null) { - News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); - continue; - } - } - if (staProtocol == null) { - News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); - continue; - } else { - staProtocol = staProtocol.clone(); - } - - // 鏌ヨ绔欑偣璇︾粏淇℃伅 - BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo()); - if (staDetl == null) { - News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); - continue; - } - - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 - && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) { - flag = true; - } - if (!flag) { - News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):" - + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() - + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable() - + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting()); - continue; - } - BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); - List<Integer> route = new ArrayList<>(); - switch (rgvProtocol.getRgvNo()){ - case 1: route = RouteUtils.getRouteOne();break; - case 2: route = RouteUtils.getRouteTwo();break; - } - basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 - if( null == wrkMastSta ) { - News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); - continue; - } - WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1()); - boolean result = false; - if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠� - result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 - } - if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 - rgvThread.setPakRgv(false); - continue; - } - wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣� - wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo()); - boolean sign = false; - sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 - if (sign){ - rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� - try{ - wrkMastSta.setWrkSts(1); - wrkMastStaMapper.updateById(wrkMastSta); - log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); - }catch (Exception e){ - log.error("鏇存柊灏忚溅浠诲姟澶辫触"); - } - } else { - log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); - } - - - } - } +// public synchronized void rgvRunWrkToCrn(RgvSlave slave, RgvProtocol rgvProtocol,Integer mark){ +// for (RgvSlave.RgvStn rgvStn : slave.getRgvOutTStn()) {//rgv鍑哄簱鍙栬揣绔欑偣 +// boolean flag = false; +// //閬嶅巻rgv鍏ュ簱鍙栬揣绔欑偣 +// DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, rgvStn.getDevpPlcId()); +// StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); +// RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); +// StaProtocol staProtocol2 = null; +// if(rgvStn.getStaNo2()!= null ){ +// staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2()); +// if (staProtocol2 == null) { +// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); +// continue; +// } else { +// staProtocol2 = staProtocol2.clone(); +// } +// BasDevp staDetl2 = basDevpService.selectById(rgvStn.getStaNo2()); +// if (staDetl2 == null) { +// News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); +// continue; +// } +// } +// if (staProtocol == null) { +// News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); +// continue; +// } else { +// staProtocol = staProtocol.clone(); +// } +// +// // 鏌ヨ绔欑偣璇︾粏淇℃伅 +// BasDevp staDetl = basDevpService.selectById(rgvStn.getStaNo()); +// if (staDetl == null) { +// News.error("" + mark + " - 1" + " - 2" + " - 鍑哄簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); +// continue; +// } +// +// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 +// && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) { +// flag = true; +// } +// if (!flag) { +// News.errorNoLog("" + mark + " - 1" + " - 3" + " - Rgv鍑哄簱鍙栬揣绔欎俊鎭�(浠ヤ笅闇�瑕佸叏true):" +// + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading() +// + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isOutEnable() +// + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanouting()); +// continue; +// } +// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); +// List<Integer> route = new ArrayList<>(); +// switch (rgvProtocol.getRgvNo()){ +// case 1: route = RouteUtils.getRouteOne();break; +// case 2: route = RouteUtils.getRouteTwo();break; +// } +// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� +// WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfereToCrn(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 +// if( null == wrkMastSta ) { +// News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); +// continue; +// } +// WrkMastSta wrkMastSta1 = wrkMastStaMapper.selectByWrkNo( rgvProtocol.getTaskNo1()); +// boolean result = false; +// if(wrkMastSta1!= null && rgvProtocol.getRgvNo() == 1){ //璺濈璁$畻 2妤煎崟鍏ュ簱鍙d笉闇�瑕佽绠� +// result = rgvCalcDistance((int) rgvProtocol.getRgvNo(),wrkMastSta1.getStaEnd(),wrkMastSta.getStaStart());//宸ヤ綅2鏀捐揣绔欑偣锛屽伐浣�1鍙栬揣绔欑偣 +// } +// if(result){//鑻ュ皬杞﹁窛绂绘斁璐х偣璺濈杩戜簬鍙栬揣鐐瑰垯璺宠繃鍙栬揣 true璺宠繃鍙栬揣/false浼樺厛鍙栬揣 +// rgvThread.setPakRgv(false); +// continue; +// } +// wrkMastSta.setWorkSta(wrkMastSta1 !=null ? 2 : 1);//鑻�1鍙峰伐浣嶆湁浠诲姟缁�2鍙峰伐浣� +// wrkMastSta.setRgvNo((int) rgvProtocol.getRgvNo()); +// boolean sign = false; +// sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 +// if (sign){ +// rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� +// try{ +// wrkMastSta.setWrkSts(1); +// wrkMastStaMapper.updateById(wrkMastSta); +// log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); +// }catch (Exception e){ +// log.error("鏇存柊灏忚溅浠诲姟澶辫触"); +// } +// } else { +// log.error("宸ヤ綔鍙穥}鎵�灞炰换鍔′笅鍙戝け璐�",wrkMastSta.getWrkNo()); +// } +// +// +// } +// } /** * 鎵ц灏忚溅鎼繍浠诲姟 * @@ -3940,7 +4051,7 @@ /* * arm浠诲姟瀹屾垚鑷姩缁勬墭 * */ - public synchronized void armMissionAccomplished() { + public synchronized void armMissionAccomplished() { try{ for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鎷f枡鍏ュ簱鍙� @@ -3954,17 +4065,16 @@ } else { staProtocol = staProtocol.clone(); } - String barcode = staProtocol.getBarcode(); - if(!Cools.isEmpty(barcode)) { - if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { - log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(barcode)+"===銆嬫墭鐩樻潯鐮佸紓甯�"); - continue; - } - } else { - log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細===銆嬫墭鐩樻潯鐮佷负绌�"); - continue; - } - +// String barcode = staProtocol.getBarcode(); +// if(!Cools.isEmpty(barcode)) { +// if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { +// armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false); +// continue; +// } +// } else { +// armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false); +// continue; +// } List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>() .eq("arm_no", armSta.getArmNo()) .eq("sta_no_sou", armSta.getStaNo()) @@ -3984,16 +4094,17 @@ continue; } CombParam combParam = new CombParam(basArmMastList); - combParam.setBarcode(barcode); //arm浠诲姟瀹屾垚鑷姩缁勬墭 ReturnT<String> result = new PostMesDataUtils().postMesData("arm浠诲姟瀹屾垚鑷姩缁勬墭",wmsUrl, wmsComb, combParam); if (result.getCode()==200){ basArmMastService.updateArmMastStatus(basArm.getArmNo(),basArm.getSortingLineSou(),3,4); } else { - log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(basArmMastList)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯"); + armTaskAssignmentCallApiLogSave(staProtocol, "鑷姩缁勬墭澶辫触", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯", false); +// log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(basArmMastList)+"===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯"); } } catch (Exception e){ - log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫満姊拌噦鎶撳彇浠诲姟瀹屾垚"+e.getMessage()); + armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栦换鍔″畬鎴愬紓甯�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬭嚜鍔ㄧ粍鎵樺け璐ワ紝绛夊緟閲嶈瘯", false); +// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫満姊拌噦鎶撳彇浠诲姟瀹屾垚"+e.getMessage()); } break; } @@ -4027,7 +4138,6 @@ } else { staProtocol = staProtocol.clone(); } - // if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { // int workNo = commonService.getWorkNo(6);//寰呭畬鍠� // // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 @@ -4059,6 +4169,56 @@ continue; } try{ + // 鑾峰彇绔欑偣淇℃伅 + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, basArm.getDevpId()); + StaProtocol staProtocol = devpThread.getStation().get(basArm.getStaNoSou()); + if (staProtocol == null || !staProtocol.isLoading()) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + String barcode = staProtocol.getBarcode(); + if(!Cools.isEmpty(barcode)) { + if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { + armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false); +// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�"); + continue; + } + } else { + armTaskAssignmentCallApiLogSave(staProtocol, "鎵樼洏鏉$爜涓虹┖", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�", false); + +// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛�===銆嬫墭鐩樻潯鐮佷负绌�"); + continue; + } + + if(barcode.length()!=6){ + armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜闀垮害涓嶆槸6浣�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode, false); +// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode); + continue; +// throw new CoolException(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮侀暱搴︿笉鏄�6浣�===>>" + barcode); + } + + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",barcode)); + int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",barcode)); + int countwait = waitPakinMapper.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",barcode)); + if (countLoc > 0 || countWrk > 0 || countwait > 0) { +// throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode); + armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛岀粍鎵樻。/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode, false); + +// log.error(staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛岀粍鎵樻。/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + barcode); + continue; + } + + List<BasArmMast> basArmMastListRuningBarCode = basArmMastService.selectList( + new EntityWrapper<BasArmMast>() + .eq("barcode", barcode) + .eq("status", 3) + ); + if (!basArmMastListRuningBarCode.isEmpty()){ + armTaskAssignmentCallApiLogSave(staProtocol, "鏉$爜鏁版嵁宸插瓨鍦�,姝e湪鑷姩缁勬墭锛侊紒锛�", staProtocol.getSiteId()+"鐮佸灈浣嶇疆锛屾潯鐮佹暟鎹鍦ㄨ嚜鍔ㄧ粍鎵�===>>" + barcode, false); + continue; + } List<BasArmMast> basArmMastListError = basArmMastService.selectList( new EntityWrapper<BasArmMast>() .eq("arm_no", basArm.getArmNo()) @@ -4066,7 +4226,9 @@ .eq("status", 9) ); if (!basArmMastListError.isEmpty()){ - log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒"); + armTaskAssignmentCallApiLogSave(staProtocol, "瀛樺湪寮傚父鏈烘鑷備换鍔�", basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒", false); + +// log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒"); continue; } List<BasArmMast> basArmMastListRuning = basArmMastService.selectList( @@ -4092,7 +4254,9 @@ continue; } if (basArmMastList.size()>1){ - log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�"); + armTaskAssignmentCallApiLogSave(staProtocol, "浠诲姟寰呮墽琛屾暟閲忓ぇ浜�1,鏃犳硶鍒嗚鲸寰呮墽琛屼换鍔�", "arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�", false); + +// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"====銆嬫媶鐮佸灈浠诲姟寮傚父绂佹涓嬪彂锛侊紒锛佷换鍔″緟鎵ц鏁伴噺澶т簬1锛侊紒锛�"); continue; } BasArmMast basArmMast = basArmMastList.get(0); @@ -4102,6 +4266,7 @@ .eq("sorting_line", basArm.getSortingLineSou()) .eq("sku", basArmMast.getSku()) .eq("order_no", basArmMast.getOrderNo()) + .eq("binding_tags", basArmMast.getBindingTags()) ); if (basArmMastListOrder.size()==1){ OrderDetlValueResultUtil orderDetlValueResultUtil = basArmMastService.selectOrderDetlValue(basArmMast.getOrderNo(), basArmMast.getSku()); @@ -4109,19 +4274,25 @@ if (Cools.isEmpty(orderDetlValueResultUtil)){ continue; } + Double anfmeSign = basArmMastService.selectBasArmMastSignValue(basArmMast.getOrderNo(), basArmMast.getSku(),basArmMast.getBindingTags()); + orderDetlValueResultUtil.setAnfme(anfmeSign); //璁㈠崟涓嬪彂 try{ ArmOrderAssignmentParam armOrderAssignmentParam = new ArmOrderAssignmentParam(basArmMast,orderDetlValueResultUtil); // 璁㈠崟涓嬪彂(SKU+璁㈠崟) ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_ADAPTOR, armOrderAssignmentParam); if (result.getCode()==200){ - basArmMast.setStatus(1); - basArmMastService.updateById(basArmMast); +// basArmMast.setStatus(1); +// basArmMast.setBarcode(barcode); +// basArmMastService.updateById(basArmMast); } else { - log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�"); + armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙�", "arm缂栧彿锛�"+basArm.getArmNo()+"璁㈠崟涓嬪彂璁㈠崟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false); + +// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚俊鎭笅鍙戝け璐�"); } } catch (Exception e){ - log.error("鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�"); + armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙�", "arm缂栧彿锛�"+basArm.getArmNo()+"璁㈠崟涓嬪彂璁㈠崟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false); +// log.error("arm缂栧彿锛�"+basArm.getArmNo()+"鏈烘鑷傛姄鍙栬鍗曪紙SKU锛変笅鍙戯細"+JSON.toJSON(basArmMast)+"===銆嬭鍗曚笅鍙戣鍗曚俊鎭笅鍙戝け璐�"); continue; } } @@ -4130,9 +4301,11 @@ ReturnT<String> result = new PostMesDataUtils().postMesData("鏈烘鑷傛姄鍙栦换鍔′笅鍙戯細閫氱煡宸ヤ綔绌洪棿宸插氨缁�",ArmConstant.getArmUrl(basArmMast.getArmNo()), ArmConstant.ARM_WORKSPACE, armTaskAssignmentParam); if (result.getCode()==200){ basArmMast.setStatus(1); + basArmMast.setBarcode(barcode); basArmMastService.updateById(basArmMast); } else { - log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�"); + armTaskAssignmentCallApiLogSave(staProtocol, "鏈烘鑷傛姄鍙栦换鍔′俊鎭笅鍙戝け璐�", "arm缂栧彿锛�"+basArm.getArmNo()+"浠诲姟淇℃伅涓嬪彂澶辫触锛侊紒锛�", false); +// log.error("鏈烘鑷傛姄鍙栦换鍔★細"+JSON.toJSON(basArmMast)+"===銆嬩换鍔′俊鎭笅鍙戝け璐�"); } } } catch (Exception e){ @@ -4144,4 +4317,26 @@ } } + public void armTaskAssignmentCallApiLogSave(StaProtocol staProtocol ,String tableName, String response, Boolean bool) { + ApiLog apiLog = apiLogService.selectOne(new EntityWrapper<ApiLog>() + .eq("namespace", "鏈烘鑷備换鍔$浉鍏�") + .eq("request", "绔欑偣鍙�:" + staProtocol.getSiteId()) + .eq("response", response) + .eq("url", tableName) + .eq("client_ip", staProtocol.getBarcode()) + .eq("result", 0) + .orderBy("create_time", false) + ); + + if (!Cools.isEmpty(apiLog)){ + long parseLong = Long.parseLong(apiLog.getTimestamp()); + if (new Date().getTime()-parseLong<5*1000*60){ + return; + } + } + apiLogService.save("鏈烘鑷備换鍔$浉鍏�", tableName, "null", staProtocol.getBarcode(), + "绔欑偣鍙�:" + staProtocol.getSiteId() , + response, bool); + } + } -- Gitblit v1.9.1