From b909f4e136ca3182befba9510fd0ccc13f6a784f Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期四, 21 三月 2024 16:05:37 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 141 +++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 135 insertions(+), 6 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 777a44a..00b8ea0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -182,7 +182,7 @@ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (workNo >= 0) + && !staProtocol.isEmptyMk() && (workNo == 9991 ) && staProtocol.isPakMk()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); @@ -190,13 +190,25 @@ continue; } String barcode = barcodeThread.getBarcode(); - if(!Cools.isEmpty(barcode)) { + if(!Cools.isEmpty(barcode) && !barcode.equals("99999999")) { // 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣� ToWmsDTO toWmsDTO = new ToWmsDTO(barcode,staProtocol.getSiteId(),staProtocol.isHigh() ? 2 : 1); TaskWrk taskWrk1=taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode",barcode)); if(!Cools.isEmpty(taskWrk1)){ log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�"); - continue; + if (taskWrk1.getIoType()==1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())){ + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no",1).eq("stn_no",staProtocol.getSiteId())); + if (Cools.isEmpty(staDesc)){ + log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�"); + return; + }else { + staProtocol.setWorkNo(taskWrk1.getWrkNo().shortValue()); + staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + } + } + return; } HashMap<String, Object> headParam = new HashMap<>(); headParam.put("Content-Type","application/json"); @@ -221,6 +233,41 @@ log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO)); if (jsonObject.getInteger("code").equals(200) && !Cools.isEmpty(jsonObject.get("data").toString())) { GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class); + + //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣� + LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>() + .eq("loc_sts","O") + .eq("loc_no",getWmsDto.getLocNo())); + if(Cools.isEmpty(locMast)){ + try{ + HashMap<String, Object> headParam1 = new HashMap<>(); + headParam1.put("taskNo",getWmsDto.getTaskNo()); + headParam1.put("status",6); + headParam1.put("ioType",1); + headParam1.put("barcode",barcode); + String response2; + response2 = new HttpHandler.Builder() + // .setHeaders(headParam) + .setUri(wmsUrl) + .setPath(taskStatusFeedbackPath) + .setJson(JSON.toJSONString(headParam1)) + .build() + .doPost(); + JSONObject jsonObject1 = JSON.parseObject(response2); + apiLogService.save("wcs娲惧彂搴撲綅涓嶄负绌轰笂鎶ms" + ,wmsUrl+taskStatusFeedbackPath + ,null + ,"127.0.0.1" + ,JSON.toJSONString(headParam1) + ,response + ,true + ); + }catch (Exception e){ + log.error("wcs娲惧彂搴撲綅涓嶄负绌轰笂鎶ms", getWmsDto.getWrkNo()); + throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触"); + } + } + // 鍒涙柊涓�涓叆搴撳伐浣滄。 TaskWrk taskWrk = taskWrkService.selectByTaskNo(getWmsDto.getWrkNo()); if(Cools.isEmpty(taskWrk)) { @@ -314,6 +361,24 @@ // } // } + } else { + // 閫�鍥� + log.error("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); +// staProtocol.setWorkNo((short)0); +// staProtocol.setStaNo(inSta.getStaNo().shortValue()); +// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// +// Thread.sleep(500); + + staProtocol.setWorkNo((short)9999); + staProtocol.setStaNo(inSta.getStaNo().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); + if (taskWrk != null) { + taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず + taskWrkMapper.updateById(taskWrk); + } } } @@ -932,6 +997,8 @@ headParam.put("ioType",taskWrk.getIoType()); headParam.put("barcode",taskWrk.getBarcode()); String response; + log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam); + response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(wmsUrl) @@ -939,7 +1006,11 @@ .setJson(JSON.toJSONString(headParam)) .build() .doPost(); - JSONObject jsonObject = JSON.parseObject(response); + log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", response); + +// JSONObject jsonObject = JSON.parseObject(response); +// log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", jsonObject); + apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms" ,wmsUrl+taskStatusFeedbackPath ,null @@ -950,7 +1021,8 @@ ); }catch (Exception e){ log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触", taskWrk); - throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触"); + log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e); +// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触"); } } @@ -1097,7 +1169,64 @@ } } - //鑷姩瀹屾垚浠诲姟 + //agv鍙栨斁璐т换鍔″畬鎴� + public synchronized void autoCompleteAGV() { + List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>()); + try{ + Thread.sleep(500); + }catch (Exception e){ + + } + + for (BasDevp basDevp:basDevps){ + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1); + StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (basDevp.getWrkNo()!=0){ + if (basDevp.getAgvTargetPick()!=0){//鍙栬揣 + staProtocol.setAgvTypeSign((short)0); + staProtocol.setStaNo(basDevp.getDevNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); + } + boolean sign = true; + if (basDevp.getAgvTargetPlace()!=0){ + sign = false; + basDevp.setAgvTargetPlace(0); + basDevpService.updateById(basDevp); + staProtocol.setAgvTypeSign((short)3);//1 + staProtocol.setStaNo(basDevp.getDevNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); + } + }else { + if (basDevp.getAgvTargetPlace()!=0){ + if (basDevp.getLoading().equals("Y")){ + staProtocol.setAgvTypeSign((short)1); + staProtocol.setStaNo(basDevp.getDevNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); + }else { + log.error("AGV鏀捐揣瀹屾垚浣嗚緭閫佺嚎鏃犵墿锛屽浣嶄俊鍙� ===>> [staNo:{}] [basDevp:{}]", basDevp.getDevNo(), basDevp); + basDevp.setAgvTargetPlace(0); + basDevpService.updateById(basDevp); + staProtocol.setAgvTypeSign((short)3);//1 + staProtocol.setStaNo(basDevp.getDevNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); + } + + } + if (basDevp.getAgvTargetPick()!=0){ + basDevp.setAgvTargetPick(0); + basDevpService.updateById(basDevp); + staProtocol.setAgvTypeSign((short)2);//0 + staProtocol.setStaNo(basDevp.getDevNo().shortValue()); + MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol)); + } + } + } + } public synchronized void autoCompleteTask() { List<TaskWrk> taskWrks = taskWrkMapper.selectWorkingTask(); for (TaskWrk taskWrk : taskWrks) { -- Gitblit v1.9.1