初始版本提交

This commit is contained in:
hzj
2025-07-01 11:03:09 +08:00
parent f4550b9c76
commit f62aa1f7f7
2 changed files with 263 additions and 253 deletions

View File

@@ -1,255 +1,255 @@
//package com.njcn.gather.event.transientes.handler; package com.njcn.gather.event.transientes.handler;
//
//import cn.hutool.core.text.StrFormatter; import cn.hutool.core.text.StrFormatter;
//import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
//import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum;
//import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
//import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
//import com.njcn.common.utils.LogUtil; import com.njcn.common.utils.LogUtil;
//import com.njcn.web.utils.HttpResultUtil; import com.njcn.web.utils.HttpResultUtil;
//import com.njcn.web.utils.HttpServletUtil; import com.njcn.web.utils.HttpServletUtil;
//import com.njcn.web.utils.ReflectCommonUtil; import com.njcn.web.utils.ReflectCommonUtil;
//import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
//import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
//import org.json.JSONException; import org.json.JSONException;
//import org.springframework.validation.ObjectError; import org.springframework.validation.ObjectError;
//import org.springframework.web.HttpMediaTypeNotSupportedException; import org.springframework.web.HttpMediaTypeNotSupportedException;
//import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.MethodArgumentNotValidException;
//import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ExceptionHandler;
//import org.springframework.web.bind.annotation.RestControllerAdvice; import org.springframework.web.bind.annotation.RestControllerAdvice;
//import org.springframework.web.util.NestedServletException; import org.springframework.web.util.NestedServletException;
//
//import javax.annotation.Resource; import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
//import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolation;
//import javax.validation.ConstraintViolationException; import javax.validation.ConstraintViolationException;
//import java.util.ArrayList; import java.util.ArrayList;
//import java.util.List; import java.util.List;
//import java.util.concurrent.*; import java.util.concurrent.*;
//import java.util.stream.Collectors; import java.util.stream.Collectors;
//import java.util.stream.Stream; import java.util.stream.Stream;
//
///** /**
// * 全局通用业务异常处理器 * 全局通用业务异常处理器
// * *
// * @author hongawen * @author hongawen
// * @version 1.0.0 * @version 1.0.0
// * @date 2021年04月20日 18:04 * @date 2021年04月20日 18:04
// */ */
//@Slf4j @Slf4j
//@AllArgsConstructor @AllArgsConstructor
//@RestControllerAdvice @RestControllerAdvice
//public class GlobalBusinessExceptionHandler { public class GlobalBusinessExceptionHandler {
//
//
//
// private final ThreadPoolExecutor executor = new ThreadPoolExecutor( private final ThreadPoolExecutor executor = new ThreadPoolExecutor(
// 4, 8, 30, TimeUnit.SECONDS, 4, 8, 30, TimeUnit.SECONDS,
// new LinkedBlockingQueue<>(100), new LinkedBlockingQueue<>(100),
// // 队列满时由主线程执行 // 队列满时由主线程执行
// new ThreadPoolExecutor.CallerRunsPolicy() new ThreadPoolExecutor.CallerRunsPolicy()
// ); );
//
//
// /** /**
// * 捕获业务功能异常,通常为业务数据抛出的异常 * 捕获业务功能异常,通常为业务数据抛出的异常
// * *
// * @param businessException 业务异常 * @param businessException 业务异常
// */ */
// @ExceptionHandler(BusinessException.class) @ExceptionHandler(BusinessException.class)
// public HttpResult<String> handleBusinessException(BusinessException businessException) { public HttpResult<String> handleBusinessException(BusinessException businessException) {
// String operate = ReflectCommonUtil.getMethodDescribeByException(businessException); String operate = ReflectCommonUtil.getMethodDescribeByException(businessException);
// // recodeBusinessExceptionLog(businessException, businessException.getMessage()); // recodeBusinessExceptionLog(businessException, businessException.getMessage());
// return HttpResultUtil.assembleBusinessExceptionResult(businessException, null, operate); return HttpResultUtil.assembleBusinessExceptionResult(businessException, null, operate);
// } }
//
//
// /** /**
// * 空指针异常捕捉 * 空指针异常捕捉
// * *
// * @param nullPointerException 空指针异常 * @param nullPointerException 空指针异常
// */ */
// @ExceptionHandler(NullPointerException.class) @ExceptionHandler(NullPointerException.class)
// public HttpResult<String> handleNullPointerException(NullPointerException nullPointerException) { public HttpResult<String> handleNullPointerException(NullPointerException nullPointerException) {
// LogUtil.logExceptionStackInfo(CommonResponseEnum.NULL_POINTER_EXCEPTION.getMessage(), nullPointerException); LogUtil.logExceptionStackInfo(CommonResponseEnum.NULL_POINTER_EXCEPTION.getMessage(), nullPointerException);
// //recodeBusinessExceptionLog(nullPointerException, CommonResponseEnum.NULL_POINTER_EXCEPTION.getMessage()); //recodeBusinessExceptionLog(nullPointerException, CommonResponseEnum.NULL_POINTER_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NULL_POINTER_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(nullPointerException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.NULL_POINTER_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(nullPointerException));
// } }
//
// /** /**
// * 算数运算异常 * 算数运算异常
// * *
// * @param arithmeticException 算数运算异常由于除数为0引起的异常 * @param arithmeticException 算数运算异常由于除数为0引起的异常
// */ */
// @ExceptionHandler(ArithmeticException.class) @ExceptionHandler(ArithmeticException.class)
// public HttpResult<String> handleArithmeticException(ArithmeticException arithmeticException) { public HttpResult<String> handleArithmeticException(ArithmeticException arithmeticException) {
// LogUtil.logExceptionStackInfo(CommonResponseEnum.ARITHMETIC_EXCEPTION.getMessage(), arithmeticException); LogUtil.logExceptionStackInfo(CommonResponseEnum.ARITHMETIC_EXCEPTION.getMessage(), arithmeticException);
// // recodeBusinessExceptionLog(arithmeticException, CommonResponseEnum.ARITHMETIC_EXCEPTION.getMessage()); // recodeBusinessExceptionLog(arithmeticException, CommonResponseEnum.ARITHMETIC_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.ARITHMETIC_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(arithmeticException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.ARITHMETIC_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(arithmeticException));
// } }
//
// /** /**
// * 类型转换异常捕捉 * 类型转换异常捕捉
// * *
// * @param classCastException 类型转换异常 * @param classCastException 类型转换异常
// */ */
// @ExceptionHandler(ClassCastException.class) @ExceptionHandler(ClassCastException.class)
// public HttpResult<String> handleClassCastException(ClassCastException classCastException) { public HttpResult<String> handleClassCastException(ClassCastException classCastException) {
// LogUtil.logExceptionStackInfo(CommonResponseEnum.CLASS_CAST_EXCEPTION.getMessage(), classCastException); LogUtil.logExceptionStackInfo(CommonResponseEnum.CLASS_CAST_EXCEPTION.getMessage(), classCastException);
// // recodeBusinessExceptionLog(classCastException, CommonResponseEnum.CLASS_CAST_EXCEPTION.getMessage()); // recodeBusinessExceptionLog(classCastException, CommonResponseEnum.CLASS_CAST_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.CLASS_CAST_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(classCastException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.CLASS_CAST_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(classCastException));
// } }
//
//
// /** /**
// * 索引下标越界异常捕捉 * 索引下标越界异常捕捉
// * *
// * @param indexOutOfBoundsException 索引下标越界异常 * @param indexOutOfBoundsException 索引下标越界异常
// */ */
// @ExceptionHandler(IndexOutOfBoundsException.class) @ExceptionHandler(IndexOutOfBoundsException.class)
// public HttpResult<String> handleIndexOutOfBoundsException(IndexOutOfBoundsException indexOutOfBoundsException) { public HttpResult<String> handleIndexOutOfBoundsException(IndexOutOfBoundsException indexOutOfBoundsException) {
// LogUtil.logExceptionStackInfo(CommonResponseEnum.INDEX_OUT_OF_BOUNDS_EXCEPTION.getMessage(), indexOutOfBoundsException); LogUtil.logExceptionStackInfo(CommonResponseEnum.INDEX_OUT_OF_BOUNDS_EXCEPTION.getMessage(), indexOutOfBoundsException);
// // recodeBusinessExceptionLog(indexOutOfBoundsException, CommonResponseEnum.INDEX_OUT_OF_BOUNDS_EXCEPTION.getMessage()); // recodeBusinessExceptionLog(indexOutOfBoundsException, CommonResponseEnum.INDEX_OUT_OF_BOUNDS_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.INDEX_OUT_OF_BOUNDS_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(indexOutOfBoundsException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.INDEX_OUT_OF_BOUNDS_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(indexOutOfBoundsException));
// } }
//
// /** /**
// * 前端请求后端,请求中参数的媒体方式不支持异常 * 前端请求后端,请求中参数的媒体方式不支持异常
// * *
// * @param httpMediaTypeNotSupportedException 请求中参数的媒体方式不支持异常 * @param httpMediaTypeNotSupportedException 请求中参数的媒体方式不支持异常
// */ */
// @ExceptionHandler(HttpMediaTypeNotSupportedException.class) @ExceptionHandler(HttpMediaTypeNotSupportedException.class)
// public HttpResult<String> httpMediaTypeNotSupportedExceptionHandler(HttpMediaTypeNotSupportedException httpMediaTypeNotSupportedException) { public HttpResult<String> httpMediaTypeNotSupportedExceptionHandler(HttpMediaTypeNotSupportedException httpMediaTypeNotSupportedException) {
// LogUtil.logExceptionStackInfo(CommonResponseEnum.HTTP_MEDIA_TYPE_NOT_SUPPORTED_EXCEPTION.getMessage(), httpMediaTypeNotSupportedException); LogUtil.logExceptionStackInfo(CommonResponseEnum.HTTP_MEDIA_TYPE_NOT_SUPPORTED_EXCEPTION.getMessage(), httpMediaTypeNotSupportedException);
// // 然后提取错误提示信息进行返回 // 然后提取错误提示信息进行返回
// // recodeBusinessExceptionLog(httpMediaTypeNotSupportedException, CommonResponseEnum.HTTP_MEDIA_TYPE_NOT_SUPPORTED_EXCEPTION.getMessage()); // recodeBusinessExceptionLog(httpMediaTypeNotSupportedException, CommonResponseEnum.HTTP_MEDIA_TYPE_NOT_SUPPORTED_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.HTTP_MEDIA_TYPE_NOT_SUPPORTED_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(httpMediaTypeNotSupportedException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.HTTP_MEDIA_TYPE_NOT_SUPPORTED_EXCEPTION, null, ReflectCommonUtil.getMethodDescribeByException(httpMediaTypeNotSupportedException));
// } }
//
// /** /**
// * 前端请求后端,参数校验异常捕捉 * 前端请求后端,参数校验异常捕捉
// * RequestBody注解参数异常 * RequestBody注解参数异常
// * *
// * @param methodArgumentNotValidException 参数校验异常 * @param methodArgumentNotValidException 参数校验异常
// */ */
// @ExceptionHandler(MethodArgumentNotValidException.class) @ExceptionHandler(MethodArgumentNotValidException.class)
// public HttpResult<String> methodArgumentNotValidExceptionHandler(MethodArgumentNotValidException methodArgumentNotValidException) { public HttpResult<String> methodArgumentNotValidExceptionHandler(MethodArgumentNotValidException methodArgumentNotValidException) {
// // 从异常对象中拿到allErrors数据 // 从异常对象中拿到allErrors数据
// String messages = methodArgumentNotValidException.getBindingResult().getAllErrors() String messages = methodArgumentNotValidException.getBindingResult().getAllErrors()
// .stream().map(ObjectError::getDefaultMessage).collect(Collectors.joining("")); .stream().map(ObjectError::getDefaultMessage).collect(Collectors.joining(""));
// // 然后提取错误提示信息进行返回 // 然后提取错误提示信息进行返回
// LogUtil.njcnDebug(log, "参数校验异常,异常为:{}", messages); LogUtil.njcnDebug(log, "参数校验异常,异常为:{}", messages);
// // recodeBusinessExceptionLog(methodArgumentNotValidException, CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION.getMessage()); // recodeBusinessExceptionLog(methodArgumentNotValidException, CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION, messages, ControllerUtil.getMethodArgumentNotValidException(methodArgumentNotValidException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION, messages, ControllerUtil.getMethodArgumentNotValidException(methodArgumentNotValidException));
// } }
//
// /** /**
// * 前端请求后端,参数校验异常捕捉 * 前端请求后端,参数校验异常捕捉
// * PathVariable注解、RequestParam注解参数异常 * PathVariable注解、RequestParam注解参数异常
// * *
// * @param constraintViolationException 参数校验异常 * @param constraintViolationException 参数校验异常
// */ */
// @ExceptionHandler(ConstraintViolationException.class) @ExceptionHandler(ConstraintViolationException.class)
// public HttpResult<String> constraintViolationExceptionExceptionHandler(ConstraintViolationException constraintViolationException) { public HttpResult<String> constraintViolationExceptionExceptionHandler(ConstraintViolationException constraintViolationException) {
// String exceptionMessage = constraintViolationException.getMessage(); String exceptionMessage = constraintViolationException.getMessage();
// StringBuilder messages = new StringBuilder(); StringBuilder messages = new StringBuilder();
// if (exceptionMessage.indexOf(StrUtil.COMMA) > 0) { if (exceptionMessage.indexOf(StrUtil.COMMA) > 0) {
// String[] tempMessage = exceptionMessage.split(StrUtil.COMMA); String[] tempMessage = exceptionMessage.split(StrUtil.COMMA);
// Stream.of(tempMessage).forEach(message -> { Stream.of(tempMessage).forEach(message -> {
// messages.append(message.substring(message.indexOf(StrUtil.COLON) + 2)).append(';'); messages.append(message.substring(message.indexOf(StrUtil.COLON) + 2)).append(';');
// }); });
// } else { } else {
// messages.append(exceptionMessage.substring(exceptionMessage.indexOf(StrUtil.COLON) + 2)); messages.append(exceptionMessage.substring(exceptionMessage.indexOf(StrUtil.COLON) + 2));
// } }
// // 然后提取错误提示信息进行返回 // 然后提取错误提示信息进行返回
// LogUtil.njcnDebug(log, "参数校验异常,异常为:{}", messages); LogUtil.njcnDebug(log, "参数校验异常,异常为:{}", messages);
// // recodeBusinessExceptionLog(constraintViolationException, CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION.getMessage()); // recodeBusinessExceptionLog(constraintViolationException, CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION.getMessage());
// List<ConstraintViolation<?>> constraintViolationList = new ArrayList<>(constraintViolationException.getConstraintViolations()); List<ConstraintViolation<?>> constraintViolationList = new ArrayList<>(constraintViolationException.getConstraintViolations());
// ConstraintViolation<?> constraintViolation = constraintViolationList.get(0); ConstraintViolation<?> constraintViolation = constraintViolationList.get(0);
// Class<?> rootBeanClass = constraintViolation.getRootBeanClass(); Class<?> rootBeanClass = constraintViolation.getRootBeanClass();
// //判断校验参数异常捕获的根源是controller还是service处 //判断校验参数异常捕获的根源是controller还是service处
// if (rootBeanClass.getName().endsWith("Controller")) { if (rootBeanClass.getName().endsWith("Controller")) {
// String methodName = constraintViolation.getPropertyPath().toString().substring(0, constraintViolation.getPropertyPath().toString().indexOf(StrUtil.DOT)); String methodName = constraintViolation.getPropertyPath().toString().substring(0, constraintViolation.getPropertyPath().toString().indexOf(StrUtil.DOT));
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION, messages.toString(), ReflectCommonUtil.getMethodDescribeByClassAndMethodName(rootBeanClass, methodName)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION, messages.toString(), ReflectCommonUtil.getMethodDescribeByClassAndMethodName(rootBeanClass, methodName));
// } else { } else {
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION, messages.toString(), ReflectCommonUtil.getMethodDescribeByException(constraintViolationException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.METHOD_ARGUMENT_NOT_VALID_EXCEPTION, messages.toString(), ReflectCommonUtil.getMethodDescribeByException(constraintViolationException));
// } }
//
// } }
//
//
// /** /**
// * 索引下标越界异常捕捉 * 索引下标越界异常捕捉
// * *
// * @param illegalArgumentException 参数校验异常 * @param illegalArgumentException 参数校验异常
// */ */
// @ExceptionHandler(IllegalArgumentException.class) @ExceptionHandler(IllegalArgumentException.class)
// public HttpResult<String> handleIndexOutOfBoundsException(IllegalArgumentException illegalArgumentException) { public HttpResult<String> handleIndexOutOfBoundsException(IllegalArgumentException illegalArgumentException) {
// LogUtil.logExceptionStackInfo(CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION.getMessage(), illegalArgumentException); LogUtil.logExceptionStackInfo(CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION.getMessage(), illegalArgumentException);
// // recodeBusinessExceptionLog(illegalArgumentException, CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION.getMessage()); // recodeBusinessExceptionLog(illegalArgumentException, CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION, illegalArgumentException.getMessage(), ReflectCommonUtil.getMethodDescribeByException(illegalArgumentException)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.ILLEGAL_ARGUMENT_EXCEPTION, illegalArgumentException.getMessage(), ReflectCommonUtil.getMethodDescribeByException(illegalArgumentException));
// } }
//
//
// /** /**
// * 未声明异常捕捉 * 未声明异常捕捉
// * *
// * @param exception 未声明异常 * @param exception 未声明异常
// */ */
// @ExceptionHandler(Exception.class) @ExceptionHandler(Exception.class)
// public HttpResult<String> handleException(Exception exception) { public HttpResult<String> handleException(Exception exception) {
// //针对fallbackFactory降级异常特殊处理 //针对fallbackFactory降级异常特殊处理
// Exception tempException = exception; Exception tempException = exception;
// String exceptionCause = CommonResponseEnum.UN_DECLARE.getMessage(); String exceptionCause = CommonResponseEnum.UN_DECLARE.getMessage();
// String code = CommonResponseEnum.UN_DECLARE.getCode(); String code = CommonResponseEnum.UN_DECLARE.getCode();
// if (exception instanceof NestedServletException) { if (exception instanceof NestedServletException) {
// Throwable cause = exception.getCause(); Throwable cause = exception.getCause();
// if (cause instanceof AssertionError) { if (cause instanceof AssertionError) {
// if (cause.getCause() instanceof BusinessException) { if (cause.getCause() instanceof BusinessException) {
// tempException = (BusinessException) cause.getCause(); tempException = (BusinessException) cause.getCause();
// BusinessException tempBusinessException = (BusinessException) cause.getCause(); BusinessException tempBusinessException = (BusinessException) cause.getCause();
// exceptionCause = tempBusinessException.getMessage(); exceptionCause = tempBusinessException.getMessage();
// code = tempBusinessException.getCode(); code = tempBusinessException.getCode();
}
}
}
LogUtil.logExceptionStackInfo(exceptionCause, tempException);
// recodeBusinessExceptionLog(exception, exceptionCause);
//判断方法上是否有自定义注解,做特殊处理
// Method method = ReflectCommonUtil.getMethod(exception);
// if (!Objects.isNull(method)){
// if(method.isAnnotationPresent(ReturnMsg.class)){
// return HttpResultUtil.assembleResult(code, null, StrFormatter.format("{}",exceptionCause));
// } // }
// } // }
// } return HttpResultUtil.assembleResult(code, null, StrFormatter.format("{}{}{}", ReflectCommonUtil.getMethodDescribeByException(tempException), StrUtil.C_COMMA, exceptionCause));
// LogUtil.logExceptionStackInfo(exceptionCause, tempException); }
// // recodeBusinessExceptionLog(exception, exceptionCause);
// //判断方法上是否有自定义注解,做特殊处理
//// Method method = ReflectCommonUtil.getMethod(exception); /**
//// if (!Objects.isNull(method)){ * json解析异常
//// if(method.isAnnotationPresent(ReturnMsg.class)){ *
//// return HttpResultUtil.assembleResult(code, null, StrFormatter.format("{}",exceptionCause)); * @param jsonException json参数
//// } */
//// } @ExceptionHandler(JSONException.class)
// return HttpResultUtil.assembleResult(code, null, StrFormatter.format("{}{}{}", ReflectCommonUtil.getMethodDescribeByException(tempException), StrUtil.C_COMMA, exceptionCause)); public HttpResult<String> handleIndexOutOfBoundsException(JSONException jsonException) {
// } LogUtil.logExceptionStackInfo(CommonResponseEnum.JSON_CONVERT_EXCEPTION.getMessage(), jsonException);
// // recodeBusinessExceptionLog(jsonException, CommonResponseEnum.JSON_CONVERT_EXCEPTION.getMessage());
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.JSON_CONVERT_EXCEPTION, jsonException.getMessage(), ReflectCommonUtil.getMethodDescribeByException(jsonException));
// /** }
// * json解析异常 /*
// * private void recodeBusinessExceptionLog(Exception businessException, String methodDescribe) {
// * @param jsonException json参数 HttpServletRequest httpServletRequest = HttpServletUtil.getRequest();
// */ Future<?> future = executor.submit(() -> {
// @ExceptionHandler(JSONException.class) HttpServletUtil.setRequest(httpServletRequest);
// public HttpResult<String> handleIndexOutOfBoundsException(JSONException jsonException) { sysLogAuditService.recodeBusinessExceptionLog(businessException, methodDescribe);
// LogUtil.logExceptionStackInfo(CommonResponseEnum.JSON_CONVERT_EXCEPTION.getMessage(), jsonException); });
// // recodeBusinessExceptionLog(jsonException, CommonResponseEnum.JSON_CONVERT_EXCEPTION.getMessage()); try {
// return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.JSON_CONVERT_EXCEPTION, jsonException.getMessage(), ReflectCommonUtil.getMethodDescribeByException(jsonException)); // 抛出 ExecutionException
// } future.get();
///* } catch (ExecutionException | InterruptedException e) {
// private void recodeBusinessExceptionLog(Exception businessException, String methodDescribe) { log.error("保存审计日志异常,异常为:" + e.getMessage());
// HttpServletRequest httpServletRequest = HttpServletUtil.getRequest(); }
// Future<?> future = executor.submit(() -> { }*/
// HttpServletUtil.setRequest(httpServletRequest);
// sysLogAuditService.recodeBusinessExceptionLog(businessException, methodDescribe); }
// });
// try {
// // 抛出 ExecutionException
// future.get();
// } catch (ExecutionException | InterruptedException e) {
// log.error("保存审计日志异常,异常为:" + e.getMessage());
// }
// }*/
//
//}

