yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/api/item/MesMdItemApiImpl.java
@@ -3,9 +3,11 @@
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;
@@ -36,12 +38,17 @@
    private MesMdItemTypeService itemTypeService;
    @Resource
    private MesMdUnitMeasureService unitMeasureService;
    @Resource
    private MesMdItemBatchConfigService itemBatchConfigService;
    @Override
    public Long createItem(MesMdItemSyncReqDTO syncReqDTO) {
        log.info("[createItem] 同步创建 MES 物料产品,code={}", syncReqDTO.getCode());
        MesMdItemSaveReqVO saveReqVO = buildSaveReqVO(syncReqDTO);
        return itemService.createItem(saveReqVO);
        Long itemId = itemService.createItem(saveReqVO);
        // 同步批次配置
        saveBatchConfig(itemId, syncReqDTO);
        return itemId;
    }
    @Override
@@ -50,12 +57,16 @@
        MesMdItemSaveReqVO saveReqVO = buildSaveReqVO(syncReqDTO);
        // 按 code 匹配:存在则更新,不存在则创建(upsert)
        MesMdItemDO existItem = itemService.getItemByCode(syncReqDTO.getCode());
        Long itemId;
        if (existItem == null) {
            itemService.createItem(saveReqVO);
            itemId = itemService.createItem(saveReqVO);
        } else {
            saveReqVO.setId(existItem.getId());
            itemService.updateItem(saveReqVO);
            itemId = existItem.getId();
        }
        // 同步批次配置
        saveBatchConfig(itemId, syncReqDTO);
    }
    /**
@@ -79,4 +90,30 @@
        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);
    }
}