package com.ruoyi.patarchive.api; import com.ruoyi.common.core.domain.entity.PatArchive; import com.ruoyi.common.utils.DtoConversionUtils; import com.ruoyi.patarchive.domain.PatArchiveImport; import com.ruoyi.patarchive.mapper.PatArchiveImportMapper; import com.ruoyi.patarchive.mapper.PatArchiveMapper; import com.ruoyi.task.api.spi.TaskArchivePort; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Collections; import java.util.List; /** * {@link TaskArchivePort} 的归属模块实现 —— 患者档案读取。 * *

2026-11 归属调整

* {@code pat_archive} 家族整体迁入本模块后,这个端口的实现从 smartor 的 * {@code TaskArchivePortBridge} 搬到这里:数据在哪、实现在哪,符合端口倒置的本意。 * * *

⚠️ 保持"纯转发"

* 只转发到本模块既有的 Mapper;{@link #findImportedByPatid} 里的 * {@code sourceToTarget} 是原实现本来就有的转换(原 * {@code ServiceTaskServiceImpl} L443 / L535),不是新逻辑。 */ @Slf4j @Component public class TaskArchivePortImpl implements TaskArchivePort { @Autowired private PatArchiveMapper patArchiveMapper; @Autowired private PatArchiveImportMapper patArchiveImportMapper; @Override public PatArchive findByPatid(Long patid) { // 原 ServiceSubtaskServiceImpl 走 patArchiveService.selectPatArchiveByPatid, // 而该 Service 方法体就是这一行纯委托(PatArchiveServiceImpl)。 return patArchiveMapper.selectPatArchiveByPatid(patid); } @Override public List findList(PatArchive query) { List list = patArchiveMapper.selectPatArchiveList(query); return list == null ? Collections.emptyList() : list; } @Override public PatArchive findImportedByPatid(Long patid) { PatArchiveImport patArchiveImport = patArchiveImportMapper.selectPatArchiveImportById(patid); if (patArchiveImport == null) { return null; } // 原实现(ServiceTaskServiceImpl L443-444 / L535-536)就是这两步。 return DtoConversionUtils.sourceToTarget(patArchiveImport, PatArchive.class); } }