From 207823b94f5627fae49d29b51b5ce7186a70c8e0 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期六, 04 一月 2025 09:59:48 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 175 ++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 132 insertions(+), 43 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 858d7f1..341a5a2 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -61,7 +61,7 @@ @Autowired private WrkDetlLogService wrkDetlLogService; @Autowired - private SnowflakeIdWorker snowflakeIdWorker; + private ManLocDetlService manLocDetlService; @Autowired private OrderService orderService; @Autowired @@ -89,8 +89,13 @@ BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true); // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); + + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("source_sta_no", param.getDevpNo())); + if (!wrkMasts.isEmpty()) { + throw new CoolException("宸叉湁浠诲姟"); + } List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); - StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto, 0); + StartupDto dto = commonService.getLocNo(2, 1, param.getDevpNo(), null,null,null,0, locTypeDto,0); // 鐢熸垚宸ヤ綔鍙� int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� @@ -245,6 +250,7 @@ // 鐢熸垚宸ヤ綔妗f槑缁� for (LocDetlDto detlDto : dto.getLocDetlDtos()) { if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;} + String uuid = String.valueOf(System.currentTimeMillis()); WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(detlDto.getLocDetl()); wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙� @@ -256,6 +262,9 @@ wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); + wrkDetl.setUuid(uuid); + wrkDetl.setOwner(detlDto.getLocDetl().getOwner()); + wrkDetl.setPayment(detlDto.getLocDetl().getPayment()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } @@ -324,6 +333,7 @@ // if (orderDetl == null) { // orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); // } + String uuid = String.valueOf(System.currentTimeMillis()); WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(orderDetl); wrkDetl.setZpallet(wrkMast.getBarcode()); @@ -336,6 +346,9 @@ wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); + wrkDetl.setUuid(uuid); + wrkDetl.setOwner(orderDetl.getOwner()); + wrkDetl.setPayment(orderDetl.getPayment()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } @@ -366,7 +379,7 @@ BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true); // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); - StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0); + StartupDto dto = commonService.getLocNo(1, 10, devpNo, null,null,null,0, locTypeDto,0); int workNo = dto.getWorkNo(); Date now = new Date(); // 鐢熸垚宸ヤ綔妗� @@ -482,9 +495,6 @@ @Transactional public WrkMast emptyPlateOut(EmptyPlateOutParam param) { WrkMast wrkMast = new WrkMast(); - if (Cools.isEmpty(param.getOutSite())) { - throw new CoolException("绔欑偣涓嶅瓨鍦�"); - } for (String locNo : param.getLocNos()) { // 鑾峰彇宸ヤ綔鍙� int workNo = commonService.getWorkNo(0); @@ -496,8 +506,8 @@ // 鑾峰彇婧愮珯 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() .eq("type_no", 110) - .eq("stn_no", param.getOutSite()) - .eq("crn_no", locMast.getCrnNo()); + .eq("crn_no", locMast.getCrnNo()) + .eq("stn_no",param.getOutSite()); StaDesc staDesc = staDescService.selectOne(wrapper); Integer sourceStaNo = staDesc.getCrnStn(); if (Cools.isEmpty(sourceStaNo)) { @@ -512,7 +522,7 @@ wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱 wrkMast.setIoPri(10D); wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 - wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔� + wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 婧愬簱浣� wrkMast.setFullPlt("N"); // 婊℃澘锛歒 @@ -616,6 +626,8 @@ wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); wrkDetl.setModiUser(userId); + wrkDetl.setOwner(locDetl.getOwner()); + wrkDetl.setPayment(locDetl.getPayment()); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } @@ -802,6 +814,12 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } + if (wrkMast.getIoType() == 1 && (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 5)){ + throw new CoolException(workNo+"涓嶅彲鍙栨秷"); + } + if (wrkMast.getIoType() == 101 && (wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 15)){ + throw new CoolException(workNo+"涓嶅彲鍙栨秷"); + } String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣� String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬� // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級 @@ -895,17 +913,17 @@ } - // 璁㈠崟鍏宠仈 - List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); - for (WrkDetl wrkDetl : wrkDetls) { - if (!Cools.isEmpty(wrkDetl.getOrderNo())) { - if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { - throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); - } - // 鐢熸垚鏂扮殑鍑哄簱浣滀笟 -// stockOutRe(wrkMast, wrkDetls); - } - } +// // 璁㈠崟鍏宠仈 +// List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); +// for (WrkDetl wrkDetl : wrkDetls) { +// if (!Cools.isEmpty(wrkDetl.getOrderNo())) { +// if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { +// throw new CoolException("璁㈠崟鏁版嵁鍥炴粴澶辫触"); +// } +// // 鐢熸垚鏂扮殑鍑哄簱浣滀笟 +//// stockOutRe(wrkMast, wrkDetls); +// } +// } // 鍙栨秷鎿嶄綔浜哄憳璁板綍 wrkMast.setManuType("鎵嬪姩鍙栨秷"); @@ -1035,14 +1053,14 @@ Integer deepRow = Utils.getDeepRow(slaveProperties, curRow); targetLoc = locMastService.queryFreeLocMast(deepRow, locMast.getLocType1()); // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� - if (!locMastService.checkEmptyCount(targetLoc)) { + if (!locMastService.checkEmptyCount(targetLoc,10)) { continue; } } if (Cools.isEmpty(targetLoc)) { targetLoc = locMastService.queryFreeLocMast(curRow, locMast.getLocType1()); // 鍥犲簱浣嶇Щ杞�侀渶棰勭暀绌哄簱浣� - if (!locMastService.checkEmptyCount(targetLoc)) { + if (!locMastService.checkEmptyCount(targetLoc,10)) { continue; } // 鐩爣搴撲綅 ===>> 娴呭簱浣嶏紝 鍒欐牎楠屽叾娣卞簱浣嶆槸鍚︿负 F D X @@ -1118,9 +1136,14 @@ throw new CoolException("璇锋彁鍙栨槑缁�"); } ArrayList<String> locNos = new ArrayList<>(); + String[][] locNos2 =new String[param.getLocDetls().size()][2]; + int i=0; for (EmptyPlateOutParam.LocDetl locDetl : param.getLocDetls()){ - if (!locNos.contains(locDetl.getLocNo())){ - locNos.add(locDetl.getLocNo()); + if (!locNos.contains(locDetl.getLoc_no())){ + locNos.add(locDetl.getLoc_no()); + locNos2[i][0]=locDetl.getLoc_no(); + locNos2[i][1]=locDetl.getManu(); + i++; } } LocOwner locOwner = locOwnerService.selectById(param.getOwnerId()); @@ -1128,27 +1151,40 @@ String lgort = ""; String owner=""; List<DetlDto> detlDtos = new ArrayList<>(); - for (String locNo : locNos) { - List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo)); - for (LocDetl locDetl:locDetls){ - if (Cools.isEmpty(lgort)) { - lgort = locDetl.getOrigin(); + for (String[] locNo1 : locNos2) { + String locNo = locNo1[0]; + if (locNo1[1].equals("骞冲簱")){ + List<ManLocDetl> manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo)); + for (ManLocDetl manLocDetl:manLocDetls){ + if (Cools.isEmpty(owner)) { + owner = manLocDetl.getOwner$(); + } + detlDtos.add(new DetlDto(manLocDetl.getMatnr(), manLocDetl.getBatch(), manLocDetl.getAnfme())); + manLocDetl.setOwner(param.getOwnerId()); + try{ + manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",manLocDetl.getMatnr())); + }catch (Exception e){ + throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡"); + } } - if (Cools.isEmpty(owner)) { - owner = locDetl.getOwner$(); + }else if (locNo1[1].equals("绔嬪簱")){ + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo)); + for (LocDetl locDetl:locDetls){ + if (Cools.isEmpty(lgort)) { + lgort = locDetl.getOrigin(); + } + if (Cools.isEmpty(owner)) { + owner = locDetl.getOwner$(); + } + detlDtos.add(new DetlDto(locDetl.getMatnr(), locDetl.getBatch(), locDetl.getAnfme())); + locDetl.setOwner(param.getOwnerId()); + try{ + locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr())); + }catch (Exception e){ + throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡"); + } } - detlDtos.add(new DetlDto(locDetl.getMatnr(), locDetl.getBatch(), locDetl.getAnfme())); - locDetl.setOwner(param.getOwnerId()); - try{ - locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr()).eq("batch",locDetl.getBatch()).eq("anfme",locDetl.getAnfme())); - }catch (Exception e){ - throw new Exception("鏇存柊搴撳瓨鏄庣粏鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡"); - } - } - LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locNo)); - try { - locMastService.update(locMast,new EntityWrapper<LocMast>().eq("loc_no",locMast.getLocNo())); - }catch (Exception e){ + }else { throw new Exception("鏇存柊搴撲綅鎷ユ湁鑰呭瓧娈典俊鎭嚭閿欎簡"); } } @@ -1157,4 +1193,57 @@ } } + @Override + @Transactional + public void turnOverOutPayment(EmptyPlateOutParam param, Long userId) { + if (Cools.isEmpty(param.getPayment())){ + throw new CoolException("璇烽�夋嫨鐩爣璐х墿褰㈡��"); + } + log.info("鏇存柊璐х墿褰㈡�侊細鐩爣璐х墿褰㈡�侊細"+param.getPayment$(param.getPayment())+";鏇存敼璐х墿淇℃伅锛�"+param.getLocDetls()); + try { + if (param.getLocDetls().size()<=0){ + throw new CoolException("璇锋彁鍙栨槑缁�"); + } + ArrayList<String> locNos = new ArrayList<>(); + String[][] locNos2 =new String[param.getLocDetls().size()][2]; + int i=0; + for (EmptyPlateOutParam.LocDetl locDetl : param.getLocDetls()){ + if (!locNos.contains(locDetl.getLoc_no())){ + locNos.add(locDetl.getLoc_no()); + locNos2[i][0]=locDetl.getLoc_no(); + locNos2[i][1]=locDetl.getManu(); + i++; + } + } + for (String[] locNo1 : locNos2) { + String locNo = locNo1[0]; + if (locNo1[1].equals("骞冲簱")){ + List<ManLocDetl> manLocDetls = manLocDetlService.selectList(new EntityWrapper<ManLocDetl>().eq("loc_no", locNo)); + for (ManLocDetl manLocDetl:manLocDetls){ + manLocDetl.setPayment(param.getPayment()); + try{ + manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>().eq("loc_no", locNo).eq("matnr",manLocDetl.getMatnr())); + }catch (Exception e){ + throw new Exception("鏇存柊搴撳瓨鏄庣粏璐х墿褰㈡�佸瓧娈典俊鎭嚭閿欎簡"); + } + } + }else if (locNo1[1].equals("绔嬪簱")){ + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locNo)); + for (LocDetl locDetl:locDetls){ + locDetl.setPayment(param.getPayment()); + try{ + locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locNo).eq("matnr",locDetl.getMatnr())); + }catch (Exception e){ + throw new Exception("鏇存柊搴撳瓨鏄庣粏璐х墿褰㈡�佸瓧娈典俊鎭嚭閿欎簡"); + } + } + }else { + throw new Exception("鏇存柊搴撲綅璐х墿褰㈡�佸瓧娈典俊鎭嚭閿欎簡"); + } + } + }catch (Exception e){ + throw new CoolException("璐х墿褰㈡�佽浆鎹㈠嚭閿欎簡锛�"+e); + } + } + } -- Gitblit v1.9.1