diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/FlowableExceptionResultHandlerAdvice.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/FlowableExceptionResultHandlerAdvice.java new file mode 100644 index 000000000..a97013348 --- /dev/null +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/FlowableExceptionResultHandlerAdvice.java @@ -0,0 +1,35 @@ +package cn.axzo.workflow.server.advice; + +import cn.axzo.framework.autoconfigure.web.exception.RespErrorCodeMappingProperties; +import cn.axzo.framework.autoconfigure.web.exception.handler.AbstractExceptionApiResultHandler; +import cn.axzo.framework.domain.web.code.IRespCode; +import cn.axzo.framework.domain.web.code.RespCode; +import cn.axzo.workflow.core.common.exception.WorkflowEngineException; +import org.flowable.common.engine.api.FlowableException; +import org.springframework.stereotype.Component; + +import java.util.Objects; + +import static cn.axzo.framework.domain.web.code.BaseCode.UNAVAILABLE_FOR_LEGAL_REASONS; + +/** + * TODO + * + * @author wangli + * @since 2023/12/8 12:52 + */ +@Component +public class FlowableExceptionResultHandlerAdvice extends AbstractExceptionApiResultHandler { + public FlowableExceptionResultHandlerAdvice(RespErrorCodeMappingProperties properties) { + super(properties); + } + + @Override + protected IRespCode decode(FlowableException ex, IRespCode fallbackCode) { + if (Objects.nonNull(ex.getCause()) && ex.getCause() instanceof WorkflowEngineException) { + return new RespCode(UNAVAILABLE_FOR_LEGAL_REASONS.getCode(), ex.getCause().getMessage()); + } + ex.printStackTrace(); + return new RespCode(UNAVAILABLE_FOR_LEGAL_REASONS.getCode(), ex.getMessage()); + } +} diff --git a/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/WorkflowExceptionResultHandlerAdvice.java b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/WorkflowExceptionResultHandlerAdvice.java new file mode 100644 index 000000000..6b13e0579 --- /dev/null +++ b/workflow-engine-server/src/main/java/cn/axzo/workflow/server/advice/WorkflowExceptionResultHandlerAdvice.java @@ -0,0 +1,27 @@ +package cn.axzo.workflow.server.advice; + +import cn.axzo.framework.autoconfigure.web.exception.RespErrorCodeMappingProperties; +import cn.axzo.framework.autoconfigure.web.exception.handler.AbstractExceptionApiResultHandler; +import cn.axzo.framework.domain.web.code.IRespCode; +import cn.axzo.framework.domain.web.code.RespCode; +import cn.axzo.workflow.core.common.exception.WorkflowEngineException; +import org.springframework.stereotype.Component; + +/** + * TODO + * + * @author wangli + * @since 2023/12/8 12:52 + */ +@Component +public class WorkflowExceptionResultHandlerAdvice extends AbstractExceptionApiResultHandler { + public WorkflowExceptionResultHandlerAdvice(RespErrorCodeMappingProperties properties) { + super(properties); + } + + @Override + protected IRespCode decode(WorkflowEngineException ex, IRespCode fallbackCode) { + ex.printStackTrace(); + return new RespCode(ex.getCode(), ex.getMessage()); + } +}