package com.ruoyi.satisfaction.service;
import com.ruoyi.satisfaction.domain.PatSatisfaction;
import com.ruoyi.satisfaction.domain.vo.PatSatisfactionReqVO;
import com.ruoyi.satisfaction.domain.vo.PatSatisfactionResVO;
import java.util.List;
import java.util.Map;
/**
* 患者满意度 Service 接口。
*
* 迁移说明:原为 {@code com.smartor.service.IPatSatisfactionService},整体搬入满意度模块。
* 方法签名与语义一字未改,Controller 的 URL 与出入参也因此保持不变。
*
* ⚠️ 本接口只应在满意度模块内部使用;其它模块需要满意度数据请使用
* {@code com.ruoyi.satisfaction.api} 下的门面接口。
*
* @author lihu
* @date 2025-06-30
*/
public interface IPatSatisfactionService {
// ================================================================ pat_satisfaction 表 CRUD
/**
* 查询患者满意度
*
* @param id 患者满意度主键
* @return 患者满意度
*/
PatSatisfaction selectPatSatisfactionById(Long id);
/**
* 查询患者满意度列表
*
* @param patSatisfaction 患者满意度
* @return 患者满意度集合
*/
List selectPatSatisfactionList(PatSatisfaction patSatisfaction);
/**
* 新增患者满意度
*/
int insertPatSatisfaction(PatSatisfaction patSatisfaction);
/**
* 批量新增患者满意度
*/
int batchInsert(List patSatisfactions);
/**
* 修改患者满意度
*/
int updatePatSatisfaction(PatSatisfaction patSatisfaction);
/**
* 批量删除患者满意度
*/
int deletePatSatisfactionByIds(Long[] ids);
/**
* 删除患者满意度信息
*/
int deletePatSatisfactionById(Long id);
// ================================================================ 统计
/**
* 患者满意度统计(明细口径:逐问题返回答题人数、平均分、最高/最低分、答题率、选项占比)
*
* @param patSatisfactionReqVO 统计条件
* @return 统计结果
*/
PatSatisfactionResVO statistics(PatSatisfactionReqVO patSatisfactionReqVO);
/**
* 患者满意度统计(维度口径,与 {@link #statistics} 的差异仅在「问题来源」:
* 前者按满意度分类取,本方法按入参 dimensionList 取)
*/
PatSatisfactionResVO statisticsByDimension(PatSatisfactionReqVO patSatisfactionReqVO);
/**
* 患者满意度柱状图信息(分类口径:按分类汇总发送量、回收人数、回收率、平均分)
*/
Map satisfactionGraph(PatSatisfactionReqVO patSatisfactionReqVO);
/**
* 患者满意度柱状图信息(维度口径)
*/
Map satisfactionGraphDimension(PatSatisfactionReqVO patSatisfactionReqVO);
}