From 08b4403ec8d6b69528d161cfcad80b5d64dea76c Mon Sep 17 00:00:00 2001 From: Administrator <876263681@qq.com> Date: 星期三, 02 七月 2025 15:12:43 +0800 Subject: [PATCH] #优化库位检索 --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 169 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 140 insertions(+), 29 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 14bd5ef..3d64d92 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -8,10 +8,7 @@ import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; -import com.zy.asrs.entity.param.EmptyPlateOutParam; -import com.zy.asrs.entity.param.FullStoreParam; -import com.zy.asrs.entity.param.LocDetlAdjustParam; -import com.zy.asrs.entity.param.StockOutParam; +import com.zy.asrs.entity.param.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.Utils; import com.zy.common.model.*; @@ -210,10 +207,6 @@ 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); @@ -289,9 +282,8 @@ // 鑾峰彇搴撲綅 LocMast locMast = locMastService.selectById(taskDto.getLocNo()); // 鑾峰彇璺緞 -// int ioType = taskDto.isAll() ? 101 : 103; - //浠呴�傜敤浜庨�熻吘椤圭洰锛屾病鏈夋崱鏂� - int ioType = 101; + int ioType = taskDto.isAll() ? 101 : 103; + StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo()); // 鐢熸垚宸ヤ綔鍙� int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); @@ -382,7 +374,7 @@ wrkMast.setSourceStaNo(dto.getSourceStaNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setLocNo(dto.getLocNo()); - wrkMast.setFullPlt("N"); // 婊℃澘 + wrkMast.setFullPlt(sourceStaNo.getFronting()); // 婊℃澘 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� wrkMast.setEmptyMk("Y"); // 绌烘澘 @@ -426,8 +418,15 @@ throw new CoolException("绔欑偣涓嶅瓨鍦�"); } for (String locNo : param.getLocNos()) { - // 鑾峰彇宸ヤ綔鍙� - int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); + int workNo=9992; +// if(param.getOutSite()==114||param.getOutSite()==103){ +// // 鑾峰彇宸ヤ綔鍙� +// workNo = commonService.getWorkNo(WorkNoType.OTHER.type); +// }else { +// // 鑾峰彇宸ヤ綔鍙� +// workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); +// } + // 鑾峰彇搴撲綅 LocMast locMast = locMastService.selectById(locNo); if (Cools.isEmpty(locMast)) { @@ -455,7 +454,7 @@ wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔� wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 婧愬簱浣� - wrkMast.setFullPlt("N"); // 婊℃澘锛歒 + wrkMast.setFullPlt(locMast.getFullPlt()); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� wrkMast.setEmptyMk("Y"); // 绌烘澘 @@ -517,7 +516,7 @@ wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔� wrkMast.setCrnNo(locMast.getCrnNo()); wrkMast.setSourceLocNo(locNo); // 婧愬簱浣� - wrkMast.setFullPlt("N"); // 婊℃澘锛歒 + wrkMast.setFullPlt(locMast.getFullPlt()); // 婊℃澘锛歒 wrkMast.setPicking("N"); // 鎷f枡 wrkMast.setExitMk("N"); // 閫�鍑� wrkMast.setEmptyMk("Y"); // 绌烘澘 @@ -648,6 +647,87 @@ @Override @Transactional + public void locCombOut(ReplenishmentParam param, Long userId) { + // 鍙傛暟闈炵┖鍒ゆ柇 + if (Cools.isEmpty(param.getDevpNo(), param.getList())) { + throw new CoolException(BaseRes.PARAM); + } + //鍒ゆ柇搴撲綅鍙枫�佸簱浣嶇姸鎬� + LocMast locMast; + if (Cools.isEmpty(param.getLocNo())){ + throw new CoolException("骞舵澘鍑哄簱搴撲綅鍙傛暟閿欒"); + }else { + locMast = locMastService.selectById(param.getLocNo()); + if(!Cools.isEmpty(locMast)){ + if (!locMast.getLocSts().equals("F")){ + throw new CoolException("骞舵澘搴撲綅闈炲湪搴撶姸鎬�"); + } + }else{ + throw new CoolException("搴撳瓨涓簱浣嶅彿涓嶅瓨鍦�"); + } + } + // 婧愮珯鐐圭姸鎬佹娴� +// BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true); + // 鐢熸垚宸ヤ綔鍙� + int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE); + // 鑾峰彇璺緞 + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", 104) + .eq("stn_no", param.getDevpNo()) + .eq("crn_no", locMast.getCrnNo()); + StaDesc staDesc = staDescService.selectOne(wrapper); + if (Cools.isEmpty(staDesc)) { + throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�"); + } + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(new Date()); + wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID + wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱 + wrkMast.setIoPri(13D); // 浼樺厛绾э細10 + wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setSourceStaNo(staDesc.getCrnStn()); + wrkMast.setStaNo(param.getDevpNo()); + wrkMast.setSourceLocNo(param.getLocNo()); + wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setCtnType(locMast.getCtnType()); // 瀹瑰櫒绫诲瀷 + // 鎿嶄綔浜哄憳鏁版嵁 + wrkMast.setAppeUser(userId); + wrkMast.setAppeTime(new Date()); + wrkMast.setModiUser(userId); + wrkMast.setModiTime(new Date()); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鐢熸垚宸ヤ綔妗f槑缁� + List<MatCodeCountDto> matDtos = new ArrayList<>(); + param.getList().forEach(elem -> { + matDtos.add(new MatCodeCountDto(elem.getMatnr(), elem.getBatch(), elem.getCount())); + }); + wrkDetlService.createWorkDetail2(workNo, matDtos, locMast.getBarcode(), userId); + // 鏇存柊搴撲綅鐘舵�� +// LocMast locMast = locMastService.selectById(dto.getLocNo()); + if (locMast.getLocSts().equals("F")){ + locMast.setLocSts("P"); // P.骞舵澘鍑哄簱棰勭害 + locMast.setModiUser(userId); + locMast.setModiTime(new Date()); + if (!locMastService.updateById(locMast)){ + throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�"); + } + } else { + throw new CoolException(locMast.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤"); + } + } + + @Override + @Transactional public void completeWrkMast(String workNo, Long userId) { WrkMast wrkMast = wrkMastService.selectById(workNo); if (Cools.isEmpty(wrkMast)){ @@ -689,6 +769,13 @@ Date now = new Date(); List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo())); + + String zpallet = ""; + for (LocDetl locDetl : locDetls) { + if (!Cools.isEmpty(locDetl.getZpallet())) { + zpallet = locDetl.getZpallet(); + } + } List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList(); @@ -753,6 +840,7 @@ Mat mat = matService.selectByMatnr(adjust.getMatnr()); LocDetl locDetl = new LocDetl(); locDetl.sync(mat); + locDetl.setZpallet(zpallet); locDetl.setBatch(adjust.getBatch()); locDetl.setLocNo(locMast.getLocNo()); locDetl.setAnfme(adjust.getCount()); // 鏁伴噺 @@ -895,19 +983,42 @@ } } + }else { + // 璁㈠崟鍏宠仈 + 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); + //淇敼璁㈠崟涓昏〃鐘舵��,娌℃湁浣滀笟鏁伴噺鏃舵墠鍙互淇敼 + boolean flag = true; + List<OrderDetl> orderDetls = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no",wrkDetl.getOrderNo())); + for(OrderDetl orderDetl : orderDetls){ + if(orderDetl.getWorkQty() > 0){ + flag = false; + } + } + if(flag){ + Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo())); + if(!Cools.isEmpty(order) && order.getSettle()==2){ + order.setSettle(1L); + order.setUpdateBy(userId); + order.setUpdateTime(now); + } + if(!orderService.update(order,new EntityWrapper<Order>().eq("order_no",wrkDetl.getOrderNo()))){ + throw new CoolException("淇敼璁㈠崟鐘舵�佸け璐�"); + } + } + } + + } + } -// // 璁㈠崟鍏宠仈 -// 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("鎵嬪姩鍙栨秷"); @@ -971,7 +1082,7 @@ } // 鑾峰彇鐩爣绔� Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() - .eq("type_no", wrkMast.getIoType() - 50) + .eq("type_no", wrkMast.getIoType()) .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 StaDesc staDesc = staDescService.selectOne(wrapper); @@ -984,7 +1095,7 @@ // 鏇存柊宸ヤ綔妗f暟鎹姸鎬� wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57 wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋 - wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯 + wrkMast.setSourceStaNo(staDesc.getStnNo()); // 婧愮珯 wrkMast.setStaNo(staNo); // 鐩爣绔� wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣� wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌� -- Gitblit v1.9.1