4 天以前 741918a903e17b2ec7522556d2c043b8d35dd8a1
src/main/java/com/ruoyi/production/service/impl/ProductionPlanServiceImpl.java
@@ -63,7 +63,7 @@
     * 1. 仅允许同一产品型号的计划合并;
     * 2. 已下发或部分下发的计划不允许再次合并;
     * 3. 下发数量不能大于所选计划剩余需求总量;
     * 4. 下发时统一调用 ProductionOrderService.saveProductionOrder,确保后续工艺/BOM/领料逻辑一致。
     * 4. 下发时统一调用 ProductionOrderService.saveProductionOrder,确保后续工艺逻辑一致。
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -101,12 +101,13 @@
            throw new BaseException("合并失败,所选生产计划的产品型号不一致");
        }
        // 已下发或部分下发的计划不允许再次合并
        boolean hasIssuedPlan = planLists.stream()
        // 仅“已下发”计划不允许再次参与合并下发;
        // “待下发/部分下发”允许继续下发剩余数量。
        boolean hasFullyIssuedPlan = planLists.stream()
                .anyMatch(item -> item.getStatus() != null
                        && (item.getStatus() == PLAN_STATUS_PARTIAL || item.getStatus() == PLAN_STATUS_ISSUED));
        if (hasIssuedPlan) {
            throw new BaseException("合并失败,所选生产计划存在已下发或部分下发的数据");
                        && item.getStatus() == PLAN_STATUS_ISSUED);
        if (hasFullyIssuedPlan) {
            throw new BaseException("合并失败,所选生产计划存在已下发的数据");
        }
        // 计算本次可下发的剩余需求总量