From f2833c7f3e01c997e94a66bd5dd9be738b5c6cc7 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 26 六月 2025 13:31:08 +0800 Subject: [PATCH] 波次任务下发功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 51 ++++++--------------------------------------------- 1 files changed, 6 insertions(+), 45 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 2ee4ce6..4797899 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; @@ -296,8 +297,6 @@ throw new CoolException("娉㈡淇濆瓨澶辫触锛侊紒"); } - - List<Long> list = orders.stream().map(AsnOrder::getId).collect(Collectors.toList()); List<AsnOrderItem> orderItems = asnOrderItemService .list(new LambdaQueryWrapper<AsnOrderItem>() @@ -415,7 +414,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("鏈壘鍒板綋鍓嶇瓥鐣�"); } @@ -569,50 +569,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()) @@ -622,11 +583,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