From a6f41778b7770deee34870d53c889d4d06821d7b Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 02 七月 2025 14:00:37 +0800 Subject: [PATCH] 终止波次功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java | 7 +++ rsf-admin/src/page/orders/wave/WaveList.jsx | 7 +-- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java | 50 +++++++++++++++++++++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java | 20 ++-------- 4 files changed, 64 insertions(+), 20 deletions(-) diff --git a/rsf-admin/src/page/orders/wave/WaveList.jsx b/rsf-admin/src/page/orders/wave/WaveList.jsx index 3b9de8c..7066c06 100644 --- a/rsf-admin/src/page/orders/wave/WaveList.jsx +++ b/rsf-admin/src/page/orders/wave/WaveList.jsx @@ -227,9 +227,8 @@ const refresh = useRefresh() const notify = useNotify() - const stopClick = async (event) => { - event.stopPropagation() - const { data: { code, data, msg } } = await request.post('', { val: true, flag: 'WaveAutoExce' }); + const stopClick = async () => { + const { data: { code, data, msg } } = await request.post('/wave/stop/pub/' + record?.id); if (code === 200) { notify(msg); } else { @@ -238,7 +237,7 @@ } return ( - <ConfirmButton label={"toolbar.stopPub"} startIcon={<StopOutlinedIcon />} onConfirm={stopClick} size='small' /> + record?.exceStatus != 3 ? <ConfirmButton label={"toolbar.stopPub"} startIcon={<StopOutlinedIcon />} onConfirm={stopClick} size='small' /> : <></> ) } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java index 77fd2ea..154b9bd 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WaveController.java @@ -24,6 +24,7 @@ import com.vincent.rsf.server.manager.service.TaskItemService; import com.vincent.rsf.server.manager.service.WaveService; import com.vincent.rsf.server.manager.service.impl.TaskItemLogServiceImpl; +import com.vincent.rsf.server.manager.service.impl.WaveItemServiceImpl; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; @@ -45,6 +46,8 @@ private OutStockService outStockService; @Autowired private TaskItemLogService taskItemLogService; + @Autowired + private WaveItemServiceImpl waveItemService; @PreAuthorize("hasAuthority('manager:wave:list')") @PostMapping("/wave/page") @@ -193,22 +196,7 @@ if (Objects.isNull(id)) { return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); } - Wave wave = waveService.getById(id); - if (Objects.isNull(wave)) { - throw new CoolException("娉㈡鍗曚笉瀛樺湪锛侊紒"); - } - List<TaskItemLog> taskItems = taskItemLogService.list(new LambdaQueryWrapper<TaskItemLog>().eq(TaskItemLog::getSourceId, wave.getId())); - if (taskItems.isEmpty()) { - - - } else { - - } - - waveService.update(new LambdaUpdateWrapper<Wave>() - .eq(Wave::getId, id) - .set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK.val)); - return R.ok(); + return waveService.stopPubTask(id); } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java index c6afb77..211bbe7 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/WaveService.java @@ -47,4 +47,11 @@ * @time 2025/4/25 16:24 */ R waveToTask(Map<String, Object> map, Long loginUserId); + + /** + * 缁堟涓嬪彂 + * @param id + * @return + */ + R stopPubTask(Long id); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java index 86e2788..37146fe 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java @@ -56,6 +56,8 @@ private WaveService waveService; @Autowired private WaveRuleServiceImpl waveRuleService; + @Autowired + private WaveOrderRelaServiceImpl waveOrderRelaService; /** * @param @@ -213,6 +215,54 @@ } /** + * 缁堟娉㈡涓嬪彂浠诲姟 + * + * @param id + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public R stopPubTask(Long id) { + Wave wave = this.getById(id); + if (Objects.isNull(wave)) { + throw new CoolException("娉㈡鍗曚笉瀛樺湪锛侊紒"); + } + List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>() + .eq(TaskItem::getSourceId, wave.getId())); + if (!taskItems.isEmpty()) { + throw new CoolException("宸茬敓鎴愪换鍔′笉鍙粓姝㈠綋鍓嶆尝娆★紒锛�"); + } + + List<WaveOrderRela> orderRelas = waveOrderRelaService.list(new LambdaQueryWrapper<WaveOrderRela>().eq(WaveOrderRela::getWaveId, id)); + if (orderRelas.isEmpty()) { + throw new CoolException("鏃犲叧鑱旀槑缁�!!"); + } + + List<Long> orderIds = orderRelas.stream().map(WaveOrderRela::getOrderItemId).collect(Collectors.toList()); + List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getId, orderIds)); + orderItems.forEach(asnOrderItem -> { + asnOrderItem.setWorkQty(0.0); + if (!asnOrderItemService.updateById(asnOrderItem)) { + throw new CoolException("鍗曟嵁鏄庣粏鏇存柊澶辫触锛�!"); + } + }); + + List<Long> orders = orderRelas.stream().map(WaveOrderRela::getOrderId).collect(Collectors.toList()); + if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>() + .set(AsnOrder::getWorkQty, 0.0) + .set(AsnOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) + .in(AsnOrder::getId, orders))) { + throw new CoolException("鍗曟嵁鏇存柊澶辫触锛�!"); + } + + this.update(new LambdaUpdateWrapper<Wave>() + .eq(Wave::getId, id) + .set(Wave::getExceStatus, WaveExceStatus.WAVE_EXCE_STATUS_TASK.val)); + + return R.ok(); + } + + /** * @param * @param loginUserId * @param wave -- Gitblit v1.9.1