From b5ef11d9dd995dd37beb83f53e55ca672e051f9b Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 21 八月 2025 09:27:57 +0800
Subject: [PATCH] 单据删除操作
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java | 8 ++++++++
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java | 41 ++++++++++++++++++++++++++++++++++++-----
rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java | 9 +++++----
3 files changed, 49 insertions(+), 9 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
index f523790..265a705 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/SyncOrderController.java
@@ -168,7 +168,6 @@
if (Objects.isNull(orders)) {
return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
}
-
return receiveMsgService.syncOrderUpdate(orders);
}
@@ -182,9 +181,11 @@
@ApiOperation("鍗曟嵁鍒犻櫎")
@OperationLog("鍗曟嵁鍒犻櫎")
@PostMapping("/sync/orders/delete")
- public R syncOrderDel(@RequestBody List<OrderParams> orders) {
-
- return R.ok();
+ public R syncOrderDel(@RequestBody List<SyncOrderParams> orders) {
+ if (Objects.isNull(orders)) {
+ return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+ }
+ return receiveMsgService.syncOrderDelete(orders);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
index 55209ee..0b2d737 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/ReceiveMsgService.java
@@ -121,4 +121,12 @@
* @version 1.0
*/
R syncOrderUpdate(SyncOrderParams orders);
+
+ /**
+ * @author Ryan
+ * @date 2025/8/21
+ * @description: 鍗曟嵁鍒犻櫎
+ * @version 1.0
+ */
+ R syncOrderDelete(List<SyncOrderParams> orders);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index f14cccb..20d0dd0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -13,10 +13,7 @@
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
import com.vincent.rsf.server.manager.entity.*;
-import com.vincent.rsf.server.manager.enums.CompanysType;
-import com.vincent.rsf.server.manager.enums.OrderSourceType;
-import com.vincent.rsf.server.manager.enums.OrderType;
-import com.vincent.rsf.server.manager.enums.OrderWorkType;
+import com.vincent.rsf.server.manager.enums.*;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.manager.service.impl.MatnrServiceImpl;
import com.vincent.rsf.server.manager.service.impl.TransferItemServiceImpl;
@@ -546,6 +543,7 @@
if (orders.getType().equals(OrderType.ORDER_IN.type)) {
orders.getItems().forEach(orderItem -> {
WkOrder order = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
+ .eq(WkOrder::getType, OrderType.ORDER_IN.type)
.eq(WkOrder::getCode, orderItem.getOrderCode()));
if (Objects.isNull(order)) {
throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
@@ -571,7 +569,6 @@
if (!asnOrderService.updateById(order)) {
throw new CoolException("鍗曟嵁淇敼澶辫触锛侊紒");
}
- //TODO 娣诲姞鎿嶄綔鏃ュ織
});
} else {
@@ -579,4 +576,38 @@
return null;
}
+ /**
+ * @author Ryan
+ * @date 2025/8/21
+ * @description: 鍒犻櫎鍗曟嵁
+ * @version 1.0
+ */
+ @Override
+ @Transactional(timeout = 60, rollbackFor = Exception.class)
+ public R syncOrderDelete(List<SyncOrderParams> orders) {
+ orders.forEach(order -> {
+ order.getItems().forEach(orderItem -> {
+ WkOrder wkOrder = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
+ .eq(WkOrder::getType, order.getType())
+ .in(WkOrder::getExceStatus, Arrays.asList(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val, AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val))
+ .eq(WkOrder::getId, orderItem.getOrderId()));
+ if (Objects.isNull(wkOrder)) {
+ throw new CoolException("璁㈠崟锛�" + orderItem.getOrderCode() + "锛屽綋鍓嶇姸鎬侊紝涓嶅彲鎵ц鍒犻櫎鎿嶄綔锛侊紒");
+ }
+ if (!asnOrderItemService.remove(new LambdaQueryWrapper<WkOrderItem>()
+ .eq(WkOrderItem::getMatnrId, orderItem.getMatnrId())
+ .eq(WkOrderItem::getSplrBatch, orderItem.getBatch())
+ .eq(WkOrderItem::getOrderCode, orderItem.getOrderCode()))) {
+ throw new CoolException("鍗曟嵁鏄庣粏鍒犻櫎澶辫触锛侊紒");
+ }
+ List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, orderItem.getOrderId()));
+ if (orderItems.isEmpty()) {
+ if (!asnOrderService.removeById(orderItem.getOrderId())) {
+ throw new CoolException("鍗曟嵁鍒犻櫎澶辫触锛侊紒");
+ }
+ }
+ });
+ });
+ return R.ok();
+ }
}
--
Gitblit v1.9.1