liusheng
2026-10-12 b25c3b5188e402695f3792ad7da53e452682cd80
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
package com.ruoyi.satisfaction.domain.row;
 
import lombok.Data;
 
import java.util.Date;
import java.util.List;
 
/**
 * 满意度统计取「子任务」时的查询条件。
 * <p>
 * 对应原实现 {@code ServiceSubtaskServiceImpl.getServiceSubtasks(ServiceSubtaskEntity)}
 * 里 {@code sltdMydTotalByScore} 实际用到的条件。原方法还支持近百个其它字段,
 * 但满意度只用到下面这些,故收敛为本查询对象。
 * <p>
 * 每个字段与原来的 SQL 条件<b>逐字对应</b>(见 {@code SatisfactionMapper.xml}):
 * <ul>
 *   <li>{@code orgid}:{@code and orgid = #{orgid}}(非空才拼)</li>
 *   <li>{@code campusid}:{@code and campusid = #{campusid}}(非空才拼)</li>
 *   <li>{@code serviceType}:{@code and service_type = #{serviceType}}(非空才拼;调用方逐个 serviceType 查询再合并)</li>
 *   <li>{@code startOutHospTime} / {@code endOutHospTime}:按 {@code endtime} 的 yymmdd 比较</li>
 *   <li>{@code deptOrDistrict} 为 {@code 1} 时,按 {@code leavehospitaldistrictcodes} 过滤病区</li>
 *   <li>{@code leaveldeptcodes}:按 {@code deptcode} 过滤科室</li>
 * </ul>
 */
@Data
public class SatisfactionSubtaskQuery {
 
    /**
     * 机构 id
     */
    private String orgid;
 
    /**
     * 院区 id
     */
    private String campusid;
 
    /**
     * 服务类型(满意度为 6 住院 / 14 门诊)
     */
    private String serviceType;
 
    /**
     * 出院开始时间(按 endtime 过滤)
     */
    private Date startOutHospTime;
 
    /**
     * 出院结束时间(按 endtime 过滤)
     */
    private Date endOutHospTime;
 
    /**
     * 维度标识:{@code 1} 表示按病区过滤
     * <p>
     * ⚠️ 原 SQL 用的是 {@code <if test="deptOrDistrict==1">}(与数字比较),
     * 因此这里是 {@code Integer},取值语义与原来一致。
     */
    private String deptOrDistrict = "1";
 
    /**
     * 病区代码列表(仅在 {@code deptOrDistrict == 1} 时生效)
     */
    private List<String> leavehospitaldistrictcodes;
 
    /**
     * 科室代码列表
     */
    private List<String> leaveldeptcodes;
}