跳转到内容

对接发起审批

对接发起审批

需要提前定义好审批类型,在进行审批对接时,需要将审批类型编码、业务单据 ID 与审批流需要使用上下文变量传递给审批流引擎,示例如下:

@FunctionImpl
@Slf4j
public class TradeOrderCreateFuncImpl implements TradeOrderCreateFunc {
@Autowired
private ApprovalWorkflow approvalWorkflow;
@DSTransaction
@Override
public TradeOrderBO execute(TradeOrderBO order) {
TradeOrderBO bo = new TradeOrderBO();
bo.setShoppingOrderId(order.getShoppingOrderId());
bo.setPrice(order.getPrice());
bo.setQuantity(order.getQuantity());
bo.setFlowKey(order.getFlowKey());
bo.setProjectName(order.getProjectName());
bo.setStatus(OrderStatus.Un_Pay);
bo.setAuditStatus(AuditStatus.UNDER_AUDIT);
bo.setCreatedAt(new Date());
bo.setUpdatedAt(new Date());
DS.create(bo);
ApprovalWorkflowContext context = new ApprovalWorkflowContext();
context.setFlowKey("对应审批类型编码");
// 将业务模型传入上下文,业务模型需要有 id 和钉钉审批表单相关字段值
context.setBizObj(bo);
// 返回的 ApprovalWorkflowResult 会带有审批实例 ID
ApprovalWorkflowResult flowResult = approvalWorkflow.start(context);
log.info("flowResult:{}", JSON.toJSON(flowResult));
return bo;
}
}