From 4ad1f324ab1fd2b51504afc00b43b4ee40f029c2 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 20 二月 2025 09:40:03 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 160 +++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 147 insertions(+), 13 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 ab7d545..ed93308 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -13,6 +13,7 @@ import com.zy.asrs.entity.param.LocDetlAdjustParam; import com.zy.asrs.entity.param.StockOutParam; import com.zy.asrs.service.*; +import com.zy.asrs.utils.OutboundAllocationUtil; import com.zy.asrs.utils.Utils; import com.zy.common.model.*; import com.zy.common.model.enums.IoWorkType; @@ -79,6 +80,10 @@ private SlaveProperties slaveProperties; @Autowired private WaitPakinService waitPakinService; + @Autowired + private OrderGiftService orderGiftService; + @Autowired + private OrderDetlGiftService orderDetlGiftService; @Override @Transactional @@ -93,7 +98,7 @@ // 妫�绱㈠簱浣� LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); // 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(), null, locTypeDto, 0); + StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), param.getList().get(0).getMatnr(),null,null, locTypeDto); // 鐢熸垚宸ヤ綔鍙� int workNo = dto.getWorkNo(); // 鐢熸垚宸ヤ綔妗� @@ -166,7 +171,9 @@ for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); - if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); + one.setMemo(paramLocDetl.getMemo()); + one.setColor(paramLocDetl.getColor()); + if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo())); } } if (!locDetlDtos.isEmpty()) { @@ -184,14 +191,119 @@ @Override @Transactional public void startupFullTakeStoreOrder(StockOutParam param, Long userId) { - if (Cools.isEmpty(param) || Cools.isEmpty(param.getOrderNo()) || Cools.isEmpty(param.getLocDetls())){ + if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){ throw new CoolException("鍙傛暟涓虹┖"); + } + if (Cools.isEmpty(param.getOrderNo())){ + throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�"); } DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE); Order order = orderService.selectByNo(param.getOrderNo()); if (Cools.isEmpty(order)){ Date now = new Date(); order = new Order( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + param.getOrderNo(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + docType.getDocId(), // 鍗曟嵁绫诲瀷 + null, // 椤圭洰缂栧彿 + null, // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + param.getCstmrName(), // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + null, // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 +// 2L, // 璁㈠崟鐘舵�� + 1L, // 璁㈠崟鐘舵�� + 1, // 鐘舵�� + userId, // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + userId, // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null // 澶囨敞 + ); + if (!orderService.insert(order)) { + throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触"); + } + // 鍗曟嵁鏄庣粏妗� + List<DetlDto> list = new ArrayList<>(); + List<StockOutParam.LocDetl> locDetls = param.getLocDetls(); + int i=0; + for (StockOutParam.LocDetl locDetl : locDetls) { + i++; + Mat mat = matService.selectByMatnr(locDetl.getMatnr()); + if (Cools.isEmpty(mat)) { + throw new CoolException(locDetl.getMatnr() + "鐗╂枡缂栫爜妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); + } + OrderDetl orderDetl = new OrderDetl(); + orderDetl.sync(mat); + orderDetl.setSuppCode(String.valueOf(i)); // 琛屽彿 + orderDetl.setManu(locDetl.getLocNo()); //搴撲綅鍙� + orderDetl.setBatch(locDetl.getBatch()); //鏈ㄧ缂栫爜 + orderDetl.setAnfme(locDetl.getAnfme());//鍑哄簱鏁伴噺 + orderDetl.setModel(locDetl.getModel());//鎵规 + orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸 + orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷 + orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷 + orderDetl.setWeight(locDetl.getWeight()); +// orderDetl.setWorkQty(locDetl.getAnfme()); + orderDetl.setWorkQty(0.0); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setOrigin(locDetl.getOrigin()); + orderDetl.setCreateBy(userId); + orderDetl.setCreateTime(now); + orderDetl.setUpdateBy(userId); + orderDetl.setUpdateTime(now); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); + orderDetl.setMemo(locDetl.getMemo()); + if (!orderDetlService.insert(orderDetl)) { + throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); + } + } + +// List<StockOutParam> stockOutParams = OutboundAllocationUtil.OutboundClassification(param); +// for (StockOutParam stockOutParam : stockOutParams){ +// startupFullTakeStore(stockOutParam,userId); +// } + + } else { + throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒"); + } + + } + + @Override + @Transactional + public void startupFullTakeStoreOrderGift(StockOutParam param, Long userId) { + if (Cools.isEmpty(param) || Cools.isEmpty(param.getLocDetls())){ + throw new CoolException("鍙傛暟涓虹┖"); + } + if (Cools.isEmpty(param.getOrderNo())){ + throw new CoolException("璁㈠崟鍙峰弬鏁颁负绌�"); + } + DocType docType = docTypeService.selectOrAdd("鎵嬪姩鍑哄簱鍗�", Boolean.FALSE); + OrderGift order = orderGiftService.selectByNo(param.getOrderNo()); + if (Cools.isEmpty(order)){ + Date now = new Date(); + order = new OrderGift( String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] param.getOrderNo(), // 璁㈠崟缂栧彿 DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 @@ -219,6 +331,7 @@ null, // 鍙戣揣鏃堕棿 null, // 鐗╂祦鍚嶇О null, // 鐗╂祦鍗曞彿 +// 2L, // 璁㈠崟鐘舵�� 1L, // 璁㈠崟鐘舵�� 1, // 鐘舵�� userId, // 娣诲姞浜哄憳 @@ -227,7 +340,7 @@ now, // 淇敼鏃堕棿 null // 澶囨敞 ); - if (!orderService.insert(order)) { + if (!orderGiftService.insert(order)) { throw new CoolException("淇濆瓨璁㈠崟涓绘。澶辫触"); } // 鍗曟嵁鏄庣粏妗� @@ -240,27 +353,36 @@ if (Cools.isEmpty(mat)) { throw new CoolException(locDetl.getMatnr() + "鐗╂枡缂栫爜妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); } - OrderDetl orderDetl = new OrderDetl(); + OrderDetlGift orderDetl = new OrderDetlGift(); orderDetl.sync(mat); orderDetl.setSuppCode(String.valueOf(i)); // 琛屽彿 orderDetl.setManu(locDetl.getLocNo()); //搴撲綅鍙� orderDetl.setBatch(locDetl.getBatch()); //鏈ㄧ缂栫爜 - orderDetl.setAnfme(locDetl.getCount());//鍑哄簱鏁伴噺 + orderDetl.setAnfme(locDetl.getAnfme());//鍑哄簱鏁伴噺 orderDetl.setModel(locDetl.getModel());//鎵规 orderDetl.setSpecs(locDetl.getSpecs());//瑙勬牸 orderDetl.setBrand(locDetl.getBrand());//鏈ㄧ绫诲瀷 + orderDetl.setBarcode(locDetl.getZpallet());//鏈ㄧ绫诲瀷 + orderDetl.setWeight(locDetl.getWeight()); + orderDetl.setVolume(locDetl.getVolume()); + orderDetl.setPrice(locDetl.getPrice()); +// orderDetl.setWorkQty(locDetl.getAnfme()); + orderDetl.setWorkQty(0.0); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setOrigin(locDetl.getOrigin()); orderDetl.setCreateBy(userId); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(userId); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); - if (!orderDetlService.insert(orderDetl)) { + orderDetl.setMemo(locDetl.getMemo()); + if (!orderDetlGiftService.insert(orderDetl)) { throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); } } + } else { throw new CoolException("璁㈠崟鍙烽噸澶嶏紝璁㈠崟"+param.getOrderNo()+"宸插瓨鍦紒锛侊紒"); } @@ -328,6 +450,10 @@ wrkMast.setExitMk("N"); // 閫�鍑� wrkMast.setEmptyMk("N"); // 绌烘澘 wrkMast.setLinkMis("N"); + wrkMast.setSheetNo("0"); + if (staDesc.getStnNo()<118 || staDesc.getStnNo()>121){ + wrkMast.setSheetNo("3"); + } wrkMast.setBarcode(locMast.getBarcode()); wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁 wrkMast.setAppeTime(now); @@ -341,7 +467,7 @@ if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;} WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(detlDto.getLocDetl()); - wrkDetl.setOrderNo(""); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙� + wrkDetl.setOrderNo(detlDto.getOrderNo()); // 鎵嬪姩鍑哄簱涓嶉渶瑕佸甫鍑哄簱瀛樹腑鐨勫崟鎹紪鍙� wrkDetl.setWrkNo(workNo); wrkDetl.setIoTime(now); Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount(); @@ -459,7 +585,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(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto); int workNo = dto.getWorkNo(); Date now = new Date(); // 鐢熸垚宸ヤ綔妗� @@ -648,11 +774,12 @@ for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) { if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) { LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch()); - if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount())); + if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(),param.getOrderNo())); } } if (!locDetlDtos.isEmpty()) { LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo())); + if (locMast.getLocSts().equals("F")){ // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱 stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId); @@ -762,14 +889,17 @@ if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) { wrkMast.setWrkSts(4L); // 鍑哄簱 - } else if (wrkMast.getWrkSts() > 10) { + } else if (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()!=202) { wrkMast.setWrkSts(14L); + }else if (wrkMast.getIoType()==202){ + wrkMast.setWrkSts(57L); } Date now = new Date(); wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true)); wrkMast.setCrnEndTime(now); wrkMast.setModiTime(now); wrkMast.setModiUser(userId); + wrkMast.setSheetNo("3"); // 瀹屾垚鎿嶄綔浜哄憳璁板綍 wrkMast.setManuType("鎵嬪姩瀹屾垚"); if (!wrkMastService.updateById(wrkMast)) { @@ -926,7 +1056,7 @@ locMastService.updateById(locMast); } // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛� - } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) { + } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=202) { locNo = wrkMast.getSourceLocNo(); // 鍑哄簱 ===>> F.鍦ㄥ簱 if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) { @@ -947,6 +1077,7 @@ locMast.setModiUser(userId); locMastService.updateById(locMast); } + } else if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){ } else { throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�"); } @@ -1033,6 +1164,9 @@ } // 鍒犻櫎宸ヤ綔妗f槑缁� boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo)); + } + if (wrkMast.getIoType()==202 || wrkMast.getIoType()==212){ + return; } // 淇敼搴撲綅鐘舵�� @@ -1220,7 +1354,7 @@ } List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr())); if (Cools.isEmpty(locDetls) || locDetls.size()<1){ - throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 鍝佸彿锛�"+param.getLocDetls().get(0).getMatnr()); + throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛� 瑙勬牸锛�"+param.getLocDetls().get(0).getMatnr()); } try { locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr()); -- Gitblit v1.9.1