| | |
| | | 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; |
| | | |
| | |
| | | |
| | | 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); |
| | | |
| | | /** |