feat(sj_1.2.0-beta1):增加工作流决策节点模拟上下文校验结果返回

This commit is contained in:
srzou 2024-07-23 09:58:12 +08:00
parent 27e586a5b2
commit e0504999ae
3 changed files with 5 additions and 6 deletions

View File

@ -91,7 +91,7 @@ public class WorkflowController {
@PostMapping("/check-node-expression")
@LoginRequired(role = RoleEnum.USER)
public Pair<Integer, String> checkNodeExpression(@RequestBody @Validated CheckDecisionVO checkDecisionVO) {
public Pair<Integer, Object> checkNodeExpression(@RequestBody @Validated CheckDecisionVO checkDecisionVO) {
return workflowService.checkNodeExpression(checkDecisionVO);
}

View File

@ -37,7 +37,7 @@ public interface WorkflowService {
List<WorkflowResponseVO> getWorkflowNameList(String keywords, Long workflowId, String groupName);
Pair<Integer, String> checkNodeExpression(CheckDecisionVO decisionVO);
Pair<Integer, Object> checkNodeExpression(CheckDecisionVO decisionVO);
void importWorkflowTask(@Valid @NotEmpty(message = "导入数据不能为空") List<WorkflowRequestVO> requests);

View File

@ -296,19 +296,18 @@ public class WorkflowServiceImpl implements WorkflowService {
}
@Override
public Pair<Integer, String> checkNodeExpression(CheckDecisionVO decisionVO) {
public Pair<Integer, Object> checkNodeExpression(CheckDecisionVO decisionVO) {
try {
ExpressionEngine realExpressionEngine = ExpressionTypeEnum.valueOf(decisionVO.getExpressionType());
Assert.notNull(realExpressionEngine, () -> new SnailJobServerException("表达式引擎不存在"));
ExpressionInvocationHandler invocationHandler = new ExpressionInvocationHandler(realExpressionEngine);
ExpressionEngine expressionEngine = ExpressionFactory.getExpressionEngine(invocationHandler);
expressionEngine.eval(decisionVO.getNodeExpression(), decisionVO.getCheckContent());
Object eval = expressionEngine.eval(decisionVO.getNodeExpression(), decisionVO.getCheckContent());
return Pair.of(StatusEnum.YES.getStatus(), eval);
} catch (Exception e) {
SnailJobLog.LOCAL.error("表达式异常. [{}]", decisionVO.getNodeExpression(), e);
return Pair.of(StatusEnum.NO.getStatus(), e.getMessage());
}
return Pair.of(StatusEnum.YES.getStatus(), StrUtil.EMPTY);
}
@Override