From dbae31a7a7cd59048ada9b51fe8faff545324c59 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 15 三月 2024 16:02:53 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 427 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 346 insertions(+), 81 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 ccd1501..9a781a5 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -10,6 +10,7 @@ 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.*; @@ -85,6 +86,11 @@ @Autowired private OpenServiceImpl openServiceImpl; + @Autowired + private StaDescService staDescService; + + @Autowired + private ApiLogService apiLogService; @Value("${wms.url}") private String wmsUrl; @@ -92,7 +98,7 @@ private String movePath; - public void generateStoreWrkFile() throws IOException { + public void generateStoreWrkFile() throws IOException, InterruptedException { // 鏍规嵁杈撻�佺嚎plc閬嶅巻 for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鍏ュ簱鍙� @@ -106,11 +112,9 @@ staProtocol = staProtocol.clone(); } Short workNo = staProtocol.getWorkNo(); - // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() && staProtocol.isLoading() - && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && (workNo >= 0) - && staProtocol.isPakMk()) { + Short stano = staProtocol.getStaNo(); + + // 灏哄妫�娴嬪紓甯� boolean back = false; @@ -145,12 +149,20 @@ } // 閫�鍥� if (back) { + if (stano == inSta.getBackSta().shortValue()){ + continue; + } + if (workNo == 0 && stano == 0){ + continue; + } + if (!staProtocol.isPakMk()){ + continue; + } // News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); staProtocol.setWorkNo(workNo); staProtocol.setStaNo(inSta.getBackSta().shortValue()); devpThread.setPakMk(staProtocol.getSiteId(), false); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); - TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo)); if (taskWrk != null) { taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず @@ -158,41 +170,66 @@ } continue; } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 + if (staProtocol.isAutoing() && staProtocol.isLoading() + && staProtocol.isInEnable() + && !staProtocol.isEmptyMk() && (workNo >= 0) + && staProtocol.isPakMk()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); if (barcodeThread == null) { continue; } String barcode = barcodeThread.getBarcode(); + staProtocol.setBarcode(barcode); if(!Cools.isEmpty(barcode)) { + StaDescService staDescService = SpringUtils.getBean(StaDescService.class); + ToWmsDTO toWmsDTO = new ToWmsDTO(); Map<String, Object> map = new HashMap<>(); map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); - List<Integer> list = openServiceImpl.getInEnableRoadway(); - TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode).eq("crn_no",inSta.getBarcode())); + + TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); + if (Cools.isEmpty(taskWrk)){ continue; } - if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null && taskWrk.getWrkNo() != null && taskWrk.getWrkNo().shortValue() != workNo){ - //鑾峰彇鍫嗗灈鏈虹珯鐐� - StaDescService staDescService = SpringUtils.getBean(StaDescService.class); + + //StaDesc staDesc1 = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no",inSta.getBackSta())); + if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null){ + if ( taskWrk.getWrkNo() != null && taskWrk.getWrkNo().shortValue() == workNo ){ + continue; + } + //鑾峰彇鍫嗗灈鏈虹珯鐐� StaDesc staDesc = new StaDesc(); if (devp.getId() <= 1){ staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("crn_stn", 200)); + .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).lt("stn_no", 200)); }else { staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk.getCrnNo()).eq("type_no",1).ge("crn_stn", 200)); + .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)); + Thread.sleep(500); }else { //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo()); toWmsDTO.setWarehouseId("1688469798893297665"); toWmsDTO.setContainerCode(barcode); toWmsDTO.setApplyType("TUNNEL_LOCATION"); - toWmsDTO.setTaskTunnel(taskWrk.getCrnNo()); + List<Integer> list = new ArrayList<>(); + + if (inSta.getBarcode() == 7 || inSta.getBarcode() == 8){ + toWmsDTO.setTaskTunnel(taskWrk.getCrnNo()); + list.add(taskWrk.getCrnNo()); + }else { + toWmsDTO.setTaskTunnel(inSta.getBarcode()); + list.add(inSta.getBarcode()); + } + + + toWmsDTO.setCanInboundTunnels(list); String response = null; try { @@ -207,6 +244,14 @@ log.error("wms閫氳澶辫触,"+e.getMessage()); continue; } + apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛" + ,wmsUrl+"wcsManager/wcsInterface/inboundTaskApply" + ,null + ,"127.0.0.1" + ,JSON.toJSONString(toWmsDTO) + ,response + ,true + ); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class); @@ -288,9 +333,18 @@ log.error("杈撻�佺嚎鍛戒护涓嬫柟澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo()); continue;//鍛戒护涓嬪彂澶辫触 } - // 澶嶄綅鍫嗗灈鏈� crnThread.setResetFlag(true); + + if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){ + taskWrk.setWrkSts(4); + } else if (taskWrk.getIoType() == 2) { + taskWrk.setWrkSts(14); + } + if (!taskWrkService.updateById(taskWrk)){ + log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�"); + } + } } @@ -390,6 +444,21 @@ if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) { continue; } + // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� + log.error("杩涘叆淇敼宸ヤ綔妗f祦绋�"); + Date now = new Date(); + taskWrk.setWrkSts(3); + taskWrk.setModiTime(now); + if (taskWrkMapper.updateById(taskWrk) == 0) { + log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); + } + TaskWrk taskWrk2 = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue()); + + if (taskWrk2.getWrkSts() != 3){ + continue; + } + log.error("杩涘叆淇敼宸ヤ綔妗f祦绋嬪畬鎴�,taskWrk=", JSON.toJSONString(taskWrk)); + //鍙栧嚭鍛戒护 List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo()); @@ -404,12 +473,14 @@ if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { - // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� - Date now = new Date(); - taskWrk.setWrkSts(3); - taskWrk.setModiTime(now); - if (taskWrkMapper.updateById(taskWrk) == 0) { - log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); + //寮�濮嬭繍琛� + String response = CrnStartRunning(taskWrk); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + + }else { + log.error("鍏ュ簱寮�濮嬭繍琛岄�氳澶辫触,"+jsonObject.get("msg")); + } } @@ -439,7 +510,7 @@ // } } - return; + // return; } } @@ -509,25 +580,25 @@ String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint()); TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo); if (!Cools.isEmpty(hallowLocNoTask)){ - if (!Cools.isEmpty(hallowLocNoTask.getTargetPoint())){ - continue; - } -// new PostMesDataUtils().postMesData("绉诲簱浠诲姟鍒嗛厤搴撲綅",wmsUrl,movePath,hallowLocNoTask); - try { - String response = new HttpHandler.Builder() - .setUri(wmsUrl) - .setPath(movePath) - .setJson(JSON.toJSONString(hallowLocNoTask)) - .build() - .doPost(); - System.out.println("response:"+response); - JSONObject jsonObject = JSON.parseObject(response); - if (jsonObject.getInteger("code").equals(200)) { - //瑙f瀽 - } - }catch (Exception e){ - log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/"+movePath, JSON.toJSONString(hallowLocNoTask), "璇锋眰绉诲簱浠诲姟鍒嗛厤搴撲綅"); - } +// if (!Cools.isEmpty(hallowLocNoTask.getTargetPoint())){ +// continue; +// } +//// new PostMesDataUtils().postMesData("绉诲簱浠诲姟鍒嗛厤搴撲綅",wmsUrl,movePath,hallowLocNoTask); +// try { +// String response = new HttpHandler.Builder() +// .setUri(wmsUrl) +// .setPath(movePath) +// .setJson(JSON.toJSONString(hallowLocNoTask)) +// .build() +// .doPost(); +// System.out.println("response:"+response); +// JSONObject jsonObject = JSON.parseObject(response); +// if (jsonObject.getInteger("code").equals(200)) { +// //瑙f瀽 +// } +// }catch (Exception e){ +// log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/"+movePath, JSON.toJSONString(hallowLocNoTask), "璇锋眰绉诲簱浠诲姟鍒嗛厤搴撲綅"); +// } continue; } } @@ -538,6 +609,13 @@ if (commandInfos.isEmpty()) { continue;//鍛戒护绌� } + + //鍒ゆ柇鏈鍛戒护鏄惁鎵ц + CommandInfo commandInfo2 = commandInfos.get(commandInfos.size() - 1); + if (commandInfo2.getCommandStatus() != CommandStatusType.CREATE.id) { + continue;//鎸囦护宸叉墽琛� + } + CommandInfo commandInfo = commandInfos.get(commandStep); CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃 CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class); @@ -552,8 +630,17 @@ 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")); + + } } - return; + } } } @@ -566,9 +653,68 @@ public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){ for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) { // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑绉诲簱宸ヤ綔妗� - List<TaskWrk> taskWrks = taskWrkMapper.selectPakOut3(slave.getId(), crnStn.getStaNo().toString()); + List<TaskWrk> taskWrks = taskWrkMapper.selectList(new EntityWrapper<TaskWrk>() + .eq("crn_no",slave.getId()) + .eq("wrk_sts",11) + .eq("io_type",3)); for (TaskWrk taskWrk : taskWrks){ - if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("")) { + + // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� + if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) { + String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint()); + TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo); + if (!Cools.isEmpty(hallowLocNoTask)){ + continue; + } + } + // 鍫嗗灈鏈烘帶鍒惰繃婊� + if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + continue; + } + + // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� + if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) { + continue; + } + if (Cools.isEmpty(taskWrk.getTargetPoint())){ + List<Integer> list = openServiceImpl.getInEnableRoadway(); + Map<String, Object> map = new HashMap<>(); + map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); + ToWmsDTO toWmsDTO = new ToWmsDTO(); + toWmsDTO.setWarehouseId("1688469798893297665"); + toWmsDTO.setContainerCode(taskWrk.getBarcode()); + toWmsDTO.setApplyType("TUNNEL_LOCATION"); + toWmsDTO.setTaskTunnel(taskWrk.getCrnNo()); + toWmsDTO.setCanInboundTunnels(list); + String response = null; + try { + response = new HttpHandler.Builder() + .setHeaders(map) + .setUri(wmsUrl) + .setPath("wcsManager/wcsInterface/inboundTaskApply") + .setJson(JSON.toJSONString(toWmsDTO)) + .build() + .doPost(); + }catch (Exception e){ + log.error("wms閫氳澶辫触,"+e.getMessage()); + continue; + } + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(200)) { + GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class); + taskWrk.setOriginTargetPoint(getWmsDto.getTargetLocationCode()); + taskWrk.setTargetPoint(Utils.getWcsLocNo(getWmsDto.getTargetLocationCode())); + if (!taskWrkService.updateById(taskWrk)){ + log.error("淇濆瓨wms搴撲綅鍙峰け璐�"); + } + continue; + }else { + log.error("wms閫氳澶辫触,"+jsonObject.get("msg")); + continue; + } + + } + if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("") || taskWrk.getWrkNo() == null) { continue; } // 宸ヤ綔妗g姸鎬佸垽鏂� @@ -579,15 +725,7 @@ // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- - // 鍫嗗灈鏈烘帶鍒惰繃婊� - if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { - continue; - } - // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� - if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) { - continue; - } // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� @@ -596,13 +734,14 @@ crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� - if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) { + crnCommand.setSourcePosZ(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosX(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosY(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosZ(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosX(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosY(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� + crnCommand.setCommand((short) 1); + if (!CommandUtils.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand),false)) { log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); } else { // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� @@ -611,6 +750,15 @@ 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")); + continue; } break; } @@ -630,22 +778,48 @@ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); CrnProtocol crnProtocol = crnThread.getCrnProtocol(); if (crnProtocol == null) { continue; } + // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 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; + } //鑾峰彇鎸囦护ID Integer commandId = crnProtocol.getCommandId(); - CommandInfo commandInfo = commandInfoService.selectById(commandId); + CommandInfo commandInfo = new CommandInfo(); + if (Cools.isEmpty(commandId)){ + commandInfo = commandInfoService.selectOne(new EntityWrapper<CommandInfo>() + .eq("wrk_no",crnProtocol.getTaskNo()) + .eq("device","Crn")); + }else { + commandInfo = commandInfoService.selectById(commandId); + } + + if (commandInfo == null) { //鎸囦护涓嶅瓨鍦� continue; } - + if (commandInfo.getCommandStatus() == 3){ + continue; + } commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);//鎸囦护瀹屾垚 commandInfo.setCompleteTime(new Date());//鎸囦护瀹屾垚鏃堕棿 if (commandInfoService.updateById(commandInfo)) {//淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 // 鍫嗗灈鏈哄浣� crnThread.setResetFlag(true); + if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){ + taskWrk.setWrkSts(4); + } else if (taskWrk.getIoType() == 2) { + taskWrk.setWrkSts(14); + } + if (!taskWrkService.updateById(taskWrk)){ + log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�"); + } } } } @@ -708,20 +882,20 @@ if (crnProtocol == null) { continue; } - if (true) { + if (false) { // if (crnProtocol.getModeType() != CrnModeType.STOP) { // 鏈変换鍔� if (crnProtocol.getTaskNo() != 0) { BasErrLog latest = basErrLogService.findLatestByTaskNo(crn.getId(), crnProtocol.getTaskNo().intValue()); // 鏈夊紓甯� if (latest == null) { - if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) { + if (crnProtocol.getAlarm() != null && crnProtocol.getAlarm() > 0) { WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo()); if (wrkMast == null) { continue; } - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName(); + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); + String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 wrkMast.getWrkNo(), // 宸ヤ綔鍙� @@ -764,11 +938,11 @@ } else { BasErrLog latest = basErrLogService.findLatest(crn.getId()); // 鏈夊紓甯� - if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm1() > 0) { + if (crnProtocol.getAlarm1() != null && crnProtocol.getAlarm() > 0) { // 璁板綍鏂板紓甯� - if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm1().intValue())) { - BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm1()); - String errName = crnError==null? String.valueOf(crnProtocol.getAlarm1()):crnError.getErrName(); + if (latest == null || (latest.getErrCode() != crnProtocol.getAlarm().intValue())) { + BasCrnError crnError = basCrnErrorMapper.selectById(crnProtocol.getAlarm()); + String errName = crnError==null? String.valueOf(crnProtocol.getAlarm()):crnError.getErrName(); BasErrLog basErrLog = new BasErrLog( null, // 缂栧彿 null, // 宸ヤ綔鍙� @@ -829,7 +1003,7 @@ try { taskWrkService.distribute(taskWrk.getTaskNo(), 9527L); } catch (CoolException e) { - log.info(e.getMessage()); +// log.info(e.getMessage()); } } } @@ -840,49 +1014,140 @@ for (TaskWrk taskWrk : taskWrks) { //鑾峰彇鍛戒护闆嗗悎 List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo()); - if (taskWrk.getCommandStep() != commandInfos.size()) { + if (taskWrk.getCommandStep() < commandInfos.size()) { continue;//褰撳墠姝ュ簭娌℃湁鍒拌揪鏈�鍚庝竴鏉″懡浠� } //鍒ゆ柇鏈鍛戒护鏄惁鎵ц瀹屾垚 - CommandInfo commandInfo = commandInfos.get(commandInfos.size() - 1); - if (commandInfo.getCommandStatus() != CommandStatusType.COMPLETE.id) { - continue;//鎸囦护鏈畬鎴� + if (!commandInfos.isEmpty()){ + CommandInfo commandInfo = commandInfos.get(commandInfos.size() - 1); + if (commandInfo.getCommandStatus() != CommandStatusType.COMPLETE.id) { + continue;//鎸囦护鏈畬鎴� + } } + Date now = new Date(); //鎸囦护宸插畬鎴愶紝鏇存柊浠诲姟 if (taskWrk.getIoType() == 1) { //鍏ュ簱浠诲姟 - taskWrk.setWrkSts(4);//3.鍚婅溅鍏ュ簱涓� => 4.鍏ュ簱瀹屾垚 - //taskWrk.setStatus(TaskStatusType.COMPLETE.id); +// taskWrk.setWrkSts(4);//3.鍚婅溅鍏ュ簱涓� => 4.鍏ュ簱瀹屾垚 + taskWrk.setStatus(TaskStatusType.OVER.id); taskWrk.setModiTime(now); taskWrkService.updateById(taskWrk); //鏇存柊搴撲綅鐘舵�� LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); - locMast.setLocSts("F");//F.鍦ㄥ簱 + locMast.setLocSts("Z");//F.鍦ㄥ簱 locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮� locMast.setModiTime(now); locMast.setModiUser(9999L); locMastService.updateById(locMast); } else if (taskWrk.getIoType() == 2) { //鍑哄簱浠诲姟 - taskWrk.setWrkSts(14);//12.鍚婅溅鍑哄簱涓� => 14.鍑哄簱瀹屾垚 - taskWrk.setStatus(TaskStatusType.COMPLETE.id); +// taskWrk.setWrkSts(14);//12.鍚婅溅鍑哄簱涓� => 14.鍑哄簱瀹屾垚 + taskWrk.setStatus(TaskStatusType.OVER.id); taskWrk.setModiTime(now); taskWrkService.updateById(taskWrk); //鏇存柊搴撲綅鐘舵�� LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint()); - locMast.setLocSts("O");//O.绌哄簱浣� + locMast.setLocSts("K");//O.绌哄簱浣� locMast.setBarcode("");//鎵樼洏鐮� locMast.setModiTime(now); locMast.setModiUser(9999L); locMastService.updateById(locMast); + } else if (taskWrk.getIoType() == 3) { + + //鏇存柊璧峰搴撲綅鐘舵�� + LocMast locMastStart = locMastService.selectByLocNo(taskWrk.getStartPoint()); + locMastStart.setLocSts("K");//O.绌哄簱浣� + locMastStart.setBarcode("");//鎵樼洏鐮� + locMastStart.setModiTime(now); + locMastStart.setModiUser(9999L); + locMastService.updateById(locMastStart); + + //鏇存柊鐩爣搴撲綅鐘舵�� + LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint()); + locMast.setLocSts("Z");//F.鍦ㄥ簱 + locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮� + locMast.setModiTime(now); + locMast.setModiUser(9999L); + locMastService.updateById(locMast); + + taskWrk.setStatus(TaskStatusType.OVER.id); + taskWrk.setModiTime(now); + taskWrkService.updateById(taskWrk); + + } } } + public synchronized String CrnStartRunning(TaskWrk taskWrk){ + String tasktype = null; + switch (taskWrk.getIoType()){ + case 1: + tasktype= "RK"; + break; + case 2: + tasktype= "CK"; + break; + case 3: + tasktype= "YK"; + break; + default: + tasktype= "鏈煡"; + } + Map<String, Object> map = new HashMap<>(); + map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); + TaskOverToWms taskOverToWms = new TaskOverToWms(); + taskOverToWms.setFeedbackFrom("WCS"); //鏉ユ簮 + taskOverToWms.setWarehouseId("1688469798893297665"); //浠撳簱鏍囪瘑 + taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //浠诲姟鍙� + taskOverToWms.setTaskType(tasktype); // 浠诲姟绫诲瀷 + taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 瀹瑰櫒缂栫爜 + if (taskWrk.getIoType() ==1 || taskWrk.getIoType() == 3){ + taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //璁惧缂栫爜 + taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //鐩爣搴撲綅 + }else if (taskWrk.getIoType() ==2){ + Map<Integer,String> map1 = new HashMap<>(); + map1.put(102,"J-1101"); + map1.put(106,"J-1103"); + map1.put(110,"J-1105"); + map1.put(114,"J-1107"); + map1.put(118,"J-1109"); + map1.put(122,"J-1111"); + map1.put(305,"H-1101"); + map1.put(405,"G-1101"); + taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //璁惧缂栫爜 + taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //婧愬簱浣� + } + + taskOverToWms.setTaskStatus("executing"); //浠诲姟鐘舵�� + String response = null; + try { + response = new HttpHandler.Builder() + .setHeaders(map) + .setUri(wmsUrl) + .setPath("wcsManager/wcsInterface/taskStatusFeedback") + .setJson(JSON.toJSONString(taskOverToWms)) + .build() + .doPost(); + }catch (Exception e){ + log.error("鍫嗗灈鏈轰换鍔″畬鎴愶紝璇锋眰wms浠诲姟瀹屾垚鎺ュ彛澶辫触"); + } + apiLogService.save("鍫嗗灈鏈哄紑濮嬭繍琛�" + ,wmsUrl+"wcsManager/wcsInterface/taskStatusFeedback" + ,null + ,"127.0.0.1" + ,JSON.toJSONString(taskOverToWms) + ,response + ,true + ); + return response; + } + + } -- Gitblit v1.9.1