From a57445f55e84b7cf6bd26cf152a0ffa7f62f54f2 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 25 九月 2025 20:06:59 +0800 Subject: [PATCH] 添加容器管理 商品档案管理 --- src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 101 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java index 0e8c1a5..9bab122 100644 --- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java +++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java @@ -6,8 +6,10 @@ import com.zy.asrs.entity.*; import com.zy.asrs.enums.LocStsType; import com.zy.asrs.service.*; +import com.zy.asrs.service.impl.BasStationServiceImpl; import com.zy.asrs.service.impl.LocCacheServiceImpl; import com.zy.asrs.service.impl.OrderPakinServiceImpl; +import com.zy.asrs.service.impl.TaskDetlServiceImpl; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import lombok.extern.slf4j.Slf4j; @@ -50,6 +52,10 @@ private OrderPakinService orderPakinService; @Autowired private TaskService taskService; + @Autowired + private TaskDetlService taskDetlService; + @Autowired + private BasStationServiceImpl basStationService; public ReturnT<String> start(WrkMast wrkMast) { // 4.鍏ュ簱瀹屾垚 @@ -471,18 +477,16 @@ if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { -// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]", -// wrkMast.getWrkNo(), wrkMast.getLocNo()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); } } } catch (Exception ignore) { + } } // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁� if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()))) { -// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触锛沎workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); } @@ -493,7 +497,6 @@ locMast.setModiTime(now); locMast.setIoTime(now); if (!locMastService.updateById(locMast)) { -// exceptionHandle("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐ワ紱[workNo={0}],[sourceLocNo={1}]", wrkMast.getWrkNo(), wrkMast.getSourceLocNo()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]"); } @@ -575,11 +578,103 @@ * @version 1.0 */ @Transactional(rollbackFor = Exception.class) - public ReturnT<String> AgvStart(Task wrkMast) { - Date now = new Date(); + public ReturnT<String> AgvStart(Task task) { + // 4.鍏ュ簱瀹屾垚 + if (task.getWrkSts() == 4) { + return agvDoIn(task); + // 14.鍑哄簱瀹屾垚 + } else if (task.getWrkSts() == 14) { + return agvDoOut(task); + } + return SUCCESS; + } + + + /** + * @author Ryan + * @date 2025/9/25 + * @description: AGV鍑哄簱浠诲姟 + * @version 1.0 + */ + public ReturnT<String> agvDoOut(Task task) { + if (task.getIoType().equals(101)) { + Date now = new Date(); + LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no" ,task.getSourceLocNo())); + if (Objects.isNull(locMast)) { + throw new RuntimeException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉鑳戒负绌猴紒锛�"); + } + List<TaskDetl> wrkDetls101 = taskDetlService.selectList(new EntityWrapper<TaskDetl>().eq("wrk_no", task.getWrkNo())); + if (wrkDetls101.isEmpty()) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 宸ヤ綔鏄庣粏妗d负绌�; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]"); + } + for (TaskDetl wrkDetl : wrkDetls101) { + // 鏇存柊璁㈠崟瀹屾垚鏁伴噺 + OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), + wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); + if (orderDetlPakout == null) { + orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), + wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3()); + } + try { + if (!Cools.isEmpty(orderDetlPakout)) { + if (!orderDetlPakoutService.increaseQtyByOrderNo(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), + orderDetlPakout.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(), wrkDetl.getStandby2(), wrkDetl.getStandby3(), + wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(), wrkDetl.getAnfme())) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]"); + } + } + } catch (Exception ignore) { + } + } + // 鍒犻櫎宸ヤ綔妗f簮搴撲綅鐨勫簱瀛樻槑缁� + if (!locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no", task.getSourceLocNo()))) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 鍒犻櫎搴撳瓨鏄庣粏澶辫触; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]"); + } + // 淇敼婧愬簱浣嶇姸鎬� R ===>> O + if (locMast.getLocSts().equals(LocStsType.LOC_STS_TYPE_R.type)) { + locMast.setLocSts(LocStsType.LOC_STS_TYPE_O.type); + locMast.setBarcode(""); + locMast.setModiTime(now); + locMast.setIoTime(now); + if (!locCacheService.updateById(locMast)) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + task.getWrkNo() + "],[locNo=" + task.getSourceLocNo() + "]"); + } + } else { + throw new CoolException("褰撳墠搴撲綅鐘舵��" + locMast.getLocSts() + ", 鏃犳硶鎵ц鍑哄簱鎿嶄綔锛侊紒"); + } + + BasStation devNo = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", task.getStaNo())); + if (Objects.isNull(devNo)) { + throw new CoolException("绔欑偣锛�" + task.getSourceStaNo() + ", 涓嶅瓨鍦紒锛�"); + } + devNo.setLocSts(LocStsType.LOC_STS_TYPE_F.type); + devNo.setModiTime(new Date()); + if (!basStationService.updateById(devNo)) { + throw new CoolException("绔欑偣淇℃伅淇敼澶辫触锛侊紒"); + } +// task.setWrkSts(15L); +// if (!taskService.updateById(task)) { +// throw new CoolException("浠诲姟鐘舵�佷慨鏀瑰け璐ワ紒锛�"); +// } + } else { + + } + return SUCCESS; + } + + + @Transactional(rollbackFor = Exception.class) + public ReturnT<String> agvDoIn(Task wrkMast) { LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo())); if (Objects.isNull(locCache)) { throw new CoolException("鏁版嵁閿欒锛屽簱浣嶄笉瀛樺湪锛侊紒"); + } + if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_S.type)) { + throw new CoolException("褰撳墠搴撲綅鐘舵�佷负锛�" + LocStsType.LOC_STS_TYPE_S.type + "." + LocStsType.LOC_STS_TYPE_S.desc + "锛屼笉鏄嚭搴撻绾︾姸鎬�"); } List<WaitPakin> apallet = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode())); if (Objects.isNull(apallet)) { @@ -624,12 +719,6 @@ if (Objects.isNull(pakins) || pakins.isEmpty()) { throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�"); } - pakins.forEach(orderPakin -> { - orderPakin.setSettle(4L); - if (!orderPakinService.updateById(orderPakin)) { - throw new CoolException("鍗曟嵁淇敼澶辫触锛侊紒"); - } - }); return SUCCESS; } -- Gitblit v1.9.1