From f52627e8432451f13bad65a5a6a0c165e16b0193 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期二, 01 四月 2025 10:06:20 +0800 Subject: [PATCH] 电视机新增图号显示 --- src/main/java/com/zy/common/web/WcsController.java | 261 ++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 191 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index 72cd9a1..c74b117 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -46,43 +46,109 @@ private LocDetlService locDetlService; @Autowired private BasCrnpService basCrnpService; + @PostMapping("/pakin/loc/returnWarehouse") + @ResponseBody + public synchronized StorageResult returnWarehouse(@RequestBody(required = false) SearchLocParam param) { + StorageResult storageResult=new StorageResult(); + if (Cools.isEmpty(param.getTaskNo())) { + storageResult.setReturnStatus(1); + storageResult.setErrorMessage("浼犲叆宸ヤ綔鍙蜂负绌�"); + return storageResult; + } + WrkMast wrkMast =wrkMastService.selectOne(new EntityWrapper<WrkMast>() + .eq("wrk_no",param.getTaskNo()) + .in("io_type",103,107)); + if (Cools.isEmpty(wrkMast)){ + storageResult.setReturnStatus(1); + storageResult.setErrorMessage("娌℃湁鎵惧埌鐩樼偣鎷f枡浠诲姟---------"+param.getTaskNo()); + return storageResult; + } + SearchLocParam searchLocParam = new SearchLocParam(); + searchLocParam.setBoxNo(wrkMast.getBarcode()); + searchLocParam.setWcsIoType(1);//婊℃澘 + searchLocParam.setWcsSourceStaNo(wrkMast.getStaNo()); + searchLocParam.setWcsStatus(0); + return getLocNo(searchLocParam); + } + @PostMapping("/pakin/loc/v1") @ResponseBody - public synchronized R getLocNo(@RequestBody(required = false) SearchLocParam param) { + public synchronized StorageResult getLocNo(@RequestBody(required = false) SearchLocParam param) { StorageResult storageResult=new StorageResult(); log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param); if (Cools.isEmpty(param.getWcsIoType())) { - return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�"); + storageResult.setReturnStatus(1); + storageResult.setErrorMessage("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�"); + return storageResult; } if (Cools.isEmpty(param.getWcsSourceStaNo())) { - return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖"); + storageResult.setReturnStatus(1); + storageResult.setErrorMessage("婧愮珯缂栧彿涓嶈兘涓虹┖"); + return storageResult; } + BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",param.getWcsSourceStaNo())); + int ioType = 0; List<WaitPakin> waitPakins = null; if (param.getWcsIoType() == 1) { - if (Cools.isEmpty(param.getBoxNo())) { - return R.error("鏉$爜涓嶈兘涓虹┖"); + //鎷f枡鍜岀洏鐐瑰叆搴� + WrkMast wrkMast1037 =wrkMastService.selectOne(new EntityWrapper<WrkMast>() + .eq("barcode", param.getBoxNo()) + .in("io_type",103,107)); + WrkMast wrkMast537 =wrkMastService.selectOne(new EntityWrapper<WrkMast>() + .eq("barcode", param.getBoxNo()) + .in("io_type",53,57)); + if (wrkMast537 != null) { + StorageResult.Results results=new StorageResult.Results(); + results.setTaskNo(wrkMast537.getWrkNo()); + results.setShelfUnitId(wrkMast537.getLocNo()+""); + storageResult.setResults(results); + return storageResult; } - waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo())); - if (Cools.isEmpty(waitPakins)) { - WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBoxNo()); - if (wrkMast != null && wrkMast.getIoType() == 103) { - return R.parse(CodeRes.PICK_600); + if(Cools.isEmpty(wrkMast1037)) { + if (Cools.isEmpty(param.getBoxNo())) { + storageResult.setReturnStatus(1); + storageResult.setErrorMessage("鏉$爜涓嶈兘涓虹┖"); + basDevp.setArea("鏉$爜涓嶈兘涓虹┖"); + basDevpService.updateById(basDevp); + return storageResult; } - return R.parse(CodeRes.NO_COMB_700); + waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBoxNo())); + if (Cools.isEmpty(waitPakins)) { + WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBoxNo()); + if (wrkMast != null && wrkMast.getIoType() == 103) { + storageResult.setReturnStatus(1); + storageResult.setErrorMessage(CodeRes.PICK_600); + basDevp.setArea(CodeRes.PICK_600); + basDevpService.updateById(basDevp); + return storageResult; + } + storageResult.setReturnStatus(1); + storageResult.setErrorMessage(CodeRes.NO_COMB_700); + basDevp.setArea(CodeRes.NO_COMB_700); + basDevpService.updateById(basDevp); + return storageResult; + } + int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBoxNo())); + int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBoxNo())); + if (countLoc > 0 || countWrk > 0) { + storageResult.setReturnStatus(1); + storageResult.setErrorMessage(CodeRes.EXIST_500); + basDevp.setArea(CodeRes.NO_COMB_700); + basDevpService.updateById(basDevp); + return storageResult; + } + }else { + ioType = wrkMast1037.getIoType(); } - int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBoxNo())); - int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBoxNo())); - if (countLoc > 0 || countWrk > 0) { - return R.error(CodeRes.EXIST_500); - } + } switch (param.getWcsIoType()) { case 1://婊℃墭鐩樺叆搴� assert waitPakins != null; - storageResult = startupFullPutStore(param.getWcsSourceStaNo(), param.getBoxNo(), waitPakins); + storageResult = startupFullPutStore(param.getWcsSourceStaNo(), param.getBoxNo(), waitPakins,ioType); break; case 2://绌烘墭鐩樺叆搴� storageResult = emptyPlateIn(param.getWcsSourceStaNo(), param.getBoxNo()); @@ -91,80 +157,124 @@ break; } log.info("WCS鍏ュ簱鎺ュ彛杩斿弬:{},鎵樼洏鐮�:{}", storageResult, param.getBoxNo()); - return R.ok().add(storageResult); + return storageResult; } + /** * 鍏ㄦ澘鍏ュ簱 */ @Transactional - public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins) { + public StorageResult startupFullPutStore(Integer devpNo, String barcode, List<WaitPakin> waitPakins,Integer ioType) { + BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",devpNo)); + StorageResult storageResult=new StorageResult(); Integer[] arr=arr(); - int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch(); - // 妫�绱㈠簱浣� - LocMast locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1); - int workNo = commonService.getWorkNo(0); - 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.setSourceStaNo(devpNo); - wrkMast.setLocNo(locMast1.getLocNo()); - wrkMast.setBarcode(barcode); // 鎵樼洏鐮� - wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 - wrkMast.setPicking("N"); // 鎷f枡 - wrkMast.setExitMk("N"); // 閫�鍑� - wrkMast.setEmptyMk("N"); // 绌烘澘 - wrkMast.setLinkMis("Y"); - wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷 - // 鎿嶄綔浜哄憳鏁版嵁 - 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("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + LocMast locMast1=new LocMast(); + Integer workNo = 0; + //鍒ゆ柇鏄惁鏄嫞鏂欐垨鑰呮槸鐩樼偣 + if(ioType==103||ioType==107) { + WrkDetl wrkDetl=wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("zpallet", barcode)); + + int type=Cools.isEmpty(wrkDetl.getBeBatch())?1:wrkDetl.getBeBatch(); + // 妫�绱㈠簱浣� + WaitPakin waitPakin1=new WaitPakin(); + waitPakin1.sync(wrkDetl); + locMast1 =commonService.getLocNo2(waitPakin1,arr,0,type,1); + + WrkMast wrkMast=wrkMastService.selectByBarcode(barcode); + workNo = wrkMast.getWrkNo(); + int mbz=wrkMast.getStaNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6)); + String ykw=wrkMast.getLocNo(); + wrkMast.setIoType(ioType-50); + wrkMast.setWrkSts(1L);//鍏ュ簱 + wrkMast.setModiTime(new Date()); + wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯 + wrkMast.setStaNo(mbz); // 鐩爣绔� + wrkMast.setLocNo(locMast1.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣� + wrkMast.setSourceLocNo(ykw); // 婧愬簱浣� + wrkMastService.updateById(wrkMast); + }else{ + int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch(); + // 妫�绱㈠簱浣� + locMast1 =commonService.getLocNo2(waitPakins.get(0),arr,0,type,1); + int mbz=devpNo*10+Integer.valueOf(locMast1.getLocNo().substring(6)); + //姝e父鍏ュ簱 + workNo = commonService.getWorkNo(0); + 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.setSourceStaNo(devpNo); + wrkMast.setStaNo(mbz); + wrkMast.setLocNo(locMast1.getLocNo()); + wrkMast.setBarcode(barcode); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("Y"); + wrkMast.setCtnType(1); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + basDevp.setArea("淇濆瓨宸ヤ綔妗eけ璐�"); + basDevpService.updateById(basDevp); + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } - }); - // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y - Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() - .eq("zpallet", barcode); - WaitPakin setParam = new WaitPakin(); - setParam.setLocNo(locMast1.getLocNo()); - setParam.setIoStatus("Y"); - setParam.setModiTime(now); - if (!waitPakinService.update(setParam, wrapper)) { - 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)) { + basDevp.setArea("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + basDevpService.updateById(basDevp); + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + }); + // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y + Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>() + .eq("zpallet", barcode); + WaitPakin setParam = new WaitPakin(); + setParam.setLocNo(locMast1.getLocNo()); + setParam.setIoStatus("Y"); + setParam.setModiTime(now); + if (!waitPakinService.update(setParam, wrapper)) { + basDevp.setArea("鏇存柊閫氱煡妗eけ璐�"); + basDevpService.updateById(basDevp); + throw new CoolException("鏇存柊閫氱煡妗eけ璐�"); + } } // 鏇存柊鐩爣搴撲綅鐘舵�� LocMast locMast = locMastService.selectById(locMast1.getLocNo()); if (locMast.getLocSts().equals("O")){ locMast.setLocSts("S"); // S.鍏ュ簱棰勭害 - locMast.setModiTime(now); + locMast.setModiTime(new Date()); if (!locMastService.updateById(locMast)){ + basDevp.setArea("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + basDevpService.updateById(basDevp); throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); } } else { + basDevp.setArea(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); + basDevpService.updateById(basDevp); throw new CoolException(locMast1.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); } + StorageResult.Results results=new StorageResult.Results(); results.setTaskNo(workNo); results.setShelfUnitId(locMast1.getLocNo()); + results.setBarcode(barcode); storageResult.setResults(results); return storageResult; } @@ -252,6 +362,7 @@ }else{ basCrnp.setTankQty(0); basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",basCrnp.getCrnNo())); + int xx=0; arr[i]=basCrnp.getLev1(); i++; int o=basCrnp.getCrnNo(); @@ -260,18 +371,27 @@ o=1; } basCrnp=basCrnpService.selectOne(new EntityWrapper<BasCrnp>().eq("crn_no",o)); - if(q==1){ + if(Cools.isEmpty(basCrnp)){ + log.error(q+"鍙峰皬杞︽病鏈夋壘鍒�"); + continue; + } + if(basCrnp.getCrnErr()>0||basCrnp.getCrnSts()!=1){ + log.error(q+"鍙峰皬杞︽姤璀︽垨鑰呭湪鍏呯數璺宠繃姝よ溅"); + continue; + } + if(xx==0){ basCrnp.setTankQty(1); basCrnpService.update(basCrnp,new EntityWrapper<BasCrnp>().eq("crn_no",o)); } arr[i]=basCrnp.getLev1(); i++; + xx++; } } for (int w=1;w<=7;w++){ boolean boo=true; - for(int g=0;g<count;g++){ + for(int g=0;g<i;g++){ if(arr[g]==w){ boo=false; break; @@ -281,6 +401,7 @@ arr[i]=w; i++; } + if(i==7) break; } return arr; } -- Gitblit v1.9.1