From 824b9df6aec1af80f7f707bdff24ebe9edec3a9b Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期六, 17 二月 2024 14:06:54 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/web/WcsController.java | 193 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 193 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index c2d5b17..97186ca 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -111,6 +111,66 @@ return R.ok().add(dto); } + /* + * 鍙屽伐浣嶅崟浼稿爢鍨涙満锛屽垵濮嬩笉鍒嗛厤搴撲綅 + * */ + @PostMapping("/pakin/pair/station/single/loc/v1") + @ResponseBody + public synchronized R getLocNoPairSingle(@RequestBody SearchLocParam param) { + log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param); + if (Cools.isEmpty(param.getIoType())) { + return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�"); + } + if (Cools.isEmpty(param.getSourceStaNo())) { + return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖"); + } + List<WaitPakin> waitPakins = null; + if (param.getIoType() == 1) { + if (Cools.isEmpty(param.getBarcode())) { + return R.error("鏉$爜涓嶈兘涓虹┖"); + } + waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode())); + if (Cools.isEmpty(waitPakins)) { + WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode()); + if (wrkMast != null && wrkMast.getIoType() == 103) { + return R.parse(CodeRes.PICK_600); + } + return R.parse(CodeRes.NO_COMB_700); + } + 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) { + return R.error(CodeRes.EXIST_500); + } + } + if (Cools.isEmpty(param.getLocType1())){ + return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�"); + } + + // 婧愮珯鐐圭姸鎬佹娴� + BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true); + sourceStaNo.setLocType1(param.getLocType1()); + LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); + + StartupDto dto = null; + switch (param.getIoType()) { + case 1://婊℃墭鐩樺叆搴� + assert waitPakins != null; + dto = startupFullPutStorePairSingle(param.getSourceStaNo(), param.getBarcode(), locTypeDto, waitPakins); + break; + case 10://绌烘墭鐩樺叆搴� + dto = emptyPlateInPairSingle(param.getSourceStaNo(), locTypeDto, param.getBarcode()); + break; +// case 201://鑷姩琛ョ┖鏉夸换鍔� +// dto = emptyPlateIn201(param.getSourceStaNo(), locTypeDto, param.getBarcode()); +// break; + default: + break; + } + log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", dto, param.getBarcode()); + return R.ok().add(dto); + } + @PostMapping("/pakin2/loc/v1") @ResponseBody @Transactional @@ -437,6 +497,87 @@ return dto; } + /** + * 鍏ㄦ澘鍏ュ簱 + */ + @Transactional + public StartupDto startupFullPutStorePairSingle(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins) { + // 婧愮珯鐐圭姸鎬佹娴� + BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); + + // 妫�绱㈠簱浣� +// List<KeyValueVo> list = waitPakins.stream().map(item-> new KeyValueVo(item.getMatnr(), item.getBatch())).distinct().collect(Collectors.toList()); +// List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList()); + StartupDto dto = commonService.getLocNo(1, 1, devpNo, null,null,null, locTypeDto); + int workNo = dto.getWorkNo(); + Date now = new Date(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + wrkMast.setStaNo(dto.getStaNo()); +// wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setBarcode(barcode); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + waitPakins.forEach(waitPakin -> { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.sync(waitPakin); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setIoTime(wrkMast.getIoTime()); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + }); + // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y + Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() + .eq("zpallet", barcode); + WaitPakin setParam = new WaitPakin(); +// setParam.setLocNo(dto.getLocNo()); + setParam.setIoStatus("Y"); + setParam.setModiTime(now); + if (!waitPakinService.update(setParam, wrapper)) { + throw new CoolException("鏇存柊閫氱煡妗eけ璐�"); + } +// // 鏇存柊婧愮珯鐐逛俊鎭� +//// sourceStaNo.setWrkNo(workNo); +// sourceStaNo.setModiTime(now); +// if (!basDevpService.updateById(sourceStaNo)){ +// throw new CoolException("鏇存柊婧愮珯澶辫触"); +// } +// // 鏇存柊鐩爣搴撲綅鐘舵�� +// LocMast locMast = locMastService.selectById(dto.getLocNo()); +// if (locMast.getLocSts().equals("O")){ +// locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 +// locMast.setModiTime(now); +// if (!locMastService.updateById(locMast)){ +// throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); +// } +// } else { +// throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); +// } + return dto; + } + @Transactional public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode) { // 婧愮珯鐐圭姸鎬佹娴� @@ -490,6 +631,58 @@ } @Transactional + public StartupDto emptyPlateInPairSingle(Integer devpNo, LocTypeDto locTypeDto, String barcode) { + // 婧愮珯鐐圭姸鎬佹娴� + BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); + // 妫�绱㈠簱浣� + StartupDto dto = commonService.getLocNo(1, 10, devpNo, null,null,null, locTypeDto); + int workNo = dto.getWorkNo(); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(10); // 鍏ュ嚭搴撶姸鎬侊細10.绌烘澘鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾� + wrkMast.setCrnNo(dto.getCrnNo()); + wrkMast.setSourceStaNo(dto.getSourceStaNo()); + wrkMast.setStaNo(dto.getStaNo()); +// wrkMast.setLocNo(dto.getLocNo()); + wrkMast.setFullPlt("N"); // 婊℃澘 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setBarcode(barcode); + wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(new Date()); + wrkMast.setModiTime(new Date()); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } +// // 鏇存柊婧愮珯鐐逛俊鎭� +// sourceStaNo.setWrkNo(workNo); +// sourceStaNo.setModiTime(new Date()); +// if (!basDevpService.updateById(sourceStaNo)){ +// throw new CoolException("鏇存柊婧愮珯澶辫触"); +// } +// // 鏇存柊鐩爣搴撲綅鐘舵�� +// LocMast locMast = locMastService.selectById(dto.getLocNo()); +// if (locMast.getLocSts().equals("O")){ +// locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 +// locMast.setModiTime(new Date()); +// if (!locMastService.updateById(locMast)){ +// throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); +// } +// } else { +// throw new CoolException(dto.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); +// } + return dto; + } + + @Transactional public StartupDto emptyPlateInEmpty(Integer devpNo, LocTypeDto locTypeDto, String barcode) { // 婧愮珯鐐圭姸鎬佹娴� BasDevp sourceStaNo = basDevpService.checkSiteStatusEmpty(devpNo, true); -- Gitblit v1.9.1