liusheng
7 小时以前 c24d16a37523a49080392610357872ce580cbc38
ruoyi-task/src/main/java/com/ruoyi/task/mapper/ServiceSubtaskMapper.java
@@ -44,6 +44,21 @@
     */
    public List<ServiceSubtask> selectServiceSubtaskList(ServiceSubtaskEntity serviceSubtaskVO);
    /**
     * 分页第一阶段:只取当前页的子任务 id。
     * <p>
     * where / order 与 {@link #selectServiceSubtaskList} 共用同一份 XML 片段
     * ({@code serviceSubtaskWhere} / {@code serviceSubtaskOrderByPaged}),
     * 保证两条语句口径一致,不会出现「第一阶段选出行、第二阶段又被过滤掉」。
     * <p>
     * 之所以要单独一条:列表语句 select 约 100 列,深翻页时被 offset 跳过的每一行
     * 都要回表读整行;而只取 id 的语句可以走覆盖索引并提前截断。
     *
     * @param serviceSubtaskVO 查询条件(pageNum 是 offset、pageSize 是每页条数,由调用方算好)
     * @return 当前页的子任务 id,已按排序规则排好序
     */
    public List<Long> selectServiceSubtaskIdsPage(ServiceSubtaskEntity serviceSubtaskVO);
    
    /**
@@ -163,6 +178,25 @@
    public List<ServiceSubtask> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq);
    /**
     * 随访分类统计:按分组(groupKey=drcode / leaveldeptcode / leavehospitaldistrictcode)在库里聚合。
     * <p>
     * 用于替代“把 getSfStatistics 命中的全部明细行捞回内存再逐行累加”的老做法,
     * 只返回分组数(几十行)的结果;统计口径与 {@code getStatisticCategory} 完全一致。
     *
     * @param serviceSubtaskCountReq 查询条件(必须已设置 groupKey / groupKeyList)
     * @return 每个分组的聚合统计
     */
    public List<ServiceSubtaskStatistic> getSfStatisticsScriptSum(ServiceSubtaskCountReq serviceSubtaskCountReq);
    /**
     * 随访分类统计:满意度题目量按分组聚合(替代 getSfStatisticsCategory 的 IN 大列表 + 内存过滤)。
     *
     * @param serviceSubtaskCountReq 查询条件(必须已设置 groupKey / groupKeyList / configValue)
     * @return 每行包含 groupCode、joyAllCount、joyCount 三个键
     */
    public List<Map<String, Object>> getSfStatisticsScriptJoySum(ServiceSubtaskCountReq serviceSubtaskCountReq);
    public List<ServiceSubtaskStatistic> getSpecialSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq);
    public List<ServiceSubtask> getSfStatisticsHyperlink(ServiceSubtaskCountReq serviceSubtaskCountReq);