| | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void updateItem(MdmItemSaveReqVO updateReqVO) { |
| | | // 校验存在 |
| | | validateItemExists(updateReqVO.getId()); |
| | | MdmItemDO previousItem = validateItemExists(updateReqVO.getId()); |
| | | // 校验数据 |
| | | validateItemSaveData(updateReqVO); |
| | | |
| | |
| | | |
| | | // 根据同步开关决定:打开则同步到 MES,关闭则取消同步(从 MES 删除) |
| | | if (Boolean.TRUE.equals(updateReqVO.getSyncMes())) { |
| | | syncItemToMes(updateReqVO); |
| | | syncItemToMes(updateReqVO, previousItem.getCode()); |
| | | } else { |
| | | mesMdItemApi.deleteItem(updateReqVO.getId()); |
| | | } |
| | |
| | | * 同步失败将抛出异常,回滚本行事务(本行的 MDM 操作一并回滚,不影响其它行)。 |
| | | */ |
| | | private void syncItemToMes(MdmItemSaveReqVO reqVO) { |
| | | syncItemToMes(reqVO, null); |
| | | } |
| | | |
| | | private void syncItemToMes(MdmItemSaveReqVO reqVO, String previousCode) { |
| | | // 解析计量单位 id -> code |
| | | String unitCode = null; |
| | | if (reqVO.getUnitMeasureId() != null) { |
| | |
| | | // 组装同步 DTO |
| | | MesMdItemSyncReqDTO syncReqDTO = new MesMdItemSyncReqDTO(); |
| | | syncReqDTO.setCode(reqVO.getCode()); |
| | | syncReqDTO.setPreviousCode(previousCode); |
| | | syncReqDTO.setMdmItemId(reqVO.getId()); |
| | | syncReqDTO.setName(reqVO.getName()); |
| | | syncReqDTO.setSpecification(reqVO.getSpecification()); |
| | | syncReqDTO.setColor(reqVO.getColor()); |
| | | syncReqDTO.setUnitCode(unitCode); |
| | | syncReqDTO.setItemTypeCode(itemTypeCode); |
| | | syncReqDTO.setSafeStockFlag(Boolean.TRUE); // 保留 MDM 的 minStock/maxStock,避免被 MES 清零 |
| | |
| | | saveReqVO.setName(importVO.getName()); |
| | | saveReqVO.setBarCode(importVO.getBarCode()); |
| | | saveReqVO.setSpecification(importVO.getSpecification()); |
| | | saveReqVO.setColor(importVO.getColor()); |
| | | saveReqVO.setCategoryId(categoryId); |
| | | saveReqVO.setUnitMeasureId(unitMeasureId); |
| | | saveReqVO.setUnitMeasureId2(unitMeasureId2); |
| | |
| | | StrUtil.blankToDefault(importVO.getName(), "(名称和编码为空的行)")); |
| | | } |
| | | |
| | | } |
| | | } |