From c20bd338ddf092a3d9be15d68652d20b9645437d Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 22 十月 2024 15:08:00 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 121 ++++++++++++++++++++++++++++++++++------ 1 files changed, 103 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 2e8c7f3..25ce48e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -26,10 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; +import java.util.*; /** * 绉诲姩绔湇鍔℃牳蹇冪被 @@ -85,16 +82,27 @@ if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM); } + if(param.getCombMats().size()>1){ + throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒"); + } // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁 if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>(). eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) { throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱"); } + if(param.getBarcode().length()!=8){ + throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode()); + } + if (param.getCombMats().size()>1){ + throw new CoolException("涓嶅厑璁告贩鏂�===>>" + param.getBarcode()); + } + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode())); int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode())); - if (countLoc > 0 || countWrk > 0) { - throw new CoolException("宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode()); + int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet",param.getBarcode())); + if (countLoc > 0 || countWrk > 0 || countwait > 0) { + throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode()); } Date now = new Date(); @@ -139,15 +147,22 @@ // 鍏宠仈缁勬墭 } else { Order order = orderService.selectByNo(param.getOrderNo()); - if (order.getSettle() > 2) { + if (Cools.isEmpty(order) || order.getSettle() > 2) { throw new CoolException("鍗曟嵁缂栧彿宸茶繃鏈�"); } // 鐢熸垚鍏ュ簱閫氱煡妗� List<DetlDto> detlDtos = new ArrayList<>(); - param.getCombMats().forEach(elem -> { + + for (CombParam.CombMat elem : param.getCombMats()) { + + +// param.getCombMats().forEach(elem -> { // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙 OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch()); + if (Cools.isEmpty(orderDetl)) { + throw new CoolException("璇ュ崟鎹腑鏈壘鍒板搴旂墿鏂欐槑缁�"); + } if (elem.getAnfme() > orderDetl.getEnableQty()) { throw new CoolException(orderDetl.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�"); } @@ -156,7 +171,7 @@ throw new CoolException("淇敼鍗曟嵁浣滀笟鏁伴噺澶辫触"); } - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(),orderDetl.getManu()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; @@ -164,7 +179,8 @@ } else { detlDtos.add(detlDto); } - }); +// }); + } for (DetlDto detlDto : detlDtos) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { @@ -182,6 +198,7 @@ waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); + waitPakin.setManu(detlDto.getMark()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�"); } @@ -191,6 +208,7 @@ } + // 鍟嗗搧涓婃灦 @Override public void onSale(CombParam param) { Date now = new Date(); @@ -211,14 +229,14 @@ throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鏁伴噺鏈夎锛�"); } if (Cools.isEmpty(combMat.getBatch())){ - throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鎵瑰彿鏈夎锛�"); +// throw new CoolException(combMat.getMatnr() + ":鍟嗗搧鎵瑰彿鏈夎锛�"); } ManLocDetl manLocDetl = new ManLocDetl(); manLocDetl.setLocNo(locno); manLocDetl.setNodeId(node.getId()); manLocDetl.setMaktx(mat.getMaktx()); manLocDetl.setMatnr(mat.getMatnr()); - manLocDetl.setBatch(combMat.getBatch()); + manLocDetl.setBatch(Cools.isEmpty(combMat.getBatch()) ? "" : combMat.getBatch()); manLocDetl.setAnfme(combMat.getAnfme()); manLocDetl.setModiTime(now); if (!manLocDetlService.insert(manLocDetl)) { @@ -227,15 +245,25 @@ } } + // 鍟嗗搧涓嬫灦 @Override public void offSale(OffSaleParam offSaleParam) { - List<ManLocDetl> manLocDetls = manLocDetlMapper.selectLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); - if (Cools.isEmpty(manLocDetls)){ - throw new CoolException("鍟嗗搧涓嬫灦澶辫触锛�"); + ManLocDetl manLocDetl = manLocDetlMapper.selectLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); + if (Cools.isEmpty(manLocDetl)){ + throw new CoolException("鏃犳鍟嗗搧锛�"); } - int i = manLocDetlMapper.deleteLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); - System.out.println(i); + double anfme = manLocDetl.getAnfme() - offSaleParam.getAnfme(); + if (anfme < 0) { + throw new CoolException("鍟嗗搧搴撳瓨涓嶈冻锛�"); + } else if (anfme == 0){ + manLocDetlMapper.deleteLocNo0(offSaleParam.getLocNo(), offSaleParam.getMatnr()); + } + manLocDetlMapper.updateAnfme0(anfme,manLocDetl.getNodeId()); } + + // 鏌ユ壘鍟嗗搧 + + @Override @Transactional public void adjust(MobileAdjustParam param, Long userId) { @@ -412,7 +440,7 @@ String orderNo = "PACK" + snowflakeIdWorker.nextId(); OpenOrderPakinParam openParam = new OpenOrderPakinParam(); openParam.setOrderNo(orderNo); - openParam.setOrderTime(DateUtils.convert(now)); + openParam.setInboundDate(DateUtils.convert(now)); openParam.setOrderType("鎵撳寘鍏ュ簱鍗�"); openParam.setOrderDetails(detlDtos); openService.pakinOrderCreate(openParam); @@ -539,6 +567,63 @@ } @Override +// @Transactional + public void leftoversOut(Map<String, Object> map,Long userId) { + String barcode = map.get("barcode").toString(); + String barcode2 = map.get("barcode2").toString(); + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode).eq("io_type", 103)); + if (Cools.isEmpty(wrkMast)) { + throw new CoolException("鏈煡璇㈠埌鎷f枡浠诲姟"); + } + int workNo = commonService.getWorkNo(1); + WrkMast wrkMast2 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode2).eq("io_type", 200)); + if (Cools.isEmpty(wrkMast2)) { + Date now = new Date(); + + WrkMast wrkMast1 = new WrkMast(); + wrkMast1.sync(wrkMast); + wrkMast1.setWrkNo(workNo); + wrkMast1.setWrkSts(2L); + wrkMast1.setIoType(200); + wrkMast1.setSourceStaNo(wrkMast.getStaNo() == 113 ? 111 : 117); + wrkMast1.setStaNo(wrkMast.getStaNo() == 113 ? 204 : 304); + wrkMast1.setIoTime(now); + wrkMast1.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast1.setCrnNo(wrkMast.getCrnNo()); + wrkMast1.setSourceLocNo(wrkMast.getLocNo()); // 婧愬簱浣� + wrkMast1.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast1.setPicking("N"); // 鎷f枡 + wrkMast1.setExitMk("N"); // 閫�鍑� + wrkMast1.setEmptyMk("N"); // 绌烘澘 + wrkMast1.setLinkMis("N"); + wrkMast1.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast1.setAppeTime(now); + wrkMast1.setModiUser(userId); + wrkMast1.setModiTime(now); + wrkMast1.setBarcode(barcode2); + if (!wrkMastService.insert(wrkMast1)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + } + + + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("zpallet", map.get("barcode"))); + if (Cools.isEmpty(wrkDetls)) { + throw new CoolException("鏈煡璇㈠埌鎷f枡浠诲姟鏄庣粏"); + } + + for(WrkDetl wrkDetl : wrkDetls){ + WrkDetl wrkDetl1 = new WrkDetl(); + wrkDetl1.sync(wrkDetl); + wrkDetl1.setWrkNo(workNo); + wrkDetlService.insert(wrkDetl1); + } + + + + } + + @Override @Transactional public void stockOut(OrderDetl orderDetl, BasDevp staNo, LocDetl locDetl, Double curOutQty, Integer ioType, Long userId, Date now) { -- Gitblit v1.9.1