From 82afd7d55897b79eb6c31a71f0c16bae399e610c Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Tue, 19 Nov 2024 15:55:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E7=9B=AE=E8=A7=86=E5=8D=95?= =?UTF-8?q?=E9=87=8D=E5=A4=8D-=E5=A2=9E=E5=8A=A0redis=E9=94=81,=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E4=B8=80=E4=B8=AA=E4=BA=A7=E7=BA=BF=E5=92=8C=E9=9B=B6?= =?UTF-8?q?=E4=BB=B6=E7=94=9F=E4=BA=A7=E7=BB=84=E5=8F=91=E9=80=81=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E6=9C=89=E5=A4=9A=E4=B8=AA=E8=AF=B7=E6=B1=82=EF=BC=8C?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=88=B0=E7=9B=B8=E5=90=8C=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=9B=E8=A1=8C=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/MesProduceSnPrintController.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java index 3a7fdc5..24a2907 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesProduceSnPrintController.java @@ -3,6 +3,7 @@ package cn.estsh.i3plus.ext.mes.pcn.apiservice.controller.busi; import cn.estsh.i3plus.ext.mes.pcn.api.base.IMesTemplateService; import cn.estsh.i3plus.ext.mes.pcn.api.busi.IMesProduceSnPrintService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesPcnException; +import cn.estsh.i3plus.ext.mes.pcn.apiservice.util.MesRedisLockUtil; import cn.estsh.i3plus.ext.mes.pcn.pojo.constant.MesCommonConstant; import cn.estsh.i3plus.ext.mes.pcn.pojo.model.MesProduceSnPrintModel; import cn.estsh.i3plus.pojo.mes.bean.MesPrintQueue; @@ -35,6 +36,8 @@ import java.util.Objects; public class MesProduceSnPrintController { @Autowired + private MesRedisLockUtil mesRedisLockUtil; + @Autowired private IMesProduceSnPrintService mesProduceSnPrintService; @Autowired @@ -136,14 +139,20 @@ public class MesProduceSnPrintController { @PostMapping("/mes-print-queue/find") @ApiOperation(value = "打印队列查询") public ResultBean findMesWorkOrderPrintQueue(MesPrintQueue printQueue) { + boolean lockFlag = false; + String moduleKey=""; try { ValidatorBean.checkNotNull(printQueue.getPrintQueueType(), "打印类型不能为空"); - + MesRedisLockUtil mesRedisLockUtil = new MesRedisLockUtil(); + String workCenterCodeQuery = printQueue.getWorkCenterCodeQuery(); + String partProdGroupCodeQuery = printQueue.getPartProdGroupCodeQuery(); if (printQueue.getPrintQueueType() == MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER_ASSEMBLY.getValue()) { - ValidatorBean.checkNotNull(printQueue.getWorkCenterCodeQuery(), "产线代码不能为空"); - ValidatorBean.checkNotNull(printQueue.getPartProdGroupCodeQuery(), "零件生产组代码不能为空"); + ValidatorBean.checkNotNull(workCenterCodeQuery, "产线代码不能为空"); + ValidatorBean.checkNotNull(partProdGroupCodeQuery, "零件生产组代码不能为空"); } + moduleKey = workCenterCodeQuery+":"+partProdGroupCodeQuery; + lockFlag = mesRedisLockUtil.redisLock(moduleKey); ValidatorBean.checkNotNull(printQueue.getPrintQueueType(), "打印队列类型不能为空"); ValidatorBean.checkNotNull(printQueue.getOrganizeCode(), "工厂代码不能为空"); @@ -156,6 +165,10 @@ public class MesProduceSnPrintController { return ResultBean.fail(imppException); } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); + }finally { + if (lockFlag){ + mesRedisLockUtil.redisUnLock(lockFlag,moduleKey); + } } }