陈昶聿
8 天以前 a72d6c887b9c616aaf6d5e3ed4d6d951ee616afb
ruoyi-task/src/main/java/com/ruoyi/task/domain/ServiceSubtaskCountReq.java
@@ -1,6 +1,7 @@
package com.ruoyi.task.domain;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
@@ -61,16 +62,26 @@
    @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;
    @ApiModelProperty(value = "科室病区:1,病区统计  2,科室统计  3. 病种统计")
    @ApiModelProperty(value = "统计维度:1-按病区(leavehospitaldistrictcode) 2-按科室(deptcode) 3-按taskid")
    @JsonAlias("statisticalType")
    private Integer statisticaltype;
    private String visitDeptCode;
@@ -130,6 +141,7 @@
    private String scriptids;
    /**
    /**
     * 把 scriptids(逗号分隔的问题ID字符串)严格解析为 Long 集合,仅供 SQL 的 foreach 预编译使用。
     * <p>
     * 只保留纯数字项,其余内容一律丢弃,返回 null 表示“不过滤”。
@@ -151,16 +163,85 @@
    }
    /**
     * 问题ID(题目明细行返回的 scriptid),用于选项数字下钻
     */
    @ApiModelProperty(value = "问题ID")
    @JsonAlias("scriptId")
    private Long scriptid;
    /**
     * 问题内容。传入后按题目内容匹配,兼容同一道题被复制到多个任务模板的场景
     */
    @ApiModelProperty(value = "问题内容")
    private String scriptContent;
    /**
     * 选项文本(题目明细行返回的 optionText)
     */
    @ApiModelProperty(value = "选项文本")
    @JsonAlias({"optiontext", "option", "optionContent"})
    private String optionText;
    /**
     * 题目明细中的任务类型(subtaskType),用于下钻时区分语音/问卷
     */
    @ApiModelProperty(value = "任务类型(题目明细中的 subtaskType)")
    @JsonAlias("subTaskType")
    private String subtaskType;
    /**
     * 分组类型 drCode, deptCode, leaveHospitalDistrictCode
     */
    @ApiModelProperty(value = "分组类型")
    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 +266,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;
    /**
     * 当前发送方式 - 超链接统计
@@ -217,6 +310,7 @@
    private String hyperLinkInfoType;
    @ApiModelProperty(value = "任务ID", required = true)
    @JsonAlias("taskid")
    private Long taskId;
    @ApiModelProperty(value = "taskIds集合")
@@ -246,6 +340,12 @@
    private String hospType;
    /**
     * 人工电话标记
     */
    @ApiModelProperty(value = "是否人工打过电话 0-没打过 1-打过")
    private Long isManuallyCalled;
    /**
     * pageNum
     */
    @ApiModelProperty("pageNum")