From e4e7ee15c68a9ed1a937cd7874bd8c0cc3018e3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E6=B5=B7=E8=88=AA?= <11918452+yang-haihang@user.noreply.gitee.com> Date: Wed, 13 Nov 2024 15:39:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entrustment/config/ErrorController.java | 59 +++++++++---------- .../controller/AcceptController.java | 9 ++- .../service/impl/AcceptServiceImpl.java | 2 +- 3 files changed, 38 insertions(+), 32 deletions(-) diff --git a/src/main/java/digital/laboratory/platform/entrustment/config/ErrorController.java b/src/main/java/digital/laboratory/platform/entrustment/config/ErrorController.java index 2ce64b8..48c7d37 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/config/ErrorController.java +++ b/src/main/java/digital/laboratory/platform/entrustment/config/ErrorController.java @@ -15,48 +15,47 @@ import java.util.Map; * Spring Boot 自定义异常处理 * 所有的异常都派生自 Exception, 如果我们定义了某个异常的处理 Handler, Spring Boot 会调用用对应的异常 Handler, 否则会调用 Exception Handler. * 有一个前提是在 application.yml 中定义两个属性, 让 springboot 在没有找到 url 的处理器触发异常; 让 springboot 不要自作多情加 /error 这个 map - * mvc: - * throw-exception-if-no-handler-found: true - * web: - * resources: - * add-mappings: false + * mvc: + * throw-exception-if-no-handler-found: true + * web: + * resources: + * add-mappings: false * 只有如此, springboot 才会触发异常。 - * */ @ControllerAdvice public class ErrorController { - @ExceptionHandler(Exception.class) - @ResponseBody - public ResponseEntity error(Exception ex) { -System.out.println("ErrorController.error Exception"); -ex.printStackTrace(); - Map map = new HashMap<>(); - map.put("Exception", ex.getClass().getName()); - map.put("message", ex.getMessage()); - map.put("localizedMessage", ex.getLocalizedMessage()); - map.put("toString", ex.toString()); + @ExceptionHandler(Exception.class) + @ResponseBody + public ResponseEntity error(Exception ex) { + System.out.println("ErrorController.error Exception"); + ex.printStackTrace(); + Map map = new HashMap<>(); + map.put("Exception", ex.getClass().getName()); + map.put("message", ex.getMessage()); + map.put("localizedMessage", ex.getLocalizedMessage()); + map.put("toString", ex.toString()); - return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(R.failed(map, "发生异常 "+ex.getMessage())); - } + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(R.failed(map, "发生异常 " + ex.getMessage())); + } - @ExceptionHandler(value = {NoHandlerFoundException.class}) - @ResponseBody - public ResponseEntity error(NoHandlerFoundException ex) { + @ExceptionHandler(value = {NoHandlerFoundException.class}) + @ResponseBody + public ResponseEntity error(NoHandlerFoundException ex) { //System.out.println("ErrorController.error NoHandlerFoundException"); //ex.printStackTrace(); // //ex.getRawStatusCode() - Map map = new HashMap<>(); - map.put("Exception", ex.getClass().getName()); - map.put("message", ex.getMessage()); - map.put("localizedMessage", ex.getLocalizedMessage()); - map.put("requestURL", ex.getRequestURL()); - map.put("httpMethod", ex.getHttpMethod()); + Map map = new HashMap<>(); + map.put("Exception", ex.getClass().getName()); + map.put("message", ex.getMessage()); + map.put("localizedMessage", ex.getLocalizedMessage()); + map.put("requestURL", ex.getRequestURL()); + map.put("httpMethod", ex.getHttpMethod()); // map.put("cause", ex.getCause().toString()); - map.put("toString", ex.toString()); + map.put("toString", ex.toString()); // map.put("comments", "单独的 ExceptionHandler, 系统管理捕获的全局异常 NoHandlerFoundException"); // //return map; // //ResponseEntity> r = new ResponseEntity>(map, HttpStatus.INTERNAL_SERVER_ERROR); @@ -64,8 +63,8 @@ ex.printStackTrace(); // //return r; // return ResponseEntity.status(HttpStatus.NOT_FOUND).body(map); - return ResponseEntity.status(HttpStatus.NOT_FOUND).body(R.failed(map, "没有找到")); - } + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(R.failed(map, "没有找到")); + } } diff --git a/src/main/java/digital/laboratory/platform/entrustment/controller/AcceptController.java b/src/main/java/digital/laboratory/platform/entrustment/controller/AcceptController.java index d461164..6c8ed14 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/controller/AcceptController.java +++ b/src/main/java/digital/laboratory/platform/entrustment/controller/AcceptController.java @@ -1,5 +1,6 @@ package digital.laboratory.platform.entrustment.controller; +import digital.laboratory.platform.common.core.exception.ValidateCodeException; import digital.laboratory.platform.common.core.util.R; import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial; import digital.laboratory.platform.entrustment.service.AcceptService; @@ -25,7 +26,13 @@ public class AcceptController { @PutMapping("/alertMaterialAcceptNo") @PreAuthorize("@pms.hasPermission('EntrustmentAccept')") public R alertMaterialAcceptNo(@RequestBody EntrustmentIdentificationMaterial material) { - Boolean success = acceptService.alertMaterialAcceptNo(material); + Boolean success = null; + try { + success = acceptService.alertMaterialAcceptNo(material); + } catch (ValidateCodeException e) { + e.printStackTrace(); + return R.failed(e.getMessage()); + } return R.ok(success); } diff --git a/src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java b/src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java index 9adcbb4..a52cf0b 100644 --- a/src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java +++ b/src/main/java/digital/laboratory/platform/entrustment/service/impl/AcceptServiceImpl.java @@ -49,7 +49,7 @@ public class AcceptServiceImpl implements AcceptService { * ^ 和 $:表示字符串的开始和结束 */ String regex = "^\\d+-\\d+-\\d+$"; - if (Pattern.matches(regex, materialAcceptNo)) { + if (!Pattern.matches(regex, materialAcceptNo)) { throw new ValidateCodeException(String.format("%s 不符合检材受理编号的规则!", materialAcceptNo)); } // 校验当前修改的检材受理编号对应的委托的受理编号存不存在, 委托的受理编号是检材受理编号截取最后一个横杠的内容