From 7cd784ac836f48ba2abfddd53829cac56c8e6037 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Mon, 16 Dec 2024 16:07:53 +0800 Subject: [PATCH] =?UTF-8?q?rev:=E6=B7=BB=E5=8A=A0=E9=94=81=EF=BC=9A?= =?UTF-8?q?=E4=BF=9D=E9=9A=9Cwms=E7=94=B3=E8=AF=B7=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=97=B6=E5=8F=AA=E6=9C=89=E4=B8=80=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../acs/ext/wms/rest/WmsToAcsController.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java index 9bcf796..bc001c2 100644 --- a/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java +++ b/acs/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/rest/WmsToAcsController.java @@ -11,8 +11,10 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.ext.wms.data.CancelTaskRequest; import org.nl.acs.ext.wms.data.CreateTaskRequest; +import org.nl.acs.ext.wms.data.CreateTaskResponse; import org.nl.acs.ext.wms.service.WmsToAcsService; //import org.nl.modules.logging.InterfaceLogType; +import org.nl.common.exception.BadRequestException; import org.nl.common.logging.annotation.Log; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -22,6 +24,8 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.locks.ReentrantLock; /** * @author ludj @@ -34,13 +38,29 @@ import java.util.List; @Slf4j public class WmsToAcsController { private final WmsToAcsService wmstoacsService; + private ReentrantLock lock = new ReentrantLock(); @PostMapping("/task") @Log(value = "ACS接收WMS任务") @ApiOperation("接收WMS任务") @SaIgnore public ResponseEntity createFromWms(@RequestBody List reqs) { - return new ResponseEntity<>(wmstoacsService.crateTask(reqs), HttpStatus.OK); + CreateTaskResponse response = new CreateTaskResponse(); + try { + if (lock.tryLock() || lock.tryLock(2, TimeUnit.SECONDS)){ + response = wmstoacsService.crateTask(reqs); + Thread.sleep(50000); + }else { + throw new BadRequestException("当前acs正在执行创建任务稍后再试"); + } + }catch (Exception ex){ + throw new BadRequestException("当前acs正在执行创建任务稍后再试"); + }finally { + if (lock.isHeldByCurrentThread() && lock.isLocked()){ + lock.unlock(); + } + } + return new ResponseEntity<>(response, HttpStatus.OK); } @PostMapping("/cancelTask")