liusheng
2026-10-08 0bc3fc0304d163c9e54e4e36f45f72ce1b1d59fb
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -12,6 +12,7 @@
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
import com.smartor.domain.entity.ServiceSubtaskSatisfactionEntity;
import com.smartor.domain.entity.SatisfactionStatQuery;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -240,6 +241,28 @@
    List<Long> querySendCount(ServiceSubtaskSatisfactionEntity serviceSubtaskSatisfactionEntity);
    /**
     * 满意度柱状图:一次性统计本次请求全部模板的发送量(按 libtemplateid 分组)
     * <p>
     * 替代逐个模板调用 querySendCount 的 N+1 写法,见 PatSatisfactionServiceImpl#satisfactionGraph
     *
     * @param query 聚合查询条件
     * @return 每行含 libtemplateid、cnt
     */
    List<Map<String, Object>> selectSatisfactionSendCount(SatisfactionStatQuery query);
    /**
     * 满意度统计:只查本次条件下实际存在哪些 type(1 语音 / 2 问卷)
     * <p>
     * 替代 selectSatisfactionSubtaskList —— 原方法会把接近全表的上百个字段查回来,
     * 调用方却只用它判断「语音分支/问卷分支是否为空」,见
     * PatSatisfactionServiceImpl#statistics / #statisticsByDimension
     *
     * @param patSatisfactionReqVO 查询条件(与原 selectSatisfactionSubtaskList 完全一致)
     * @return 去重后的 type 列表(可能含 null)
     */
    List<String> selectSatisfactionSubtaskTypes(PatSatisfactionReqVO patSatisfactionReqVO);
    /**
     * 按病区分组统计延续护理数量
     *
     * @param vo 查询条件