liusheng
10 小时以前 ab2884ade73fed97d1e7d7daf4b9b5b6dee83fdd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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);
    }
}