liu
5 天以前 185435aad75f0f5aa08c86f61dfd32c512026d29
fix: 出库流通关闭出货质检
已修改7个文件
24 ■■■■■ 文件已修改
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLineSaveReqVO.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/line/MesWmSalesNoticeLineSaveReqVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmProductSalesStatusEnum.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/productsales/vo/line/MesWmProductSalesLineSaveReqVO.java
@@ -34,7 +34,7 @@
    @Schema(description = "批次号", example = "B20260301001")
    private String batchCode;
    @Schema(description = "是否出厂检验", example = "true")
    @Schema(description = "是否出厂检验(出库流通当前固定为 false)", example = "false")
    private Boolean oqcCheckFlag;
    @Schema(description = "备注", example = "备注")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/wm/salesnotice/vo/line/MesWmSalesNoticeLineSaveReqVO.java
@@ -33,8 +33,7 @@
    @DecimalMin(value = "0.01", message = "发货数量必须大于 0")
    private BigDecimal quantity;
    @Schema(description = "是否检验", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
    @NotNull(message = "是否检验不能为空")
    @Schema(description = "是否检验(发货通知单当前固定为 false)", example = "false")
    private Boolean oqcCheckFlag;
    @Schema(description = "备注", example = "备注")
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/wm/MesWmProductSalesStatusEnum.java
@@ -25,7 +25,7 @@
     */
    PREPARE(MesOrderStatusConstants.PREPARE, "草稿"),
    /**
     * 待检测(需要 OQC 检验时),对接 qc 模块的 MesQcOqcDO 后续流程
     * 待检测(历史 OQC 流程状态;当前出库流通免检,不再进入该状态)
     *
     * 对应 MesWmProductSalesService#submitProductSales 方法
     */
@@ -33,9 +33,7 @@
    /**
     * 待拣货
     *
     * 对应方法:
     * 1. 不需要 OQC 检验时:MesWmProductSalesService#submitProductSales 方法
     * 2. 或 OQC 检验完成时:MesWmProductSalesService#confirmProductSales 方法
     * 对应 MesWmProductSalesService#submitProductSales 方法
     */
    APPROVING(MesOrderStatusConstants.APPROVING, "待拣货"),
    /**
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesLineServiceImpl.java
@@ -150,6 +150,8 @@
     * 校验保存时的关联数据
     */
    private void validateLineSaveData(MesWmProductSalesLineSaveReqVO reqVO) {
        // 出库流通关闭出货质检:销售出库行统一按免检处理。
        reqVO.setOqcCheckFlag(Boolean.FALSE);
        // 校验主单存在且为草稿状态
        MesWmProductSalesDO sales = productSalesService.validateProductSalesExistsAndDraft(reqVO.getSalesId());
        // 校验物料存在
@@ -176,7 +178,6 @@
            MesWmSalesNoticeLineDO noticeLine = salesNoticeLineService.validateSalesNoticeLineExists(
                    noticeLineId, sales.getNoticeId());
            // 校验关键字段一致性:物料、数量、批次号
            // 注:OQC 检验标识允许在出库时独立设置,不强制与通知单一致
            if (ObjUtil.notEqual(reqVO.getItemId(), noticeLine.getItemId())) {
                throw exception(WM_PRODUCT_SALES_LINE_NOTICE_LINE_ITEM_MISMATCH);
            }
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/productsales/MesWmProductSalesService.java
@@ -57,11 +57,7 @@
    PageResult<MesWmProductSalesDO> getProductSalesPage(MesWmProductSalesPageReqVO pageReqVO);
    /**
     * 提交销售出库单
     * <ul>
     *     <li>有 OQC 检验行:草稿 → 待检测</li>
     *     <li>无 OQC 检验行:草稿 → 待拣货</li>
     * </ul>
     * 提交销售出库单(出库流通免检:草稿 → 待拣货)
     *
     * @param id 编号
     */
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeLineServiceImpl.java
@@ -123,6 +123,8 @@
    }
    private void validateLineSaveData(MesWmSalesNoticeLineSaveReqVO reqVO) {
        // 发货通知单关闭出货质检:前端无需传 oqcCheckFlag,保存时统一按免检处理。
        reqVO.setOqcCheckFlag(Boolean.FALSE);
        validateNoticeStatusDraft(reqVO.getNoticeId());
        mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/salesnotice/MesWmSalesNoticeServiceImpl.java
@@ -308,6 +308,8 @@
            salesLine.setQuantity(noticeLine.getQuantity());
            salesLine.setBatchId(noticeLine.getBatchId());
            salesLine.setBatchCode(noticeLine.getBatchCode());
            // 出库流通关闭出货质检,历史通知单即使残留质检标识也不再向下游传递。
            salesLine.setOqcCheckFlag(Boolean.FALSE);
            productSalesLineMapper.insert(salesLine);
        }