From 6c3cc6842009f3897c3fb18bef8a6634fe653818 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 04 三月 2026 19:59:11 +0800
Subject: [PATCH] lsh#
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 102 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 67 insertions(+), 35 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 04d3d0e..e55acf5 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
@@ -6,6 +6,7 @@
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.api.controller.erp.params.SyncOrderParams;
import com.vincent.rsf.server.api.utils.LocUtils;
import com.vincent.rsf.server.common.constant.Constants;
import com.vincent.rsf.server.manager.controller.dto.ExistDto;
@@ -382,11 +383,12 @@
throw new CoolException("涓氬姟绫诲瀷涓嶈兘涓虹┖锛侊紒");
}
- String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, orders);
- if (StringUtils.isBlank(ruleCode)) {
- throw new CoolException("缂栫爜瑙勫垯閿欒锛氳妫�鏌ャ�孲YS_OUT_STOCK_CODE銆嶆槸鍚﹁缃纭紒锛�");
- }
- orders.setCode(ruleCode)
+// String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, orders);
+// if (StringUtils.isBlank(ruleCode)) {
+// throw new CoolException("缂栫爜瑙勫垯閿欒锛氳妫�鏌ャ�孲YS_OUT_STOCK_CODE銆嶆槸鍚﹁缃纭紒锛�");
+// }
+ orders.setCode(orders.getPoCode())
+ .setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_UP.type)
.setType(OrderType.ORDER_OUT.type)
.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
.setUpdateBy(loginUserId)
@@ -513,7 +515,7 @@
throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
//浼樺厛鐢熸垚娴呭簱浣嶄换鍔�
- List<OutStockToTaskParams> Items = params.stream()
+ List<OutStockToTaskParams> itemList = params.stream()
.sorted(Comparator.comparing(OutStockToTaskParams::getLocCode)
.thenComparing(item -> {
return LocUtils.isShallowLoc(item.getLocCode()) ? 1 : 0;
@@ -523,32 +525,67 @@
if (Cools.isEmpty(wkOrder)) {
throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
}
-
- for (OutStockToTaskParams param : Items) {
+ List<List<OutStockToTaskParams>> itemLists = new ArrayList<>();
+ List<String> locList = new ArrayList<>();
+ for (OutStockToTaskParams item : itemList) {
+ if (!locList.contains(item.getLocCode())) {
+ List<OutStockToTaskParams> items = new ArrayList<>();
+ locList.add(item.getLocCode());
+ items.add(item);
+ itemLists.add(items);
+ } else {
+ for (List<OutStockToTaskParams> items : itemLists){
+ boolean sign = false;
+ for (OutStockToTaskParams itemOld : items) {
+ if (itemOld.getLocCode().equals(item.getLocCode())) {
+ sign = true;
+ items.add(item);
+ }
+ break;
+ }
+ if (sign) {
+ break;
+ }
+ }
+ }
+ }
+ for (List<OutStockToTaskParams> items : itemLists){
+ OutStockToTaskParams param = items.get(0);
if (Objects.isNull(param) || StringUtils.isBlank(param.getLocCode())) {
continue;
}
Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, param.getLocCode()).eq(Loc::getBarcode, param.getBarcode()));
if (!Objects.isNull(loc)) {
List<LocItem> locItems = new ArrayList<>();
- LocItem locItem = locItemService.getById(param.getId());
+ for (OutStockToTaskParams itemOld : items) {
+ LocItem locItem = locItemService.getById(itemOld.getId());
- WkOrderItem orderItem = outStockItemService.getOne(new LambdaQueryWrapper<WkOrderItem>()
- .eq(WkOrderItem::getOrderId, outId)
+ WkOrderItem orderItem = outStockItemService.getOne(new LambdaQueryWrapper<WkOrderItem>()
+ .eq(WkOrderItem::getOrderId, outId)
// .eq(StringUtils.isNotBlank(locItem.getBatch()), WkOrderItem::getSplrBatch, locItem.getBatch())
- .eq(WkOrderItem::getMatnrId, locItem.getMatnrId()));
+ .eq(WkOrderItem::getMatnrId, locItem.getMatnrId()));
// .eq(StringUtils.isNotBlank(locItem.getFieldsIndex()), WkOrderItem::getFieldsIndex, locItem.getFieldsIndex())
- if (Objects.isNull(orderItem)) {
- throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
- }
+ if (Objects.isNull(orderItem)) {
+ throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+ }
- locItem.setOutQty(param.getOutQty())
- .setBatch(param.getBatch())
- .setSourceId(outId)
- .setSourceCode(orderItem.getOrderCode())
- .setSource(orderItem.getId());
- locItems.add(locItem);
+ locItem.setOutQty(itemOld.getOutQty())
+ .setBatch(itemOld.getBatch())
+ .setSourceId(outId)
+ .setSourceCode(orderItem.getOrderCode())
+ .setSource(orderItem.getId());
+ locItems.add(locItem);
+
+
+ Double workQty = Math.round((orderItem.getWorkQty() + locItem.getOutQty()) * 10000) / 10000.0;
+
+ orderItem.setUpdateBy(loginUserId).setUpdateTime(new Date()).setWorkQty(workQty);
+
+ if (!outStockItemService.updateById(orderItem)) {
+ throw new CoolException("鍗曟嵁鏄庣粏淇敼澶辫触锛侊紒");
+ }
+ }
LocToTaskParams taskParams = new LocToTaskParams();
taskParams.setType(Constants.TASK_TYPE_ORDER_OUT_STOCK)
@@ -567,19 +604,10 @@
logger.error("UNK", e);
throw new CoolException(e.getMessage());
}
-
-
- Double workQty = Math.round((orderItem.getWorkQty() + locItem.getOutQty()) * 10000) / 10000.0;
-
- orderItem.setUpdateBy(loginUserId).setUpdateTime(new Date()).setWorkQty(workQty);
-
- if (!outStockItemService.updateById(orderItem)) {
- throw new CoolException("鍗曟嵁鏄庣粏淇敼澶辫触锛侊紒");
- }
}
}
- Double sum = Items.stream().mapToDouble(OutStockToTaskParams::getOutQty).sum();
+ Double sum = itemList.stream().mapToDouble(OutStockToTaskParams::getOutQty).sum();
//鏇存柊鍑哄簱鍗曟槑缁嗗強涓诲崟
WkOrder outOrder = outStockService.getById(outId);
if (Objects.isNull(outOrder)) {
@@ -682,7 +710,8 @@
locItem.setOutQty(issued.doubleValue() >= locItem.getAnfme() ? locItem.getAnfme() : issued.doubleValue());
locItem.setBarcode(loc.getBarcode());
OrderOutItemDto orderOutItemDto = new OrderOutItemDto();
- orderOutItemDto.setLocItem(locItem);
+// orderOutItemDto.setLocItem(locItem);
+ orderOutItemDto.getLocItemList().add(locItem);
List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>()
.eq(DeviceSite::getChannel, loc.getChannel())
@@ -720,7 +749,8 @@
.setUnit(wkOrderItem.getStockUnit())
.setBatch(wkOrderItem.getSplrBatch());
OrderOutItemDto orderOutItemDto = new OrderOutItemDto();
- orderOutItemDto.setLocItem(locItem);
+// orderOutItemDto.setLocItem(locItem);
+ orderOutItemDto.getLocItemList().add(locItem);
list.add(orderOutItemDto);
}
}
@@ -758,7 +788,8 @@
locItem.setOutQty(issued.doubleValue() >= locItem.getAnfme() ? locItem.getAnfme() : issued.doubleValue());
locItem.setBarcode(loc.getBarcode());
OrderOutItemDto orderOutItemDto = new OrderOutItemDto();
- orderOutItemDto.setLocItem(locItem);
+// orderOutItemDto.setLocItem(locItem);
+ orderOutItemDto.getLocItemList().add(locItem);
List<DeviceSite> deviceSites = deviceSiteService.list(new LambdaQueryWrapper<DeviceSite>()
.eq(DeviceSite::getChannel, loc.getChannel())
@@ -796,7 +827,8 @@
.setUnit(wkOrderItem.getStockUnit())
.setBatch(wkOrderItem.getSplrBatch());
OrderOutItemDto orderOutItemDto = new OrderOutItemDto();
- orderOutItemDto.setLocItem(locItem);
+// orderOutItemDto.setLocItem(locItem);
+ orderOutItemDto.getLocItemList().add(locItem);
list.add(orderOutItemDto);
}
}
--
Gitblit v1.9.1