skyouc
6 天以前 273f2e5d3941b0e720e5eabd7dba9cfc042c3267
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -7,6 +7,7 @@
import com.vincent.rsf.server.manager.entity.AsnOrderItemLog;
import com.vincent.rsf.server.manager.entity.AsnOrderLog;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.enums.OrderType;
import com.vincent.rsf.server.manager.service.AsnOrderItemLogService;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.manager.service.AsnOrderLogService;
@@ -19,7 +20,6 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -54,10 +54,45 @@
    @Scheduled(cron = "0 0/05 * * * ?  ")
    @Transactional(rollbackFor = Exception.class)
    public void moveOrderToLog() {
        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val));
        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()
                        .eq(AsnOrder::getType, OrderType.ORDER_IN.type)
                .eq(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val));
        if (asnOrders.isEmpty()) {
            return;
        }
        moveOrderToLog(asnOrders, OrderType.ORDER_IN.type);
    }
    /**
    * @author Ryan
    * @description 出库单完成后,状态修改
    * @param
    * @return
    * @time 2025/6/16 08:35
    */
    @Scheduled(cron = "0/30 * * * * ?  ")
    @Transactional(rollbackFor = Exception.class)
    public void outStockComplete() {
        List<AsnOrder> asnOrders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>()
                        .eq(AsnOrder::getType, OrderType.ORDER_OUT.type)
                .apply("anfme=work_qty")
        );
        if (asnOrders.isEmpty()) {
            return;
        }
        moveOrderToLog(asnOrders, OrderType.ORDER_OUT.type);
    }
    /**
     * @param
     * @param type
     * @return
     * @author Ryan
     * @description 添加历史单据
     * @time 2025/6/16 08:56
     */
    private void moveOrderToLog(List<AsnOrder> asnOrders, String type) {
        Set<Long> longSet = asnOrders.stream().map(AsnOrder::getId).collect(Collectors.toSet());
        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getAsnId, longSet));
        if (orderItems.isEmpty()) {
@@ -66,6 +101,10 @@
        for (AsnOrder order : asnOrders) {
            AsnOrderLog orderLog = new AsnOrderLog();
            if (type.equals(OrderType.ORDER_OUT.type)) {
                order.setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
                order.setQty(order.getWorkQty());
            }
            BeanUtils.copyProperties(order, orderLog);
            orderLog.setId(null);
            orderLog.setAsnId(order.getId());
@@ -86,7 +125,7 @@
            });
            if (!asnOrderItemLogService.saveBatch(logs)) {
                throw new CoolException("通知单明细历史档保存失败!!");
                throw new CoolException("单据明细历史档保存失败!!");
            }
        }
@@ -97,4 +136,6 @@
            throw new CoolException("原单据删除失败!!");
        }
    }
}