From fed4c282b7763ec52e4b24e2b6237d5a984dac09 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期四, 30 十一月 2023 16:13:44 +0800 Subject: [PATCH] #盘点出库校验 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 73 +++++++++++++++++++++++++----------- 1 files changed, 51 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 11f75cf..aa31c12 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -129,8 +129,7 @@ // 鐢熸垚宸ヤ綔妗f槑缁� List<DetlDto> detlDtos = new ArrayList<>(); param.getList().forEach(elem -> { - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq()); - detlDto.setContainerCode(elem.getContainerCode()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme(), elem.getCsocode(), elem.getIsoseq(),elem.getContainerCode()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getCsocode(),detlDto.getIsoseq(),detlDto.getContainerCode()); assert detlDto1 != null; @@ -222,7 +221,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), null); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(), paramLocDetl.getSuppCode()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -282,6 +281,36 @@ dtos.add(new OutLocDto(locNo, locDetlDto)); } } + + //妫�娴嬫槸鍚︿负娴呭簱浣� + boolean sign=false; + String th = ""; + for (String locNo : locNos) { + if (sign) { + break; + } + + List<String> groupOuterLoc = Utils.getGroupOuterLoc(locNo); + if (!Cools.isEmpty(groupOuterLoc)) { + for (String outerLoc : groupOuterLoc) { + if (locNos.contains(outerLoc)) { + continue; + } + LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc)); + if (locMast != null) { + if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) { + sign = true; + th = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�"; + break; + } + } + } + } + } + if (sign){ + throw new CoolException("鍑哄簱澶辫触锛�"+th); + } + Integer ioType = null; List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList()); // 鐢熸垚宸ヤ綔妗� @@ -429,6 +458,10 @@ wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo()); wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 wrkMast.setStaNo(stnNo); // 鐩爣绔� + if(ioType == 101 && taskDto.getStaNo()>=300){ + wrkMast.setSourceStaNo(346); // 婧愮珯 + wrkMast.setStaNo(346); // 鐩爣绔� + } wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣� wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 @@ -475,11 +508,11 @@ // 淇敼璁㈠崟鏄庣粏 if (!BaseController.isJSON(locDto.getOrderNo())) { - OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); + OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq()); if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); + orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq()); } - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) { + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme(),locDto.getCsocode(),locDto.getIsoseq())) { throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); } orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); @@ -493,9 +526,9 @@ Double orderAnfme; for (OrderDto orderDto : orderDtoList) { - OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); + OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getCsocode(),locDto.getIsoseq()); if (orderDetl == null) { - orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null); + orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), locDto.getMatnr(), null,locDto.getCsocode(),locDto.getIsoseq()); } if(locAnfme > orderDetl.getAnfme()){ @@ -505,7 +538,7 @@ orderAnfme = locAnfme; } - if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme)) { + if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), orderAnfme,orderDetl.getThreeCode(),orderDetl.getDeadTime())) { throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); } orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); @@ -695,7 +728,7 @@ List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getContainerCode()); + LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch(),paramLocDetl.getSuppCode()); if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); } } @@ -851,11 +884,11 @@ while (iterator1.hasNext()) { LocDetlAdjustParam.LocDetlAdjust adjust = iterator1.next(); if (adjust.getCount() == 0) { continue; } - if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch())) { + if (locDetl.getMatnr().equals(adjust.getMatnr()) && Cools.eq(locDetl.getBatch(), adjust.getBatch()) && Cools.eq(locDetl.getSuppCode(),adjust.getSuppCode()) && Cools.eq(locDetl.getThreeCode(),adjust.getThreeCode()) && Cools.eq(locDetl.getDeadTime(),adjust.getDeadTime())) { if (!locDetl.getAnfme().equals(adjust.getCount())) { // todo 鐩樼偣璁板綍 // 淇敼搴撳瓨 - if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { + if (!locDetlService.updateAnfme(adjust.getCount(), locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getSuppCode(),locDetl.getThreeCode(),locDetl.getDeadTime())) { throw new CoolException(locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佷慨鏀规暟閲忓け璐�"); } // 淇濆瓨璋冩暣璁板綍 @@ -869,9 +902,7 @@ adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - - UUID uuid = UUID.randomUUID(); - adjDetl.setOrderNo(uuid.toString()); + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetl.setCsocode(locDetl.getThreeCode()); adjDetl.setIsoseq(locDetl.getDeadTime()); @@ -886,7 +917,7 @@ // 鍒犻櫎搴撳瓨 for (LocDetl locDetl : locDetls) { // todo 鐩樼偣璁板綍 - if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch())) { + if (!locDetlService.updateAnfme(-1.0D, locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getBatch(),locDetl.getSuppCode(),locDetl.getThreeCode(),locDetl.getDeadTime())) { throw new CoolException("鍒犻櫎" + locDetl.getLocNo() + "搴撲綅锛�" + locDetl.getMatnr() + "鍟嗗搧锛�" + locDetl.getBatch() + "搴忓垪鐮佸簱瀛樻槑缁嗗け璐�"); } // 淇濆瓨璋冩暣璁板綍 @@ -900,7 +931,7 @@ adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetlService.save(adjDetl, userId); } @@ -933,11 +964,9 @@ adjDetl.setModiUser(userId); adjDetl.setAppeTime(now); adjDetl.setAppeUser(userId); - - UUID uuid = UUID.randomUUID(); - adjDetl.setOrderNo(uuid.toString()); adjDetl.setCsocode(locDetl.getThreeCode()); adjDetl.setIsoseq(locDetl.getDeadTime()); + adjDetl.setOrderNo(Utils.generateAdjustOrderNo()); adjDetlService.save(adjDetl, userId); } @@ -1024,7 +1053,7 @@ for (WrkDetl wrkDetl : wrkDetls) { if (!Cools.isEmpty(wrkDetl.getOrderNo())) { if (!BaseController.isJSON(wrkDetl.getOrderNo())) { - if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { + if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme(),wrkDetl.getThreeCode(),wrkDetl.getDeadTime())) { throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); } } else { @@ -1045,7 +1074,7 @@ orderAnfme = wrkDetlAnfme; } - if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderAnfme)) { + if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderAnfme,wrkDetl.getThreeCode(),wrkDetl.getDeadTime())) { throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); } } -- Gitblit v1.9.1