陈昶聿
昨天 1787e235922ca30045c6875269c5114defef52d7
smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -69,6 +69,8 @@
    public Map<String, Object> patItemCount(ServiceSubtaskEntity serviceSubtaskEntity);
    public Map<String, Object> countByCondition(ServiceSubtaskEntity serviceSubtaskEntity);
    /**
     * 新增单一任务(随访)
     *
@@ -84,6 +86,16 @@
     * @return 结果
     */
    public String addSubTaskAgain(ServiceSubtask ServiceSubtask);
    /**
     * 首次随访任务超时后,按下一任务自动生成再次随访任务(随访中心)。
     * <p>
     * 与手动入口的差异:随访中心科室未配置时回退原任务科室;同一原任务只生成一条(锁 + 条件更新幂等)。
     *
     * @param serviceSubtask 已超时的首次随访子任务
     * @return 结果描述
     */
    public String addSubTaskAgainByDeadline(ServiceSubtask serviceSubtask);
    /**
     * 修改单一任务(随访)
@@ -194,6 +206,13 @@
    public List<ServiceSubtaskDiagname> convertToDiagnameList(List<ServiceSubtask> subtaskList);
    /**
     * 统计任务各种状态的数量 -【随访工作台】
     *
     * @param entity 查询条件(科室/病区权限、soonTimeoutHours 即将超时小时数等)
     * @return 含 pendingVisitCount、failedVisitCount、abnormalVisitCount、warnningVisitCount、
     * allVisitCount、soonTimeoutCount 的统计结果
     */
    public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity entity);
    /**
@@ -220,13 +239,27 @@
    Map<String, Object> smsSubTask(Long subid);
    Map<String, Object> weChatSubTask(Long subid);
    /**
     * 统计问题的选项的百分比 (用于服务类型 2)
     *
     * @param taskIds
     * @param taskIds    任务 ID 列表
     * @param subtaskIds 子任务 ID 列表(可选):传了就只统计这批子任务(本次导出的患者),分母也用同一批数据
     * @return
     */
    public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startFinishTime, Date endFinishTime, Date startOutHospTime, Date endOutHospTime, String scriptContent, Double scoreStart, Double scoreEnd, String valueType);
    public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startFinishTime, Date endFinishTime, Date startOutHospTime, Date endOutHospTime, String scriptContent, Double scoreStart, Double scoreEnd, String valueType, List<Long> subtaskIds);
    /**
     * 导出「问题详情占比」专用统计(只统计本次导出的这批患者)
     * <p>
     * 数量 = 选择该选项的患者数;比例 = 数量 / 该题作答患者数;分数 = 该选项明细 score 之和;
     * 任务名称/任务编号 = service_task.task_name / taskid。
     *
     * @param subtaskIds   本次导出的子任务 ID
     * @param questiontext 问题内容(可选)
     */
    public List<ServiceSubtaskDetailRatioExport> statMydQuestionOptionForExport(List<Long> subtaskIds, String questiontext);
    /**
     * 根据子任务 ID 统计问题的选项的百分比(用于满意度统计 serviceType=6)