| | |
| | | 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; |
| | |
| | | @Resource |
| | | @Lazy |
| | | private MesWmReturnVendorLineService returnVendorLineService; |
| | | // 与 ReturnVendorServiceImpl 相互引用,须用 @Lazy 打破循环 |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Lazy |
| | | private MesWmReturnVendorService returnVendorService; |
| | | @Resource |
| | | private MesMdmItemService mdmItemService; |
| | | @Resource |
| | | private MesWmMaterialStockService materialStockService; |
| | | @Resource |
| | |
| | | * 校验明细创建/修改的公共数据 |
| | | */ |
| | | 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); |
| | | // 校验库位存在 |
| | |
| | | @Override |
| | | public void deleteReturnVendorDetail(Long id) { |
| | | // 校验存在 |
| | | validateReturnVendorDetailExists(id); |
| | | MesWmReturnVendorDetailDO detail = validateReturnVendorDetailExists(id); |
| | | // 校验父单处于准备中状态,审批期间及之后禁止删除明细 |
| | | returnVendorService.validateReturnVendorExistsAndPrepare(detail.getReturnId()); |
| | | // 删除 |
| | | returnVendorDetailMapper.deleteById(id); |
| | | } |
| | |
| | | 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; |
| | | } |
| | | |
| | | /** |