package com.ruoyi.quartz.service.impl;
|
|
import com.ruoyi.common.core.service.TaskOpsTriggerApi;
|
import com.ruoyi.quartz.service.ICollectHISService;
|
import com.ruoyi.quartz.task.RyTask;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* {@link TaskOpsTriggerApi} 在 <b>ruoyi-quartz 侧</b>的实现 —— 任务运维触发能力的归属方。
|
*
|
* <h3>为什么实现在这里、而不在 ruoyi-task</h3>
|
* 这 6 个能力是「手工触发 HIS 采集 / 截止处理 / 异常推送」的运维入口,
|
* 其底层实现 {@link RyTask}(2214 行,注入约 20 个 smartor service)
|
* 与 {@link ICollectHISService}({@code CollectHISServiceImpl} 869 行)
|
* 都位于 quartz 域且依赖 smartor 侧能力。
|
* 搬到 {@code ruoyi-task} 会形成 {@code ruoyi-task -> smartor} 硬循环,
|
* 因此改为「接口在 ruoyi-common、实现留在 quartz」的<b>端口反转</b>,
|
* 端点归属在 {@code ruoyi-task}、实现在这里,编译期无环。
|
*
|
* <h3>⚠️ 本类必须保持"纯转发"</h3>
|
* 只做方法转发,<b>不</b>加去重、状态机、默认值补齐、异常吞并等任何新逻辑。
|
* 逐方法与原 {@code ServiceSubtaskController} 里的调用一一对应:
|
* <table border="1">
|
* <tr><th>本类方法</th><th>原调用点(ServiceSubtaskController)</th></tr>
|
* <tr><td>{@link #syncMedInhosp}</td><td>L956 {@code collectHISService.syncMedInhosp(...)}</td></tr>
|
* <tr><td>{@link #collectHISYesterday}</td><td>L964 {@code ryTask.collectHISYesterday()}</td></tr>
|
* <tr><td>{@link #collectHISDaysBefore}</td><td>L971 {@code ryTask.collectHISDaysBefore(day)}</td></tr>
|
* <tr><td>{@link #syncOper}</td><td>L979 {@code collectHISService.syncOper(...)}</td></tr>
|
* <tr><td>{@link #dealSubtaskDeadline}</td><td>L987 {@code ryTask.dealSubtaskDeadline(orgid, day)}</td></tr>
|
* <tr><td>{@link #sendExceptInfo}</td><td>L993 {@code ryTask.sendExceptInfo()}</td></tr>
|
* </table>
|
*
|
* <h3>⚠️ 异步包装不在这里</h3>
|
* 原 Controller 对 {@code syncMedInhosp} / {@code syncOper} 用
|
* {@code CompletableFuture.runAsync(...)} 包了一层、其余 4 个直接同步调用。
|
* 那层异步属于<b>调用方</b>的语义,保留在搬过去后的 {@code ruoyi-task} 控制器里,
|
* 本类一律<b>同步</b>转发,保证"何时异步"这一行为不变。
|
*
|
* @see TaskOpsTriggerApi
|
*/
|
@Slf4j
|
@Component
|
public class TaskOpsTriggerApiImpl implements TaskOpsTriggerApi {
|
|
@Autowired
|
private RyTask ryTask;
|
|
@Autowired
|
private ICollectHISService collectHISService;
|
|
@Override
|
public Integer syncMedInhosp(String startTime, String endTime) {
|
return collectHISService.syncMedInhosp(startTime, endTime);
|
}
|
|
@Override
|
public void collectHISYesterday() {
|
ryTask.collectHISYesterday();
|
}
|
|
@Override
|
public void collectHISDaysBefore(Long daysBefore) {
|
ryTask.collectHISDaysBefore(daysBefore);
|
}
|
|
@Override
|
public Integer syncOper(String startTime, String endTime) {
|
return collectHISService.syncOper(startTime, endTime);
|
}
|
|
@Override
|
public void dealSubtaskDeadline(String orgid, Integer deadlineDay) {
|
ryTask.dealSubtaskDeadline(orgid, deadlineDay);
|
}
|
|
@Override
|
public void sendExceptInfo() throws Exception {
|
ryTask.sendExceptInfo();
|
}
|
}
|