From 24b39a858545b192bbba4ee336af201b45f4d1dd Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期二, 24 十二月 2024 16:04:22 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 42 insertions(+), 5 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 2ae5d58..d59bab5 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -12,6 +12,7 @@ import com.zy.asrs.entity.param.FullStoreParam; import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; +import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.entity.result.FindLocNoAttributeVo; import com.zy.asrs.service.*; import com.zy.asrs.utils.OrderInAndOutUtil; @@ -27,6 +28,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -86,6 +88,9 @@ @Autowired private ManLocDetlService manLocDetlService; + @Resource + private LocMastMapper locMastMapper; + @Override @Transactional public String startupFullPutStore(FullStoreParam param, Long userId) { @@ -135,9 +140,9 @@ // 鐢熸垚宸ヤ綔妗f槑缁� List<DetlDto> detlDtos = new ArrayList<>(); param.getList().forEach(elem -> { - DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); + DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(),elem.getBrand(),elem.getStandby1(),elem.getStandby2(),elem.getStandby3(), elem.getAnfme()); if (DetlDto.has(detlDtos, detlDto)) { - DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); + DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getBrand(),detlDto.getStandby1(),detlDto.getStandby2(),detlDto.getStandby3()); assert detlDto1 != null; detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme()); } else { @@ -181,6 +186,12 @@ } } if (!locDetlDtos.isEmpty()) { + // 搴撲綅鍙烽泦鍚� + List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList()); + String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList); + if (firstFrozenLocNo != null) { + throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!"); + } LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){ // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱 @@ -413,7 +424,7 @@ for (LocDto locDto : taskDto.getLocDtos()) { if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; } // OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); - OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); + OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch(),locDto.getBrand(),locDto.getStandby1(),locDto.getStandby2(),locDto.getStandby3()); // if (orderDetl == null) { //// orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); // orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null); @@ -439,7 +450,7 @@ // throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); // } // orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); - OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE,orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme()); + OrderInAndOutUtil.increaseWorkQty(Boolean.FALSE,orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getBrand(),orderDetl.getStandby1(),orderDetl.getStandby2(),orderDetl.getStandby3(), locDto.getAnfme()); OrderInAndOutUtil.updateOrder(Boolean.FALSE,orderDetl.getOrderId(), 2L, userId); } // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓� @@ -522,6 +533,13 @@ if (Cools.isEmpty(param.getOutSite())) { throw new CoolException("绔欑偣涓嶅瓨鍦�"); } + + // 搴撲綅鍐荤粨涓嶈兘鍑哄簱 + String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(param.getLocNos()); + if (firstFrozenLocNo != null) { + throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!"); + } + for (String locNo : param.getLocNos()) { // 鑾峰彇宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); @@ -658,6 +676,12 @@ } } if (!locDetlDtos.isEmpty()) { + // 搴撲綅鍙烽泦鍚� + List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList()); + String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList); + if (firstFrozenLocNo != null) { + throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!"); + } LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); if (locMast.getLocSts().equals("F")){ // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱 @@ -682,6 +706,19 @@ if (Cools.isEmpty(loc)){ throw new CoolException("鏈壘鍒板簱浣�"); } + // 鍒ゆ柇搴撲綅鏄惁鍐荤粨 + String sourceLocFrozen = locMastMapper.findFirstFrozenLocNo(Arrays.asList(sourceLoc.getLocNo(),loc.getLocNo())); + if (sourceLocFrozen != null) { + throw new CoolException(sourceLocFrozen + "搴撲綅宸茶鍐荤粨!"); + } + + // 鍒ゆ柇搴撳瓨鏄惁鍐荤粨 + Optional<LocDetl> first = locDetls.stream().filter(locDetl -> locDetl.getFrozen() == 1).findFirst(); + if (first.isPresent()) { + LocDetl locDetl = first.get(); + throw new CoolException(locDetl.getLocNo() + "," + locDetl.getMatnr() + "," + locDetl.getBatch() + "搴撳瓨鏄庣粏宸茶鍐荤粨!"); + } + if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){ throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉"); } @@ -981,7 +1018,7 @@ // if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { // throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); // } - OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme()); + OrderInAndOutUtil.decrease(Boolean.FALSE,wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(),wrkDetl.getBrand(),wrkDetl.getStandby1(),wrkDetl.getStandby2(),wrkDetl.getStandby3(), wrkDetl.getAnfme()); //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼 boolean flag = true; -- Gitblit v1.9.1