yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productreceipt/MesWmProductReceiptServiceImpl.java
@@ -112,7 +112,10 @@
        }
        String code = "AUTO-PR-" + produce.getId();
        MesWmProductReceiptDO existing = productReceiptMapper.selectByCode(code);
        MesWmProductReceiptDO existing = productReceiptMapper.selectByProduceId(produce.getId());
        if (existing == null) {
            existing = productReceiptMapper.selectByCode(code); // 兼容执行迁移 SQL 前生成的历史单据
        }
        if (existing != null) {
            return existing.getId();
        }
@@ -127,6 +130,7 @@
                .code(code)
                .name("生产完成自动入库-" + workOrderCode)
                .workOrderId(produce.getWorkOrderId())
                .produceId(produce.getId())
                .itemId(firstMdmItemId)
                .receiptDate(LocalDateTime.now())
                .status(MesWmProductReceiptStatusEnum.PREPARE.getStatus())
@@ -262,8 +266,11 @@
            throw exception(WM_PRODUCT_RECPT_NO_DETAIL);
        }
        // 创建库存事务
        createTransactionList(receipt, details);
        // 自动入库单来源产出单已按工艺路线仓库记账,此处仅完成业务单据,避免实际仓库重复入库。
        // 手工创建的产品入库单仍执行“虚拟线边库 OUT + 实际仓库 IN”。
        if (receipt.getProduceId() == null) {
            createTransactionList(receipt, details);
        }
        // 更新收货单状态
        productReceiptMapper.updateById(new MesWmProductReceiptDO()