对接审批实例查询
对接审批实例查询
如果业务单据不冗余审批状态,可以通过查询审批实例来获取审批状态,调用时需要传入审批类型编码与业务单据 ID,示例如下:
@FunctionImplpublic class QueryTradeOrderDetailByIdFuncImpl implements QueryTradeOrderDetailByIdFunc {
@Autowired private ApprovalWorkflow approvalWorkflow;
@Override public TradeOrderBO execute(TradeOrderBO tradeOrderBO) { TradeOrderBO tradeOrder = DS.findById(TradeOrderBO.class, tradeOrderBO.getId()); ApprovalWorkflowInstance instance = approvalWorkflow.getInstance("替换为对应流程类型编码", tradeOrder.getId().toString()); tradeOrder.setAuditStatus(instance.getProcessStatus().name()); return tradeOrder; }
}批量查询示例:
@FunctionImplpublic class TradeOrderPageFuncImpl implements TradeOrderPageFunc {
@Autowired private ApprovalWorkflow approvalWorkflow;
@Override public Paging<TradeOrderBO> execute(QTradeOrderBO order) { Paging<TradeOrderBO> tradeOrderPaging = DS.paging(order); List<TradeOrderBO> tradeOrderList = tradeOrderPaging.getData(); List<String> ids = tradeOrderList.stream().map(TradeOrderBO::getId).map(Object::toString).collect(Collectors.toList());
List<ApprovalWorkflowInstance> instances = approvalWorkflow.getInstanceList("流程类型编码", ids); Map<String, ApprovalWorkflowInstance> instanceMap = instances.stream().collect(Collectors.toMap(ApprovalWorkflowInstance::getBizId, inst -> inst));
for (TradeOrderBO tradeOrder : tradeOrderList) { ApprovalWorkflowInstance matchedInstance = instanceMap.get(tradeOrder.getId().toString()); if (Objects.nonNull(matchedInstance)) { tradeOrder.setAuditStatus(matchedInstance.getProcessStatus().name()); } }
return tradeOrderPaging; }
}