对接发起审批
对接发起审批
需要提前定义好审批类型,在进行审批对接时,需要将审批类型编码、业务单据 ID 与审批流需要使用上下文变量传递给审批流引擎,示例如下:
@FunctionImpl@Slf4jpublic 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; }}