cl
1 天以前 f21530d33ca23aeeba2ef073ac6b64422e4e26ca
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/MaterialAutoSchedules.java
@@ -35,7 +35,7 @@
/**
 * 指定物料/空板自动化定时任务:可配置后
 * 1)有库存时自动生成全版出库单;
 * 1)有库存时自动生成全板出库单;
 * 2)该物料出库单自动下发任务;
 * 3)RCS 入库通知时(可选)自动组托,数量可配置;
 * 4)空板(D)库位定时自动生成空板出库任务并下发 RCS(AUTO_EMPTY_OUT_ENABLED)。
@@ -71,7 +71,7 @@
    private WaitPakinItemService waitPakinItemService;
    /**
     * 定时任务1:指定物料有库存时自动生成全版出库单
     * 定时任务1:指定物料有库存时自动生成全板出库单
     * 配置:AUTO_FULL_OUT_MATNR_CODE(物料编码)、AUTO_FULL_OUT_ENABLED(true 启用)
     */
    @Scheduled(cron = "0/35 * * * * ?")
@@ -88,7 +88,7 @@
        String matnrCode = matnrConfig.getVal().trim();
        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, matnrCode));
        if (matnr == null) {
            log.warn("[自动全版出库单] 物料不存在: {}", matnrCode);
//            log.warn("[自动全板出库单] 物料不存在: {}", matnrCode);
            return;
        }
        // 已有该物料未下发的出库单则本轮不再生成,等下发完后再生成(避免重复)
@@ -123,7 +123,7 @@
            try {
                String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, null);
                if (StringUtils.isBlank(ruleCode)) {
                    log.warn("[自动全版出库单] 出库单编码规则未配置");
                    log.warn("[自动全板出库单] 出库单编码规则未配置");
                    break;
                }
                WkOrder order = new WkOrder();
@@ -159,9 +159,9 @@
                if (!asnOrderItemService.save(orderItem)) {
                    throw new CoolException("出库明细保存失败");
                }
                log.info("[自动全版出库单] 已生成出库单: {}, 库位: {}, 物料: {}, 数量: {}", order.getCode(), loc.getCode(), matnrCode, sumQty);
                log.info("[自动全板出库单] 已生成出库单: {}, 库位: {}, 物料: {}, 数量: {}", order.getCode(), loc.getCode(), matnrCode, sumQty);
            } catch (Exception e) {
                log.error("[自动全版出库单] 生成失败, 库位: {}, 物料: {}", loc.getCode(), matnrCode, e);
                log.error("[自动全板出库单] 生成失败, 库位: {}, 物料: {}", loc.getCode(), matnrCode, e);
            }
        }
    }