From 75d0daa4f8dc2010ec92f35cac08a19d240ca45d Mon Sep 17 00:00:00 2001 From: ynhfasrs <ynhfasrs@qq.com> Date: 星期五, 27 六月 2025 14:23:37 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 131 +++++++++++++++++++------------------------ 1 files changed, 58 insertions(+), 73 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 3a85a83..196d4f0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -19,6 +19,7 @@ import com.zy.asrs.utils.Utils; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; +import com.zy.common.utils.News; import com.zy.common.utils.RedisUtil; import com.zy.core.CrnThread; import com.zy.core.DevpThread; @@ -149,9 +150,9 @@ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() +// && !staProtocol.isEmptyMk() && staProtocol.isPakMk() - && staProtocol.getWorkNo() == 9999 + && (staProtocol.getWorkNo() == 9999 || staProtocol.getWorkNo() == 9998) ) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); @@ -160,9 +161,14 @@ } String barcode = barcodeThread.getBarcode(); + if (Cools.isEmpty(barcode)) { + News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鍏ュ簱淇″彿婊¤冻锛屾墭鐩樼爜涓虹┖"); + continue; + } + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode)); if (taskWrk1 != null) { - log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); + News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�"); continue; } @@ -172,14 +178,15 @@ if (back) { requestParam.put("wcsStatus", 1);//澶辫触 requestParam.put("wcsErrorMessage", errMsg);//澶辫触鍘熷洜 + News.watchInfo(String.valueOf(staProtocol.getSiteId()), errMsg); }else { requestParam.put("wcsStatus", 0);//鎴愬姛 } - String response = ""; + String response = "None"; Boolean success = false; try { - Object object = redisUtil.get(RedisKeyType.IN_TASK_LOCK.key); + Object object = redisUtil.get(RedisKeyType.IN_TASK_LOCK.key + inSta.getStaNo()); if(object != null) { continue; } @@ -191,9 +198,19 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); - redisUtil.set(RedisKeyType.IN_TASK_LOCK.key, "lock", 5); - if (jsonObject.getInteger("code") != 200) { - log.info("鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject)); + log.info(response); + redisUtil.set(RedisKeyType.IN_TASK_LOCK.key + inSta.getStaNo(), "lock", 5); + if (jsonObject.getInteger("code") == 200) { + + } else if (jsonObject.getInteger("code") == 500) { + News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,绯荤粺鍥為��,response=" + JSON.toJSONString(jsonObject)); + +// staProtocol.setWorkNo(9997); +// staProtocol.setStaNo(inSta.getBackSta().shortValue()); +// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + continue; + }else { + News.watchInfo(String.valueOf(staProtocol.getSiteId()), "鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject)); continue; } @@ -205,18 +222,18 @@ // 鍒涙柊涓�涓叆搴撳伐浣滄。 TaskWrk taskWrk = taskWrkService.selectByTaskNo(String.valueOf(resultWrkNo)); if(taskWrk != null) { - log.info("浠诲姟锛�" + resultWrkNo + "宸茬粡瀛樺湪"); + News.watchInfo(String.valueOf(staProtocol.getSiteId()), "浠诲姟锛�" + resultWrkNo + "宸茬粡瀛樺湪"); continue; } LocMast locMast = locMastService.selectByLocNo(resultLocNo); if (locMast == null) { - log.info(resultLocNo + "搴撲綅涓嶅瓨鍦�"); + News.watchInfo(String.valueOf(staProtocol.getSiteId()), resultLocNo + "搴撲綅涓嶅瓨鍦�"); continue; } if (!locMast.getLocSts().equals("O")) { - log.info(resultLocNo + "搴撲綅涓嶅浜庣┖搴撲綅"); + News.watchInfo(String.valueOf(staProtocol.getSiteId()), resultLocNo + "搴撲綅涓嶅浜庣┖搴撲綅"); continue; } @@ -232,13 +249,13 @@ taskWrk.setBarcode(barcode);//鏉$爜 taskWrk.setCrnNo(locMast.getCrnNo()); taskWrk.setTargetPoint(resultLocNo); - taskWrk.setStartPoint(String.valueOf(staProtocol.getStaNo())); + taskWrk.setStartPoint(String.valueOf(inSta.getStaNo())); if (!Cools.isEmpty(taskWrk.getTargetPoint())) { taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); } if (!taskWrkService.insert(taskWrk)) { - log.info("浠诲姟锛�" + resultWrkNo + "浠诲姟鍒涘缓澶辫触"); + News.watchInfo(String.valueOf(staProtocol.getSiteId()), "浠诲姟锛�" + resultWrkNo + "浠诲姟鍒涘缓澶辫触"); continue; } @@ -313,7 +330,7 @@ for (CrnSlave crnSlave : slaveProperties.getCrn()) { // 閬嶅巻鍫嗗灈鏈哄嚭搴撶珯 for (CrnSlave.CrnStn crnStn : crnSlave.getCrnOutStn()) { - List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo())); + List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("type_no", 2).eq("crn_no", crnSlave.getId()).eq("crn_stn", crnStn.getStaNo())); for (StaDesc staDesc : staDescs) { try { // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 @@ -376,7 +393,7 @@ } BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); if (basCrnp == null) { - log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); + News.watchInfo(crn.getId() + "鍙峰爢鍨涙満", "{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); continue; } @@ -431,7 +448,7 @@ // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); if (staDetl == null) { - log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); + News.watchError(crnStn.getStaNo() + "绔欑偣", "鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); continue; } @@ -440,18 +457,21 @@ flag = true; } if (!flag) { +// News.watchError(crnStn.getStaNo() + "绔欑偣", "鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐圭姸鎬佹娴嬪け璐ワ紝绔欑偣闇�瑕佹弧瓒筹細鑷姩銆佹湁鐗┿�佹湁宸ヤ綔鍙枫�佺珯鐐瑰彲鍏�"); continue; } // 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。 - TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo().intValue(), staDesc.getStnNo().toString()); + TaskWrk taskWrk = taskWrkMapper.selectPakIn(slave.getId(), staProtocol.getWorkNo(), staDesc.getStnNo().toString()); if (null == taskWrk) { + News.watchError(crnStn.getStaNo() + "绔欑偣", "鍏ュ簱 ===>> 宸ヤ綔妗d笉瀛樺湪锛屾鏌ヤ换鍔℃槸鍚︾敓鎴�"); continue; } // 鍫嗗灈鏈烘帶鍒惰繃婊� if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { + News.watchError(slave.getId() + "鍙峰爢鍨涙満", "鍫嗗灈鏈哄繖纰屼腑"); continue; } @@ -515,30 +535,8 @@ } // 宸ヤ綔妗g姸鎬佸垽鏂� if (taskWrk.getIoType() != 2 || taskWrk.getTargetPoint() == null || taskWrk.getStartPoint() == null) { - log.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getStartPoint(), taskWrk.getIoType()); + News.watchError(taskWrk.getWrkNo() + "浠诲姟", "鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", taskWrk.getWrkNo(), taskWrk.getStartPoint(), taskWrk.getIoType()); continue; - } - - LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint()); - //鍒ゆ柇鍏跺簱浣嶆槸鍚︿负娣卞簱浣嶏紝濡傛灉涓烘繁搴撲綅鎵惧叾娴呭簱浣嶆槸閮芥湁璐� - if(locMast.getRow1()==1||locMast.getRow1()==5){ - LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("row1", (locMast.getRow1()+1)) - .eq("bay1",locMast.getBay1()) - .eq("lev1",locMast.getLev1()).eq("loc_sts","F")); - if (!Cools.isEmpty(locMast1)){ - log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); - continue; - } - }else if(locMast.getRow1()==4||locMast.getRow1()==8){ - LocMast locMast1=locMastService.selectOne(new EntityWrapper<LocMast>() - .eq("row1", (locMast.getRow1()-1)) - .eq("bay1",locMast.getBay1()) - .eq("lev1",locMast.getLev1()).eq("loc_sts","F")); - if (!Cools.isEmpty(locMast1)){ - log.info(locMast.getLocNo()+"鍑烘繁搴撲綅锛屾祬搴撲綅鏈夎揣"); - continue; - } } // 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅 @@ -553,12 +551,12 @@ // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); if (staDetl == null) { - log.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); + News.watchError(taskWrk.getWrkNo() + "浠诲姟", "鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); break; } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + if (staProtocol.isAutoing() && staProtocol.isOutEnable() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") ) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- @@ -568,7 +566,7 @@ } int storeCount = basDevpService.getStoreCount(); if(storeCount >= maxCount){ - log.error("杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}",storeCount); + News.watchError(taskWrk.getWrkNo() + "浠诲姟", "杈撻�佺嚎鏆傚瓨鏁拌揪鍒颁笂闄恵}", storeCount); break; } @@ -698,37 +696,24 @@ if (taskWrkMapper.updateById(taskWrk) == 0) { log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo()); } - String response = ""; - Boolean bool=false; - HashMap<String, Object> headParam = new HashMap<>(); - headParam.put("TaskNo", taskWrk.getTaskNo()); - try { - response = new HttpHandler.Builder() - // .setHeaders(headParam) - .setUri(wmsUrl) - .setPath(taskExecCallback) - .setJson(JSON.toJSONString(headParam)) - .build() - .doPost(); - JSONObject jsonObject = JSON.parseObject(response); - if(jsonObject.get("ReturnStatus").equals(0)){ - bool = true; - taskWrk.setStatus(2); - taskWrkMapper.updateById(taskWrk); - } - } catch (Exception e) { - log.error("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触", taskWrk); -// throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触"); - }finally { - apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms" - , wmsUrl + taskExecCallback - , null - , "127.0.0.1" - , JSON.toJSONString(headParam) - , response - , bool - ); + //涓婃姤-绉诲簱浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm"); + HashMap<String, Object> hashMap = new HashMap<>(); + hashMap.put("taskNo", taskWrk.getTaskNo()); + hashMap.put("status", TaskStatusType.DISTRIBUTE.id); + hashMap.put("ioType", 3); + hashMap.put("barcode", taskWrk.getBarcode()); + hashMap.put("reportTime", format.format(new Date())); + + NotifyCustomDataDto customDataDto = new NotifyCustomDataDto(); + customDataDto.setUri(wmsUrl); + customDataDto.setPath(taskExecCallback); + customDataDto.setData(JSON.toJSONString(hashMap)); + boolean notifyResult = notifyUtils.notify("task", 1, String.valueOf(taskWrk.getWrkNo()), taskWrk.getTaskNo(), NotifyMsgType.TASK_START, JSON.toJSONString(taskWrk), true, customDataDto); + if(notifyResult) { + taskWrk.setStatus(2); + taskWrkService.updateById(taskWrk); } } -- Gitblit v1.9.1