skyouc
2025-05-12 7977627e83ce88cb34dfd6e3243ef790b493bd70
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -1,14 +1,18 @@
package com.vincent.rsf.server.manager.schedules;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.config.SysStockProperties;
import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.common.utils.DateUtils;
import com.vincent.rsf.server.manager.controller.params.WarehouseAreaParam;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.enums.PakinIOStatus;
import com.vincent.rsf.server.manager.enums.WarehouseAreasType;
import com.vincent.rsf.server.manager.service.*;
import com.vincent.rsf.server.manager.service.impl.WarehouseAreasItemServiceImpl;
import com.vincent.rsf.server.system.constant.GlobalConfigCode;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.entity.Config;
@@ -60,6 +64,10 @@
    private WaitPakinItemLogService waitPakinItemLogService;
    @Autowired
    private ConfigService configService;
    @Autowired
    private WarehouseAreasService warehouseAreasService;
    @Autowired
    private WarehouseAreasItemServiceImpl warehouseAreasItemService;
    /**
@@ -68,32 +76,64 @@
     * @description: 直接组托开关为true,将收货单直接加入临时库存
     * @version 1.0
     */
//    @Scheduled(cron = "0 0/05 * * * ?  ")
    @Scheduled(cron = "0/25 * * * * ?")
    @Transactional(rollbackFor = Exception.class)
    public synchronized void IgnoreReceipt() {
        Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.DIRECT_WAIT_PAKIN));
        if (Objects.isNull(config)) {
            return;
        }
        if (!Boolean.getBoolean(config.getVal())) {
        if (!Boolean.parseBoolean(config.getVal())) {
            return;
        }
        List<AsnOrder> orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val));
        if (orders.isEmpty()) {
        if (!orders.isEmpty()) {
            for (AsnOrder order : orders) {
                List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId()));
                if (orderItems.isEmpty()) {
                    return;
                }
                List<WarehouseAreasItem> items = new ArrayList<>();
                for (AsnOrderItem item : orderItems) {
                    WarehouseAreas one = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
                            .eq(WarehouseAreas::getType, WarehouseAreasType.WAREHOUSE_AREAS_TYPE_RECEIPT.type), false);
                    Long areaId = Objects.isNull(one) ? null : one.getId();
                    String areaName = Objects.isNull(one) ? null : one.getName();
                    WarehouseAreasItem param = new WarehouseAreasItem();
                    BeanUtils.copyProperties(item, param);
                    param.setAreaId(one.getId())
                            .setAsnCode(order.getCode())
                            .setAreaId(areaId)
                            .setAreaName(areaName)
                            .setAsnId(order.getId());
                    items.add(param);
                    if (!asnOrderItemService.update(new LambdaUpdateWrapper<AsnOrderItem>().set(AsnOrderItem::getQty, item.getAnfme()).eq(AsnOrderItem::getId, item.getId()))) {
                        throw new CoolException("收货单明细完成数量修改失败!!");
            }
        }
                if (!warehouseAreasItemService.saveBatch(items)) {
                    throw new CoolException("收货单保存至收货区执行失败!!");
    }
                if (!asnOrderService.update(new LambdaUpdateWrapper<AsnOrder>()
                        .set(AsnOrder::getQty, order.getQty())
                        .set(AsnOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_RECEIPT_DONE.val)
                        .eq(AsnOrder::getId, order.getId()))) {
                    throw new CoolException("收货单状态修改失败!!");
                }
            }
        }
    }
    /**
     * @return
     * @throws
     * @author Ryan
     * @description  根据PO单据生成ASN单,自动生成ASN单为全量生成
     * @throws
     * @return
     * @time 2025/3/3 15:44
     */
    @Scheduled(cron = "0 0/05 * * * ?  ")
@@ -176,10 +216,10 @@
    }
    /**
     * @author Ryan
     * @description 生成物料标签
     * @param
     * @return
     * @author Ryan
     * @description 生成物料标签
     * @time 2025/3/29 12:35
     */
    @Scheduled(cron = "0 0/05 * * * ?  ")
@@ -208,10 +248,10 @@
    }
    /**
     * @author Ryan
     * @description 组拖历史档
     * @param
     * @return
     * @author Ryan
     * @description 组拖历史档
     * @time 2025/3/29 12:36
     */
    @Scheduled(cron = "0/25 * * * * ?")