liusheng
2026-09-28 93078044580c2781cb8cf3ac18d2ab90513267de
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package com.smartor.mapper;
 
import com.smartor.domain.DTO.ServiceSubtaskDetailDTO;
import com.smartor.domain.ServiceSubtaskDetail;
import com.smartor.domain.ServiceSubtaskDetailTarget;
import com.smartor.domain.ServiceSubtaskDetailVO;
import com.smartor.domain.entity.SatisfactionStatQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
 
import java.util.List;
import java.util.Map;
 
/**
 * 语音任务呼叫明细Mapper接口
 *
 * @author smartor
 * @date 2023-03-24
 */
@Mapper
public interface ServiceSubtaskDetailMapper {
    /**
     * 查询语音任务呼叫明细
     *
     * @param calldetailid 语音任务呼叫明细主键
     * @return 语音任务呼叫明细
     */
    public ServiceSubtaskDetail selectServiceSubtaskDetailByCalldetailid(String calldetailid);
 
    public List<ServiceSubtaskDetailDTO> queryFillCount(@Param("subids") List<Long> subids, @Param("questiontext") String questiontext);
 
    /**
     * 满意度柱状图:一次性统计本次请求全部模板的填报量
     * (按 libtemplateid + questiontext + score 分组,只回传分值与条数,不回传明细行)
     * <p>
     * 替代 queryFillCount 的 N+1 写法,见 PatSatisfactionServiceImpl#satisfactionGraph
     *
     * @param query 聚合查询条件
     * @return 每行含 libtemplateid、questiontext、score、cnt
     */
    public List<Map<String, Object>> selectSatisfactionFillStat(SatisfactionStatQuery query);
 
    /**
     * 满意度统计:一次性统计本次请求全部问题的填报量(按 模板+问题+matchedtext+score 分组)
     * <p>
     * 用于 statistics / statisticsByDimension 的「各选项数量及占比」,替代逐个问题执行的
     * queryFillCount(那一步会先查出几万个 sub_id 再拼进 IN(...),并把约十万行明细传回 Java)。
     *
     * @param query 聚合查询条件
     * @return 每行含 libtemplateid、questiontext、matchedtext、score、cnt、targetvalue
     */
    public List<Map<String, Object>> selectSatisfactionFillStatByMatchedtext(SatisfactionStatQuery query);
 
    public ServiceSubtaskDetailDTO isExistServiceSubtaskDetail(@Param("subid") Long subid, @Param("scriptid") Long scriptid);
 
    /**
     * 查询语音任务呼叫明细列表
     *
     * @param serviceSubtaskDetail 语音任务呼叫明细
     * @return 语音任务呼叫明细集合
     */
    public List<ServiceSubtaskDetail> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail);
 
    /**
     * 查询随访详情-指标记录
     */
    public List<Map<String, Object>> getServiceSubtaskDetails(ServiceSubtaskDetailVO serviceSubtaskDetailVo);
 
    /**
     * 新增语音任务呼叫明细
     *
     * @param serviceSubtaskDetail 语音任务呼叫明细
     * @return 结果
     */
    public int insertServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
 
    /**
     * 修改语音任务呼叫明细
     *
     * @param serviceSubtaskDetail 语音任务呼叫明细
     * @return 结果
     */
    public int updateServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
 
    public int updateSSDByCondition(ServiceSubtaskDetail serviceSubtaskDetail);
 
    /**
     * 删除语音任务呼叫明细
     *
     * @param calldetailid 语音任务呼叫明细主键
     * @return 结果
     */
    public int deleteServiceSubtaskDetailByCalldetailid(String calldetailid);
 
    /**
     * 批量删除语音任务呼叫明细
     *
     * @param calldetailids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteServiceSubtaskDetailByCalldetailids(String[] calldetailids);
 
 
    /**
     * 指标统计
     *
     * @param targetid 指标统计
     * @return 指标统计
     */
    public List<ServiceSubtaskDetailTarget> countPatByTarget(Long targetid);
 
    /**
     * 查询同个subid重复的detail数据ID列表
     *
     * @return 重复记录ID列表
     */
    public List<Long> selectRepeatDetailIds();
 
    /**
     * 根据ID列表批量标记重复detail数据为删除
     *
     * @param ids 重复记录ID列表
     * @return 更新行数
     */
    public Integer deleteRepeatDetailByIds(@Param("ids") List<Long> ids);
}