From be5a37012d9c7c901a6d21ff1b220fa4c39af363 Mon Sep 17 00:00:00 2001 From: "HUOJIN\\92525" <925259474@qq.com> Date: Sun, 15 Mar 2026 21:39:50 +0800 Subject: [PATCH] no message --- .../shipping/service/impl/PickServiceImpl.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/PickServiceImpl.java b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/PickServiceImpl.java index c439e61..5fee173 100644 --- a/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/PickServiceImpl.java +++ b/cpte-boot-module/cpte-module-wms/src/main/java/org/cpte/modules/shipping/service/impl/PickServiceImpl.java @@ -156,7 +156,23 @@ public class PickServiceImpl extends ServiceImpl implements IP @Override public boolean allocatePickDetail(PickDetail pickDetail) { - return allocateProcessor.allocatePickDetail(pickDetail); + String lockKey = "pickDetail:" + pickDetail.getPickId()+":"+pickDetail.getItemId(); + String lockValue = null; + try { + lockValue = redissonLock.tryLock(lockKey, 10); + if (StringUtils.isEmpty(lockValue)) { + throw new RuntimeException("分配明细中,请稍后重试"); + } + return allocateProcessor.allocatePickDetail(pickDetail); + } catch (Exception e) { + log.error("分配明细异常", e); + throw e; + } finally { + if (StringUtils.isNotEmpty(lockValue)) { + redissonLock.unlock(lockKey, lockValue); + } + } + } @Override