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/LocServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 41 insertions(+), 14 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
index f15800f..2204a2f 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocServiceImpl.java
@@ -57,23 +57,50 @@
         if (!Objects.isNull(loc.getTypeIds()) && !loc.getTypeIds().isEmpty()) {
             join = StringUtils.join(loc.getTypeIds(), ",");
         }
-        boolean update = this.update(new LambdaUpdateWrapper<Loc>()
+        List<Loc> existsLocs = this.list(new LambdaQueryWrapper<Loc>()
                 .in(Loc::getId, locs.getId())
-                .eq(Loc::getStatus, 1)
-                .set(!Objects.isNull(loc.getAreaId()), Loc::getAreaId, loc.getAreaId())
-                .set(!Objects.isNull(loc.getWarehouseId()), Loc::getWarehouseId, loc.getWarehouseId())
-                .set(!Objects.isNull(loc.getUseStatus()), Loc::getUseStatus, loc.getUseStatus())
-                .set(!Objects.isNull(loc.getTypeIds()) && !loc.getTypeIds().isEmpty(), Loc::getType, join)
-                .set(!Objects.isNull(loc.getLength()), Loc::getLength, loc.getLength())
-                .set(!Objects.isNull(loc.getWidth()), Loc::getWidth, loc.getWidth())
-                .set(!Objects.isNull(loc.getHeight()), Loc::getHeight, loc.getHeight())
-                .set(!Objects.isNull(loc.getChannel()), Loc::getChannel, loc.getChannel())
-                .set(!Objects.isNull(loc.getFlagLabelMange()), Loc::getFlagLabelMange, loc.getFlagLabelMange())
-                .set(loc.getStatus().equals(CommonStatus.COMMONSTATUS_NO.val), Loc::getUseStatus, LocStsType.LOC_STS_TYPE_X.type)
-                .set(!Objects.isNull(loc.getStatus()), Loc::getStatus, loc.getStatus()));
-        if (!update) {
+                .eq(Loc::getStatus, 1));
+        if (existsLocs.isEmpty()) {
             throw new CoolException("搴撲綅淇℃伅淇敼澶辫触锛侊紒");
         }
+        for (Loc currentLoc : existsLocs) {
+            if (!Objects.isNull(loc.getAreaId())) {
+                currentLoc.setAreaId(loc.getAreaId());
+            }
+            if (!Objects.isNull(loc.getWarehouseId())) {
+                currentLoc.setWarehouseId(loc.getWarehouseId());
+            }
+            if (!Objects.isNull(loc.getUseStatus())) {
+                currentLoc.setUseStatus(loc.getUseStatus());
+            }
+            if (!Objects.isNull(loc.getTypeIds()) && !loc.getTypeIds().isEmpty()) {
+                currentLoc.setType(join);
+            }
+            if (!Objects.isNull(loc.getLength())) {
+                currentLoc.setLength(loc.getLength());
+            }
+            if (!Objects.isNull(loc.getWidth())) {
+                currentLoc.setWidth(loc.getWidth());
+            }
+            if (!Objects.isNull(loc.getHeight())) {
+                currentLoc.setHeight(loc.getHeight());
+            }
+            if (!Objects.isNull(loc.getChannel())) {
+                currentLoc.setChannel(loc.getChannel());
+            }
+            if (!Objects.isNull(loc.getFlagLabelMange())) {
+                currentLoc.setFlagLabelMange(loc.getFlagLabelMange());
+            }
+            if (!Objects.isNull(loc.getStatus()) && loc.getStatus().equals(CommonStatus.COMMONSTATUS_NO.val)) {
+                currentLoc.setUseStatus(LocStsType.LOC_STS_TYPE_X.type);
+            }
+            if (!Objects.isNull(loc.getStatus())) {
+                currentLoc.setStatus(loc.getStatus());
+            }
+            if (!this.updateById(currentLoc)) {
+                throw new CoolException("搴撲綅淇℃伅淇敼澶辫触锛侊紒");
+            }
+        }
 
         return R.ok(loc);
     }

--
Gitblit v1.9.1