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/api/service/impl/ReportMsgServiceImpl.java |   27 +++++++++++++++++----------
 1 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
index 15ec4c4..1058b83 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReportMsgServiceImpl.java
@@ -21,9 +21,9 @@
 import com.vincent.rsf.server.api.service.ReportMsgService;
 import com.vincent.rsf.server.manager.entity.WkOrder;
 import com.vincent.rsf.server.manager.entity.WkOrderItem;
+import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
 import com.vincent.rsf.server.manager.entity.Purchase;
 import com.vincent.rsf.server.manager.service.AsnOrderItemService;
-import com.vincent.rsf.server.manager.service.AsnOrderService;
 import com.vincent.rsf.server.manager.service.PurchaseService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -61,7 +61,7 @@
     @Autowired
     private RemotesInfoProperties remotesInfoProperties;
     @Autowired
-    private AsnOrderService asnOrderService;
+    private AsnOrderMapper asnOrderMapper;
     @Autowired
     private AsnOrderItemService asnOrderItemService;
     @Autowired
@@ -71,8 +71,10 @@
      * @author Ryan
      * @description 涓婃姤璐ㄦ鍒楄〃
      * @params [items 鍒楄〃]
+     *
      * @return boolean
      * @time 2025/3/7 09:12
+     * 11
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -158,15 +160,18 @@
             //ASN鏄庣粏鍗曟嵁鍒嗙粍
             Map<Long, List<WkOrderItem>> asnIds = wkOrderItems.stream().collect(Collectors.groupingBy(WkOrderItem::getOrderId));
             ids.forEach(id -> {
-                int count = asnOrderService.count(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, id));
+                long count = Optional.ofNullable(asnOrderMapper.selectCount(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getId, id))).orElse(0L);
+                WkOrder order = asnOrderMapper.selectById(id);
+                if (Objects.isNull(order)) {
+                    throw new CoolException("ASN涓诲崟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                }
                 if (count == asnIds.get(id).size()) {
-                    if (!asnOrderService.update(new LambdaUpdateWrapper<WkOrder>().eq(WkOrder::getId, id).set(WkOrder::getNtyStatus, 1))) {
-                        throw new CoolException("ASN涓诲崟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-                    }
+                    order.setNtyStatus(1);
                 } else {
-                    if (!asnOrderService.update(new LambdaUpdateWrapper<WkOrder>().eq(WkOrder::getId, id).set(WkOrder::getNtyStatus, 2))) {
-                        throw new CoolException("ASN涓诲崟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-                    }
+                    order.setNtyStatus(2);
+                }
+                if (asnOrderMapper.updateById(order) <= 0) {
+                    throw new CoolException("ASN涓诲崟鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                 }
             });
             return true;
@@ -207,7 +212,8 @@
                 if (result.getCode() == 200) {
                     return R.ok().add(result.getData());
                 } else {
-                    throw new CoolException("淇敼澶辫触锛侊紒");
+                    return R.ok(result.getMsg()).add(result.getData());
+//                    throw new CoolException("淇敼澶辫触锛侊紒");
                 }
             } catch (JsonProcessingException e) {
                 throw new CoolException(e.getMessage());
@@ -256,3 +262,4 @@
         }
     }
 }
+

--
Gitblit v1.9.1