From 2b21366205c895a61897726fcd1aa432fdc477c8 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 18 六月 2025 09:54:51 +0800 Subject: [PATCH] 生成波次优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java | 21 +++++++-------------- 1 files changed, 7 insertions(+), 14 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 46d5648..0ed6f59 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 @@ -10,11 +10,8 @@ import com.vincent.rsf.server.common.constant.Constants; import com.vincent.rsf.server.manager.controller.dto.ExistDto; import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto; -import com.vincent.rsf.server.manager.controller.params.LocToTaskParams; -import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam; -import com.vincent.rsf.server.manager.controller.params.OutStockToTaskParams; +import com.vincent.rsf.server.manager.controller.params.*; import com.vincent.rsf.server.manager.enums.*; -import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams; import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.mapper.AsnOrderMapper; import com.vincent.rsf.server.manager.service.*; @@ -32,7 +29,6 @@ import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; import com.vincent.rsf.server.manager.enums.WaveRuleType; @@ -275,11 +271,11 @@ */ @Override @Transactional(rollbackFor = Exception.class) - public R generateWaves(List<Long> ids) { - if (Objects.isNull(ids) || ids.isEmpty()) { + public R generateWaves(GenWaveParams params) { + if (Objects.isNull(params.getIds()) || params.getIds().isEmpty()) { throw new CoolException("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - List<AsnOrder> orders = this.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, ids)); + List<AsnOrder> orders = this.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, params.getIds())); if (orders.isEmpty()) { throw new CoolException("褰撳墠鍗曟嵁鐘舵�佷笉鑳芥墽琛屾尝娆$敓鎴愭搷浣滐紒锛�"); } @@ -288,10 +284,10 @@ Double anfme = Math.round((sum - workQty) * 10000) / 10000.0; Wave wave = new Wave(); String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_WAVE_TYPE, null); - if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { + if (StringUtils.isBlank(ruleCode)) { throw new CoolException("缂栫爜瑙勫垯閿欒锛氳瑕佹煡鐪嬨�孲YS_WAVE_TYPE銆嶆槸鍚﹁缃垚鍔燂紒锛�"); } - wave.setOrderNum(ids.size()) + wave.setOrderNum(params.getIds().size()) .setType(Short.parseShort("1")) .setCode(ruleCode) .setExceStatus(WaveExceStatus.WAVE_EXCE_STATUS_INIT.val) @@ -316,22 +312,19 @@ if (!waveService.saveOrUpdate(wave)) { 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("鍑哄簱鍗曟墽琛屾暟閲忎慨鏀瑰け璐ワ紒锛�"); } - for (AsnOrder order : orders) { Double wkQty = Math.round((order.getWorkQty() + order.getAnfme()) * 10000) / 10000.0; if (!this.update(new LambdaUpdateWrapper<AsnOrder>() .set(AsnOrder::getWaveId, wave.getId()) .set(AsnOrder::getWorkQty, wkQty) .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_WAVE.val) - .in(AsnOrder::getId, ids))) { + .in(AsnOrder::getId, params.getIds()))) { throw new CoolException("鎵ц鐘舵�佷慨鏀逛慨鏀瑰け璐ワ紒锛�"); } } -- Gitblit v1.9.1