From fb4e7fd8575a97467a972028a91484f71985656c Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期四, 12 九月 2024 17:03:47 +0800 Subject: [PATCH] # --- zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 88 insertions(+), 1 deletions(-) diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java index f0a908f..ba2a50e 100644 --- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java +++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/manage/OutManage.java @@ -52,7 +52,12 @@ private OperationPortService operationPortService; @Autowired private OrderUtils orderUtils; - + @Autowired + private OrderNoRuleService orderNoRuleService; + @Autowired + private WaveService waveService; + @Autowired + private WaveDetlService waveDetlService; /** * 鍑哄簱 @@ -726,4 +731,86 @@ } + @Transactional + public void generateWave(List<Long> orderIds) { + if (orderIds == null) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖"); + } + + if (orderIds.isEmpty()) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖"); + } + + List<Order> orderList = orderService.listByIds(orderIds); + if (orderList.isEmpty()) { + throw new CoolException("璁㈠崟涓嶅瓨鍦�"); + } + + for (Order order : orderList) { + if (order.getWaveId() != null) { + throw new CoolException("褰撳墠璁㈠崟涓凡缁忕敓鎴愭尝娆�"); + } + } + + String waveNo = orderNoRuleService.getOrderNo(3); + Wave wave = new Wave(); + wave.setWaveNo(waveNo); + wave.setWaveType(0); + if (!waveService.save(wave)) { + throw new CoolException("娉㈡鐢熸垚澶辫触"); + } + + for (Order order : orderList) { + WaveDetl waveDetl = new WaveDetl(); + waveDetl.setWaveNo(waveNo); + waveDetl.setWaveId(wave.getId()); + waveDetl.setOrderId(order.getId()); + waveDetl.setOrderNo(order.getOrderNo()); + if (!waveDetlService.save(waveDetl)) { + throw new CoolException("娉㈡鏄庣粏鐢熸垚澶辫触"); + } + + order.setWaveId(wave.getId()); + order.setWaveNo(waveNo); + order.setUpdateTime(new Date()); + if (!orderService.updateById(order)) { + throw new CoolException("璁㈠崟鍙嶅啓娉㈡澶辫触"); + } + } + + } + + @Transactional + public void cancelWave(List<Long> waveIds) { + if (waveIds == null) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖"); + } + + if (waveIds.isEmpty()) { + throw new CoolException("鍙傛暟涓嶈兘涓虹┖"); + } + + List<Wave> waves = waveService.listByIds(waveIds); + if (waves.isEmpty()) { + throw new CoolException("娉㈡涓嶅瓨鍦�"); + } + + for (Wave wave : waves) { + List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, wave.getId())); + for (WaveDetl waveDetl : waveDetls) { + Order order = orderService.getById(waveDetl.getOrderId()); + order.setWaveId(null); + order.setWaveNo(null); + if (!orderService.updateById(order)) { + throw new CoolException("璁㈠崟鍙嶅啓澶辫触"); + } + + waveDetlService.removeById(waveDetl.getId()); + } + + waveService.removeById(wave.getId()); + } + + } + } -- Gitblit v1.9.1