// 生成报价方案时会查询几个询价订单相关表,如果异步线程池速度比主线程速度快,则有一定概率查询不到数据会导致报价方案生成失败,
// 采用注册事务同步处理(主线程提交事务之后,再启异步线程生成报价方案)
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
@Override
public void afterCommit() {
// 事务提交完毕时,触发生成报价方案generateQuotationScheme
threadPoolTaskExecutor.getThreadPoolExecutor().submit(() -> {
try {
orderQuotationSchemeService.generateQuotationScheme(orderInfoDB, orderInfoGoodsRequest.getFreightInsurance(), priceLockInsurance.getPrice(), username, orderInfoCarModels.size());
} catch (Exception e) {
log.error("用户:{}根据询价订单编号:{}在生成报价方案时发生异常", username, orderNo, e);
}
});
}
});