liusheng
5 天以前 cc479e6a056785103996cc7ea67dbd5faa3e800e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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} 里的电话部分)。
 * <p>
 * ⚠️ <b>这是模块内部接口</b>,其它模块请注入 {@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<PullTaskVO> 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);
}