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