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 | 40 +++++++++++++++++++++++-----------------
1 files changed, 23 insertions(+), 17 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 afe0c81..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::getCode, param.getWaveId()));
- if (Cools.isEmpty(waveRule)){
+ WaveRule waveRule = waveRuleService.getOne(new LambdaQueryWrapper<WaveRule>().eq(WaveRule::getId, param.getWaveId()));
+ 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