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 | 65 ++++++++++++++++++++++++++------ 1 files changed, 53 insertions(+), 12 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 03acb2b..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,8 @@ 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; import com.zy.asrs.utils.Utils; @@ -26,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; @@ -85,6 +88,9 @@ @Autowired private ManLocDetlService manLocDetlService; + @Resource + private LocMastMapper locMastMapper; + @Override @Transactional public String startupFullPutStore(FullStoreParam param, Long userId) { @@ -99,7 +105,8 @@ LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); // List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList()); - StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), matnrs.get(0), null, null,locTypeDto); + FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0)); + StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), findLocNoAttributeVo,locTypeDto); if (Cools.isEmpty(dto)){ throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo"); } @@ -133,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 { @@ -179,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.鍑哄簱 @@ -411,12 +424,12 @@ 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()); - if (orderDetl == null) { -// orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); - orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null); - - } + 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); +// +// } WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(orderDetl); wrkDetl.setZpallet(wrkMast.getBarcode()); @@ -437,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枡/鐩樼偣/骞舵澘鍑哄簱涓� @@ -461,7 +474,9 @@ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); - StartupDto dto = commonService.getLocNo( 10, devpNo, null,null,null, locTypeDto); + FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(); + + StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto); int workNo = dto.getWorkNo(); Date now = new Date(); // 鐢熸垚宸ヤ綔妗� @@ -518,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); @@ -654,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.鐩樼偣鍑哄簱 @@ -678,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("搴撲綅鐘舵�佸凡鏀瑰彉"); } @@ -977,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