verou
2025-03-10 dfe8dff347916be46691fc5d956c45880c4446de
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
File was renamed from rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/ScheduleJobs.java
@@ -1,15 +1,19 @@
package com.vincent.rsf.server.manager.utils;
package com.vincent.rsf.server.manager.schedules;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.config.SysStockProperties;
import com.vincent.rsf.server.common.utils.DateUtils;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -38,6 +42,9 @@
    @Autowired
    private AsnOrderItemService asnOrderItemService;
    @Resource
    private SysStockProperties flowProperties;
    /**
     * @author Ryan
     * @description  根据PO单据生成ASN单,自动生成ASN单为全量生成
@@ -48,6 +55,10 @@
    @Scheduled(cron = "0 0/30 * * * ?  ")
    @Transactional(rollbackFor = Exception.class)
    public void genAsnOrder() {
        //判断是否开启自动生成ASN单据
        if (!flowProperties.getFlagAutoAsn()) {
            return;
        }
        //获取未生成ASN单据
        List<Purchase> purchases = purchaseService.list(new LambdaQueryWrapper<Purchase>().eq(Purchase::getStatus, 0));
        //采购单为空,直接跳出当前任务
@@ -67,7 +78,10 @@
                throw new CoolException("子列表数据为空,请查询PO单是否正确录入!!");
            }
            AsnOrder order = new AsnOrder();
            //根据编码规则生成ASN单号
            String code = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, purchase);
            order.setAnfme(purchase.getAnfme())
                    .setCode(code)
                    .setArrTime(purchase.getPreArr())
                    .setQty(purchase.getQty())
                    .setPoId(purchase.getId())