package com.ruoyi.patarchive.service.impl; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.patarchive.domain.PatSpecificArchiveGenerateConfig; import com.ruoyi.patarchive.mapper.PatSpecificArchiveGenerateConfigMapper; import com.ruoyi.patarchive.service.IPatSpecificArchiveGenerateConfigService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** * 专科档案生成配置Service业务层处理 * * @author ruoyi * @date 2026-10-12 */ @Service public class PatSpecificArchiveGenerateConfigServiceImpl implements IPatSpecificArchiveGenerateConfigService { @Autowired private PatSpecificArchiveGenerateConfigMapper patSpecificArchiveGenerateConfigMapper; @Override public PatSpecificArchiveGenerateConfig selectPatSpecificArchiveGenerateConfigById(Long id) { return patSpecificArchiveGenerateConfigMapper.selectPatSpecificArchiveGenerateConfigById(id); } @Override public List selectPatSpecificArchiveGenerateConfigList(PatSpecificArchiveGenerateConfig patSpecificArchiveGenerateConfig) { return patSpecificArchiveGenerateConfigMapper.selectPatSpecificArchiveGenerateConfigList(patSpecificArchiveGenerateConfig); } @Override public List selectEffectiveConfigList(String orgid, String campusid) { List configs = patSpecificArchiveGenerateConfigMapper.selectEffectivePatSpecificArchiveGenerateConfigList(orgid, campusid); if (CollectionUtils.isEmpty(configs)) { return Collections.emptyList(); } // 机构配置优先:存在机构配置时,不再使用全局配置,避免规则重复命中 if (StringUtils.isNotEmpty(orgid)) { List orgConfigs = configs.stream() .filter(config -> orgid.equals(config.getOrgid())) .collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(orgConfigs)) { return orgConfigs; } } return configs.stream() .filter(config -> StringUtils.isEmpty(config.getOrgid())) .collect(Collectors.toList()); } @Override public int insertPatSpecificArchiveGenerateConfig(PatSpecificArchiveGenerateConfig patSpecificArchiveGenerateConfig) { patSpecificArchiveGenerateConfig.setCreateTime(DateUtils.getNowDate()); return patSpecificArchiveGenerateConfigMapper.insertPatSpecificArchiveGenerateConfig(patSpecificArchiveGenerateConfig); } @Override public int updatePatSpecificArchiveGenerateConfig(PatSpecificArchiveGenerateConfig patSpecificArchiveGenerateConfig) { patSpecificArchiveGenerateConfig.setUpdateTime(DateUtils.getNowDate()); return patSpecificArchiveGenerateConfigMapper.updatePatSpecificArchiveGenerateConfig(patSpecificArchiveGenerateConfig); } @Override public int insertOrUpdatePatSpecificArchiveGenerateConfig(PatSpecificArchiveGenerateConfig patSpecificArchiveGenerateConfig) { if (patSpecificArchiveGenerateConfig.getId() != null && patSpecificArchiveGenerateConfigMapper.selectPatSpecificArchiveGenerateConfigById(patSpecificArchiveGenerateConfig.getId()) != null) { patSpecificArchiveGenerateConfig.setUpdateTime(DateUtils.getNowDate()); return patSpecificArchiveGenerateConfigMapper.updatePatSpecificArchiveGenerateConfig(patSpecificArchiveGenerateConfig); } else { patSpecificArchiveGenerateConfig.setCreateTime(DateUtils.getNowDate()); if (StringUtils.isEmpty(patSpecificArchiveGenerateConfig.getDelFlag())) { patSpecificArchiveGenerateConfig.setDelFlag("0"); } return patSpecificArchiveGenerateConfigMapper.insertPatSpecificArchiveGenerateConfig(patSpecificArchiveGenerateConfig); } } @Override public int batchDeletePatSpecificArchiveGenerateConfigByIds(Long[] ids) { return patSpecificArchiveGenerateConfigMapper.deletePatSpecificArchiveGenerateConfigByIds(ids); } @Override public int deletePatSpecificArchiveGenerateConfigByIds(Long[] ids) { return patSpecificArchiveGenerateConfigMapper.deletePatSpecificArchiveGenerateConfigByIds(ids); } @Override public int deletePatSpecificArchiveGenerateConfigById(Long id) { return patSpecificArchiveGenerateConfigMapper.deletePatSpecificArchiveGenerateConfigById(id); } }