From 0719a5b90fa728f5f5441fba5311abbcf6211454 Mon Sep 17 00:00:00 2001 From: liyongde <1419499670@qq.com> Date: Sun, 21 Jul 2024 20:31:48 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=80=81=E6=B0=94=E8=83=80=E8=BD=B4?= =?UTF-8?q?=E5=8A=A0=E4=B8=AA=E9=94=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SlitterServiceImpl.java | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java index d9dee1918..570581b31 100644 --- a/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/b_lms/sch/tasks/slitter/service/impl/SlitterServiceImpl.java @@ -395,15 +395,27 @@ public class SlitterServiceImpl implements SlitterService { throw new BadRequestException("未找到可存放气涨轴规格「" + qzzSize + "」的空暂存位"); } BstIvtShafttubeivt shafttubeivt = shafttubeivts.get(0); - // 创建任务 - param.put("point_code1", deviceCode); - param.put("point_code2", shafttubeivt.getPoint_code()); - // hint: 当前分切计划的气涨轴尺寸 - param.put("qzz_size", qzzSize); - param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位")); - param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); - param.put("is_bushing", "0"); - trussCallShaftCacheTask.createTask(param); + RLock lockPoint = redissonClient.getLock(shafttubeivt.getPoint_code()); + boolean tryLockPoint = lockPoint.tryLock(0, TimeUnit.SECONDS); + try { + if (tryLockPoint) { + // 创建任务 + param.put("point_code1", deviceCode); + param.put("point_code2", shafttubeivt.getPoint_code()); + // hint: 当前分切计划的气涨轴尺寸 + param.put("qzz_size", qzzSize); + param.put("task_type", SlitterEnum.TASK_TYPE.code("穿拔轴位<>气胀轴缓存位")); + param.put("product_area", SlitterConstant.SLITTER_TASK_AREA); + param.put("is_bushing", "0"); + trussCallShaftCacheTask.createTask(param); + } else { + throw new BadRequestException("系统繁忙,稍后在试!"); + } + } finally { + if (tryLockPoint) { + lockPoint.unlock(); + } + } res.put("status", HttpStatus.HTTP_OK); res.put("message", "请求成功"); return res;