gaoluyang
昨天 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/returnvendor/MesWmReturnVendorDetailServiceImpl.java
@@ -5,7 +5,9 @@
import cn.iocoder.yudao.module.mes.controller.admin.wm.returnvendor.vo.detail.MesWmReturnVendorDetailSaveReqVO;
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.dataobject.wm.returnvendor.MesWmReturnVendorDO;
import cn.iocoder.yudao.module.mes.dal.mysql.wm.returnvendor.MesWmReturnVendorDetailMapper;
import cn.iocoder.yudao.module.mes.enums.wm.MesWmReturnVendorStatusEnum;
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;
@@ -33,6 +35,9 @@
    @Lazy
    private MesWmReturnVendorLineService returnVendorLineService;
    @Resource
    @Lazy
    private MesWmReturnVendorService returnVendorService;
    @Resource
    private MesMdmItemService mdmItemService;
    @Resource
    private MesWmMaterialStockService materialStockService;
@@ -52,8 +57,11 @@
    @Override
    public void updateReturnVendorDetail(MesWmReturnVendorDetailSaveReqVO updateReqVO) {
        // 校验存在
        validateReturnVendorDetailExists(updateReqVO.getId());
        MesWmReturnVendorDetailDO oldDetail = validateReturnVendorDetailExists(updateReqVO.getId());
        if (ObjUtil.notEqual(oldDetail.getReturnId(), updateReqVO.getReturnId())
                || ObjUtil.notEqual(oldDetail.getLineId(), updateReqVO.getLineId())) {
            throw exception(WM_RETURN_VENDOR_DETAIL_PARENT_IMMUTABLE);
        }
        // 校验数据
        validateDetailSaveData(updateReqVO);
@@ -71,6 +79,7 @@
        if (ObjUtil.notEqual(line.getReturnId(), reqVO.getReturnId())) {
            throw exception(WM_RETURN_VENDOR_DETAIL_LINE_NOT_MATCH);
        }
        validateDetailEditable(reqVO.getReturnId());
        // 校验物料存在
        mdmItemService.validateItemExistsAndEnable(reqVO.getItemId());
        // 校验物料与行物料一致
@@ -84,8 +93,8 @@
    @Override
    public void deleteReturnVendorDetail(Long id) {
        // 校验存在
        validateReturnVendorDetailExists(id);
        MesWmReturnVendorDetailDO detail = validateReturnVendorDetailExists(id);
        validateDetailEditable(detail.getReturnId());
        // 删除
        returnVendorDetailMapper.deleteById(id);
    }
@@ -115,10 +124,20 @@
        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;
    }
    private void validateDetailEditable(Long returnId) {
        MesWmReturnVendorDO returnVendor = returnVendorService.validateReturnVendorExists(returnId);
        if (!ObjUtil.equal(returnVendor.getStatus(), MesWmReturnVendorStatusEnum.PREPARE.getStatus())
                && !ObjUtil.equal(returnVendor.getStatus(), MesWmReturnVendorStatusEnum.APPROVING.getStatus())) {
            throw exception(WM_RETURN_VENDOR_DETAIL_STATUS_INVALID, returnVendor.getCode());
        }
    }
    /**