liusheng
8 天以前 b6fce30916b9c432df2a46a49e69b21be08b860b
ruoyi-task/src/main/java/com/ruoyi/task/domain/ServiceSubtaskCountReq.java
@@ -61,11 +61,20 @@
    @ApiModelProperty(value = "服务类型")
    private List<Long> serviceType;
    @ApiModelProperty(value = "病区Code集合")
    @ApiModelProperty(value = "离院病区Code集合")
    private List<String> leavehospitaldistrictcodes;
    @ApiModelProperty(value = "离院科室Code集合")
    private List<String>  leaveldeptcodes;
    @ApiModelProperty(value = "科室Code集合")
    private List<String> deptcodes;
    @ApiModelProperty(value = "病区Code集合")
    private List<String> hospitaldistrictcodes;
    @ApiModelProperty(value = "在院科室Code集合")
    private List<String> hospitaldeptcodes;
    @ApiModelProperty(value = "子任务Id集合")
    private List<Long> subTaskIds;
@@ -157,10 +166,52 @@
    private String groupKeyType;
    /**
     * 实际用于“结果分组”的列名(仅服务端内部使用,不从请求传入)。
     * <p>
     * 历史原因:{@link #groupKey} 既用于 getSfStatistics 的 {@code AND ${groupKey} IN (...)} 过滤,
     * 又被当成分组列;但 {@code groupKey = 'deptcode'} 时,原实现是在内存里按
     * {@code leaveldeptcode} 分组的,过滤列与分组列并不相同。
     * 为了把累加下推到数据库后口径不变,这里把两件事拆开:groupKey 负责过滤,groupColumn 负责分组。
     */
    @JsonIgnore
    private String groupColumn;
    /**
     * 分组key
     */
    @ApiModelProperty(value = "分组key")
    private String groupKey;
    /**
     * 病区统计(离院维度)实际使用的“有效病区”列表达式(仅服务端内部使用)。
     * <p>
     * 满意度子任务(service_type 6/14/15/16)的 {@code leavehospitaldistrictcode} 约三成为空,
     * 旧写法把空值当成“不限”放行({@code xxx IS NULL OR xxx IN (...)}),
     * 结果选中 A 病区时会把空病区的记录全带进来,再按
     * {@code IFNULL(leavehospitaldistrictcode,'Unknown')} 归成一个组,
     * 这一组的病区名又是 {@code MAX(hospitaldistrictname)} 随便挑的。
     * <p>
     * 这里给出“出院病区为空则回退到在院病区”的表达式,过滤与分组都改用它,
     * 空病区的记录因此回到它真正的在院病区,而不是污染用户选中的病区。
     * 为 null 时保持历史行为(兼容其它调用方)。
     */
    @JsonIgnore
    private String districtColumn;
    /**
     * 分页偏移量(仅服务端内部使用)。
     * <p>
     * pageNum 是 1 起始的,而历史写法直接把它当 SQL 的 OFFSET 用
     * ({@code limit 20 OFFSET 1}),第一页会凭空跳掉第一条分组数据。
     */
    @JsonIgnore
    public Integer getPageOffset() {
        if (pageSize == null) {
            return null;
        }
        int current = (pageNum == null || pageNum < 1) ? 1 : pageNum;
        return (current - 1) * pageSize;
    }
    /**
     * 随访统计方式 1-默认统计方式 2-统计时算上不发送的 3-只统计已完成的
@@ -185,6 +236,18 @@
     */
    @ApiModelProperty(value = "异常标识:0绿色;1红色;2黄色")
    private String excep;
    /**
     * 处理意见编码 - 超链接统计
     */
    @ApiModelProperty(value = "处理意见编码")
    private String suggest;
    /**
     * 完成时状态 - 超链接统计(1-正常完成 2-延期完成 3-超时完成)
     */
    @ApiModelProperty(value = "完成时状态:1正常完成 2延期完成 3超时完成")
    private Long finishState;
    /**
     * 当前发送方式 - 超链接统计
@@ -246,6 +309,12 @@
    private String hospType;
    /**
     * 人工电话标记
     */
    @ApiModelProperty(value = "是否人工打过电话 0-没打过 1-打过")
    private Long isManuallyCalled;
    /**
     * pageNum
     */
    @ApiModelProperty("pageNum")