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);
|
|
/**
|
* 满意度柱状图:一次性统计本次请求全部模板的「回收人数」
|
* (按 libtemplateid 分组,count(distinct sub_id):同一个人答了多道题只算一人)
|
* <p>
|
* satisfactionGraph / satisfactionGraphDimension 的回收人数必须是人数口径,
|
* 不能像 selectSatisfactionFillStat 那样按题目汇总答案行数(那是题量口径)
|
*
|
* @param query 聚合查询条件
|
* @return 每行含 libtemplateid、cnt(该模板已回收的份数/人数)
|
*/
|
public List<Map<String, Object>> selectSatisfactionFillPersonCount(SatisfactionStatQuery query);
|
|
/**
|
* 按 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);
|
|
/**
|
* 查询语音任务呼叫明细列表
|
*
|
* @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);
|
}
|