From 13bdad370f0b35b68f79a75f8183a23135e45225 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期二, 15 七月 2025 17:03:10 +0800 Subject: [PATCH] 1 --- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 100 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 81 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index 4e595cd..614b63a 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -227,7 +227,9 @@ updateAgvLocMast(agvLocMastService.selectById(sourceLocNo), locSts); //鏇存柊鐩爣绔欑偣鐘舵�� //locSts = ioType == 101 ? "S" : "Q"; - updateAgvBasDevp(agvBasDevpService.selectById(targetLocNo), "S"); + AgvBasDevp agvBasDevp = agvBasDevpService.selectById(targetLocNo); + agvBasDevp.setBarcode(""); + updateAgvBasDevp(agvBasDevp, "S"); }); } @@ -493,6 +495,10 @@ if (Cools.isEmpty(agvBasDevp)) { throw new CoolException("鏆傛棤" + station + "绔欑偣"); } + AgvBasDevp agvBasDevp2 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", containerCode).ne("dev_no", agvBasDevp.getDevNo())); + if (!Cools.isEmpty(agvBasDevp2)) { + throw new CoolException(station + "绔欑偣缁戝畾璇ヨ揣鏋讹紝鏃犳硶鍏ュ簱"); + } int br = 0; if (containerType == 21 && agvBasDevp.getFloor() == 2) { containerType = 20; @@ -643,6 +649,15 @@ if (Cools.isEmpty(agvBasDevp)) { throw new CoolException("鏆傛棤" + station + "绔欑偣"); } + + AgvBasDevp agvBasDevp2 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", containerCode).ne("dev_no", agvBasDevp.getDevNo())); + if (!Cools.isEmpty(agvBasDevp2)) { + throw new CoolException(station + "绔欑偣缁戝畾璇ヨ揣鏋讹紝鏃犳硶鍏ュ簱"); + } + if (Cools.isEmpty(agvBasDevp)) { + throw new CoolException("鏆傛棤" + station + "绔欑偣"); + } + int br = 0; if (containerType == 21 && agvBasDevp.getFloor() == 2) { containerType = 20; @@ -750,9 +765,9 @@ String ctnNo = null; // 鎵撴爣璁帮紝鑻ュ簱浣嶄笉澶燂紝鍏ュ簱鍒板埆鐨勬ゼ灞傦紝閭d箞闇�瑕佽法灞傜Щ搴� if (!Cools.isEmpty(code)) { - if (agvLocMast.getLev1() == 1 && !code.equals(AsrsConstants.SANCHANG)) { - ctnNo = "1"; - } else if (agvLocMast.getLev1() == 2 && !code.equals(AsrsConstants.ERCHANG)) { + if (agvLocMast.getLev1() == 1 && code.equals(AsrsConstants.ERCHANG)) { + ctnNo = "2"; + } else if (agvLocMast.getLev1() == 2 && code.equals(AsrsConstants.SANCHANG)) { ctnNo = "1"; } } @@ -798,6 +813,10 @@ AgvBasDevp agvBasDevp = agvBasDevpService.selectById(station); if (Cools.isEmpty(agvBasDevp)) { throw new CoolException("鏆傛棤" + station + "绔欑偣"); + } + AgvBasDevp agvBasDevp2 = agvBasDevpService.selectOne(new EntityWrapper<AgvBasDevp>().eq("barcode", containerCode).ne("dev_no", agvBasDevp.getDevNo())); + if (!Cools.isEmpty(agvBasDevp2)) { + throw new CoolException(station + "绔欑偣缁戝畾璇ヨ揣鏋讹紝鏃犳硶鍏ュ簱"); } int br = 0; if (containerType == 21 && agvBasDevp.getFloor() == 2) { @@ -903,7 +922,7 @@ } } } - if (agvLocMast==null){ + if (agvLocMast == null) { throw new CoolException("娌℃湁璇ョ被鍨嬬殑绌哄簱浣嶄簡"); } @@ -959,21 +978,37 @@ if (!Cools.isEmpty(agvWrkMast)) { throw new CoolException("鏈夎揣鏋跺湪寰�绔欑偣鎼繍" + agvBasDevp.getDevNo() + ",鏃犳硶杩涜绌烘澘鍑哄簱"); } + AgvLocMast agvLocMast = null; + if (station.startsWith("XI") && station.endsWith("F4") && containerType == 30) { + agvLocMast = agvLocMastService.select30EmptyZpallet(); + } else { + //瀵绘壘鐩稿簲绫诲瀷鐨勭┖璐ф灦 + Integer floor = agvBasDevp.getFloor(); + if (floor == 4) { + floor = 1; + } + agvLocMast = agvLocMastService.selectEmptyZpallet(containerType, floor); + if (containerType == 0) { + //绌烘澘鑷姩鍑哄簱锛屾牴鎹珯鐐圭被鍨嬮�夋嫨 + agvLocMastService.selectEmptyZpalletByLocType1(agvBasDevp.getLocType1()); - //瀵绘壘鐩稿簲绫诲瀷鐨勭┖璐ф灦 - Integer floor = agvBasDevp.getFloor(); - if (floor == 4) { - floor = 1; + } } - AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType, floor); - if (containerType == 0) { - //绌烘澘鑷姩鍑哄簱锛屾牴鎹珯鐐圭被鍨嬮�夋嫨 - agvLocMastService.selectEmptyZpalletByLocType1(agvBasDevp.getLocType1()); - } if (Cools.isEmpty(agvLocMast)) { throw new CoolException("鏆傛棤褰撳墠鍑哄簱绔欑偣绫诲瀷鐨勭┖璐ф灦锛�"); + } + if (!Cools.isEmpty(agvBasDevp.getArea())) { + if (!Cools.isEmpty(agvLocMast.getBarcode())) { + if (!agvBasDevp.getArea().contains(agvLocMast.getBarcode().substring(0, 2))) { + throw new CoolException("1褰撳墠鍑哄簱绔欑偣涓嶅厑璁稿彨璇ョ被鍨嬬殑璐ф灦锛�" + agvLocMast.getBarcode()); + } + }else { + if (!agvBasDevp.getArea().contains(agvLocMast.getLocType1$().toString())) { + throw new CoolException("2褰撳墠鍑哄簱绔欑偣涓嶅厑璁稿彨璇ョ被鍨嬬殑璐ф灦锛�" + agvLocMast.getBarcode()); + } + } } //鐢熸垚宸ヤ綔妗� createWrkMast(110, 21L, agvLocMast.getLocNo(), agvBasDevp.getDevNo(), agvLocMast.getBarcode(), now, userId, containerType, agvLocMast.getPltType()); @@ -985,6 +1020,7 @@ updateAgvBasDevp(agvBasDevp, "S", (short) containerType, agvLocMast.getBarcode()); } + @Transactional public void adjustLocDetl(LocDetlAdjustParam param, Long userId) { @@ -1001,7 +1037,7 @@ List<AgvLocDetl> locDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", param.getLocNo())); List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList(); - + String barcode = null; // 淇敼鏁伴噺 Iterator<AgvLocDetl> iterator = locDetls.iterator(); while (iterator.hasNext()) { @@ -1088,6 +1124,7 @@ locDetl.setThreeCode(adjust.getThreeCode()); locDetl.setDeadTime(adjust.getDeadTime()); locDetl.setSuppCode(adjust.getSuppCode()); + barcode = adjust.getSuppCode(); if (!agvLocDetlService.insert(locDetl)) { throw new CoolException("娣诲姞" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�"); } @@ -1120,6 +1157,7 @@ if (locMast.getLocSts().equals("D") || locMast.getLocSts().equals("O")) { if (count > 0) { locMast.setLocSts("F"); + locMast.setBarcode(barcode); } } locMast.setModiUser(userId); @@ -1232,6 +1270,9 @@ String devNo = wrkMast.getSourceLocNo(); //鐩爣搴撲綅 String locNo = wrkMast.getLocNo(); + if (!Cools.isEmpty(locNo)) { + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", locNo)); + } agvLocMastService.updateLocStsByLocNo(locNo, "O", "", null); if (wrkMast.getIoType() == 58) { agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo, "F", wrkMast.getBarcode(), wrkMast.getWhsType().shortValue()); @@ -1345,6 +1386,9 @@ if (wrkMast.getIoType() == 112) { throw new CoolException("褰撳墠浣滀笟涓嶈兘鍙栨秷锛�"); } + if (wrkMast.getIoType() == 108 && wrkMast.getWrkSts() >= 204) { + throw new CoolException("婧愬簱浣嶅凡缁忛噴鏀撅紝褰撳墠浣滀笟涓嶈兘鍙栨秷锛�"); + } // 婧愬簱浣� String locNo = wrkMast.getSourceLocNo(); // 鐩爣搴撲綅 @@ -1374,6 +1418,14 @@ orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", "DB" + agvLocDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr()); + } + } else { + orderDetl = orderDetlService.selectOne(new EntityWrapper<OrderDetl>().eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()).eq("source", 33).ge("qty", agvLocDetl.getAnfme())); + if (orderDetl != null) { + orderDetl.setQty(orderDetl.getQty() - agvLocDetl.getAnfme()); + if (!orderDetlService.update(orderDetl, new EntityWrapper<OrderDetl>().eq("order_no", orderDetl.getOrderNo()).eq("matnr", agvLocDetl.getMatnr()).eq("three_code", agvLocDetl.getThreeCode()))) { + //throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + agvLocDetl.getOrderNo() + agvLocDetl.getMatnr()); + } } } // FlowLog flowLog = new FlowLog(); @@ -1407,6 +1459,9 @@ // 鍥炴祦鍗曞彇娑� } else if (wrkMast.getIoType() == 114) { + if (wrkMast.getWrkSts() >= 204) { + throw new CoolException("婧愬簱浣嶅凡缁忛噴鏀撅紝褰撳墠浣滀笟涓嶈兘鍙栨秷锛�"); + } //婧愬簱浣� String locNo = wrkMast.getSourceLocNo(); // 鐩爣搴撲綅 @@ -1512,9 +1567,13 @@ throw new CoolException("鍒犻櫎澶辫触锛岃鑱旂郴绠$悊鍛�"); } - if (type == 2) { - //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛 - agvWrkMastService.callCancelTask(wrkMast.getWrkNo()); + if (type == 2 || type == 5) { + try { + //璋冪敤agv鍙栨秷浠诲姟鎺ュ彛 + agvWrkMastService.callCancelTask(wrkMast.getWrkNo()); + } catch (Exception e) { + log.info("璋冪敤agv鍙栨秷浠诲姟鎺ュ彛澶辫触"); + } } } } @@ -1578,7 +1637,10 @@ } OrderDetl orderDetl = orderDetlService.selectItem(orderNo, mat.getMatnr(), batch, csocode); if (orderDetl == null) { - throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�"); + orderDetl = orderDetlService.selectItem(orderNo, mat.getMatnr(), null, csocode); + if (orderDetl == null) { + throw new CoolException("璁㈠崟鏄庣粏涓嶅瓨鍦�"); + } } AgvWrkDetl wrkDetl = new AgvWrkDetl(); wrkDetl.sync(mat); -- Gitblit v1.9.1