From ae73d089ade681c2cae17f68b6f87a5f38f6e4fc Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期二, 13 五月 2025 11:11:36 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 173 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 101 insertions(+), 72 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 91ad04b..95122b1 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -10,7 +10,6 @@ import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.domain.enums.WorkNoType; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.Result; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.CommandUtils; @@ -24,6 +23,10 @@ import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.*; +import com.zy.core.enums.DevpType.DevpRequestType; +import com.zy.core.enums.DevpType.DevpStateType; +import com.zy.core.enums.DevpType.DevpTrayType; +import com.zy.core.enums.DevpType.DevpWorkType; import com.zy.core.model.CrnSlave; import com.zy.core.model.DevpSlave; import com.zy.core.model.Task; @@ -42,6 +45,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport; import java.io.IOException; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -96,9 +100,7 @@ @Value("${wms.inboundTaskApplyPath}") private String inboundTaskApplyPath; @Value("${wms.TaskExecCallback}") - private String TaskExecCallback; - @Value("${wms.taskStatusFeedbackPath}") - private String taskStatusFeedbackPath; + private String taskExecCallback; public synchronized void generateStoreWrkFile1() { try { @@ -114,7 +116,7 @@ } else { staProtocol = staProtocol.clone(); } - Short workNo = staProtocol.getWorkNo(); + Short workNo = staProtocol.getWorkNo().shortValue(); Short stano = staProtocol.getStaNo(); // 灏哄妫�娴嬪紓甯� @@ -148,10 +150,12 @@ errMsg = "鎵爜澶辫触"; back = true; } + // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢 - if (staProtocol.isAutoing() && staProtocol.isLoading() + if (staProtocol.isAutoing() + && staProtocol.isLoading() && staProtocol.isInEnable() - && !staProtocol.isEmptyMk() && workNo >= 9790 + && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); @@ -167,13 +171,13 @@ } HashMap<String, Object> requestParam = new HashMap<>(); - requestParam.put("BoxNo", barcode);//鎵樼洏鐮� - requestParam.put("TerminalNo", inSta.getStaNo());//鍏ュ簱鍙� + requestParam.put("barcode", barcode);//鎵樼洏鐮� + requestParam.put("stationCode", inSta.getStaNo());//鍏ュ簱鍙� if (back) { - requestParam.put("WCSStatus", 1);//澶辫触 - requestParam.put("WCSErrorMessage", errMsg);//澶辫触鍘熷洜 + requestParam.put("wcsStatus", 1);//澶辫触 + requestParam.put("wcsErrorMessage", errMsg);//澶辫触鍘熷洜 }else { - requestParam.put("WCSStatus", 0);//鎴愬姛 + requestParam.put("wcsStatus", 0);//鎴愬姛 } String response = ""; @@ -186,6 +190,10 @@ .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code") != 200) { + log.info("鏉$爜锛�" + barcode + "鐢宠WMS澶辫触,response=" + JSON.toJSONString(jsonObject)); + continue; + } if (back) { devpThread.setPakMk(staProtocol.getSiteId(), false); @@ -193,64 +201,78 @@ continue; } - int returnStatus = Integer.parseInt(jsonObject.get("ReturnStatus").toString()); - if (returnStatus == 0) { - Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class); - // 鍒涙柊涓�涓叆搴撳伐浣滄。 - TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()); - if(taskWrk != null) { - log.info("浠诲姟锛�" + result.getTaskNo() + "宸茬粡瀛樺湪"); - continue; - } + JSONObject result = jsonObject.getJSONObject("data"); + Integer resultWrkNo = result.getInteger("wrkNo"); + Integer resultStaNo = result.getInteger("stnNo"); + String resultLocNo = result.getString("locNo"); - String locNo = Utils.getLocNo(result.getRow(), result.getFloor(), result.getColumn()); - LocMast locMast = locMastService.selectByLocNo(locNo); - if (locMast == null) { - log.info(locNo + "搴撲綅涓嶅瓨鍦�"); - continue; - } + // 鍒涙柊涓�涓叆搴撳伐浣滄。 + TaskWrk taskWrk = taskWrkService.selectByTaskNo(String.valueOf(resultWrkNo)); + if(taskWrk != null) { + log.info("浠诲姟锛�" + resultWrkNo + "宸茬粡瀛樺湪"); + continue; + } - Date now = new Date(); - taskWrk = new TaskWrk(); - taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙� - taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type));//鑾峰彇鍏ュ簱宸ヤ綔鍙� - taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 - taskWrk.setWrkSts(2);//2.璁惧涓婅蛋 - taskWrk.setCreateTime(now); - taskWrk.setIoType(1);//浠诲姟绫诲瀷 - taskWrk.setIoPri(13);//浼樺厛绾� - taskWrk.setBarcode(barcode);//鏉$爜 - taskWrk.setCrnNo(locMast.getCrnNo()); - taskWrk.setTargetPoint(locNo); - taskWrk.setStartPoint(String.valueOf(staProtocol.getStaNo())); - if (!Cools.isEmpty(taskWrk.getTargetPoint())) { - taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); - } + LocMast locMast = locMastService.selectByLocNo(resultLocNo); + if (locMast == null) { + log.info(resultLocNo + "搴撲綅涓嶅瓨鍦�"); + continue; + } - if (!taskWrkService.insert(taskWrk)) { - log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触"); - continue; - } + if (!locMast.getLocSts().equals("O")) { + log.info(resultLocNo + "搴撲綅涓嶅浜庣┖搴撲綅"); + continue; + } - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); - staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); - staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); - MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + Date now = new Date(); + taskWrk = new TaskWrk(); + taskWrk.setTaskNo(String.valueOf(resultWrkNo));//浠诲姟鍙� + taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type));//鑾峰彇鍏ュ簱宸ヤ綔鍙� + taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹 + taskWrk.setWrkSts(2);//2.璁惧涓婅蛋 + taskWrk.setCreateTime(now); + taskWrk.setIoType(1);//浠诲姟绫诲瀷 + taskWrk.setIoPri(13);//浼樺厛绾� + taskWrk.setBarcode(barcode);//鏉$爜 + taskWrk.setCrnNo(locMast.getCrnNo()); + taskWrk.setTargetPoint(resultLocNo); + taskWrk.setStartPoint(String.valueOf(staProtocol.getStaNo())); + if (!Cools.isEmpty(taskWrk.getTargetPoint())) { + taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint()); + } - //涓婃姤 - HashMap<String, Object> hashMap = new HashMap<>(); - hashMap.put("TaskNo", taskWrk.getTaskNo()); + if (!taskWrkService.insert(taskWrk)) { + log.info("浠诲姟锛�" + resultWrkNo + "浠诲姟鍒涘缓澶辫触"); + continue; + } - NotifyCustomDataDto customDataDto = new NotifyCustomDataDto(); - customDataDto.setUri(wmsUrl); - customDataDto.setPath(taskStatusFeedbackPath); - 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(TaskStatusType.DISTRIBUTE.id);//浠诲姟娲惧彂 - taskWrkService.updateById(taskWrk); - } + locMast.setLocSts("S"); + locMast.setModiTime(new Date()); + locMastService.updateById(locMast); + + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("crn_no", taskWrk.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); + staProtocol.setWorkNo(taskWrk.getWrkNo()); + staProtocol.setStaNo(staDesc.getCrnStn().shortValue()); + MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); + + //涓婃姤 + 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", 1); + 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(TaskStatusType.DISTRIBUTE.id);//浠诲姟娲惧彂 + taskWrkService.updateById(taskWrk); } } catch (Exception e) { log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触"); @@ -306,7 +328,8 @@ } else { staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == 0)) { + + if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo() == 0 || staProtocol.getStaNo() == null)) { // 鏌ヨ宸ヤ綔妗� TaskWrk taskWrk = taskWrkMapper.selectCrnStaWorking(crnSlave.getId(), staDesc.getStnNo().toString()); if (taskWrk == null) { @@ -314,7 +337,7 @@ } log.info("涓嬪彂杈撻�佺嚎浠诲姟锛歵askWrk:" + JSON.toJSONString(taskWrk)); // R r = siteController.siteDetlUpdate(Integer.valueOf(taskWrk.getTargetPoint()), taskWrk.getWrkNo().shortValue(), (short) 0, "Y", false, false); - staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); + staProtocol.setWorkNo(taskWrk.getWrkNo()); staProtocol.setStaNo(staDesc.getStnNo().shortValue()); boolean offer = false; try { @@ -415,6 +438,7 @@ log.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); continue; } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")) { flag = true; @@ -538,8 +562,8 @@ } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� - if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") - && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { + if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") + ) { // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- // 鍫嗗灈鏈烘帶鍒惰繃婊� @@ -588,12 +612,17 @@ } //涓婃姤-鍑哄簱浠诲姟寮�濮嬫椂锛學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("taskNo", taskWrk.getTaskNo()); + hashMap.put("status", TaskStatusType.DISTRIBUTE.id); + hashMap.put("ioType", 2); + hashMap.put("barcode", taskWrk.getBarcode()); + hashMap.put("reportTime", format.format(new Date())); NotifyCustomDataDto customDataDto = new NotifyCustomDataDto(); customDataDto.setUri(wmsUrl); - customDataDto.setPath(taskStatusFeedbackPath); + 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) { @@ -681,7 +710,7 @@ response = new HttpHandler.Builder() // .setHeaders(headParam) .setUri(wmsUrl) - .setPath(taskStatusFeedbackPath) + .setPath(taskExecCallback) .setJson(JSON.toJSONString(headParam)) .build() .doPost(); @@ -697,7 +726,7 @@ // throw new CoolException("wcs娲惧彂绉诲簱搴撲换鍔′笂鎶ms澶辫触"); }finally { apiLogService.save("wcs娲惧彂绉诲簱浠诲姟涓婃姤wms" - , wmsUrl + taskStatusFeedbackPath + , wmsUrl + taskExecCallback , null , "127.0.0.1" , JSON.toJSONString(headParam) -- Gitblit v1.9.1