package com.ruoyi.phone.service; import com.ruoyi.phone.domain.PhoneCallBackSHVO; import com.ruoyi.phone.domain.PhoneCallBackVO; import com.ruoyi.phone.domain.PhoneCallBackYQVO; import com.ruoyi.phone.domain.PhoneCallRecordVO; import com.ruoyi.phone.domain.PhoneCallReqYQVO; import com.ruoyi.phone.domain.PhoneCallResultYQVO; import com.ruoyi.phone.domain.PullTaskVO; import com.ruoyi.task.domain.ServiceSubTaskDetailReq; import java.util.List; /** * 电话业务Service接口(原 {@code IServiceSubtaskService} 里的电话部分)。 *

* ⚠️ 这是模块内部接口,其它模块请注入 {@code com.ruoyi.phone.api.PhoneFacade}({@code PhoneApi}), * 以便自动获得开关降级与统一入口。 * * @author ruoyi * @date 2024-08-08 */ public interface IPhoneService { /** * 电话回调任务(上海):语音识别结果上报,驱动多轮问答 * * @param phoneCallBackVO 回调入参 */ void phoneCallBack(PhoneCallBackVO phoneCallBackVO); /** * 电话ASR通话回调(雨绮) * * @param phoneCallReqYQVO 回调入参 * @return 下一步播报内容 */ PhoneCallBackYQVO phoneCallBackYQ(PhoneCallReqYQVO phoneCallReqYQVO); /** * 雨绮任务拉取:按小时配额从 redis 队列取待外呼子任务 * * @return 待外呼任务列表 */ List taskPull(); /** * 电话侧患者问题结果落库(service_subtask_detail) * * @param serviceSubTaskDetailReq 明细入参 * @return 落库条数 */ Integer saveQuestionAnswerPhone(ServiceSubTaskDetailReq serviceSubTaskDetailReq); /** * 通话记录回调(雨绮):无人接听 / 已完成 / 拒访 * * @param phoneCallRecordVO 通话记录 * @return 处理结果(固定 1) */ Integer recordAccept(PhoneCallRecordVO phoneCallRecordVO); /** * 根据电话号码获取首个问题(三汇) * * @param phoneCallReqYQVO 入参 * @return 子任务与首题信息 */ PhoneCallBackSHVO getFirstQues(PhoneCallReqYQVO phoneCallReqYQVO); /** * 三汇ASR结果处理 * * @param phoneCallResultYQVO ASR 结果 * @return 下一题内容 */ PhoneCallBackSHVO processResust(PhoneCallResultYQVO phoneCallResultYQVO); }