From eeb96ed3c9830f996dc85cc9d4a8113aba91692b Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期一, 30 六月 2025 12:41:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/devlop' into devlop --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 55 +++++++++++-------------------------------------------- 1 files changed, 11 insertions(+), 44 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java index 7068b65..d8f9ad0 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java @@ -15,6 +15,7 @@ import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.mapper.AsnOrderMapper; import com.vincent.rsf.server.manager.service.*; +import com.vincent.rsf.server.manager.utils.LocManageUtil; import com.vincent.rsf.server.manager.utils.OptimalAlgorithmUtil; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.system.utils.SerialRuleUtils; @@ -192,6 +193,8 @@ .setId(null) .setUpdateBy(loginUserId) .setCreateBy(loginUserId) + .setCreateTime(new Date()) + .setUpdateTime(new Date()) .setPoCode(delivery.getCode()); if (!this.save(order)) { throw new CoolException("涓诲崟淇濆瓨澶辫触锛侊紒"); @@ -275,7 +278,9 @@ if (Objects.isNull(params.getIds()) || params.getIds().isEmpty()) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - List<AsnOrder> orders = this.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, params.getIds())); + List<AsnOrder> orders = this.list(new LambdaQueryWrapper<AsnOrder>() + .eq(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) + .in(AsnOrder::getId, params.getIds())); if (orders.isEmpty()) { throw new CoolException("褰撳墠鍗曟嵁鐘舵�佷笉鑳芥墽琛屾尝娆$敓鎴愭搷浣滐紒锛�"); } @@ -413,7 +418,8 @@ if (Cools.isEmpty(param.getOrderId())) { throw new CoolException("鍗曟嵁ID涓虹┖"); } - WaveRule waveRule = waveRuleService.getOne(new LambdaQueryWrapper<WaveRule>().eq(WaveRule::getId, param.getWaveId())); + WaveRule waveRule = waveRuleService.getOne(new LambdaQueryWrapper<WaveRule>() + .eq(WaveRule::getId, param.getWaveId())); if (Cools.isEmpty(waveRule)) { throw new CoolException("鏈壘鍒板綋鍓嶇瓥鐣�"); } @@ -567,50 +573,11 @@ } - private List<LocItem> getEfficiencyFirstItemList(AsnOrderItem asnOrderItem) { - LambdaQueryWrapper<LocItem> locItemQueryWrapper = new LambdaQueryWrapper<>(); - locItemQueryWrapper.eq(LocItem::getMatnrCode, asnOrderItem.getMatnrCode()); - locItemQueryWrapper.eq(LocItem::getBatch, asnOrderItem.getSplrBatch()); - String applySql = String.format( - "EXISTS (SELECT 1 FROM man_loc ml " + - "WHERE ml.use_status = '%s'" + - "AND ml.id = man_loc_item.loc_id " + - ")", - LocStsType.LOC_STS_TYPE_F.type - ); - locItemQueryWrapper.apply(applySql); - List<LocItem> locItems = locItemService.list(locItemQueryWrapper); - locItems.sort(Comparator.comparing((LocItem item) -> !LocUtils.isShallowLoc(item.getLocCode()))); - List<LocItem> locsSet = locItems.stream().filter(locItem -> locItem.getAnfme().compareTo(asnOrderItem.getAnfme()) == 0.0).collect(Collectors.toList()); - if (!locsSet.isEmpty()) { - return locsSet; - } - return locItems; - } - - private List<LocItem> getFirstInFirstOutItemList(AsnOrderItem asnOrderItem) { - LambdaQueryWrapper<LocItem> locItemQueryWrapper = new LambdaQueryWrapper<>(); - locItemQueryWrapper.eq(LocItem::getMatnrCode, asnOrderItem.getMatnrCode()); - locItemQueryWrapper.eq(LocItem::getBatch, asnOrderItem.getSplrBatch()); - locItemQueryWrapper.orderByAsc(LocItem::getCreateTime); - String applySql = String.format( - "EXISTS (SELECT 1 FROM man_loc ml " + - "WHERE ml.use_status = '%s'" + - "AND ml.id = man_loc_item.loc_id " + - ")", - LocStsType.LOC_STS_TYPE_F.type - ); - locItemQueryWrapper.apply(applySql); - List<LocItem> locItems = locItemService.list(locItemQueryWrapper); - return locItems; - } - private List<OrderOutItemDto> getOutOrderList(Long orderId, WaveRule waveRule) { List<AsnOrderItem> asnOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>() .eq(AsnOrderItem::getAsnId, orderId)); List<OrderOutItemDto> list = new ArrayList<>(); Set<ExistDto> existDtos = new HashSet<>(); - for (AsnOrderItem asnOrderItem : asnOrderItems) { BigDecimal issued = new BigDecimal(asnOrderItem.getAnfme().toString()) .subtract(new BigDecimal(asnOrderItem.getWorkQty().toString()) @@ -620,11 +587,11 @@ } List<LocItem> locItems = new ArrayList<>(); if (WaveRuleType.Efficiency_First.type.equals(waveRule.getType())) { - locItems = getEfficiencyFirstItemList(asnOrderItem); + locItems = LocManageUtil.getEfficiencyFirstItemList(asnOrderItem.getMatnrCode(), asnOrderItem.getSplrBatch(), asnOrderItem.getAnfme()); } else if (WaveRuleType.First_In_First_Out.type.equals(waveRule.getType())) { - locItems = getFirstInFirstOutItemList(asnOrderItem); + locItems = LocManageUtil.getFirstInFirstOutItemList(asnOrderItem.getMatnrCode(), asnOrderItem.getSplrBatch(), asnOrderItem.getAnfme()); } else { - locItems = getFirstInFirstOutItemList(asnOrderItem); + locItems = LocManageUtil.getFirstInFirstOutItemList(asnOrderItem.getMatnrCode(), asnOrderItem.getSplrBatch(), asnOrderItem.getAnfme()); } for (LocItem locItem : locItems) { Loc loc = locService.getById(locItem.getLocId()); -- Gitblit v1.9.1