| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateItem(MesMdItemSaveReqVO updateReqVO) { |
| | | // 校验存在 |
| | | validateItemExists(updateReqVO.getId()); |
| | | MesMdItemDO existingItem = validateItemExists(updateReqVO.getId()); |
| | | // 校验数据 |
| | | validateItemSaveData(updateReqVO); |
| | | validateItemSaveData(updateReqVO, existingItem); |
| | | |
| | | // 更新 |
| | | MesMdItemDO updateObj = BeanUtils.toBean(updateReqVO, MesMdItemDO.class); |
| | |
| | | } |
| | | |
| | | private void validateItemSaveData(MesMdItemSaveReqVO reqVO) { |
| | | validateItemSaveData(reqVO, null); |
| | | } |
| | | |
| | | private void validateItemSaveData(MesMdItemSaveReqVO reqVO, MesMdItemDO existingItem) { |
| | | // 校验物料编码的唯一性 |
| | | validateItemCodeUnique(reqVO.getId(), reqVO.getCode()); |
| | | // 校验物料名称的唯一性:MDM 主数据以编码为唯一标识,允许同名不同规格 |
| | | if (reqVO.getMdmItemId() == null) { |
| | | // 校验物料名称的唯一性:MDM 主数据以编码为唯一标识,允许同名不同规格。 |
| | | // 更新时前端可能未回传 mdmItemId,需要以库中记录的来源为准,否则会误判为本地物料 |
| | | boolean mdmItem = reqVO.getMdmItemId() != null |
| | | || (existingItem != null && existingItem.getMdmItemId() != null); |
| | | if (!mdmItem) { |
| | | validateItemNameUnique(reqVO.getId(), reqVO.getName()); |
| | | } |
| | | // 校验物料分类存在 |