From 2f8e173048d22c5b40612c3538b9c1aa5a5397f6 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 27 三月 2026 13:38:05 +0800
Subject: [PATCH] #乐观锁

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java
index 367fd19..9f5a9e1 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockItemServiceImpl.java
@@ -147,9 +147,13 @@
             }
             if (!items.isEmpty()) {
                 double purQty = items.stream().mapToDouble(WkOrderItem::getAnfme).sum();
-                if (asnOrderMapper.update(null, new LambdaUpdateWrapper<WkOrder>()
-                                .set(WkOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
-                        .set(WkOrder::getAnfme, purQty).eq(WkOrder::getId, order.getId())) <= 0) {
+                WkOrder currentOrder = asnOrderMapper.selectById(order.getId());
+                if (Objects.isNull(currentOrder)) {
+                    throw new CoolException("鍗曟嵁鏁伴噺淇敼澶辫触锛侊紒");
+                }
+                currentOrder.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val)
+                        .setAnfme(purQty);
+                if (asnOrderMapper.updateById(currentOrder) <= 0) {
                     throw new CoolException("鍗曟嵁鏁伴噺淇敼澶辫触锛侊紒");
                 }
             }

--
Gitblit v1.9.1