feat 员工调动记录
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
package com.ruoyi.framework.web.exception;
|
||||
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
import com.ruoyi.common.exception.DemoModeException;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.html.EscapeUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -11,13 +18,8 @@ import org.springframework.web.bind.MissingPathVariableException;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.domain.AjaxResult;
|
||||
import com.ruoyi.common.core.text.Convert;
|
||||
import com.ruoyi.common.exception.DemoModeException;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.common.utils.StringUtils;
|
||||
import com.ruoyi.common.utils.html.EscapeUtil;
|
||||
|
||||
import java.sql.SQLIntegrityConstraintViolationException;
|
||||
|
||||
/**
|
||||
* 全局异常处理器
|
||||
@@ -97,8 +99,16 @@ public class GlobalExceptionHandler
|
||||
public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request)
|
||||
{
|
||||
String requestURI = request.getRequestURI();
|
||||
String message = e.getMessage();
|
||||
|
||||
// 处理数据库唯一键冲突(MyBatis将SQL异常包装在RuntimeException中)
|
||||
if (message != null && message.contains("uk_staff_transfer_date")) {
|
||||
log.error("请求地址'{}',员工调动记录唯一键冲突", requestURI);
|
||||
return AjaxResult.error("该调动记录已存在(同一员工在同一天不能有相同的调动前部门和调动后部门)");
|
||||
}
|
||||
|
||||
log.error("请求地址'{}',发生未知异常.", requestURI, e);
|
||||
return AjaxResult.error(e.getMessage());
|
||||
return AjaxResult.error(message);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -142,4 +152,23 @@ public class GlobalExceptionHandler
|
||||
{
|
||||
return AjaxResult.error("演示模式,不允许操作");
|
||||
}
|
||||
|
||||
/**
|
||||
* 数据库唯一键冲突异常
|
||||
*/
|
||||
@ExceptionHandler(SQLIntegrityConstraintViolationException.class)
|
||||
public AjaxResult handleSQLIntegrityConstraintViolationException(SQLIntegrityConstraintViolationException e, HttpServletRequest request)
|
||||
{
|
||||
String requestURI = request.getRequestURI();
|
||||
String message = e.getMessage();
|
||||
|
||||
// 处理员工调动记录唯一键冲突
|
||||
if (message != null && message.contains("uk_staff_transfer_date")) {
|
||||
log.error("请求地址'{}',员工调动记录唯一键冲突", requestURI);
|
||||
return AjaxResult.error("该调动记录已存在(同一员工在同一天不能有相同的调动前部门和调动后部门)");
|
||||
}
|
||||
|
||||
log.error("请求地址'{}',数据库约束冲突: {}", requestURI, message);
|
||||
return AjaxResult.error("数据冲突,请检查是否重复");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user