package com.ruoyi.satisfaction.service; import com.ruoyi.satisfaction.domain.ServiceSubtaskDetailRatioExport; import com.ruoyi.satisfaction.domain.dto.MydTrendReqDTO; import com.ruoyi.satisfaction.domain.dto.MzMydScoreRankDTO; import com.ruoyi.satisfaction.domain.dto.QuestionCountKsOrBqDTO; import com.ruoyi.satisfaction.domain.vo.MydTrendReqVO; import com.ruoyi.satisfaction.domain.vo.MzMydScoreRankVO; import com.ruoyi.satisfaction.domain.vo.QuestionCountKsOrBqVO; import com.ruoyi.satisfaction.domain.row.SatisfactionCategoryRow; import com.ruoyi.satisfaction.domain.row.SatisfactionIvrScriptRow; import com.ruoyi.satisfaction.domain.row.SatisfactionScriptQuery; import com.ruoyi.satisfaction.domain.row.SatisfactionSubtaskQuery; import com.ruoyi.satisfaction.domain.row.SatisfactionSubtaskRef; import com.ruoyi.satisfaction.domain.row.SatisfactionSvyScriptRow; import com.ruoyi.satisfaction.domain.vo.SatisfactionExceptConfigQuestionReqVO; import com.ruoyi.satisfaction.domain.vo.SltdMydTotalVO; import java.util.Date; import java.util.List; import java.util.Map; /** * 满意度「子任务维度」统计服务。 *
* 迁移说明:这些方法原属 {@code com.ruoyi.task.service.IServiceSubtaskService}, * 但只有满意度相关入口在用(已逐个核实无其它调用方),故整批搬入满意度模块。 * 方法签名除 {@link #getDetailRatio} 外均一字未改。 *
* ⚠️ 本接口只应在满意度模块内部使用;其它模块需要满意度数据请用 * {@code com.ruoyi.satisfaction.api} 下的门面接口。 */ public interface SatisfactionSubtaskService { // ================================================================ 选项占比 /** * 统计满意度选项的百分比。 *
* 注意:本方法开头会先清理重复明细({@code selectRepeatDetailIds} / {@code deleteRepeatDetailByIds}),
* 这是原实现就有的行为。
*/
List
* 与原文的差异(仅签名):原文入参是 {@code List
* 入参缺省处理保留原实现:{@code dimensionType} 为空则置 {@code "1"};
* {@code serviceTypes} 为空则置 {@code ["14"]}(门诊满意度)。
*/
List
* 供 {@code /sltdMydTotalByScore} 使用:原实现逐个 serviceType 调用
* {@code getServiceSubtasks} 再转成 {@code ServiceSubtaskRes},现改为本方法。
*/
List
* 供登录链路使用(原 {@code smartor.UserExtInfoServiceImpl.getSatisfactionCategories})。
*/
Map
* 迁移说明:原为 {@code com.ruoyi.task.service.IServiceSubtaskDetailTraceService#getSatisfactionExceptConfigQuestion},
* 服务实现落在随访异常跟踪 Service 里,但逻辑完全是满意度分类/题目的查询,
* 故按模块化要求搬入本模块。返回结构、字段名、筛选条件均与原文一致:
*
* 迁移说明:原为 {@code com.ruoyi.task.service.impl.ServiceSubtaskServiceImpl#getSatisfactionIndex}
* (私有方法,被 {@code getSfStatisticsJoy} 调用)。
*
* ⚠️ 原实现缺陷已原样保留:由于 {@code BigDecimal.add(...)} 的返回值被丢弃,
* 本方法实际上恒定返回 {@code {mydtmzl:0, mydtbl:0, wcbl:0.0}}(但查询照旧执行)。
* 详见实现类上的注释。
*
* @param type "1"=按科室,"2"=按病区
* @param code 科室/病区编码
* @param orgid 机构 id
* @param ivrCategoryid 语音满意度分类 id(可为 null)
* @param svyCategoryid 问卷满意度分类 id(可为 null)
* @return {@code mydtmzl}(Integer) / {@code mydtbl}(Integer) / {@code wcbl}(Double)
*/
Map
*
*
* @param taskIds 任务 id 列表(随访分支用;由调用方从查询结果抽出)
* @param subtaskIds 子任务 id 列表(满意度分支用;由调用方从查询结果抽出)
*/
List
* {
* "voiceDataList": [ {questionId, libtemplateid, questionContent, questionTopic, questionType, categoryName, categoryId}, ... ],
* "questionnaireDataList": [ 同上 ]
* }
*
* 保留的原文不对称行为(不要"统一"):
*
*
*
* @param questionReqVO 入参(scriptType:1 语音 / 2 问卷,为空取两者;type:满意度类型,默认 myd)
* @return 语音与问卷的题目列表
*/
Map