From 1cc21b53d3ffc35d37f0dd2dc4bb924f2278c278 Mon Sep 17 00:00:00 2001 From: zjj <zjj123456> Date: 星期三, 13 十一月 2024 10:13:59 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 466 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 441 insertions(+), 25 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 2e4b668..15ed411 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -283,6 +283,250 @@ } } + public synchronized void generateStoreWrkFile7() { + // 鏍规嵁杈撻�佺嚎plc閬嶅巻 + for (DevpSlave devp : slaveProperties.getDevp()) { + // 閬嶅巻鍏ュ簱鍙� + for (DevpSlave.Sta inSta : devp.getInSta7()) { + + // 鑾峰彇鍏ュ簱绔欎俊鎭� + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + // 鑾峰彇鏉$爜鎵弿浠俊鎭� + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); + if (barcodeThread == null) { + continue; + } + String barcode = barcodeThread.getBarcode(); + + // 灏哄妫�娴嬪紓甯� + boolean back = false; + String errMsg = "寮傚父锛�"; + if (staProtocol.isFrontErr()) { + errMsg = errMsg+"鍓嶈秴闄愶紱"; + back = true; + } + if (staProtocol.isBackErr()) { + errMsg = errMsg+"鍚庤秴闄�"; + back = true; + } + if (staProtocol.isHighErr()) { + errMsg = errMsg+"楂樿秴闄�"; + back = true; + } + if (staProtocol.isLeftErr()) { + errMsg = errMsg+"宸﹁秴闄�"; + back = true; + } + if (staProtocol.isRightErr()) { + errMsg = errMsg+"鍙宠秴闄�"; + back = true; + } + if (staProtocol.isWeightErr()) { + errMsg = errMsg+"瓒呴噸"; + back = true; + } + + if (staProtocol.isBan()){ + + // 閫�鍥� + if (back) { + // led 寮傚父鏄剧ず + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); + } + continue; + } + + if (staProtocol.getStaNoEnd() != 2001){ + log.error(staProtocol.getStaNo()+"绔欑偣锛岀┖妗讹紝闈炴硶鐩爣绔欙紒锛侊紒锛侊紒锛�"+staProtocol.getStaNoEnd().toString()); + continue; + } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable() + && !staProtocol.isEmptyMk() + && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) + && staProtocol.isPakMk()) { + Integer workNo1 = commonService.getWorkNo(3); + Date now = new Date(); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo1); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鍒濆 + wrkMast.setIoType(199); // 鍏ュ嚭搴撶姸鎬侊細 199.杞Щ + wrkMast.setIoPri(15D); + wrkMast.setCrnNo(0); + wrkMast.setSourceStaNo(staProtocol.getStaNo().intValue()); // 婧愮珯 + wrkMast.setStaNo(staProtocol.getStaNoEnd().intValue()); // 鐩爣绔� + wrkMast.setFullPlt("N"); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setBarcode("KB888888"); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setCtnNo("Y"); // 鍏ュ簱闃诲搴撲綅绉昏浆鏍囪 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + int res = wrkMastMapper.insert(wrkMast); + if (res == 0) { +// throw new CoolException(""); + log.error(staProtocol.getStaNo()+"绔欑偣锛岀┖妗讹紝淇濆瓨宸ヤ綔妗d富妗eけ璐ワ紒锛侊紒锛侊紒锛�"+now.toString()); + continue; + } + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + +// StaProtocol staProtocol1 = new StaProtocol(); + staProtocol.setWorkNo(workNo1.shortValue()); + staProtocol.setStaNo((short)3001); + devpThread.setPakMk(staProtocol.getSiteId(), false); + ledThread.errorReset(); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + if (!result) { + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } + } + + continue; + } + + if (staProtocol.isBarcodeErr()) { + errMsg = errMsg+"鎵爜澶辫触"; + back = true; + } + // 閫�鍥� + if (back) { + // led 寮傚父鏄剧ず + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); + } + continue; + } + + if (!Cools.isEmpty(barcode)) { + log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); + if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { + continue; + } + } else { + // led 寮傚父鏄剧ず +// LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); +// if (ledThread != null) { +// String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; +// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); +// } + continue; + } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() + && staProtocol.isLoading() + && staProtocol.isInEnable() + && !staProtocol.isEmptyMk() + && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) + && staProtocol.isPakMk()) { + + if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { + log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); + //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌 + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯"; + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } +// staProtocol.setWorkNo((short)9999); +// staProtocol.setStaNo((short)(staProtocol.getStaNo()-1)); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// if (!result) { +// throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); +// } + continue; + } + + // 鍒ゆ柇閲嶅宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + if (barcode.length() == 8) { + wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode); + if (wrkMast != null) { + log.error("宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo()); + continue; + } + } +// 鑾峰彇鍏ュ簱閫氱煡妗� +// List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); +// if (waitPakins.isEmpty()) { +// log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode); +// continue; +// } + + try { + LocTypeDto locTypeDto = new LocTypeDto(staProtocol); + SearchLocParam param = new SearchLocParam(); + param.setBarcode(barcode); + param.setIoType(1); + param.setSourceStaNo(inSta.getStaNo()); + param.setLocType1(locTypeDto.getLocType1()); + String response = new HttpHandler.Builder() + .setUri(wmsUrl) + .setPath("/rpc/pakin/loc/v1") + .setJson(JSON.toJSONString(param)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (jsonObject.getInteger("code").equals(200)) { + StartupDto dto = jsonObject.getObject("data", StartupDto.class); + + barcodeThread.setBarcode(""); + staProtocol.setWorkNo(dto.getWorkNo().shortValue()); + staProtocol.setStaNo(dto.getStaNo().shortValue()); + devpThread.setPakMk(staProtocol.getSiteId(), false); + ledThread.errorReset(); + boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + if (!result) { + throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触"); + } + } else if(jsonObject.getInteger("code").equals(700)) { +// staProtocol.setWorkNo((short) 9999); +// staProtocol.setStaNo(inSta.getBackSta().shortValue()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// // led 寮傚父鏄剧ず +// if (ledThread != null) { +// String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"; +// MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); +// } + log.error(barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"); + // led 寮傚父鏄剧ず + ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); + if (ledThread != null) { + String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒"; + MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); + } + } else { + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response); + } + + } catch (Exception e) { + e.printStackTrace(); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + } + } + + } + } + + } /** * wms鍏ュ簱 @@ -537,6 +781,7 @@ if (crnProtocol.modeType == CrnModeType.AUTO && crnProtocol.getTaskNo().equals(wrkMast.getWrkNo().shortValue()) && crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.forkPosType == CrnForkPosType.HOME) { + log.error("鍫嗗灈鏈虹瓑寰呯‘璁わ紒锛侊紒 [宸ヤ綔鍙�:{}]", crnProtocol.getTaskNo()); // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- if (crnProtocol.getCrnNo() !=5){ @@ -1162,6 +1407,7 @@ } // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { + log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�併�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); if (crnProtocol.getTaskNo() == 9999) { // 鍫嗗灈鏈哄浣� crnThread.setResetFlag(true); @@ -2082,7 +2328,7 @@ && basDevp.getWrkNo() == 0 && basDevp.getCanining().equals("Y")){ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 staProtocol.setWorkNo((short) 9997); - staProtocol.setStaNo(basDevp.getDevNo().shortValue()); + staProtocol.setStaNo((short) (basDevp.getDevNo()==1004?1003:1013)); // staProtocol.setStaNo((short) 1013); devpThread.setPakMk(staProtocol.getSiteId(), false); boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol)); @@ -2152,11 +2398,19 @@ // && staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 ) { - WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(sta.getStaNo()); + Integer staNo = sta.getStaNo(); + switch (staProtocol.getSiteId()){ + case 4007: + staNo = 4002;break; + case 4016: + staNo = 4011;break; + } + WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(staNo); if (null != pakoutEmpty) { return; } - List<StaDesc> staDescs = staDescService.selectList(new EntityWrapper<StaDesc>().eq("stn_no", sta.getStaNo())); + + List<StaDesc> staDescs = staDescService.selectList(new EntityWrapper<StaDesc>().eq("stn_no", staNo)); for (StaDesc staDesc: staDescs){ BasCrnp basCrnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", staDesc.getCrnNo())); if (!basCrnp.getCrnSts().equals(3) || basCrnp.getCrnErr() != 0){ @@ -2527,13 +2781,28 @@ String batch2 = ""; short type = 0; short type2 = 0; - short anfme = 0; - short anfme2 = 0; + short anfme = 4; + short anfme2 = 4; Double weight = 0d; Double weight2 = 0d; + Double weight11 = 0d; + String memo = ""; + String memo2 = ""; + List<RgvSlave.Sta> inStn1 = rgvSlave.getInStn(); + if (rgvProtocol.getColumnNumber()>4){ + short rgvStaNo = Utils.getRgvStaNo(rgvSlave.getId(), inStn1.get(0).getSourceStaNo()); + if (rgvStaNo<5){ + Collections.reverse(inStn1); + } + } //宸ヤ綅涓�浠诲姟 - for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ + for (RgvSlave.Sta inStn : inStn1){ + work1 = false; + workNo1 = 0; + souSta1 = 0; + sta1 = 0; + type = 0; if (rgvSlave.getId() == 1 && inStn.getSourceStaNo() == 2114){ continue; } @@ -2555,18 +2824,68 @@ workNo1 = wrkMast.getWrkNo(); souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),staProtocol.getSiteId()); sta1 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); + Integer staNo = Utils.getStaNo(rgvSlave.getId(), (int) sta1); + BasDevp devp = basDevpService.selectById(staNo); + if (devp.getWrkNo()!=0 || Cools.isEmpty(devp.getLoading()) || devp.getLoading().equals("Y")){ + continue; + } work1 = true; devpThread.setPakMk(inStn.getSourceStaNo(),false); break; } else if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && (staProtocol.getWorkNo()>=9900 || staProtocol.getWorkNo()==0)) { + if (rgvSlave.getId() != 2 ){ + continue; + } workNo1 = workNo++; souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo()); if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){ sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103); } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) { sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002); + } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 4) { + if (staProtocol.getStaNoEnd() == 3007 || staProtocol.getStaNoEnd() == 3012){ + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103); + } else if (staProtocol.getStaNoEnd() == 2001 ){ + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002); + } else { + log.error("4007绔欑偣锛屾《鍨�4锛岄潪娉曠洰鏍囩珯锛侊紒锛侊紒锛侊紒"+staProtocol.getStaNoEnd().toString()); + continue; + } + Integer staNo = Utils.getStaNo(rgvSlave.getId(), (int) sta1); + BasDevp devp = basDevpService.selectById(staNo); + if (devp.getWrkNo()!=0 || Cools.isEmpty(devp.getLoading()) || devp.getLoading().equals("Y")){ + continue; + } + workNo1 = commonService.getWorkNo(3); + Date now = new Date(); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo1); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鍒濆 + wrkMast.setIoType(199); // 鍏ュ嚭搴撶姸鎬侊細 199.杞Щ + wrkMast.setIoPri(15D); + wrkMast.setCrnNo(0); + wrkMast.setSourceStaNo(4007); // 婧愮珯 + wrkMast.setStaNo(staProtocol.getStaNoEnd().intValue()); // 鐩爣绔� + wrkMast.setFullPlt("N"); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setBarcode("KB888888"); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setCtnNo("Y"); // 鍏ュ簱闃诲搴撲綅绉昏浆鏍囪 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + int res = wrkMastMapper.insert(wrkMast); + if (res == 0) { +// throw new CoolException(""); + log.error("4007绔欑偣锛屾《鍨�4锛屼繚瀛樺伐浣滄。涓绘。澶辫触锛侊紒锛侊紒锛侊紒"+now.toString()); + continue; + } + type = 2; } else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2301); } else { @@ -2577,22 +2896,37 @@ type = 1; } if(inStn.getSourceStaNo() == 2102){ - weight = staProtocol.getWeight().doubleValue(); + weight = staProtocol.getWeight().doubleValue()/10; } - + Integer staNo = Utils.getStaNo(rgvSlave.getId(), (int) sta1); + BasDevp devp = basDevpService.selectById(staNo); + if (devp.getWrkNo()!=0 || Cools.isEmpty(devp.getLoading()) || devp.getLoading().equals("Y")){ + continue; + } work1 = true; if (inStn.getSourcePlcId() == 4 || inStn.getSourcePlcId() ==5){ //鐏岃绔欓渶瑕佽幏鍙栬緭閫佺嚎鐗╂枡浠g爜 matnr = staProtocol.getMatnr(); + batch = staProtocol.getBatch(); + anfme = Cools.isEmpty(staProtocol.getAnfme()) ? anfme:staProtocol.getAnfme().shortValue(); + weight11 = staProtocol.getWeight1(); + weight = weight11; + String memoBool = staProtocol.isBan()? "瀛樺湪":"涓嶅瓨鍦�"; + memo = memoBool+"鍗婃《"; } - devpThread.setPakMk(inStn.getSourceStaNo(),false); break; + } } if (rgvSlave.getId() != 3){ //宸ヤ綅浜屼换鍔� for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ + work2 = false; + workNo2 = 0; + souSta2 = 0; + sta2 = 0; + type2 = 0; if (souSta1 == inStn.getSourceStaNo()){ continue; } @@ -2617,17 +2951,68 @@ workNo2 = wrkMast.getWrkNo(); souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),staProtocol.getSiteId()); sta2 = Utils.getRgvEndStaNo(rgvSlave.getId(),wrkMast.getStaNo()); + Integer staNo = Utils.getStaNo(rgvSlave.getId(), (int) sta2); + BasDevp devp2 = basDevpService.selectById(staNo); + if (devp2.getWrkNo()!=0 || Cools.isEmpty(devp2.getLoading()) || devp2.getLoading().equals("Y")){ + continue; + } + work2 = true; devpThread.setPakMk(inStn.getSourceStaNo(),false); break; } else if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && (staProtocol.getWorkNo()>=9900 || staProtocol.getWorkNo()==0)) { + if (rgvSlave.getId() != 2 ){ + continue; + } workNo2 = workNo++; souSta2 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo()); if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){ sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2103); } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) { sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2002); - }else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { + } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 4) { + if (staProtocol.getStaNoEnd() == 3007 || staProtocol.getStaNoEnd() == 3012){ + sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2103); + } else if (staProtocol.getStaNoEnd() == 2001 ){ + sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2002); + } else { + log.error("4007绔欑偣锛屾《鍨�4锛岄潪娉曠洰鏍囩珯锛侊紒锛侊紒锛侊紒"+staProtocol.getStaNoEnd().toString()); + continue; + } + Integer staNo = Utils.getStaNo(rgvSlave.getId(), (int) sta2); + BasDevp devp2 = basDevpService.selectById(staNo); + if (devp2.getWrkNo()!=0 || Cools.isEmpty(devp2.getLoading()) || devp2.getLoading().equals("Y")){ + continue; + } + workNo2 = commonService.getWorkNo(3); + Date now = new Date(); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo2); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鍒濆 + wrkMast.setIoType(199); // 鍏ュ嚭搴撶姸鎬侊細 199.杞Щ + wrkMast.setIoPri(15D); + wrkMast.setCrnNo(0); + wrkMast.setSourceStaNo(4007); // 婧愮珯 + wrkMast.setStaNo(staProtocol.getStaNoEnd().intValue()); // 鐩爣绔� + wrkMast.setFullPlt("N"); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setBarcode("KB888888"); // 鎵樼洏鐮� + wrkMast.setLinkMis("N"); + wrkMast.setCtnNo("Y"); // 鍏ュ簱闃诲搴撲綅绉昏浆鏍囪 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + int res = wrkMastMapper.insert(wrkMast); + if (res == 0) { +// throw new CoolException(""); + log.error("4007绔欑偣锛屾《鍨�4锛屼繚瀛樺伐浣滄。涓绘。澶辫触锛侊紒锛侊紒锛侊紒"+now.toString()); + continue; + } + type2 = 2; + } else if (inStn.getSourceStaNo() == 2102 && staProtocol.isFullPlt()) { sta2 = Utils.getRgvStaNo(rgvSlave.getId(),2301); } else { sta2 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); @@ -2638,12 +3023,23 @@ } if(inStn.getSourceStaNo() == 2102){ - weight2 = staProtocol.getWeight().doubleValue(); + weight2 = staProtocol.getWeight().doubleValue()/10; + } + Integer staNo = Utils.getStaNo(rgvSlave.getId(), (int) sta2); + BasDevp devp2 = basDevpService.selectById(staNo); + if (devp2.getWrkNo()!=0 || Cools.isEmpty(devp2.getLoading()) || devp2.getLoading().equals("Y")){ + continue; } work2 = true; if (inStn.getSourcePlcId() == 4){ matnr2 = staProtocol.getMatnr(); + batch2 = staProtocol.getBatch(); + anfme2 = Cools.isEmpty(staProtocol.getAnfme2()) ? anfme2:staProtocol.getAnfme2().shortValue(); + weight11 = staProtocol.getWeight1(); + weight2 = weight11; + String memoBool = staProtocol.isBan()? "瀛樺湪":"涓嶅瓨鍦�"; + memo2 = memoBool+"鍗婃《"; } devpThread.setPakMk(inStn.getSourceStaNo(),false); break; @@ -2691,15 +3087,11 @@ command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: all鍙栨斁璐� } command.setCommand(false); - rgvTaskSave(command); + rgvTaskSave(command,memo,memo2); MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(2, command)); log.info("rgv浠诲姟涓嬪彂锛�"+JSON.toJSONString(command)); } } - - - - } } @@ -2726,10 +3118,10 @@ log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); if (offer){ //瀹屾垚rgv浠诲姟 - Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvProtocol.getRgvNo()).eq("wrk_no", rgvProtocol.getTaskNo1()); + Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", rgvSlave.getId()).eq("wrk_no", rgvProtocol.getTaskNo1()); WrkMastSta wrkMastSta1 = wrkMastStaService.selectOne(wrkMastStaWrapper); if (Cools.isEmpty(wrkMastSta1)){ - log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); }else { if (wrkMastSta1.getWrkType() == 8 ){ wrkMastSta1.setWrkSts(3); @@ -2742,10 +3134,15 @@ WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1()); if (Cools.isEmpty(wrkMast)){ log.error("瀹屾垚{}鍙疯溅宸ヤ綅涓�浠诲姟鏈壘鍒板搴攔gv浠诲姟,{}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); - }else { + } else { if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){ Date date = new Date(); wrkMast.setWrkSts(14L); + wrkMast.setModiTime(date); + wrkMastService.updateById(wrkMast); + } else if (wrkMast.getIoType()==199 && rgvSlave.getId()==3 && (wrkMast.getStaNo()==3007 || wrkMast.getStaNo()==3012)){ + Date date = new Date(); + wrkMast.setWrkSts(105L); wrkMast.setModiTime(date); wrkMastService.updateById(wrkMast); } @@ -2832,7 +3229,7 @@ WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvSlave.getId(), rgvProtocol.getTaskNo1()); WrkMast wrkMast = wrkMastService.selectByworkNo(rgvProtocol.getTaskNo1()); if (Cools.isEmpty(wrkMastSta)){ - log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); continue; } for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ @@ -2926,7 +3323,9 @@ staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue()); if (wrkMastSta.getType() == 1){ staProtocol.setStaNo((short) 9999); - }else { + } else if (wrkMastSta.getType() == 2){//杞繍 + staProtocol.setStaNo((short) 2114); + } else { staProtocol.setStaNo((short) 2106); } staProtocol.setMatnr(wrkMastSta.getMatnr1()); @@ -2963,7 +3362,9 @@ staProtocol.setWorkNo(wrkMastSta.getWrkNo2().shortValue()); if (wrkMastSta.getType2() == 1){ staProtocol.setStaNo((short) 9999); - }else { + } else if (wrkMastSta.getType() == 2){//杞繍 + staProtocol.setStaNo((short) 2114); + } else { staProtocol.setStaNo((short) 2106); } @@ -3019,6 +3420,11 @@ if (wrkMast.getIoType() == 110 || wrkMast.getIoType() == 101){ Date date = new Date(); wrkMast.setWrkSts(14L); + wrkMast.setModiTime(date); + wrkMastService.updateById(wrkMast); + } else if (wrkMast.getIoType()==199 && wrkMast.getStaNo()==2001){ + Date date = new Date(); + wrkMast.setWrkSts(105L); wrkMast.setModiTime(date); wrkMastService.updateById(wrkMast); } @@ -3085,7 +3491,7 @@ } } - public boolean rgvTaskSave(RgvCommand command){ + public boolean rgvTaskSave(RgvCommand command,String memo,String memo2){ // Wrapper<WrkMastSta> wrkMastStaWrapper = new EntityWrapper<WrkMastSta>().eq("wrk_crn", command.getRgvNo()).eq("wrk_no", command.getTaskNo1()); if (command.getTaskNo1() > 0){ List<WrkMastSta> wrkMastSta1 = wrkMastStaService.selectBywrkNoHistoricalTasks(command.getRgvNo(),command.getTaskNo1()); @@ -3130,6 +3536,8 @@ wrkMastSta.setAnfme2(command.getAnfme2().intValue()); wrkMastSta.setWeight(command.getWeight()); wrkMastSta.setWeight2(command.getWeight2()); + wrkMastSta.setMemo(memo); + wrkMastSta.setMemo2(memo2); return wrkMastStaService.insert(wrkMastSta); } @@ -3203,7 +3611,7 @@ WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N")); if (Cools.isEmpty(waitPakin)) { try { - CreateComb(barcode, staProtocol.getMatnr(),staProtocol.getWorkNo().intValue(),staProtocol.getBatch()); + CreateComb(barcode, staProtocol.getMatnr(),staProtocol.getWorkNo().intValue(),staProtocol.getBatch(),inSta); }catch (IOException e) { throw new CoolException(e); } @@ -3273,9 +3681,10 @@ } - public void CreateComb(String barcode,Integer code,Integer wrkNo,String batch) throws IOException { + public void CreateComb(String barcode,Integer code,Integer wrkNo,String batch,DevpSlave.Sta inSta) throws IOException { Double anfme = 0d; Double weight = 0d; + String memo = ""; WrkMastSta wrkMastSta = wrkMastStaService.selectOne(new EntityWrapper<WrkMastSta>().eq("wrk_no", wrkNo)); if (Cools.isEmpty(wrkMastSta)){ @@ -3291,12 +3700,14 @@ anfme = wrkMastSta.getAnfme2().doubleValue(); code = wrkMastSta.getMatnr2(); weight = wrkMastSta.getWeight2(); + memo = wrkMastSta.getMemo2(); } }else { batch = wrkMastSta.getBatch(); anfme = wrkMastSta.getAnfme().doubleValue(); code = wrkMastSta.getMatnr1(); weight = wrkMastSta.getWeight(); + memo = wrkMastSta.getMemo(); } MatnrCode matnrCode = matnrCodeService.selectByCode(code); if (Cools.isEmpty(matnrCode)){ @@ -3309,6 +3720,8 @@ combMat.setMatnr(matnrCode.getMatnr()); combMat.setBatch(batch); combMat.setAnfme(anfme); + combMat.setWeight(weight); + combMat.setMemo(memo); combMats.add(combMat); combParam.setCombMats(combMats); @@ -3324,6 +3737,9 @@ }else { log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/mobile/comb/auth", JSON.toJSONString(combParam), response); +// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); + //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撲俊鍙蜂笅鍙� + boolean result = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, null)); } } -- Gitblit v1.9.1