huminmin
17 小时以前 b71e44f6236d9b2fffbd40c74848fcf94897f034
yudao-module-mdm/src/main/java/cn/iocoder/yudao/module/mdm/service/unit/MdmUnitMeasureServiceImpl.java
@@ -11,6 +11,7 @@
import cn.iocoder.yudao.module.mdm.dal.mysql.unit.MdmUnitMeasureMapper;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.*;
@@ -65,13 +66,16 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void deleteUnitMeasure(Long id) {
        // 校验存在
        validateUnitMeasureExists(id);
        MdmUnitMeasureDO unitMeasure = validateUnitMeasureExists(id);
        // 校验是否被物料使用(直接使用 Mapper 避免循环依赖)
        if (itemMapper.selectCountByUnitMeasureId(id) > 0) {
            throw exception(MDM_UNIT_MEASURE_EXISTS_ITEM);
        }
        // 先清理同编码的已软删除脏数据,避免当前记录软删时触发唯一键冲突
        unitMeasureMapper.physicalDeleteByCode(unitMeasure.getCode());
        // 删除
        unitMeasureMapper.deleteById(id);
    }