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} 的<b>归属模块实现</b> —— 患者档案读取。
|
*
|
* <h3>2026-11 归属调整</h3>
|
* {@code pat_archive} 家族整体迁入本模块后,这个端口的实现从 smartor 的
|
* {@code TaskArchivePortBridge} 搬到这里:数据在哪、实现在哪,符合端口倒置的本意。
|
* <ul>
|
* <li>接口仍声明在 {@code ruoyi-task}(消费方声明,它不依赖本模块);</li>
|
* <li>本模块依赖 {@code ruoyi-task} 提供实现,运行期由 Spring 注入,<b>不成环</b>;</li>
|
* <li>smartor 侧的过渡桥已删除。</li>
|
* </ul>
|
*
|
* <h3>⚠️ 保持"纯转发"</h3>
|
* 只转发到本模块既有的 Mapper;{@link #findImportedByPatid} 里的
|
* {@code sourceToTarget} 是<b>原实现本来就有的</b>转换(原
|
* {@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<PatArchive> findList(PatArchive query) {
|
List<PatArchive> 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);
|
}
|
}
|