package com.ruoyi.task.api.contract;
import com.ruoyi.common.core.service.OtherVisitApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* {@link OtherVisitApi}(手术随访契约)在 ruoyi-task 侧的唯一实现。
*
*
为什么落在这里
* 手术随访的两个入口本体在 {@link OperationSubtaskWriter}(本包),
* 而它必须读写 {@code service_task*} / {@code service_subtask*}(属本模块)
* 并读 {@code pat_archive}(经 {@code TaskArchivePort} 端口)——
* 见 writer 的类注释里那三次搬迁尝试。实现跟着能力走,所以本类也在本模块。
*
* 它取代了什么
* 此前有两个实现:smartor 的 {@code OtherVisitApiBridge}(真实现)
* 和 {@code ruoyi-othervisit} 的 {@code OtherVisitApiImpl}(用
* {@code ObjectProvider} 回头找 smartor 那个,还要 filter 掉自己防递归)。
* 本轮两者都删了,现在全仓 {@code OtherVisitApi} 只有一个 bean。
*
* ⚠️ 两行委托,不加逻辑
* {@code addOperationSubTask} 转发到 {@code writer.runOperationVisit(..)}:原桥接就是这么转的
* ({@code runOperationVisit} 内部调 {@code addOperationSubTask} 后固定返回 1),
* 换成 {@code writer.addOperationSubTask} 会丢掉那个 {@code 1} 的返回值。
*
* @see OperationSubtaskWriter
*/
@Slf4j
@Component
public class OtherVisitApiImpl implements OtherVisitApi {
@Autowired
private OperationSubtaskWriter operationSubtaskWriter;
/**
* 手术随访扫描(手术等级 + 离院科室/病区维度)。
*
* @param config {@code sys_config: visit.early.day} 的值,可能为 null
* @return 固定 {@code 1}(原实现如此,不是处理条数)
*/
@Override
public int addOperationSubTask(String config) {
return operationSubtaskWriter.runOperationVisit(config);
}
/**
* 任务组(appltype=5)首轮纳入。
*
* @param config {@code sys_config: visit.early.day}
* @return 原实现固定返回 1
*/
@Override
public int dealOutHospInfoBySchedule(String config) {
return operationSubtaskWriter.dealOutHospInfoBySchedule(config);
}
}