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