From d3f3d4b309cfb285fcbbc48b91c4046111c7e9cd Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 02 七月 2025 13:45:54 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 133 ++++++++++++++++++++++++++++---------------- 1 files changed, 84 insertions(+), 49 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 3a0a9f4..7f2d211 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -173,10 +173,6 @@ } continue; } -// // 鍏ュ簱绔欑偣瀵瑰簲鍫嗗灈鏈猴紝鍒ゆ柇鍫嗗灈鏈虹姸鎬侊紝涓嶆槸鑷姩,鍏堝脊绐�,鐒跺悗continue -// if (getCrnByStaNo(inSta.getStaNo())) { -// continue; -// } // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() @@ -218,6 +214,9 @@ if (taskWrk.getStatus() != 2){ continue; } + if (!staProtocol.isPakMk()){ + continue; + } //鑾峰彇鍫嗗灈鏈虹珯鐐� StaDesc staDesc = new StaDesc(); if (devp.getId() <= 1){ @@ -227,9 +226,11 @@ staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("stn_no", 400).ge("stn_no", 250)); } + staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); + devpThread.setPakMk(staProtocol.getSiteId(), false); Thread.sleep(500); }else { //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo()); @@ -284,6 +285,15 @@ if (!taskWrkService.updateById(taskWrk)){ log.error("淇濆瓨wms搴撲綅鍙峰け璐�"); } +// try { +// // 鏇存柊搴撲綅涓哄叆搴撻绾� +// LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); +// locMast.setLocSts("S"); +// locMastService.updateById(locMast); +// log.info("-----鍏ュ簱鏇存柊搴撲綅鐘舵�佷负锛歋鎴愬姛----------"+ locMast.getLocNo()); +// } catch (Exception e){ +// log.error("-----鍏ュ簱鏇存柊搴撲綅鐘舵�佷负锛歋寮傚父----------"+ e); +// } }else { log.error("wms閫氳澶辫触,"+jsonObject.get("msg")); @@ -309,7 +319,6 @@ /** * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯 */ - @Async public void crnStnToOutStn() { for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 @@ -345,23 +354,28 @@ && crnProtocol.forkPosType == CrnForkPosType.HOME) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - //鍙栧嚭杈撻�佺嚎鍛戒护 - List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo()); - if (commandInfos.isEmpty()) { - continue;//鍛戒护绌� - } + try { + //鍙栧嚭杈撻�佺嚎鍛戒护 + List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo()); + if (commandInfos.isEmpty()) { + continue;//鍛戒护绌� + } // CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃 // CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class); - Integer commandStep = taskWrk.getCommandStep(); - CommandInfo commandInfo = commandInfos.get(commandStep); - CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃 - //StaProtocol staProtocol1 = JSON.parseObject(commandInfo.getCommand(), StaProtocol.class); - StaProtocol staProtocol1 = JSON.parseObject(commandPackage.getCommand().toString(), StaProtocol.class); - if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol1))) { - log.error("杈撻�佺嚎鍛戒护涓嬫柟澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo()); - continue;//鍛戒护涓嬪彂澶辫触 + Integer commandStep = taskWrk.getCommandStep(); + CommandInfo commandInfo = commandInfos.get(commandStep); + CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃 + //StaProtocol staProtocol1 = JSON.parseObject(commandInfo.getCommand(), StaProtocol.class); + StaProtocol staProtocol1 = JSON.parseObject(commandPackage.getCommand().toString(), StaProtocol.class); + if (!MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol1))) { + log.error("杈撻�佺嚎鍛戒护涓嬫柟澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo()); + continue;//鍛戒护涓嬪彂澶辫触 + } + }catch (Exception e){ + throw new CoolException("鍙栧嚭杈撻�佺嚎鍛戒护澶辫触"); } + // 澶嶄綅鍫嗗灈鏈� crnThread.setResetFlag(true); @@ -485,11 +499,10 @@ log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); } TaskWrk taskWrk2 = taskWrkService.selectByWrkNo(taskWrk.getWrkNo()); - if (taskWrk2.getWrkSts() != 3){ continue; } - log.error("杩涘叆淇敼宸ヤ綔妗f祦绋嬪畬鎴�,taskWrk=", taskWrk.getWrkNo()); + log.error("杩涘叆淇敼宸ヤ綔妗f祦绋嬪畬鎴�,taskWrk="+ taskWrk.getWrkNo()); //鍙栧嚭鍛戒护 @@ -505,15 +518,20 @@ if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { - //寮�濮嬭繍琛� - String response = CrnStartRunning(taskWrk); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { + try { + //寮�濮嬭繍琛� + String response = CrnStartRunning(taskWrk); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { - }else { - log.error("鍏ュ簱寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg")); + }else { + log.error("鍏ュ簱寮�濮嬭繍琛寃ms鎶ラ敊,"+jsonObject.get("msg")); + } + }catch (Exception e) { + log.error("鍏ュ簱寮�濮嬭繍琛寃ms鎶ラ敊"); } + } // // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -605,13 +623,16 @@ // 鑾峰彇娴呭簱浣嶏紝鐘舵�佷负S鐩存帴鍑猴紝鐘舵�佷负R锛屽垯鎵惧埌杩欎釜搴撲綅鐨勫伐浣滄。锛屾彁鍗囦紭鍏堢骇鍏堝嚭 String shallowLoc = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint()); LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc)); - if (locMast.getLocSts().equals("R")) { - List<TaskWrk> wrkMastList = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>().eq("source_loc_no", locMast.getLocNo())); + if (locMast.getLocSts().equals("Z")) { + List<TaskWrk> wrkMastList = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>().eq("start_point", locMast.getLocNo())); if (!wrkMastList.isEmpty()) { TaskWrk wrkMast = wrkMastList.get(0); wrkMast.setIoPri(99); taskWrkMapper.updateById(wrkMast); + log.warn("{}瀵瑰簲娴呭簱浣嶆湁璐э紝鎻愬崌{}搴撲綅浼樺厛绾�",taskWrk.getStartPoint(),wrkMast.getStartPoint()); continue; + } else { + log.error("{}瀵瑰簲娴呭簱浣嶆湁璐э紝浣嗘病鏈夌Щ搴撲换鍔�",taskWrk.getStartPoint()); } } @@ -674,16 +695,23 @@ taskWrk.setModiTime(now); if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); - } - //寮�濮嬭繍琛� - String response = CrnStartRunning(taskWrk); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - }else { - log.error("鍑哄簱寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg")); - + log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓紒锛侊紝宸ヤ綔鍙�={}", taskWrk.getWrkNo()); } + try { + //寮�濮嬭繍琛� + String response = CrnStartRunning(taskWrk); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + + }else { + log.error("鍑哄簱寮�濮嬭繍琛寃ms澶辫触,"+jsonObject.get("msg")); + + } + }catch (Exception e){ + log.error("鍑哄簱寮�濮嬭繍琛寃ms澶辫触,"); + } + } } @@ -703,7 +731,6 @@ .eq("wrk_sts",11) .eq("io_type",3)); for (TaskWrk taskWrk : taskWrks){ - // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) { String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint()); @@ -713,7 +740,7 @@ } } // 鍫嗗灈鏈烘帶鍒惰繃婊� - if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + if (!crnProtocol.getModeType().equals(CrnModeType.AUTO) || !crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { continue; } @@ -795,16 +822,23 @@ taskWrk.setModiTime(now); if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); + }else{ + log.info("绉诲簱浠诲姟涓嬪彂浠诲姟鎴愬姛锛屼慨鏀瑰伐浣滄。鐘舵�� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 锛屽伐浣滃彿={}", taskWrk.getWrkNo()); } //寮�濮嬭繍琛� - String response = CrnStartRunning(taskWrk); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { + try{ + String response = CrnStartRunning(taskWrk); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { - }else { - log.error("绉诲簱浠诲姟寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg")); - continue; + }else { + log.error("绉诲簱浠诲姟寮�濮嬭繍琛寃ms杩斿洖澶辫触,"+jsonObject.get("msg")); + continue; + } + }catch (Exception e){ + log.error("绉诲簱浠诲姟寮�濮嬭繍琛岃姹倃ms鎶ラ敊,"+e.getMessage()); } + break; } return; @@ -816,7 +850,7 @@ /** * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� */ - @Async + public void storeFinished() { for (CrnSlave crn : slaveProperties.getCrn()) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -828,11 +862,12 @@ if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) { //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue()); + if (Cools.isEmpty(taskWrk)) { // log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); continue; } - + log.info("鏀跺埌鐢宠瀹屾垚璇锋眰锛�" + taskWrk); //鑾峰彇鎸囦护ID // Integer commandId = crnProtocol.getCommandId(); // CommandInfo commandInfo = new CommandInfo(); @@ -919,7 +954,7 @@ /** * 鍫嗗灈鏈哄紓甯镐俊鎭褰� */ - @Async + public void recCrnErr(){ Date now = new Date(); for (CrnSlave crn : slaveProperties.getCrn()) { @@ -1049,8 +1084,8 @@ for (TaskWrk taskWrk : taskWrkService.selectReceive()) { try { taskWrkService.distribute(taskWrk.getTaskNo(), 9527L); - } catch (CoolException e) { -// log.info(e.getMessage()); + } catch (Exception e) { +// log.error("鑷姩娲惧彂浠诲姟寮傚父锛�"+e.getMessage()+"{" + taskWrk.toString()); } } } -- Gitblit v1.9.1