liusheng
2026-09-28 93078044580c2781cb8cf3ac18d2ab90513267de
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskDetailMapper.java
@@ -1,10 +1,15 @@
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接口
@@ -13,8 +18,7 @@
 * @date 2023-03-24
 */
@Mapper
public interface ServiceSubtaskDetailMapper
{
public interface ServiceSubtaskDetailMapper {
    /**
     * 查询语音任务呼叫明细
     *
@@ -23,6 +27,32 @@
     */
    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);
    /**
     * 查询语音任务呼叫明细列表
     *
@@ -30,6 +60,11 @@
     * @return 语音任务呼叫明细集合
     */
    public List<ServiceSubtaskDetail> selectServiceSubtaskDetailList(ServiceSubtaskDetail serviceSubtaskDetail);
    /**
     * 查询随访详情-指标记录
     */
    public List<Map<String, Object>> getServiceSubtaskDetails(ServiceSubtaskDetailVO serviceSubtaskDetailVo);
    /**
     * 新增语音任务呼叫明细
@@ -46,6 +81,7 @@
     * @return 结果
     */
    public int updateServiceSubtaskDetail(ServiceSubtaskDetail serviceSubtaskDetail);
    public int updateSSDByCondition(ServiceSubtaskDetail serviceSubtaskDetail);
    /**
@@ -72,4 +108,19 @@
     * @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);
}