liu
2026-10-24 3990ae574c221e3764ce9cbc2e4e3eb71b7b1b52
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
@@ -6,7 +6,7 @@
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorDetailDO;
import cn.iocoder.yudao.module.mes.dal.dataobject.wm.returnvendor.MesWmReturnVendorLineDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.returnvendor.MesWmReturnVendorDetailMapper;
import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService;
import cn.iocoder.yudao.module.mes.service.mdm.MesMdmItemService;
import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
import cn.iocoder.yudao.module.mes.service.wm.warehouse.MesWmWarehouseAreaService;
import jakarta.annotation.Resource;
@@ -32,8 +32,12 @@
    @Resource
    @Lazy
    private MesWmReturnVendorLineService returnVendorLineService;
    // 与 ReturnVendorServiceImpl 相互引用,须用 @Lazy 打破循环
    @Resource
    private MesMdItemService itemService;
    @Lazy
    private MesWmReturnVendorService returnVendorService;
    @Resource
    private MesMdmItemService mdmItemService;
    @Resource
    private MesWmMaterialStockService materialStockService;
    @Resource
@@ -66,13 +70,15 @@
     * 校验明细创建/修改的公共数据
     */
    private void validateDetailSaveData(MesWmReturnVendorDetailSaveReqVO reqVO) {
        // 校验父单(退货单)处于准备中状态,审批期间及之后禁止增删改明细
        returnVendorService.validateReturnVendorExistsAndPrepare(reqVO.getReturnId());
        // 校验父数据(行)存在
        MesWmReturnVendorLineDO line = returnVendorLineService.validateReturnVendorLineExists(reqVO.getLineId());
        if (ObjUtil.notEqual(line.getReturnId(), reqVO.getReturnId())) {
            throw exception(WM_RETURN_VENDOR_DETAIL_LINE_NOT_MATCH);
        }
        // 校验物料存在
        itemService.validateItemExistsAndEnable(reqVO.getItemId());
        mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
        // 校验物料与行物料一致
        validateItemConsistency(reqVO.getItemId(), line);
        // 校验库位存在
@@ -85,7 +91,9 @@
    @Override
    public void deleteReturnVendorDetail(Long id) {
        // 校验存在
        validateReturnVendorDetailExists(id);
        MesWmReturnVendorDetailDO detail = validateReturnVendorDetailExists(id);
        // 校验父单处于准备中状态,审批期间及之后禁止删除明细
        returnVendorService.validateReturnVendorExistsAndPrepare(detail.getReturnId());
        // 删除
        returnVendorDetailMapper.deleteById(id);
    }
@@ -115,10 +123,12 @@
        returnVendorDetailMapper.deleteByLineId(lineId);
    }
    private void validateReturnVendorDetailExists(Long id) {
        if (returnVendorDetailMapper.selectById(id) == null) {
    private MesWmReturnVendorDetailDO validateReturnVendorDetailExists(Long id) {
        MesWmReturnVendorDetailDO detail = returnVendorDetailMapper.selectById(id);
        if (detail == null) {
            throw exception(WM_RETURN_VENDOR_DETAIL_NOT_EXISTS);
        }
        return detail;
    }
    /**