liusheng
3 小时以前 c24d16a37523a49080392610357872ce580cbc38
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
127
128
package com.ruoyi.task.mapper;
 
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
 
import java.util.List;
import java.util.Map;
import com.ruoyi.task.domain.DTO.ServiceSubtaskDetailDTO;
import com.ruoyi.task.domain.ServiceSubtaskDetail;
import com.ruoyi.task.domain.ServiceSubtaskDetailTarget;
import com.ruoyi.task.domain.ServiceSubtaskDetailVO;
 
/**
 * 语音任务呼叫明细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);
 
    /**
     * 按 scriptid 批量统计填写记录数(一次 SQL 替代逐个 scriptid 查明细)
     * <p>
     * 口径与原来「query.setScriptid(scriptId) 后 selectServiceSubtaskDetailList(...).size()」一致:
     * 只按 scriptid 过滤,不带 del_flag(原 SQL 里并没有 del_flag 条件)。
     *
     * @param scriptIds 问题ID集合
     * @return 每行含 scriptid、cnt
     */
    public List<Map<String, Object>> countDetailByScriptIds(@Param("scriptIds") List<Long> scriptIds);
 
    public ServiceSubtaskDetailDTO isExistServiceSubtaskDetail(@Param("subid") Long subid, @Param("scriptid") Long scriptid);
 
    /**
     * 逻辑删除某个子任务下的全部明细(<b>唯一的批量软删入口</b>)
     * <p>
     * 2026-10-21 收口:通用 UPDATE(updateServiceSubtaskDetail / updateSSDByCondition)已不再接受
     * 客户端传入的 delFlag,需要软删只能调这里,便于加日志、加操作人、加校验。
     *
     * @param subId 子任务 id
     * @return 受影响行数
     */
    public int softDeleteServiceSubtaskDetailBySubId(@Param("subId") Long subId);
 
    /**
     * 逻辑删除单条明细
     *
     * @param id 明细 id
     * @return 受影响行数
     */
    public int softDeleteServiceSubtaskDetailById(@Param("id") Long id);
 
    /**
     * 复活一条被逻辑删除的明细(只允许置回 '0')
     * <p>
     * 用于"保存答案时命中历史被删副本"的场景:先把内容 UPDATE 上去,再调本方法置回 del_flag='0',
     * 这样同一 (sub_id, scriptid) 不会再堆出重复副本。
     *
     * @param id 明细 id
     * @return 受影响行数
     */
    public int reviveServiceSubtaskDetail(@Param("id") Long id);
 
    /**
     * 查询语音任务呼叫明细列表
     *
     * @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);
}