| | |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.item.MesMdItemTypeDO; |
| | | import cn.iocoder.yudao.module.mes.dal.dataobject.md.unitmeasure.MesMdUnitMeasureDO; |
| | | import cn.iocoder.yudao.module.mes.dal.mysql.md.item.MesMdItemMapper; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemBatchConfigService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemService; |
| | | import cn.iocoder.yudao.module.mes.service.md.item.MesMdItemTypeService; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import java.util.Collection; |
| | | import java.util.Set; |
| | | |
| | | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| | |
| | | @Resource |
| | | private MesMdItemService itemService; |
| | | @Resource |
| | | private MesMdItemMapper itemMapper; |
| | | @Resource |
| | | private MesMdItemTypeService itemTypeService; |
| | | @Resource |
| | | private MesMdUnitMeasureService unitMeasureService; |
| | |
| | | |
| | | @Override |
| | | public Long createItem(MesMdItemSyncReqDTO syncReqDTO) { |
| | | log.info("[createItem] 同步创建 MES 物料产品,code={}", syncReqDTO.getCode()); |
| | | log.info("[createItem] 同步创建 MES 物料产品,code={}, mdmItemId={}", syncReqDTO.getCode(), syncReqDTO.getMdmItemId()); |
| | | MesMdItemSaveReqVO saveReqVO = buildSaveReqVO(syncReqDTO); |
| | | // 使用 MDM 物料 ID 作为 MES 物料 ID |
| | | if (syncReqDTO.getMdmItemId() != null) { |
| | | saveReqVO.setId(syncReqDTO.getMdmItemId()); |
| | | } |
| | | Long itemId = itemService.createItem(saveReqVO); |
| | | // 同步批次配置 |
| | | saveBatchConfig(itemId, syncReqDTO); |
| | | // saveBatchConfig(itemId, syncReqDTO); |
| | | return itemId; |
| | | } |
| | | |
| | | @Override |
| | | public void updateItem(MesMdItemSyncReqDTO syncReqDTO) { |
| | | log.info("[updateItem] 同步更新 MES 物料产品,code={}", syncReqDTO.getCode()); |
| | | log.info("[updateItem] 同步更新 MES 物料产品,code={}, mdmItemId={}", syncReqDTO.getCode(), syncReqDTO.getMdmItemId()); |
| | | MesMdItemSaveReqVO saveReqVO = buildSaveReqVO(syncReqDTO); |
| | | // 按 code 匹配:存在则更新,不存在则创建(upsert) |
| | | MesMdItemDO existItem = itemService.getItemByCode(syncReqDTO.getCode()); |
| | | // 使用 MDM 物料 ID 作为 MES 物料 ID |
| | | if (syncReqDTO.getMdmItemId() != null) { |
| | | saveReqVO.setId(syncReqDTO.getMdmItemId()); |
| | | } |
| | | // 按 ID 或 code 匹配:存在则更新,不存在则创建(upsert) |
| | | MesMdItemDO existItem = null; |
| | | // 优先按 ID 查找 |
| | | if (syncReqDTO.getMdmItemId() != null) { |
| | | existItem = itemService.getItem(syncReqDTO.getMdmItemId()); |
| | | } |
| | | // 如果按 ID 找不到,再按 code 查找 |
| | | if (existItem == null) { |
| | | existItem = itemService.getItemByCode(syncReqDTO.getCode()); |
| | | } |
| | | Long itemId; |
| | | if (existItem == null) { |
| | | itemId = itemService.createItem(saveReqVO); |
| | |
| | | itemId = existItem.getId(); |
| | | } |
| | | // 同步批次配置 |
| | | saveBatchConfig(itemId, syncReqDTO); |
| | | // saveBatchConfig(itemId, syncReqDTO); |
| | | } |
| | | |
| | | /** |
| | |
| | | return saveReqVO; |
| | | } |
| | | |
| | | @Override |
| | | public void deleteItem(Long mdmItemId) { |
| | | log.info("[deleteItem] 同步删除 MES 物料产品,mdmItemId={}", mdmItemId); |
| | | MesMdItemDO existItem = itemService.getItemByMdmItemId(mdmItemId); |
| | | if (existItem != null) { |
| | | itemService.deleteItem(existItem.getId()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public void updateItemStatus(Long mdmItemId, Integer status) { |
| | | log.info("[updateItemStatus] 同步更新 MES 物料产品状态,mdmItemId={}, status={}", mdmItemId, status); |
| | | MesMdItemDO existItem = itemService.getItemByMdmItemId(mdmItemId); |
| | | if (existItem != null) { |
| | | itemService.updateItemStatus(existItem.getId(), status); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public Set<Long> getSyncedMdmItemIds(Collection<Long> mdmItemIds) { |
| | | return itemMapper.selectMdmItemIdsByMdmItemIds(mdmItemIds); |
| | | } |
| | | |
| | | /** |
| | | * 保存批次配置 |
| | | */ |