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 | 168 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 117 insertions(+), 51 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 b8f44be..7f2d211 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -4,21 +4,18 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; -import com.core.common.R; import com.core.common.SpringUtils; import com.core.exception.CoolException; -import com.fasterxml.jackson.databind.ObjectMapper; import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.TaskOverToWms; -import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; -import com.zy.asrs.entity.param.taskCreateParam; -import com.zy.asrs.mapper.*; +import com.zy.asrs.mapper.BasCrnErrorMapper; +import com.zy.asrs.mapper.StaDescMapper; +import com.zy.asrs.mapper.TaskWrkMapper; +import com.zy.asrs.mapper.WrkMastMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.CommandUtils; -import com.zy.asrs.utils.PostMesDataUtils; import com.zy.asrs.utils.Utils; -import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import com.zy.core.CrnThread; import com.zy.core.DevpThread; @@ -34,7 +31,6 @@ import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; -import com.zy.core.thread.LedThread; import com.zy.core.thread.SiemensDevpThread; import com.zy.system.entity.Config; import com.zy.system.service.ConfigService; @@ -91,6 +87,13 @@ @Autowired private ApiLogService apiLogService; +// +// // 鍏ュ簱绔欑偣鍙峰搴旂殑鍫嗗灈鏈� +// private static final Map<Integer,Integer> staNoToCrnMap = new HashMap<Integer,Integer>(){{ +// put(103,1); put(205,1); put(107,2); put(211,2); +// put(111,3); put(217,3); put(115,4); put(223,4); +// put(119,5); put(229,5); put(123,6); put(235,6); +// }}; @Value("${wms.url}") private String wmsUrl; @@ -211,6 +214,9 @@ if (taskWrk.getStatus() != 2){ continue; } + if (!staProtocol.isPakMk()){ + continue; + } //鑾峰彇鍫嗗灈鏈虹珯鐐� StaDesc staDesc = new StaDesc(); if (devp.getId() <= 1){ @@ -220,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()); @@ -277,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")); @@ -291,12 +308,17 @@ } } } +// +// private boolean getCrnByStaNo(Integer staNo) { +// int crn = staNoToCrnMap.get(staNo); +// BasCrnp crnp = basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no", crn)); +// return crnp.getCrnSts() == 0; +// } /** * 鍫嗗灈鏈虹珯鍑哄簱鍒板嚭搴撶珯 */ - @Async public void crnStnToOutStn() { for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 @@ -332,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); @@ -357,6 +384,8 @@ } else if (taskWrk.getIoType() == 2) { taskWrk.setWrkSts(14); } + Date now = new Date(); + taskWrk.setCompleteTime(now); if (!taskWrkService.updateById(taskWrk)){ log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�"); } @@ -464,16 +493,16 @@ log.error("杩涘叆淇敼宸ヤ綔妗f祦绋�"); Date now = new Date(); taskWrk.setWrkSts(3); + taskWrk.setExecuteTime(now); taskWrk.setModiTime(now); if (taskWrkMapper.updateById(taskWrk) == 0) { 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()); //鍙栧嚭鍛戒护 @@ -489,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鎶ラ敊"); } + } // // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -586,6 +620,21 @@ // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) { + // 鑾峰彇娴呭簱浣嶏紝鐘舵�佷负S鐩存帴鍑猴紝鐘舵�佷负R锛屽垯鎵惧埌杩欎釜搴撲綅鐨勫伐浣滄。锛屾彁鍗囦紭鍏堢骇鍏堝嚭 + String shallowLoc = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint()); + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc)); + 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()); + } + } taskWrkMapper.selectPakOutIoType(taskWrk.getCrnNo()); @@ -642,19 +691,27 @@ // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� Date now = new Date(); taskWrk.setWrkSts(12); + taskWrk.setExecuteTime(now); 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澶辫触,"); + } + } } @@ -674,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()); @@ -684,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; } @@ -766,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; @@ -787,7 +850,7 @@ /** * 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� */ - @Async + public void storeFinished() { for (CrnSlave crn : slaveProperties.getCrn()) { // 鑾峰彇鍫嗗灈鏈轰俊鎭� @@ -799,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(); @@ -833,6 +897,8 @@ } else if (taskWrk.getIoType() == 2) { taskWrk.setWrkSts(14); } + Date now = new Date(); + taskWrk.setCompleteTime(now); if (!taskWrkService.updateById(taskWrk)){ log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�"); } @@ -888,7 +954,7 @@ /** * 鍫嗗灈鏈哄紓甯镐俊鎭褰� */ - @Async + public void recCrnErr(){ Date now = new Date(); for (CrnSlave crn : slaveProperties.getCrn()) { @@ -1018,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