陈昶聿
6 天以前 2aff5798398322131164cee0ea0ab53e38494110
smartor/src/main/java/com/smartor/mapper/ServiceSubtaskMapper.java
@@ -111,10 +111,14 @@
    /**
     * 随访及时率(按 groupKey 分组批量统计)
     * <p>
     * rate:出院时间(endtime)起 rateDay + 补偿天数 内完成随访的占比。
     * rate:完成时间(finishtime) 不晚于及时率基准的占比,分母为应随访数。
     * 非任务组(appltype != 5):endtime + send_day(缺省1) + Σ补偿天数 + 1 天;
     * 任务组(appltype = 5):按 schedule_benchmark 解析基准时间
     * (1-入院 2-出院 3-就诊 4-入组 0/其它-自定义时间) + day_offset
     * + Σ补偿天数 + 1 天(不叠加 send_day)。
     * 补偿天数取自 service_subtask_preachform.compensate_time 按子任务求和,
     * 用子任务快照而非 service_task.preachform_desc,保证历史数据不随任务改配置而变动。
     * rateDay 为空时 rate 返回 NULL。
     * rateDay 参数不再参与该口径。
     * <p>
     * finishRate:应随访时间(visit_time) &lt;= 实际完成时间(finishtime) 的占比,当前未被随访统计使用。
     *
@@ -143,6 +147,14 @@
    public Boolean updateServiceSubtaskByCondition(ServiceSubtask ServiceSubtask);
    /**
     * 微信公众号已领取未填写按默认选项完成:只更新当前子任务,且只允许 sendstate=1、未提交的数据。
     *
     * @param serviceSubtask 必填 id、finishtime、result、remark
     * @return 影响行数
     */
    public int updateWechatDefaultComplete(ServiceSubtask serviceSubtask);
    public Boolean updateServiceSubtaskByTaskGuid(ServiceSubtask ServiceSubtask);
    /**
@@ -166,6 +178,18 @@
    public int deleteUnfinishedServiceSubtaskByInhospids(@Param("patid") Long patid,
                                                         @Param("inhospids") List<Long> inhospids,
                                                         @Param("sendstates") List<Long> sendstates);
    /**
     * 统计患者指定任务下未完成的随访任务数量(用于人工随访重复校验)
     *
     * @param patid      患者ID
     * @param taskid     任务ID
     * @param sendstates 未完成状态集合
     * @return 未完成任务数量
     */
    int countUnfinishedServiceSubtaskByPatidAndTaskid(@Param("patid") Long patid,
                                                      @Param("taskid") Long taskid,
                                                      @Param("sendstates") List<Long> sendstates);
    /**
     * 删除单一任务(随访)
@@ -209,6 +233,14 @@
     */
    public List<ServiceSubtaskScriptCount> getSfStatisticsScriptItemDetails(ServiceSubtaskCountReq serviceSubtaskCountReq);
    /**
     * 问题选项数字下钻:查询选择了指定选项的 service_subtask 列表
     *
     * @param serviceSubtaskCountReq 统计维度、科室/病区、任务、题目及选项条件
     * @return service_subtask 列表
     */
    public List<ServiceSubtask> getSfStatisticsScriptDetailsHyperlink(ServiceSubtaskCountReq serviceSubtaskCountReq);
    public List<PatMedRes> getDeptRanking(PatMedReq patMedReq);