liusheng
2 天以前 e5f80b8f2604f0423128c0811f716919ae0a9cef
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -2,9 +2,12 @@
import com.smartor.domain.*;
import com.smartor.domain.DTO.MydTrendReqDTO;
import com.smartor.domain.DTO.MzMydScoreRankDTO;
import com.smartor.domain.DTO.QuestionCountKsOrBqDTO;
import com.smartor.domain.DTO.ServiceSubtaskOptionStatDTO;
import com.smartor.domain.VO.PatSatisfactionReqVO;
import com.smartor.domain.VO.HeLibraryCountVO;
import com.smartor.domain.VO.MzMydScoreRankVO;
import com.smartor.domain.VO.QuestionCountKsOrBqVO;
import com.smartor.domain.VO.ServiceSubtaskCotinueCountVO;
import com.smartor.domain.entity.ServiceSubtaskEntity;
@@ -267,11 +270,23 @@
     * 统计问题的选项的百分比
     *
     * @param taskIds          任务 ID 列表 (用于服务类型 2)
     * @param subtaskIds       子任务 ID 列表(可选)。传了就只统计这批子任务(即本次导出的患者),
     *                         不传则统计这些任务下的全部答卷,保持原行为
     * @param startOutHospTime
     * @param endOutHospTime
     * @return
     */
    List<ServiceSubtaskDetailRatioExport> statQuestionOption(@Param("taskIds") List<Long> taskIds, @Param("startOutHospTime") Date startOutHospTime, @Param("endOutHospTime") Date endOutHospTime, @Param("startFinishTime") Date startFinishTime, @Param("endFinishTime") Date endFinishTime, @Param("scoreStart") Double scoreStart, @Param("scoreEnd") Double scoreEnd, @Param("questiontext") String questiontext, @Param("valueType") String valueType);
    List<ServiceSubtaskDetailRatioExport> statQuestionOption(@Param("taskIds") List<Long> taskIds, @Param("startOutHospTime") Date startOutHospTime, @Param("endOutHospTime") Date endOutHospTime, @Param("startFinishTime") Date startFinishTime, @Param("endFinishTime") Date endFinishTime, @Param("scoreStart") Double scoreStart, @Param("scoreEnd") Double scoreEnd, @Param("questiontext") String questiontext, @Param("valueType") String valueType, @Param("subtaskIds") List<Long> subtaskIds);
    /**
     * 导出「问题详情占比」专用统计(按本次导出的子任务统计)
     * <p>
     * 数量 = 选择该选项的患者数(同一患者同一题只取最新一条明细),分数 = 该选项明细的 score 之和。
     *
     * @param subtaskIds   本次导出的子任务 ID(必传,为空则查不到数据)
     * @param questiontext 问题内容(可选,模糊匹配)
     */
    List<ServiceSubtaskOptionStatDTO> statMydQuestionOptionForExport(@Param("subtaskIds") List<Long> subtaskIds, @Param("questiontext") String questiontext);
    /**
     * 根据子任务 ID 统计问题的选项的百分比(用于满意度统计 serviceType=6)
@@ -290,4 +305,15 @@
     */
    List<QuestionCountKsOrBqDTO> statQuestionOptionByKsOrBq(QuestionCountKsOrBqVO questionCountKsOrBqVO);
    /**
     * 门诊满意度综合得分排名(按科室或病区)
     * <p>
     * 综合满意度 = Σ(评分明细权重) / 评分明细条数 × 100%,
     * 权重只取 1、0.8、0.6、0.4、0.2 五档。
     *
     * @param mzMydScoreRankVO 查询条件(dimensionType、serviceType、时间区间、科室/病区编号、orgid/campusid)
     * @return 每个科室/病区的综合得分与项数,已按综合得分降序
     */
    List<MzMydScoreRankDTO> selectMzMydScoreRank(MzMydScoreRankVO mzMydScoreRankVO);
}