跳转到内容

对接审批实例查询

对接审批实例查询

如果业务单据不冗余审批状态,可以通过查询审批实例来获取审批状态,调用时需要传入审批类型编码与业务单据 ID,示例如下:

@FunctionImpl
public 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;
}
}

批量查询示例:

@FunctionImpl
public 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;
}
}