| | |
| | | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| | | import cn.iocoder.yudao.module.mes.api.item.dto.MesMdItemSyncReqDTO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.MesMdItemSaveReqVO; |
| | | import cn.iocoder.yudao.module.mes.controller.admin.md.item.vo.batchconfig.MesMdItemBatchConfigSaveReqVO; |
| | | 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.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 cn.iocoder.yudao.module.mes.service.md.unitmeasure.MesMdUnitMeasureService; |
| | |
| | | private MesMdItemTypeService itemTypeService; |
| | | @Resource |
| | | private MesMdUnitMeasureService unitMeasureService; |
| | | @Resource |
| | | private MesMdItemBatchConfigService itemBatchConfigService; |
| | | |
| | | @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); |
| | | return itemService.createItem(saveReqVO); |
| | | // 使用 MDM 物料 ID 作为 MES 物料 ID |
| | | if (syncReqDTO.getMdmItemId() != null) { |
| | | saveReqVO.setId(syncReqDTO.getMdmItemId()); |
| | | } |
| | | Long itemId = itemService.createItem(saveReqVO); |
| | | // 同步批次配置 |
| | | // 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) { |
| | | itemService.createItem(saveReqVO); |
| | | existItem = itemService.getItemByCode(syncReqDTO.getCode()); |
| | | } |
| | | Long itemId; |
| | | if (existItem == null) { |
| | | itemId = itemService.createItem(saveReqVO); |
| | | } else { |
| | | saveReqVO.setId(existItem.getId()); |
| | | itemService.updateItem(saveReqVO); |
| | | itemId = existItem.getId(); |
| | | } |
| | | // 同步批次配置 |
| | | // saveBatchConfig(itemId, syncReqDTO); |
| | | } |
| | | |
| | | /** |
| | |
| | | return saveReqVO; |
| | | } |
| | | |
| | | /** |
| | | * 保存批次配置 |
| | | */ |
| | | private void saveBatchConfig(Long itemId, MesMdItemSyncReqDTO syncReqDTO) { |
| | | // 检查是否有批次配置数据 |
| | | if (syncReqDTO.getProduceDateFlag() == null |
| | | && syncReqDTO.getExpireDateFlag() == null |
| | | && syncReqDTO.getReceiptDateFlag() == null |
| | | && syncReqDTO.getVendorFlag() == null |
| | | && syncReqDTO.getPurchaseOrderCodeFlag() == null |
| | | && syncReqDTO.getLotNumberFlag() == null |
| | | && syncReqDTO.getQualityStatusFlag() == null) { |
| | | return; |
| | | } |
| | | MesMdItemBatchConfigSaveReqVO configReqVO = new MesMdItemBatchConfigSaveReqVO(); |
| | | configReqVO.setItemId(itemId); |
| | | configReqVO.setProduceDateFlag(syncReqDTO.getProduceDateFlag()); |
| | | configReqVO.setExpireDateFlag(syncReqDTO.getExpireDateFlag()); |
| | | configReqVO.setReceiptDateFlag(syncReqDTO.getReceiptDateFlag()); |
| | | configReqVO.setVendorFlag(syncReqDTO.getVendorFlag()); |
| | | configReqVO.setPurchaseOrderCodeFlag(syncReqDTO.getPurchaseOrderCodeFlag()); |
| | | configReqVO.setLotNumberFlag(syncReqDTO.getLotNumberFlag()); |
| | | configReqVO.setQualityStatusFlag(syncReqDTO.getQualityStatusFlag()); |
| | | itemBatchConfigService.saveItemBatchConfig(configReqVO); |
| | | } |
| | | |
| | | } |