package cn.iocoder.yudao.module.mdm.service.item; import cn.hutool.core.collection.CollUtil; import cn.iocoder.yudao.module.mdm.dal.dataobject.item.MdmItemBatchConfigDO; import cn.iocoder.yudao.module.mdm.dal.mysql.item.MdmItemBatchConfigMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.List; /** * MDM 物料批次配置 Service 实现类 * * @author 芋道源码 */ @Service @Validated public class MdmItemBatchConfigServiceImpl implements MdmItemBatchConfigService { @Resource private MdmItemBatchConfigMapper itemBatchConfigMapper; @Override public MdmItemBatchConfigDO getItemBatchConfigByItemId(Long itemId) { List list = itemBatchConfigMapper.selectList(MdmItemBatchConfigDO::getItemId, itemId); return CollUtil.getFirst(list); } @Override @Transactional(rollbackFor = Exception.class) public Long saveItemBatchConfig(MdmItemBatchConfigDO config) { // 清空不需要的字段(只保留必要的7个字段) config.setClientFlag(false); config.setSalesOrderCodeFlag(false); config.setWorkOrderFlag(false); config.setTaskFlag(false); config.setWorkstationFlag(false); config.setToolFlag(false); config.setMoldFlag(false); // 查询已有配置 MdmItemBatchConfigDO existing = getItemBatchConfigByItemId(config.getItemId()); if (existing != null) { // 更新 config.setId(existing.getId()); itemBatchConfigMapper.updateById(config); return existing.getId(); } // 新增 itemBatchConfigMapper.insert(config); return config.getId(); } @Override public void deleteItemBatchConfigByItemId(Long itemId) { itemBatchConfigMapper.delete(MdmItemBatchConfigDO::getItemId, itemId); } }