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} 在 ruoyi-quartz 侧的实现 —— 任务运维触发能力的归属方。 * *

为什么实现在这里、而不在 ruoyi-task

* 这 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」的端口反转, * 端点归属在 {@code ruoyi-task}、实现在这里,编译期无环。 * *

⚠️ 本类必须保持"纯转发"

* 只做方法转发,不加去重、状态机、默认值补齐、异常吞并等任何新逻辑。 * 逐方法与原 {@code ServiceSubtaskController} 里的调用一一对应: * * * * * * * * *
本类方法原调用点(ServiceSubtaskController)
{@link #syncMedInhosp}L956 {@code collectHISService.syncMedInhosp(...)}
{@link #collectHISYesterday}L964 {@code ryTask.collectHISYesterday()}
{@link #collectHISDaysBefore}L971 {@code ryTask.collectHISDaysBefore(day)}
{@link #syncOper}L979 {@code collectHISService.syncOper(...)}
{@link #dealSubtaskDeadline}L987 {@code ryTask.dealSubtaskDeadline(orgid, day)}
{@link #sendExceptInfo}L993 {@code ryTask.sendExceptInfo()}
* *

⚠️ 异步包装不在这里

* 原 Controller 对 {@code syncMedInhosp} / {@code syncOper} 用 * {@code CompletableFuture.runAsync(...)} 包了一层、其余 4 个直接同步调用。 * 那层异步属于调用方的语义,保留在搬过去后的 {@code ruoyi-task} 控制器里, * 本类一律同步转发,保证"何时异步"这一行为不变。 * * @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(); } }