From 2f63acadcd111fe47b2feedf13adb9cffcd64b2c Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期五, 25 十月 2024 13:28:50 +0800 Subject: [PATCH] mes调用立即出库修改 --- src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 143 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 114 insertions(+), 29 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 c04b55a..be5810c 100644 --- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java @@ -12,9 +12,10 @@ import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.mapper.TagMapper; import com.zy.asrs.service.*; +import com.zy.asrs.utils.MatCompareUtils; import com.zy.asrs.utils.MatUtils; -import com.zy.common.model.LocDto; -import com.zy.common.model.TaskDto; +import com.zy.common.model.enums.WorkNoType; +import com.zy.common.service.CommonService; import com.zy.common.utils.NodeUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -22,9 +23,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * Created by vincent on 2022/4/9 @@ -63,6 +64,18 @@ @Resource private BasDevpService basDevpService; + + @Resource + private LocMastService locMastService; + + @Resource + private StaDescService staDescService; + + @Resource + private CommonService commonService; + + @Resource + private WrkMastService wrkMastService; @Override @@ -163,42 +176,114 @@ @Override @Transactional - public R outbound(List<LocDto> locDtos,String endLocation) throws InterruptedException { - if (Cools.isEmpty(locDtos)) { - return R.parse(BaseRes.PARAM); + public R outbound(OutBoundParam param) { + + // 鎵樼洏鐮� + String barcode = param.getBarcode(); + + // 鍗曟嵁缂栧彿 + String orderNo = param.getOrderNo(); + + // 鏍规嵁鎵樼洏鐮佹煡璇㈠簱瀛樻槑缁� + List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("zpallet", barcode)); + List<String> locNos = locDetls.stream().map(LocDetl::getLocNo).distinct().collect(Collectors.toList()); + if (locDetls.size() == 0) { + return R.parse("璇ユ墭鐩樼爜涓嶅瓨鍦ㄥ簱瀛橈細" + barcode); + } else if (locNos.size() > 1) { + return R.parse("璇ユ墭鐩樼爜鏈夊涓簱浣嶏細" + barcode); } - boolean lack = true; - for (LocDto locDto : locDtos) { - if (!locDto.isLack()) { - lack = false; + + // 搴撲綅鍙� + String locNo = locNos.get(0); + + // 鍑哄簱绔欑偣 + Integer outSite = null; + List<BasDevp> devps = basDevpService.selectList(new EntityWrapper<BasDevp>().in("dev_no", 223, 123)); + for (BasDevp basDevp : devps) { + // 鏃犲伐浣滃彿锛屾棤鐗� + if (basDevp.getWrkNo() == 0 && basDevp.getLoading().equals("N")) { + outSite = basDevp.getDevNo(); break; } } - if (lack) { - return R.error("搴撳瓨涓嶈冻"); + if (outSite == null) { + outSite = 123; } - Thread.sleep(1000L); + Date now = new Date(); - List<TaskDto> taskDtos = new ArrayList<>(); - // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔� - for (LocDto locDto : locDtos) { - if (locDto.isLack()) { - continue; + // 鑾峰彇鍗曟嵁 + Order order = orderService.selectByNo(orderNo); + // 鑾峰彇鍗曟嵁鏄庣粏 + List<OrderDetl> orderDetlList = orderDetlService.selectByOrderId(order.getId()); + + // 瀵规瘮搴撳瓨鏄庣粏鍜屽嚭搴撳崟鎹槑缁嗘槸鍚︿竴鑷� + boolean flag = MatCompareUtils.compareAndCheckCancellation(locDetls, orderDetlList); + if (!flag) { + return R.parse("搴撳瓨鏄庣粏鍜屽崟鎹槑缁嗕笉涓�鑷达紝璇锋鏌ワ紝鍗曟嵁缂栧彿锛�" + orderNo); + } + + // 鑾峰彇搴撲綅 + LocMast locMast = locMastService.selectById(locNo); + // 鑾峰彇璺緞 + int ioType = 101; + StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), outSite); + // 鐢熸垚宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType)); + // 鐢熸垚宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setInvWh(param.getEndLocation()); // 鍦扮爜 + 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(locNo); // 婧愬簱浣� + wrkMast.setFullPlt("Y"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("N"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setBarcode(barcode); + wrkMast.setAppeTime(now); + wrkMast.setModiTime(now); + if (!wrkMastService.insert(wrkMast)) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + locNo); + } + + // 鐢熸垚宸ヤ綔妗f槑缁� + for (OrderDetl orderDetl : orderDetlList) { + + WrkDetl wrkDetl = new WrkDetl(); + wrkDetl.setWrkNo(workNo); + wrkDetl.sync(orderDetl); + wrkDetl.setZpallet(wrkMast.getBarcode()); + wrkDetl.setIoTime(now); + wrkDetl.setOrderNo(orderNo); + wrkDetl.setAppeTime(now); + wrkDetl.setModiTime(now); + if (!wrkDetlService.insert(wrkDetl)) { + throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�"); } - TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto); - if (TaskDto.has(taskDtos, taskDto)) { - TaskDto dto = TaskDto.find(taskDtos, taskDto); - assert dto != null; - dto.getLocDtos().addAll(taskDto.getLocDtos()); - } else { - taskDtos.add(taskDto); + // 淇敼璁㈠崟鏄庣粏 + if (!orderDetlService.increaseWorkQty(orderDetl, orderDetl.getAnfme())) { + throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触"); } } - // ----------------------------------------------------------------------------------------------- - for (TaskDto taskDto : taskDtos) { - BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo()); - workService.stockOut(staNo, taskDto, null, endLocation); + // 淇敼璁㈠崟鐘舵�� + orderService.updateSettle(order.getId(), 2L, null); + // 淇敼搴撲綅鐘舵��: F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓� + if (locMast.getLocSts().equals("F")) { + locMast.setLocSts("R"); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locNo); + } + } else { + throw new CoolException(locNo + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��"); } return R.ok("鍑哄簱鎴愬姛"); } -- Gitblit v1.9.1