liusheng
8 天以前 f0a09ee996ab2605869844d6a3d812709e2bf0fa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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 接口。
 * <p>
 * 迁移说明:原为 {@code com.smartor.service.IPatSatisfactionService},整体搬入满意度模块。
 * 方法签名与语义<b>一字未改</b>,Controller 的 URL 与出入参也因此保持不变。
 * <p>
 * ⚠️ 本接口只应在满意度模块内部使用;其它模块需要满意度数据请使用
 * {@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<PatSatisfaction> selectPatSatisfactionList(PatSatisfaction patSatisfaction);
 
    /**
     * 新增患者满意度
     */
    int insertPatSatisfaction(PatSatisfaction patSatisfaction);
 
    /**
     * 批量新增患者满意度
     */
    int batchInsert(List<PatSatisfaction> 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<String, Object> satisfactionGraph(PatSatisfactionReqVO patSatisfactionReqVO);
 
    /**
     * 患者满意度柱状图信息(维度口径)
     */
    Map<String, Object> satisfactionGraphDimension(PatSatisfactionReqVO patSatisfactionReqVO);
}