From c3bd7262ff89c7594ec368f76ea910e6212769af Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 29 四月 2025 13:53:03 +0800
Subject: [PATCH] 1. 出库单新增修改优化
---
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 64 +++++++++++++++++++++++++++++++-
1 files changed, 62 insertions(+), 2 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 17ea75b..20dc185 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
@@ -12,7 +12,7 @@
import com.vincent.rsf.server.manager.enums.WaveExceStatus;
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
import com.vincent.rsf.server.manager.service.*;
-import com.vincent.rsf.server.manager.utils.GroupMergeUtil;
+import com.vincent.rsf.server.manager.utils.OptimalAlgorithmUtil;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import org.apache.commons.lang3.StringUtils;
@@ -290,12 +290,72 @@
throw new CoolException("涓诲崟淇敼澶辫触锛侊紒");
}
+ for (int i = 0; i < orderItems.size(); i++) {
+ orderItems.get(i).setWorkQty(orderItems.get(i).getAnfme());
+ }
+
+ if (!asnOrderItemService.saveOrUpdateBatch(orderItems)) {
+ throw new CoolException("鍑哄簱鍗曟墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�");
+ }
+
+ double sum2 = orderItems.stream().mapToDouble(AsnOrderItem::getWorkQty).sum();
if (!this.update(new LambdaUpdateWrapper<AsnOrder>()
+ .set(AsnOrder::getWaveId, wave.getId())
+ .set(AsnOrder::getWorkQty, sum2)
.set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WAVE.val)
.in(AsnOrder::getId, ids))) {
throw new CoolException("鎵ц鐘舵�佷慨鏀逛慨鏀瑰け璐ワ紒锛�");
}
return R.ok("鎿嶄綔瀹屾垚锛侊紒");
+ }
+
+ /**
+ * @author Ryan
+ * @description 淇濆瓨鍑哄簱涓诲崟鍙婃槑缁�
+ * @param
+ * @return
+ * @time 2025/4/29 13:47
+ */
+ @Override
+ public R saveOrderAndItems(AsnOrderAndItemsParams params, Long loginUserId) {
+ if (Objects.isNull(params.getOrders())) {
+ throw new CoolException("涓诲崟淇℃伅涓嶈兘涓虹┖");
+ }
+ AsnOrder orders = params.getOrders();
+ if (Objects.isNull(orders)) {
+ throw new CoolException("鍗曟嵁涓嶈兘涓虹┖锛侊紒");
+ }
+ String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, orders);
+ if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) {
+ throw new CoolException("缂栫爜瑙勫垯閿欒锛氳妫�鏌ャ�孲YS_OUT_STOCK_CODE銆嶆槸鍚﹁缃纭紒锛�");
+ }
+ orders.setCode(ruleCode)
+ .setUpdateBy(loginUserId)
+ .setCreateBy(loginUserId);
+ if (!this.save(orders)) {
+ throw new CoolException("涓诲崟淇濆瓨澶辫触锛侊紒");
+ }
+ if (params.getItems().isEmpty()) {
+ throw new CoolException("鏀惰揣閫氱煡鍗曟槑缁嗕笉鑳戒负瀵掗鑺傦紒锛�");
+ }
+
+// svaeOrUpdateOrderItem(params,loginUserId);
+
+
+
+ return null;
+ }
+
+ /**
+ * @author Ryan
+ * @description 淇敼涓诲崟鍙婃槑缁�
+ * @param
+ * @return
+ * @time 2025/4/29 13:47
+ */
+ @Override
+ public R updateOrderItem(AsnOrderAndItemsParams params, Long loginUserId) {
+ return null;
}
/**
@@ -321,7 +381,7 @@
.setWaveCode(wave.getCode());
items.add(item);
});
- List<WaveItem> waveItems = GroupMergeUtil.groupAndMerge(items,
+ List<WaveItem> waveItems = OptimalAlgorithmUtil.groupAndMerge(items,
(p1, p2) -> new WaveItem(
p1.getWaveId(),
p1.getWaveCode(),
--
Gitblit v1.9.1