From 2a125d08bd4437dbf0e93f2d25ea196715ce82a4 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 09 六月 2025 14:21:38 +0800 Subject: [PATCH] 下发执行功能优化 添加站点默认值 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 38 ++++++++++++++++++++++---------------- 1 files changed, 22 insertions(+), 16 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 7a00800..1194ff4 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 @@ -29,6 +29,8 @@ import java.util.*; import java.util.stream.Collectors; +import com.vincent.rsf.server.manager.enums.WaveRuleType; + /** * @author Ryan * @description @@ -367,6 +369,7 @@ } return R.ok(); } + /** * @param * @return @@ -399,29 +402,29 @@ @Override public R getOrderOutTaskItem(OrderOutTaskParam param) { - if (Cools.isEmpty(param.getWaveId())){ + if (Cools.isEmpty(param.getWaveId())) { throw new CoolException("绛栫暐鍙傛暟涓虹┖"); } - if (Cools.isEmpty(param.getOrderId())){ + if (Cools.isEmpty(param.getOrderId())) { throw new CoolException("鍗曟嵁id涓虹┖"); } WaveRule waveRule = waveRuleService.getOne(new LambdaQueryWrapper<WaveRule>().eq(WaveRule::getId, param.getWaveId())); - if (Cools.isEmpty(waveRule)){ + if (Cools.isEmpty(waveRule)) { throw new CoolException("鏈壘鍒板綋鍓嶇瓥鐣�"); } List<OrderOutItemDto> locItems = null; - switch (waveRule.getType()) { - case 1: - locItems = efficiencyFirst(param.getOrderId()); - break; + if (WaveRuleType.Efficiency_First.type.equals(waveRule.getType())) { + locItems = efficiencyFirst(param.getOrderId()); + } else if (WaveRuleType.First_In_First_Out.type.equals(waveRule.getType())) { + } return R.ok(locItems); } - private List<LocItem> getEfficiencyFirstItemList(AsnOrderItem asnOrderItem){ + private List<LocItem> getEfficiencyFirstItemList(AsnOrderItem asnOrderItem) { QueryWrapper<LocItem> locItemQueryWrapper = new QueryWrapper<>(); locItemQueryWrapper.eq("matnr_code", asnOrderItem.getMatnrCode()); - locItemQueryWrapper.eq("batch", asnOrderItem.getBatch()); + locItemQueryWrapper.eq("batch", asnOrderItem.getSplrBatch()); String applySql = String.format( "EXISTS (SELECT 1 FROM man_loc ml " + "WHERE ml.use_status = '%s'" + @@ -431,13 +434,11 @@ ); locItemQueryWrapper.apply(applySql); List<LocItem> locItems = locItemService.list(locItemQueryWrapper); - locItems.sort((s1,s2)->{ - return LocUtils.isShallowLoc(s1.getLocCode())?1:0; - }); + locItems.sort((s1, s2) -> LocUtils.isShallowLoc(s1.getLocCode()) ? -1 : 0); return locItems; } - private List<OrderOutItemDto> efficiencyFirst(Long orderId){ + private List<OrderOutItemDto> efficiencyFirst(Long orderId) { List<AsnOrderItem> asnOrderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>() .eq(AsnOrderItem::getAsnId, orderId) ); @@ -459,15 +460,20 @@ for (LocItem locItem : locItems) { Loc loc = locService.getById(locItem.getLocId()); List<LocItem> itemList = locItemService.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocCode, locItem.getLocCode())); - if (issued.doubleValue() > 0){ + if (issued.doubleValue() > 0) { ExistDto existDto = new ExistDto().setBatch(locItem.getBatch()).setMatnr(locItem.getMatnrCode()).setLocNo(locItem.getLocCode()); - if (existDtos.add(existDto)){ + if (existDtos.add(existDto)) { + locItem.setWorkQty(issued.doubleValue() >= locItem.getAnfme() ? locItem.getAnfme() : issued.doubleValue()); OrderOutItemDto orderOutItemDto = new OrderOutItemDto(); - orderOutItemDto.sync(locItem); + orderOutItemDto.setLocItem(locItem); List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>() .eq(DeviceSite::getChannel, loc.getChannel()) .eq(DeviceSite::getType, issued.doubleValue() >= locItem.getAnfme() && itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type) ); + if (!deviceSites.isEmpty()) { + DeviceSite deviceSite = deviceSites.stream().findFirst().get(); + orderOutItemDto.setSiteNo(deviceSite.getSite()); + } List<OrderOutItemDto.staListDto> maps = new ArrayList<>(); for (DeviceSite sta : deviceSites) { OrderOutItemDto.staListDto staListDto = new OrderOutItemDto.staListDto(); -- Gitblit v1.9.1