陈昶聿
3 天以前 c4dc6a5d66524d08b768046d9d2d5974bf96f45c
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;
@@ -79,7 +80,8 @@
    @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;
@@ -139,6 +141,7 @@
    private String scriptids;
    /**
    /**
     * 把 scriptids(逗号分隔的问题ID字符串)严格解析为 Long 集合,仅供 SQL 的 foreach 预编译使用。
     * <p>
     * 只保留纯数字项,其余内容一律丢弃,返回 null 表示“不过滤”。
@@ -158,6 +161,33 @@
        }
        return scriptidList.isEmpty() ? null : scriptidList;
    }
    /**
     * 问题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
@@ -183,6 +213,37 @@
    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-只统计已完成的
     */
    @ApiModelProperty(value = "统计方式")
@@ -205,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;
    /**
     * 当前发送方式 - 超链接统计
@@ -237,6 +310,7 @@
    private String hyperLinkInfoType;
    @ApiModelProperty(value = "任务ID", required = true)
    @JsonAlias("taskid")
    private Long taskId;
    @ApiModelProperty(value = "taskIds集合")
@@ -266,6 +340,12 @@
    private String hospType;
    /**
     * 人工电话标记
     */
    @ApiModelProperty(value = "是否人工打过电话 0-没打过 1-打过")
    private Long isManuallyCalled;
    /**
     * pageNum
     */
    @ApiModelProperty("pageNum")