package com.ruoyi.task.api.spi;
import com.ruoyi.task.domain.ServiceSubtaskRecord;
import java.util.List;
import java.util.Map;
/**
* 子任务「发送记录」({@code service_subtask_record})读取能力 ——
* ruoyi-task 的对外 SPI,由 smartor 侧实现。
*
*
为什么需要它
* {@code service_subtask_record} 这张表不在本次模块化范围内(它的 Mapper/XML/Service
* 仍留在 smartor),但它的实体类型 {@link ServiceSubtaskRecord} 已随
* {@code ServiceSubtask} 的字段 `List<ServiceSubtaskRecord> serviceSubtaskRecordList`
* 一起搬进了 ruoyi-task。
*
* 任务侧(原 {@code ServiceSubtaskController} 的 2 处调用)要读这张表,
* 故经本端口取用 —— 方向仍是「接口在 ruoyi-task、实现在 smartor」,编译期无环。
*
*
⚠️ 这是【过渡】端口,形态刻意与旧 Service 一致
* 逐方法镜像 smartor 的 {@code IServiceSubtaskRecordService} 中任务侧真正用到的那两个方法
* (同名、同参数、同返回类型),使 Controller 搬进 ruoyi-task 时
* 只需换注入字段类型,调用点一行都不用改。
*
* 将来动作
* 若将来 {@code service_subtask_record} 也纳入任务模块,本端口即可删除,
* 改为模块内直接调用。
*
* ⚠️ 实现必须保持"纯转发"
*/
public interface TaskSubtaskRecordPort {
/**
* 按条件查发送记录列表(原 {@code IServiceSubtaskRecordService#selectServiceSubtaskRecordList})。
*/
List selectServiceSubtaskRecordList(ServiceSubtaskRecord query);
/**
* 按子任务 id 集合批量查发送记录,按 subid 分组
* (原 {@code IServiceSubtaskRecordService#selectRecordMapBySubtaskIds})。
*
* @param subtaskIds 子任务 id 集合
* @return subid -> 该子任务的记录列表
*/
Map> selectRecordMapBySubtaskIds(List subtaskIds);
}