From f84448a10d99a0fa82e71088051e3517637edaa7 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期二, 09 四月 2024 15:11:52 +0800 Subject: [PATCH] # --- zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 96 insertions(+), 1 deletions(-) diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java index 7a6debb..ee20d56 100644 --- a/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java +++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/WorkServiceImpl.java @@ -22,6 +22,7 @@ import java.util.*; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * Created by vincent on 2020/6/11 @@ -66,7 +67,11 @@ } Date now = new Date(); LocTypeDto locTypeDto = new LocTypeDto(); - StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), hostId, locTypeDto, 0); + locTypeDto.setLocType1(param.getLocType1()); + locTypeDto.setLocRangeDto(param.getLocRangeDto()); + List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); + String batch = param.getList().get(0).getBatch(); + StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), matnrs, batch, hostId, locTypeDto, 0); // 鐢熸垚宸ヤ綔鍙� int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� @@ -163,6 +168,7 @@ } @Override + @Transactional public void stockOut(Integer staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId, Long hostId) { Date now = new Date(); // 鍚堝苟鍚岀被椤� @@ -535,6 +541,7 @@ } @Override + @Transactional public void adjustLocDetl(LocDetlAdjustParam param, Long userId, Long hostId) { param.integrate(); LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, param.getLocNo()).eq(LocMast::getHostId, hostId)); @@ -656,4 +663,92 @@ throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); } } + + @Override + @Transactional + public void locMove(String sourceLocNo, String locNo, Long userId, Long hostId) { + LocMast sourceLoc = locMastService.getOne(new LambdaQueryWrapper<LocMast>() + .eq(LocMast::getLocNo, sourceLocNo) + .eq(LocMast::getHostId, hostId)); + List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>() + .eq(LocDetl::getLocNo, sourceLocNo) + .eq(LocDetl::getHostId, hostId)); + if (Cools.isEmpty(sourceLoc)){ + throw new CoolException("鏈壘鍒板簱浣�"); + } + LocMast loc = locMastService.getOne(new LambdaQueryWrapper<LocMast>() + .eq(LocMast::getLocNo, locNo) + .eq(LocMast::getHostId, hostId)); + if (Cools.isEmpty(loc)){ + throw new CoolException("鏈壘鍒板簱浣�"); + } + if (!sourceLoc.getCrnNo().equals(loc.getCrnNo())) { +// throw new CoolException("绉昏浆搴撲綅灞炰簬涓嶅悓鍫嗗灈鏈�"); todo:luxiaotao + } + Date now = new Date(); + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.PICK.type); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱浠诲姟 + wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇 + wrkMast.setIoPri(10D); + wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣� + wrkMast.setLocNo(locNo); // 鐩爣搴撲綅 + wrkMast.setFullPlt(Cools.isEmpty(locDetls)?"N":"Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D")?"Y":"N"); // 绌烘澘 + wrkMast.setBarcode(sourceLoc.getBarcode()); // 鎵樼洏鐮� + wrkMast.setAppeUser(String.valueOf(userId)); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(String.valueOf(userId)); + wrkMast.setModiTime(now); + wrkMast.setHostId(hostId); + boolean res = wrkMastService.save(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 宸ヤ綔妗f槑缁嗕繚瀛� + for (LocDetl locDetl : locDetls) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(locDetl); + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(now); + wrkDetl.setAnfme(locDetl.getAnfme()); + wrkDetl.setAppeTime(now); + wrkDetl.setAppeUser(userId); + wrkDetl.setModiTime(now); + wrkDetl.setModiUser(userId); + wrkDetl.setHostId(hostId); + wrkDetl.setWrkMastId(wrkMast.getId()); + if (!wrkDetlService.save(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + } + // 淇敼婧愬簱浣嶇姸鎬� + if (sourceLoc.getLocSts().equals("D") || sourceLoc.getLocSts().equals("F")) { + sourceLoc.setLocSts("R"); // R.鍑哄簱棰勭害 + sourceLoc.setModiUser(userId); + sourceLoc.setModiTime(now); + if (!locMastService.updateById(sourceLoc)){ + throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�"); + } + } else { + throw new CoolException(sourceLoc.getLocNo() + "婧愬簱浣嶅嚭搴撳け璐ワ紝鐘舵�侊細"+sourceLoc.getLocSts$()); + } + // 淇敼鐩爣搴撲綅鐘舵�� + if (loc.getLocSts().equals("O")) { + loc.setLocSts("S"); // S.鍏ュ簱棰勭害 + loc.setModiTime(now); + loc.setModiUser(userId); + if (!locMastService.updateById(loc)) { + throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細"+loc.getLocSts$()); + } + } } -- Gitblit v1.9.1