From 5833f3f3aa5313fa1170cd9ab0c5857f964ba96c Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期六, 16 八月 2025 13:20:12 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/ghjtasrs' into ghjtasrs --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 153 insertions(+), 14 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 2ad9850..53da495 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -183,11 +183,22 @@ // 鑾峰彇搴撲綅鏄庣粏 List<LocDetlDto> locDetlDtos = new ArrayList<>(); for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { + LocDetl one = new LocDetl(); // if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { - LocDetl one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo()) + one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo()) .eq("brand",paramLocDetl.getBrand()).eq("model",paramLocDetl.getModel())); // selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); - if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo())); + if(paramLocDetl.getMatnr().equals("绌虹")){ + one= locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo())); + } + if (null != one && !paramLocDetl.getMatnr().equals("绌虹")) { + if(!"鍚堟牸".equals(one.getThreeCode())) { + throw new CoolException(one.getModel() + "鍗蜂笉鍚堟牸:" + one.getThreeCode() ); + } + locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo())); + }else{ + locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo())); + } // } } if (!locDetlDtos.isEmpty()) { @@ -302,10 +313,8 @@ } } - - - @Override @Transactional + @Override public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) { Date now = new Date(); // 鍚堝苟鍚岀被椤� @@ -365,6 +374,7 @@ wrkMast.setEmptyMk("N"); // 绌烘澘 wrkMast.setLinkMis("N"); wrkMast.setSheetNo("0"); +// wrkMast.setMemo(groupOrderNumber); if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){ wrkMast.setSheetNo("3"); } @@ -380,7 +390,137 @@ for (LocDetlDto detlDto : dto.getLocDetlDtos()) { if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;} WrkDetl wrkDetl = new WrkDetl(); + List<OrderDetl> orderDetl = orderDetlService.selectByBrand(detlDto.getLocDetl().getBrand()); wrkDetl.sync(detlDto.getLocDetl()); + for (OrderDetl orderDetlDto : orderDetl) { + if(orderDetlDto.getSupp() != null){ + wrkDetl.setSupp(orderDetlDto.getSupp()); + } + if(orderDetlDto.getMemo() != null){ + wrkDetl.setMemo(orderDetlDto.getMemo()); + } + } + wrkDetl.setOrderNo(detlDto.getOrderNo()); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙� + wrkDetl.setWrkNo(workNo); + wrkDetl.setIoTime(now); + Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount(); + wrkDetl.setAnfme(anfme); // 鏁伴噺 + wrkDetl.setAppeTime(now); + wrkDetl.setAppeUser(userId); + wrkDetl.setModiTime(now); + wrkDetl.setModiUser(userId); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); + } + // 淇敼璁㈠崟鏄庣粏 + orderDetlMapper.updateOrderDetlByGroupNo(detlDto.getOrderNo(), detlDto.getLocDetl().getBrand(), 1); + // 淇敼璁㈠崟鐘舵�� + orderMapper.updateSettleByOrderNo(detlDto.getOrderNo(),2L, userId); + } + + // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓� + locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("F")) { + locMast.setLocSts(ioType==101?"R":"P"); + locMast.setModiUser(userId); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+dto.getLocNo()); + } + } else { + throw new CoolException(dto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); + } + } + } + + + @Override + @Transactional + public void stockOut(BasDevp staNo, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId,String groupOrderNumber) { + Date now = new Date(); + // 鍚堝苟鍚岀被椤� + Set<String> locNos = new HashSet<>(); + List<OutLocDto> dtos = new ArrayList<>(); + for (LocDetlDto locDetlDto : locDetlDtos) { + String locNo = locDetlDto.getLocDetl().getLocNo(); + if (locNos.contains(locNo)) { + for (OutLocDto dto : dtos) { + if (dto.getLocNo().equals(locNo)) { + dto.getLocDetlDtos().add(locDetlDto); + break; + } + } + } else { + locNos.add(locNo); + dtos.add(new OutLocDto(locNo, locDetlDto)); + } + } + Integer ioType = null; + // 鐢熸垚宸ヤ綔妗� + for (OutLocDto dto : dtos) { + // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱 + if (ioWorkType == null) { + ioType = dto.isAll() ? 101 : 103; + } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) { + ioType = 107; + } + assert ioType != null; + // 鑾峰彇搴撲綅 + LocMast locMast = locMastService.selectById(dto.getLocNo()); + + Integer outSta = staNo.getDevNo(); +// //2鍙峰爢鍨涙満鍏ㄦ澘鍑哄簱绔欐寚瀹氫负204绔欙紝鎷f枡绔欐寚瀹氫负202 +// if(locMast.getCrnNo()==2){ +// outSta = ioType == 101 ? 204 : 202; +// } + + // 鑾峰彇璺緞 + StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta); + // 鐢熸垚宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID + wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬� + wrkMast.setIoPri(13D); // 浼樺厛绾э細13 + wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯 + wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔� + wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setSheetNo("0"); + wrkMast.setMemo(groupOrderNumber); + if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){ + wrkMast.setSheetNo("3"); + } + wrkMast.setBarcode(locMast.getBarcode()); + wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeTime(now); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(now); + if (!wrkMastService.insert(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+dto.getLocNo()); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + for (LocDetlDto detlDto : dto.getLocDetlDtos()) { + if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;} + WrkDetl wrkDetl = new WrkDetl(); + List<OrderDetl> orderDetl = orderDetlService.selectByBrand(detlDto.getLocDetl().getBrand()); + wrkDetl.sync(detlDto.getLocDetl()); + for (OrderDetl orderDetlDto : orderDetl) { + if(orderDetlDto.getSupp() != null){ + wrkDetl.setSupp(orderDetlDto.getSupp()); + } + if(orderDetlDto.getMemo() != null){ + wrkDetl.setMemo(orderDetlDto.getMemo()); + } + } wrkDetl.setOrderNo(detlDto.getOrderNo()); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙� wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(now); @@ -931,17 +1071,17 @@ if (Cools.isEmpty(wrkMast)){ throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪"); } - if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) { + if (wrkMast.getWrkSts() == 5 || wrkMast.getWrkSts() == 14 || wrkMast.getWrkSts() == 15) { throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚"); } // 鍏ュ簱 + 搴撲綅杞Щ - if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) { + if (wrkMast.getIoType() < 60) { wrkMast.setWrkSts(4L); // 鍑哄簱 - } else if (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()!=202) { + } else if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 103 && wrkMast.getIoType() != 107 && wrkMast.getIoType() != 109) { wrkMast.setWrkSts(14L); - }else if (wrkMast.getIoType()==202){ - wrkMast.setWrkSts(57L); + }else{ + throw new CoolException("褰撳墠宸ヤ綔绫诲瀷鎴栫姸鎬佹棤娉曞畬鎴�"); } Date now = new Date(); wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true)); @@ -1088,7 +1228,7 @@ String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣� String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬� // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級 - if (wrkMast.getWrkSts() < 4) { + if (wrkMast.getWrkSts() == 1) { locNo = wrkMast.getLocNo(); locSts = "O"; @@ -1105,7 +1245,7 @@ locMastService.updateById(locMast); } // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛� - } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=202) { + } else if (wrkMast.getWrkSts() == 11) { locNo = wrkMast.getSourceLocNo(); // 鍑哄簱 ===>> F.鍦ㄥ簱 if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) { @@ -1126,8 +1266,7 @@ locMast.setModiUser(userId); locMastService.updateById(locMast); } - } else if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){ - } else { + }else { throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�"); } -- Gitblit v1.9.1