| | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.concurrent.locks.ReentrantLock; |
| | | |
| | | /** |
| | | * 入库更新完成回报 |
| | |
| | | @Autowired |
| | | private ErpSqlServer erpSqlServer; |
| | | |
| | | private final ReentrantLock lock = new ReentrantLock(); |
| | | |
| | | @Transactional(rollbackFor = Throwable.class) |
| | | @Scheduled(cron = "${erp.refreshtime}") |
| | | @Scheduled(cron = "0/10 * * * * ?") |
| | | public void pakinOrderComplete() { |
| | | //log.info("开始入库更新完成回报"); |
| | | // 拿不到锁直接跳过(关键) |
| | | if (!lock.tryLock()) { |
| | | System.out.println("上一次任务未执行完,跳过本次"); |
| | | return; |
| | | } |
| | | |
| | | // 所有订单 |
| | | List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); |
| | | try { |
| | | List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L).last("TOP 2")); |
| | | DocType docType; |
| | | for (Order order : orders) { |
| | | |
| | |
| | | throw new CoolException("服务器内部错误,请联系管理员"); |
| | | } |
| | | } |
| | | } finally { |
| | | lock.unlock(); |
| | | } |
| | | } |
| | | |
| | | |