From 83425ecab7ea13a6f5cbe877b1313f3e7a42b8b1 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 15 八月 2024 14:13:18 +0800 Subject: [PATCH] 成品入库修改 --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 259 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 205 insertions(+), 54 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java index 1762a66..813209f 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; @@ -985,31 +986,146 @@ } @Override + public void updateBarcode() { + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D")); + for (int i = 0; i < locMasts.size(); i ++) { + LocMast locMast = locMasts.get(i); + locMast.setBarcode("a"+i); + locMastService.updateById(locMast); + } + System.out.println("鏇存柊瀹屼簡" + locMasts.size()); + } + + @Override + @Transactional + public void prodCheck(List<ProdCheckParam> param) { + if (param.isEmpty()) { + throw new CoolException("璇锋眰鍙傛暟涓嶈兘涓虹┖"); + } + for (ProdCheckParam checkParam : param) { + // 鏇存柊搴撳瓨鏄庣粏鏄惁鍚堟牸 + LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("brand", checkParam.getPackageGroupNo()) + .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); + // 鏇存柊鍟嗗搧琛ㄦ槸鍚﹀悎鏍� + Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("brand", checkParam.getPackageGroupNo()) + .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); + if (locDetl == null || mat == null) { + throw new CoolException("鏇存柊鏄惁鍚堟牸鐗╂枡涓嶅瓨鍦細" + checkParam); + } + + locDetl.setThreeCode(checkParam.getQualified()); + mat.setThreeCode(checkParam.getQualified()); + + locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("brand", checkParam.getPackageGroupNo()) + .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo())); + matService.update(mat,(new EntityWrapper<Mat>().eq("brand", checkParam.getPackageGroupNo()) + .eq("unit", checkParam.getBoxNo()).eq("model", checkParam.getRollNo()))); + } + } + + @Override + @Transactional + public String fxprk(List<FxprkParam> param) { +// +// // 鏍规嵁鍖呰缁勫彿鑾峰彇鍒版湪绠卞嵎淇℃伅 +// List<Mat> list = matService.selectList(new EntityWrapper<Mat>().eq("brand", param.getPackageGroupNo())); +// if (list.isEmpty()) { +// throw new CoolException("娌℃湁鏌ヨ鍒拌鍖呰缁勫彿淇℃伅锛�" + param.getPackageGroupNo()); +// } +// +// LocTypeDto locTypeDto = new LocTypeDto(); +// locTypeDto.setLocType1((short) 1); +// StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0); +// +// // 杩斿洖GWCS鐩爣淇℃伅 +// pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo()); +// +// int workNo = dto.getWorkNo(); +// Date now = new Date(); +// // 鐢熸垚宸ヤ綔妗� +// WrkMast wrkMast = new WrkMast(); +// wrkMast.setWrkNo(workNo); +// wrkMast.setIoTime(new Date()); +// wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 +// wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 +// wrkMast.setIoPri(13D); // 浼樺厛绾� +// wrkMast.setCrnNo(dto.getCrnNo()); +// wrkMast.setSourceStaNo(param.getPalletizingNo()); +// wrkMast.setStaNo(dto.getStaNo()); +// wrkMast.setLocNo(dto.getLocNo()); +// wrkMast.setBarcode(list.get(0).getBarcode()); // 鎵樼洏鐮� +// 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け璐�"); +// } +// +// for (Mat obj : list) { +// WrkDetl wrkDetl = new WrkDetl(); +// wrkDetl.setWrkNo(wrkMast.getWrkNo()); +// wrkDetl.setAnfme(1.0); +// wrkDetl.sync(obj); +// wrkDetl.setIoTime(now); +// wrkDetl.setAppeTime(now); +// wrkDetl.setModiTime(now); +// if (!wrkDetlService.insert(wrkDetl)) { +// 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 "鍏ュ簱鎴愬姛"; + } + + @Override @Transactional public R gwmsGenerateInventory(GwmsGenerateInventoryDto param) { if (Cools.isEmpty(param)) { throw new CoolException("璇锋眰鍙傛暟鏈夎锛�" + param); } - int zpalletCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode())); - if (zpalletCount > 0) { - throw new CoolException("搴撳瓨鎵樼洏鐮佸凡瀛樺湪锛�" + param.getBarcode()); - } + if (!Cools.isEmpty(param.getBarcode())) { + int zpalletCount = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode())); + if (zpalletCount > 0) { + throw new CoolException("搴撳瓨鎵樼洏鐮佸凡瀛樺湪锛�" + param.getBarcode()); + } - int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())); - if (barcodeCount > 0) { - throw new CoolException("宸ヤ綔妗e凡瀛樺湪璇ユ墭鐩樼爜锛�" + param.getBarcode()); + int barcodeCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", param.getBarcode())); + if (barcodeCount > 0) { + throw new CoolException("宸ヤ綔妗e凡瀛樺湪璇ユ墭鐩樼爜锛�" + param.getBarcode()); + } } - LocTypeDto locTypeDto = new LocTypeDto(); locTypeDto.setLocType1((short)1); - + int iotype = 1; + if (Cools.isEmpty(param.getMatList())) { + iotype = 10; + } // 鏍规嵁婧愮珯鐐瑰鎵惧簱浣� // StartupDto dto = commonService.getLocNo(1, 1, param.getPalletizingNo(), null,null,null, locTypeDto); - StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto); + StartupDto dto = commonService.getLocNo(iotype, param.getPalletizingNo(), locTypeDto,0); // 杩斿洖GWCS鐩爣淇℃伅 pushStaNoToGwcs(param.getPalletizingNo(),dto.getStaNo(),dto.getWorkNo()); + int workNo = dto.getWorkNo(); Date now = new Date(); @@ -1018,7 +1134,7 @@ wrkMast.setWrkNo(workNo); wrkMast.setIoTime(new Date()); wrkMast.setWrkSts(1L); // 宸ヤ綔鐘舵�侊細璁惧涓婅蛋 - wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoType(iotype); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 wrkMast.setIoPri(13D); // 浼樺厛绾� wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(param.getPalletizingNo()); @@ -1039,46 +1155,53 @@ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); } - List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList(); - for (GwmsGenerateInventoryDto.MatList obj :matList) { - WrkDetl wrkDetl = new WrkDetl(); - wrkDetl.setWrkNo(wrkMast.getWrkNo()); - obj.getRolls().forEach(roll -> { - Mat mat = matService.selectByMatnr(roll.getSpecs()); - if (mat == null) { - mat = new Mat(); + if (!Cools.isEmpty(param.getMatList())) { + List<GwmsGenerateInventoryDto.MatList> matList = param.getMatList(); + for (GwmsGenerateInventoryDto.MatList obj :matList) { + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + obj.getRolls().forEach(roll -> { + wrkDetl.setWrkNo(wrkMast.getWrkNo()); + wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸 + wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸 + wrkDetl.setUnit(roll.getBoxNo()); // 绠卞彿 + wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿 + wrkDetl.setBrand(obj.getPackageGroupNo()); // 鍖呰缁勫彿 + wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鐮� + wrkDetl.setBarcode(param.getBarcode()); + wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃� + wrkDetl.setColor(obj.getBoxType()); // 鏈ㄧ绫诲瀷 + wrkDetl.setManu(obj.getRollType()); // 绠¤姱绫诲瀷 + wrkDetl.setSku(obj.getWideInWidth()); // 瀹炴祴瀹藉箙 + wrkDetl.setItemNum(obj.getThickness()); // 鐢熺當鍘氬害 + wrkDetl.setManuDate(roll.getFqTime()); // 鍒嗗垏涓嬫枡鏃堕棿 + wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲� + wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸 + wrkDetl.setLength(roll.getLength()); // 闀垮害 + wrkDetl.setSpecs(String.valueOf(roll.getSplices())); // 鎺ュご + wrkDetl.setAnfme(1.0); +// wrkDetl.setThreeCode(null); // 閫氳繃mes鎴杄xcel瀵煎叆妫�娴嬫槸鍚﹀悎鏍� 0涓嶅悎鏍硷紝1 鍚堟牸 + wrkDetl.setIoTime(now); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); + } + + // 鐗╂枡琛ㄥ浠戒竴浠� + Mat mat = new Mat(); + mat.sync(wrkDetl); mat.setTagId(6L); - mat.setMatnr(roll.getSpecs()); - mat.setMaktx(roll.getSpecs()); - mat.setSpecs(roll.getSpecs()); - mat.setStatus(1); mat.setCreateTime(now); mat.setUpdateTime(now); if (!matService.insert(mat)) { - throw new CoolException("鐗╂枡瀵煎叆澶辫触锛�"); + throw new CoolException("澶囦唤鐗╂枡琛ㄥけ璐�"); } - } - wrkDetl.setWrkNo(wrkMast.getWrkNo()); - wrkDetl.setMatnr(roll.getSpecs()); // 瑙勬牸 - wrkDetl.setMaktx(roll.getSpecs()); //瑙勬牸 - wrkDetl.setBatch(roll.getBoxNo()); // 绠卞彿 - wrkDetl.setModel(roll.getRollNo()); // 鍗峰彿 - wrkDetl.setBrand(""); // 鏈ㄧ绫诲瀷 - wrkDetl.setZpallet(param.getBarcode()); // 鎵樼洏鍚� - wrkDetl.setOrigin(obj.getBoxPos()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃� - wrkDetl.setWeight(roll.getNetWeight()); // 鍑�閲� - wrkDetl.setVolume(roll.getGrossWeight()); // 姣涢噸 - wrkDetl.setPrice(roll.getLength()); - wrkDetl.setSpecs(String.valueOf(roll.getSplices())); - wrkDetl.setAnfme(1.0); - wrkDetl.setIoTime(now); - wrkDetl.setAppeTime(now); - wrkDetl.setModiTime(now); - if (!wrkDetlService.insert(wrkDetl)) { - throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触"); - } - }); + + }); + } } + // 鏇存柊鐩爣搴撲綅鐘舵�� LocMast locMast = locMastService.selectById(dto.getLocNo()); @@ -1107,6 +1230,9 @@ } wrkMast.setWrkSts(2L); + if(wrkMast.getIoType() == 10){ + wrkMast.setBarcode(param.getBarcode()); + } wrkMastService.updateById(wrkMast); return "璇锋眰鎴愬姛"; @@ -1236,17 +1362,32 @@ return "鍑哄簱缁撴灉涓婃姤鎴愬姛"; } + @Autowired + private BasCrnpService basCrnpService; + @Override @Transactional public String emptyOutLoc(GhjtApiParam param) { // 3102/3009/3008/3006/3003/3002鈫�3047/3112 + // 鑾峰彇妯″紡涓虹數鑴戞ā寮忥紝鏃犱换鍔$殑鍫嗗灈鏈哄垪琛�:闃叉鍒嗛厤鍒板爢鍨涙満涓嶅彲鐢� + List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3) + .eq("wrk_no",0)); + if (basCrnps.isEmpty()) { + // 閮芥湁浠诲姟鍒欒幏鍙栫數鑴戞ā寮忕殑鍫嗗灈鏈哄垪琛� + basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts",3)); + } + if (basCrnps.isEmpty()) { + throw new CoolException("娌℃湁鍙敤鍫嗗灈鏈�,鍫嗗灈鏈哄仠姝㈡垨寮傚父"); + } + // 鍙敤鍫嗗灈鏈哄垪琛� + List<Integer> crnNoList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()); // 瀵绘壘绌烘墭鐩樺簱浣嶏紝鍏堟壘娴呭簱浣� List<LocMast> locMasts; locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","D") - .orderAsc(Arrays.asList("row1","lev1","bay1")).in("row1",3,4,6,7,10,11,14,15,18,19,22,23)); + .orderAsc(Arrays.asList("row1","lev1","bay1")).in("crn_no",crnNoList).in("row1",3,4,6,7,10,11,14,15,18,19,22,23)); if (locMasts.isEmpty()) { locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","D") - .orderAsc(Arrays.asList("row1","lev1","bay1")).in("row1",1,4,5,8,9,12,13,16,17,20,21,24)); + .orderAsc(Arrays.asList("row1","lev1","bay1")).in("crn_no",crnNoList).in("row1",1,4,5,8,9,12,13,16,17,20,21,24)); } if (locMasts.isEmpty()) { @@ -1276,6 +1417,7 @@ wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locMast.getLocNo()); // 婧愬簱浣� + wrkMast.setBarcode(locMast.getBarcode()); wrkMast.setFullPlt("N"); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� @@ -1352,14 +1494,23 @@ if (!wrkMastLogService.save(wrkMast.getWrkNo())) { throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�"); } - + // 鑾峰彇鐩爣绔� + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", wrkMast.getIoType() - 50) + .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 + .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 + StaDesc staDesc = staDescService.selectOne(wrapper); + if (Cools.isEmpty(staDesc)) { + throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�"); + } + // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�) + Integer staNo = staDesc.getCrnStn(); // 鏇存柊宸ヤ綔绫诲瀷103->53 wrkMast.setIoType(53); wrkMast.setWrkSts(52L); // 宸ヤ綔鐘舵��42->52.璁惧涓婅蛋锛堟媶鍨涘畬鎴愶級 - Integer staNo = wrkMast.getStaNo(); // 鐩爣绔欑偣婧愮珯鐐硅浆鎹� - wrkMast.setStaNo(wrkMast.getSourceStaNo()); - wrkMast.setSourceStaNo(staNo); + wrkMast.setSourceStaNo(wrkMast.getStaNo()); + wrkMast.setStaNo(staNo); // 鐩爣搴撲綅=婧愬簱浣� wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 婧愬簱浣嶆竻闄� @@ -1417,7 +1568,7 @@ return wrkDetls.size() > 1 ? 0 : 1; // 涓�鏉¤褰曞氨鏄竴鍗� } - private void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) { + public void pushStaNoToGwcs(Integer palletizingNo, Integer staNo, Integer workNo) { boolean success = false; // 鑾峰彇璇锋眰澶� Map<String, Object> headers = getHeaders(); @@ -1456,10 +1607,10 @@ // 淇濆瓨鎺ュ彛鏃ュ織 apiLogService.save( "鍏ュ簱", - MesConstant.URL + MesConstant.PAKIN_URL, + MesConstant.GWCS_IP_PORT + MesConstant.GWCS_FPKW_URL, null, "127.0.0.1", - jsonObject.toJSONString(), + body, response, success ); -- Gitblit v1.9.1