From 37c04062d11f97f26ec5a48f5f6adb2f96eca7c5 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期一, 19 五月 2025 08:16:10 +0800 Subject: [PATCH] 接口编写 --- src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java | 94 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 82 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java index f286e4d..4b28cff 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvMobileServiceImpl.java @@ -4,11 +4,11 @@ import com.core.common.BaseRes; import com.core.common.Cools; import com.core.exception.CoolException; +import com.zy.asrs.constant.AsrsConstants; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.CodeDetectionUtil; -import com.zy.asrs.utils.OrderUtils; import com.zy.common.model.DetlDto; import com.zy.common.service.AgvCommonService; import lombok.Synchronized; @@ -444,7 +444,7 @@ // return R.error("褰撳墠搴撲綅涓嶄负鍦ㄥ簱锛屾垨鑰呯┖璐ф灦锛屼笉鏀寔绉诲簱"); // 鏍¢獙妤煎眰 - if (agvLocMast.getLocType1() != 3) { // 涓嶄负绠卞3鍖哄煙 + if (agvLocMast.getLocType1() != 3 && agvLocMast.getLocType1() != 6) { // 涓嶄负绠卞3鍖哄煙 if (agvLocMast.getFloor() != floor) { throw new CoolException("褰撳墠搴撲綅涓嶆敮鎸佽法妤煎眰杞Щ"); } else { @@ -456,12 +456,16 @@ throw new CoolException("褰撳墠搴撲綅璇烽�夋嫨璋冩嫧鍗曡皟鎷紒"); } else if ((agvLocMast.getFloor() == 2 || agvLocMast.getFloor() == 3) && (floor == 1 || floor == 4)) { throw new CoolException("褰撳墠搴撲綅璇烽�夋嫨璋冩嫧鍥炴祦鍗曞洖閫�锛�"); + } else if (agvLocMast.getFloor() == 1 && agvLocMast.getLev1() == 2 && floor == 4) { + ioType = 11; } else { ioType = 12; } } else { if (agvLocMast.getFloor() == 1) { if (agvLocMast.getLev1() == 1 && floor == 1) { + ioType = 11; + } else if (agvLocMast.getLev1() == 2 && floor == 4) { ioType = 11; } else { ioType = 12; @@ -516,7 +520,7 @@ //璐ф灦缂栫爜 mast.setBarcode(agvLocMast.getBarcode()); //璐ф灦绫诲瀷 - mast.setWhsType(30); + mast.setWhsType(Integer.parseInt(agvLocMast.getBarcode().substring(0, 2))); mast.setAppeUser(userId); mast.setAppeTime(now); @@ -666,7 +670,7 @@ throw new CoolException("闈炴墜鍔ㄨ皟鎷ㄤ换鍔★紝涓嶆敮鎸佹鍔熻兘"); } if (!Cools.isEmpty(agvWrkMast.getSourceLocNo())) { - throw new CoolException("褰撳墠璐ф灦鐮佷换鏈夋簮搴撲綅锛岃纭"); + throw new CoolException("褰撳墠璐ф灦鐮佹湁婧愬簱浣嶏紝璇风‘璁�"); } AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(param.getDevNo()); if (Cools.isEmpty(agvWrkMast)) { @@ -797,14 +801,8 @@ agvWrkMastLogService.save(agvWrkMast); agvWrkDetlLogService.save(agvWrkMast.getWrkNo()); String sourceLocNo = agvWrkMast.getSourceLocNo(); - //AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false); - // TODO: 鍥涙湡 + AgvLocMast newLocMast = agvCommonService.getLocNo(3, 1, false, false); List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode())); - String factory = null; - if (!Cools.isEmpty(agvWrkDetls)) { - factory = OrderUtils.getFactory(agvWrkDetls.get(0).getThreeCode()); - } - AgvLocMast newLocMast = agvCommonService.getLocByLocRule(3, 1, factory); if (newLocMast == null) { throw new CoolException("鏃犲彲鐢ㄥ簱浣�"); } @@ -849,6 +847,77 @@ return "ok"; } + /* + * 纭鍔犲伐瀹屾垚 + */ + @Override + @Transactional + public String processedV2(AgvMobileStartPakin param, Long userId) { + Date now = new Date(); + AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode", param.getBarcode()).eq("loc_no", param.getDevNo())); + if (Cools.isEmpty(agvWrkMast)) { + throw new CoolException("鏆傛棤褰撳墠璐ф灦鐨勫伐浣滄。"); + } + if (agvWrkMast.getWrkSts() != 205) { + throw new CoolException("褰撳墠浠诲姟鏈畬鎴愶紝璇风‘璁�"); + } + //鐢熸垚AGV宸ヤ綔鍘嗗彶妗� + 鐢熸垚AGV宸ヤ綔鏄庣粏鍘嗗彶妗� + agvWrkMastLogService.save(agvWrkMast); + agvWrkDetlLogService.save(agvWrkMast.getWrkNo()); + String sourceLocNo = agvWrkMast.getSourceLocNo(); + // TODO: 鍥涙湡 + List<AgvWrkDetl> agvWrkDetls = agvWrkDetlService.selectList(new EntityWrapper<AgvWrkDetl>().eq("supp_code", param.getBarcode())); + String factory = param.getFactory(); + AgvLocMast newLocMast = agvCommonService.getLocByLocRule20(3, 1, factory, false); + if (newLocMast == null) { + throw new CoolException("鏃犲彲鐢ㄥ簱浣�"); + } + agvWrkMast.setSourceLocNo(agvWrkMast.getLocNo()); + agvWrkMast.setLocNo(newLocMast.getLocNo()); + agvWrkMast.setIoType(57); + agvWrkMast.setWrkSts(201L); + agvWrkMast.setModiUser(userId); + agvWrkMast.setModiTime(now); + agvWrkMast.setIoTime(now); + // 鎵撴爣璁帮紝鑻ュ簱浣嶄笉澶燂紝鍏ュ簱鍒板埆鐨勬ゼ灞傦紝閭d箞闇�瑕佽法灞傜Щ搴� +// if (!Cools.isEmpty(factory)) { +// if (newLocMast.getLev1() == 1 && factory.equals(AsrsConstants.ERCHANG)) { +// agvWrkMast.setCtnNo("2"); +// } else if (newLocMast.getLev1() == 2 && factory.equals(AsrsConstants.SANCHANG)) { +// agvWrkMast.setCtnNo("1"); +// } +// } + if (!agvWrkMastService.update(agvWrkMast, new EntityWrapper<AgvWrkMast>().eq("wrk_no", agvWrkMast.getWrkNo()))) { + throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�"); + } + + // 鏇存柊婧愮珯鐐� + 鐩爣搴撲綅鐘舵�� + 鍘嗗彶婧愬簱浣� + agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(), "R", param.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(newLocMast.getLocNo(), "S", agvWrkMast.getBarcode(), agvWrkMast.getWhsType().shortValue()); + agvLocMastService.updateLocStsByLocNo(sourceLocNo, "O", "", (short) 30); + agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no", sourceLocNo)); + + agvWrkDetls.forEach(agvWrkDetl -> { + for (AgvWrkDetl wrkDetl : param.getWrkDetls()) { + if (wrkDetl.getMatnr().equals(agvWrkDetl.getMatnr()) && wrkDetl.getThreeCode().equals(agvWrkDetl.getThreeCode())) { + agvWrkDetl.setAnfme(wrkDetl.getAnfme()); + break; + } + } + agvWrkDetl.setProcessSts(2); + agvWrkDetl.setOrderNo(agvWrkDetl.getOrderNo().substring(2)); + agvWrkDetl.setModiUser(userId); + agvWrkDetl.setModiTime(now); + agvWrkDetl.setIoTime(now); + if (!agvWrkDetlService.update(agvWrkDetl, new EntityWrapper<AgvWrkDetl>() + .eq("matnr", agvWrkDetl.getMatnr()) + .eq("three_code", agvWrkDetl.getThreeCode()) + .eq("supp_code", param.getBarcode()))) { + throw new CoolException("鏇存柊宸ヤ綔鏄庣粏澶辫触"); + } + }); + return "ok"; + } /* * 绔欑偣鍥為�� @@ -912,7 +981,8 @@ } else { orderDetl = orderDetls.get(0); } - orderDetl.setQty(orderDetl.getQty() - agvWrkDetl.getAnfme()); + double v = orderDetl.getQty() - agvWrkDetl.getAnfme(); + orderDetl.setQty(v < 0 ? 0 : v); if (!orderDetlService.updateById(orderDetl)) { throw new CoolException("淇敼璁㈠崟鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�" + orderDetl.getOrderNo() + orderDetl.getMatnr()); } -- Gitblit v1.9.1