skyouc
5 天以前 e046dba174365eb8934ee1e4206f09821145e876
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/timer/OrderTimer.java
@@ -31,65 +31,59 @@
    @Autowired
    private OrderDetlFieldLogService orderDetlFieldLogService;
    @Scheduled(cron = "0/3 * * * * ? ")
    @Scheduled(cron = "0/13 * * * * ? ")
    @Transactional(rollbackFor = Exception.class)
    public void orderToHistory() {
        InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
        try {
            List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderSettle, OrderSettleType.COMPLETE.val()));
            if (list.isEmpty()) {
                return;
        List<Order> list = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getOrderSettle, OrderSettleType.COMPLETE.val()));
        if (list.isEmpty()) {
            return;
        }
        for (Order order : list) {
            //转历史档
            OrderLog orderLog = new OrderLog();
            orderLog.sync(order);
            orderLog.setOrderId(order.getId());
            orderLog.setId(null);
            if (!orderLogService.save(orderLog)) {
                throw new CoolException("订单转历史档失败");
            }
            for (Order order : list) {
                //转历史档
                OrderLog orderLog = new OrderLog();
                orderLog.sync(order);
                if (!orderLogService.save(orderLog)) {
                    throw new CoolException("订单转历史档失败");
            //订单明细转历史档
            List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
                    .eq(OrderDetl::getOrderId, order.getId()));
            for (OrderDetl orderDetl : orderDetls) {
                OrderDetlLog orderDetlLog = new OrderDetlLog();
                orderDetlLog.sync(orderDetl);
                orderDetlLog.setId(null);
                if(!orderDetlLogService.save(orderDetlLog)) {
                    throw new CoolException("订单明细转历史档失败");
                }
                //订单明细转历史档
                List<OrderDetl> orderDetls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
                for (OrderDetl orderDetl : orderDetls) {
                    OrderDetlLog orderDetlLog = new OrderDetlLog();
                    orderDetlLog.sync(orderDetl);
                    if(!orderDetlLogService.save(orderDetlLog)) {
                        throw new CoolException("订单明细转历史档失败");
                //明细扩展字段转历史档
                List<OrderDetlField> orderDetlFields = orderDetlFieldService.list(new LambdaQueryWrapper<OrderDetlField>().eq(OrderDetlField::getDetlId, orderDetl.getId()));
                for (OrderDetlField orderDetlField : orderDetlFields) {
                    OrderDetlFieldLog orderDetlFieldLog = new OrderDetlFieldLog();
                    orderDetlFieldLog.sync(orderDetlField);
                    if(!orderDetlFieldLogService.save(orderDetlFieldLog)) {
                        throw new CoolException("明细扩展字段转历史档失败");
                    }
                    //明细扩展字段转历史档
                    List<OrderDetlField> orderDetlFields = orderDetlFieldService.list(new LambdaQueryWrapper<OrderDetlField>().eq(OrderDetlField::getDetlId, orderDetl.getId()));
                    for (OrderDetlField orderDetlField : orderDetlFields) {
                        OrderDetlFieldLog orderDetlFieldLog = new OrderDetlFieldLog();
                        orderDetlFieldLog.sync(orderDetlField);
                        if(!orderDetlFieldLogService.save(orderDetlFieldLog)) {
                            throw new CoolException("明细扩展字段转历史档失败");
                        }
                        //删除明细扩展字段
                        if (!orderDetlFieldService.removeById(orderDetlField.getId())) {
                            throw new CoolException("删除明细扩展字段失败");
                        }
                    }
                    //删除订单明细
                    if (!orderDetlService.removeById(orderDetl)) {
                        throw new CoolException("删除订单明细失败");
                    //删除明细扩展字段
                    if (!orderDetlFieldService.removeById(orderDetlField.getId())) {
                        throw new CoolException("删除明细扩展字段失败");
                    }
                }
                //删除订单
                if (!orderService.removeById(order.getId())) {
                    throw new CoolException("删除订单失败");
                //删除订单明细
                if (!orderDetlService.removeById(orderDetl)) {
                    throw new CoolException("删除订单明细失败");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        }finally {
            InterceptorIgnoreHelper.clearIgnoreStrategy();
            //删除订单
            if (!orderService.removeById(order.getId())) {
                throw new CoolException("删除订单失败");
            }
        }
    }