View File

@@ -53,6 +53,7 @@ import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* Description: * Description:
@@ -81,6 +82,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
private final PqsUsersetService pqsUsersetService; private final PqsUsersetService pqsUsersetService;
private final PqsUserService pqsUserService; private final PqsUserService pqsUserService;
private final PqLinedetailMapper pqLinedetailMapper; private final PqLinedetailMapper pqLinedetailMapper;
private final List<Integer> WAVETYPE_LIST= Stream.of(1,3).collect(Collectors.toList());
@Value("${SYS_TYPE_ZT}") @Value("${SYS_TYPE_ZT}")
private String sysTypeZt; private String sysTypeZt;
@@ -183,12 +185,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
for(List<Integer> itemIds : listIds){ for(List<Integer> itemIds : listIds){
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery() List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
.between(PqsEventdetail::getTimeid,startTime, endTime) .between(PqsEventdetail::getTimeid,startTime, endTime)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.in(PqsEventdetail::getLineid,listIds).list(); .in(PqsEventdetail::getLineid,listIds).list();
eventdetails.addAll(temp); eventdetails.addAll(temp);
} }
}else { }else {
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery() List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
.between(PqsEventdetail::getTimeid, startTime, endTime) .between(PqsEventdetail::getTimeid, startTime, endTime)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.in(PqsEventdetail::getLineid,deptslineIds).list(); .in(PqsEventdetail::getLineid,deptslineIds).list();
eventdetails.addAll(temp); eventdetails.addAll(temp);
} }
@@ -286,12 +290,14 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
for(List<Integer> itemIds : listIds){ for(List<Integer> itemIds : listIds){
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery() List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
.between(PqsEventdetail::getTimeid, startTime, endTime) .between(PqsEventdetail::getTimeid, startTime, endTime)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.in(PqsEventdetail::getLineid,listIds).list(); .in(PqsEventdetail::getLineid,listIds).list();
eventdetails.addAll(temp); eventdetails.addAll(temp);
} }
}else { }else {
List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery() List<PqsEventdetail> temp = pqsEventdetailService.lambdaQuery()
.between(PqsEventdetail::getTimeid, startTime, endTime) .between(PqsEventdetail::getTimeid, startTime, endTime)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.in(PqsEventdetail::getLineid,deptslineIds).list(); .in(PqsEventdetail::getLineid,deptslineIds).list();
eventdetails.addAll(temp); eventdetails.addAll(temp);
} }
@@ -382,6 +388,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
queryWrapper.lambda() queryWrapper.lambda()
.between(PqsEventdetail::getTimeid, startTime, endTime) .between(PqsEventdetail::getTimeid, startTime, endTime)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.and(ew->{ .and(ew->{
for(List<Integer> pList: idPartitions){ for(List<Integer> pList: idPartitions){
ew.or(w->w.in(PqsEventdetail::getLineid, pList)); ew.or(w->w.in(PqsEventdetail::getLineid, pList));
@@ -393,6 +400,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
queryWrapper.lambda() queryWrapper.lambda()
.between(PqsEventdetail::getTimeid, startTime, endTime) .between(PqsEventdetail::getTimeid, startTime, endTime)
.in(PqsEventdetail::getLineid, deptslineIds) .in(PqsEventdetail::getLineid, deptslineIds)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.orderByDesc(PqsEventdetail::getTimeid); .orderByDesc(PqsEventdetail::getTimeid);
} }
//查询需要发送短息处理的部门反推监测点 //查询需要发送短息处理的部门反推监测点
@@ -473,6 +481,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
LambdaQueryWrapper<PqsEventdetail> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PqsEventdetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime) lambdaQueryWrapper.between(PqsEventdetail::getTimeid, startTime, endTime)
.in(PqsEventdetail::getLineid, deptslineIds) .in(PqsEventdetail::getLineid, deptslineIds)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag)); .and(wrapper -> wrapper.eq(PqsEventdetail::getLookFlag, 0).or().isNull(PqsEventdetail::getLookFlag));
if (Objects.nonNull(largeScreenCountParam.getEventDeep())) { if (Objects.nonNull(largeScreenCountParam.getEventDeep())) {
if (largeScreenCountParam.getEventDeep() == 0) { if (largeScreenCountParam.getEventDeep() == 0) {
@@ -556,6 +565,7 @@ public class LargeScreenCountServiceImpl implements LargeScreenCountService {
List<Integer> deptslineIds = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList()); List<Integer> deptslineIds = v.stream().map(PqsDeptsline::getLineIndex).collect(Collectors.toList());
List<PqsEventdetail> eventdetails = pqsEventdetailService.lambdaQuery() List<PqsEventdetail> eventdetails = pqsEventdetailService.lambdaQuery()
.between(PqsEventdetail::getTimeid, startTime, endTime) .between(PqsEventdetail::getTimeid, startTime, endTime)
.in(PqsEventdetail::getWavetype,WAVETYPE_LIST)
.in(PqsEventdetail::getLineid, deptslineIds).list(); .in(PqsEventdetail::getLineid, deptslineIds).list();
mapCountVO.setEventCount(eventdetails.size()); mapCountVO.setEventCount(eventdetails.size());
List<EventDetailVO> change = change(eventdetails); List<EventDetailVO> change = change(eventdetails);