| | |
| | | |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | | import com.smartor.domain.*; |
| | | import com.smartor.domain.DTO.MydTrendReqDTO; |
| | | import com.smartor.domain.DTO.MzMydScoreRankDTO; |
| | | import com.smartor.domain.DTO.QuestionCountKsOrBqDTO; |
| | | import com.smartor.domain.DTO.QuestionResultDTO; |
| | | import com.smartor.domain.ServiceSubtask; |
| | | import com.smartor.domain.VO.*; |
| | | import com.smartor.domain.entity.ServiceSubtaskEntity; |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import com.ruoyi.template.domain.VO.HeLibraryCountVO; |
| | | import com.ruoyi.template.domain.IvrTaskTemplateTargetoption; |
| | | /** |
| | | * 单一任务(随访)Service接口 |
| | | * |
| | |
| | | |
| | | public PhoneCallBackSHVO processResust(PhoneCallResultYQVO phoneCallReqYQVO); |
| | | |
| | | /** |
| | | * 问题结果占比 |
| | | * |
| | | * @param QuestionResultVO |
| | | * @param serviceSubtaskRes |
| | | * @return |
| | | */ |
| | | public List<ServiceSubtaskDetailRatioExport> getDetailRatio(SltdMydTotalVO sltdMydTotalVO, List<ServiceSubtaskRes> serviceSubtaskRes); |
| | | |
| | | |
| | | |
| | | /** |
| | |
| | | |
| | | Map<String, Object> smsSubTask(Long subid); |
| | | |
| | | /** |
| | | * 统计问题的选项的百分比 (用于服务类型 2) |
| | | * |
| | | * @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, 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) |
| | | * |
| | | * @param subtaskIds 子任务 ID 列表 |
| | | * @return |
| | | */ |
| | | public List<ServiceSubtaskDetailRatioExport> statQuestionOptionBySubtaskIds(List<Long> subtaskIds, Date startOutHospTime, Date endOutHospTime, Date startFinishTime, Date endFinishTime, String scriptContent, Double scoreStart, Double scoreEnd, String valueType); |
| | | |
| | | |
| | | public Map<String, Map<String, List<QuestionCountKsOrBqDTO>>> statQuestionOptionByKsOrBq(QuestionCountKsOrBqVO questionCountKsOrBqVO); |
| | | |
| | | |
| | | public String scanGenerateSubtask(ServiceTask serviceTaskVo); |
| | | |
| | | public List<MydTrendReqDTO> mydTrend(MydTrendReqVO mydTrendReqVO); |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据时间给度进行对比满意度分数 |
| | | * @param mydTrendReqVO |
| | | * @return |
| | | */ |
| | | public List<MydTrendReqDTO> sltdMydTotalByDimension(MydTrendReqVO mydTrendReqVO); |
| | | |
| | | public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid); |
| | | |
| | | /** |
| | | * 门诊满意度综合得分排名(按科室或病区) |
| | | * AI 选项匹配(把 options 序列化后 POST 到外部 AI 服务)。 |
| | | * <p> |
| | | * 综合满意度 = Σ(评分明细权重) / 评分明细条数 × 100%, |
| | | * 权重只取 1、0.8、0.6、0.4、0.2 五档。 |
| | | * |
| | | * @param mzMydScoreRankVO 查询条件 |
| | | * @return 排名结果,已按综合得分降序并填充名次(从 1 开始) |
| | | * ⚠️ 入参改成<b>泛型</b> {@code List<T>}(原为 {@code List<IvrTaskTemplateTargetoption>}): |
| | | * 那个类型已随模板模块化搬进 {@code ruoyi-template},而本方法要经 |
| | | * {@code SubtaskOptionMatchApiBridge} 向模板模块暴露(接口在 ruoyi-common)。 |
| | | * 泛型让模板模块不必知道 {@code T} 是什么,同时保持 smartor 内部 4 处调用点形状不变。 |
| | | * <p> |
| | | * 语义无变化:方法体只做 {@code jsonObject.put("options", options)} 后整体序列化, |
| | | * 从不读 {@code T} 的字段。 |
| | | */ |
| | | public List<MzMydScoreRankDTO> mzMydScoreRank(MzMydScoreRankVO mzMydScoreRankVO); |
| | | public <T> Integer matchOptionIndex(String url, String questionText, String voiceText, List<T> options, String uuid); |
| | | |
| | | |
| | | } |