package com.ruoyi.task.service; import com.ruoyi.common.core.domain.AjaxResult; import org.springframework.web.bind.annotation.RequestBody; import java.util.Date; import java.util.List; import java.util.Map; import com.ruoyi.template.domain.VO.HeLibraryCountVO; import com.ruoyi.template.domain.IvrTaskTemplateTargetoption; import com.ruoyi.task.domain.entity.ServiceSubtaskEntity; import com.ruoyi.task.domain.ServiceStatisticsRequest; import com.ruoyi.task.domain.ServiceStatisticsResponse; import com.ruoyi.task.domain.ServiceSubtask; import com.ruoyi.task.domain.ServiceSubtaskCount; import com.ruoyi.task.domain.ServiceSubtaskCountReq; import com.ruoyi.task.domain.ServiceSubtaskScriptCount; import com.ruoyi.task.domain.ServiceSubtaskStatistic; import com.ruoyi.task.domain.ServiceTask; import com.ruoyi.task.domain.VO.ServiceSubtaskCotinueCountVO; import com.ruoyi.task.domain.PatArchiveSrmVO; import com.ruoyi.task.domain.ServiceSubtaskDiagname; import com.ruoyi.task.domain.ServiceSubtaskIsAbnormalStatistic; import com.ruoyi.task.domain.ServiceSubtaskRes; import com.ruoyi.task.domain.ServiceSubtaskTemplateVO; import com.ruoyi.task.domain.ServiceTaskVO; import com.ruoyi.task.domain.VO.TransferDeptVO; /** * 单一任务(随访)Service接口 * * @author ruoyi * @date 2024-02-02 */ public interface IServiceSubtaskService { /** * 查询单一任务(随访) * * @param id 单一任务(随访)主键 * @return 单一任务(随访) */ public ServiceSubtask selectServiceSubtaskById(Long id); public List selectServiceSubtaskByDiagname(ServiceSubtask serviceSubtask); /** * 查询单一任务(随访)列表 * * @param serviceSubtaskVO 单一任务(随访) * @return 单一任务(随访)集合 */ public List selectServiceSubtaskList(ServiceSubtaskEntity serviceSubtaskVO); public List selectServiceSubtaskListAgain(ServiceSubtaskEntity serviceSubtaskVO); /** * 根据条件查询任务信息 * * @param ServiceSubtask * @return */ public ServiceTaskVO queryTaskByCondition(ServiceSubtask ServiceSubtask); /** * 查询患者随访信息 */ public List patItem(ServiceSubtaskEntity serviceSubtaskEntity); public List getServiceSubtasks(ServiceSubtaskEntity serviceSubtaskEntity); /** * 转移科室病区 * * @param transferDeptVO * @return */ public Integer transferDept(TransferDeptVO transferDeptVO); public List patItem2(ServiceSubtaskEntity serviceSubtaskEntity); public Map patItemCount(ServiceSubtaskEntity serviceSubtaskEntity); public Map countByCondition(ServiceSubtaskEntity serviceSubtaskEntity); /** * 新增单一任务(随访) * * @param ServiceSubtask 单一任务(随访) * @return 结果 */ public Map insertServiceSubtask(ServiceSubtask ServiceSubtask); /** * 再次新增单一任务(随访) * * @param ServiceSubtask 再次新增单一任务(随访) * @return 结果 */ public String addSubTaskAgain(ServiceSubtask ServiceSubtask); /** * 修改单一任务(随访) * * @param ServiceSubtask 单一任务(随访) * @return 结果 */ public Boolean updateServiceSubtask(ServiceSubtask ServiceSubtask); /** * 子任务模板修改 * * @param serviceSubtaskTemplateVO * @return */ public Boolean updateTemplate(ServiceSubtaskTemplateVO serviceSubtaskTemplateVO); /** * 批量删除单一任务(随访) * * @param ids 需要删除的单一任务(随访)主键集合 * @return 结果 */ public int deleteServiceSubtaskByIds(Long[] ids); /** * 新增宣教任务 * * @param ivrTaskVO 单一任务 * @return 结果 */ public Map insertOrUpdateTask(ServiceTaskVO ivrTaskVO); /* * ------------------------------------------------------------------ * 电话相关的 7 个方法(phoneCallBack / phoneCallBackYQ / getFirstQues / * processResust / taskPull / saveQuestionAnswerPhone / recordAccept) * 已随电话模块化整体搬进 ruoyi-phone: * 接口 -> com.ruoyi.phone.service.IPhoneService * 实现 -> com.ruoyi.phone.service.impl.PhoneServiceImpl * 对外 -> com.ruoyi.phone.api.PhoneFacade(其它模块从这里调电话能力) * URL 保持不变,线上电话平台无需改动。 * ------------------------------------------------------------------ */ /** * 获取随访、复诊量 * * @param serviceSubtaskCountReq * @return */ public List getSfFzInfoEveryMonth(ServiceSubtaskCountReq serviceSubtaskCountReq); public List getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq); public List getSpecialSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq); //导出随访 public List getSfStatisticsExport(ServiceSubtaskCountReq serviceSubtaskCountReq); //导出随访-异常 public List getSfStatisticsIsAbnormalExport(ServiceSubtaskCountReq serviceSubtaskCountReq); public List getSfStatisticsJoy(ServiceSubtaskCountReq serviceSubtaskCountReq); public List getSfStatisticsJoydetails(ServiceSubtaskCountReq serviceSubtaskCountReq); public List getSfStatisticsHyperlink(ServiceSubtaskCountReq serviceSubtaskCountReq); public List getServiceStatistics(ServiceStatisticsRequest request); public List getSfStatisticsScript(ServiceSubtaskCountReq serviceSubtaskCountReq); public Map getSfStatisticsScriptDetails(ServiceSubtaskCountReq serviceSubtaskCountReq); public List sendMsgTemplate(List patArchiveSrmVOS); public List convertToDiagnameList(List subtaskList); public Map getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity entity); /** * 按病区或科室统计延续护理数量 * 都不传时同时按病区和科室各统计一遍 * * @param vo 查询条件(leavehospitaldistrictcodes 与 deptcodes 互斥) * @return noContinueCount、ContinueCount 及 detail 列表 */ Map getContinueNurseCount(ServiceSubtaskCotinueCountVO vo); /** * 设置失败任务默认值,并将失败任务重新置为成功 *

* *@param failDay (失败天数:距离当前日期失败天数) * * @return */ public void setFailSubTaskDefalutVal(Long failDay); public Map getHeLibraryCount(@RequestBody HeLibraryCountVO heLibraryCountVO); public List gethelibraryCountHyperlink(@RequestBody HeLibraryCountVO heLibraryCountVO); Map smsSubTask(Long subid); public String scanGenerateSubtask(ServiceTask serviceTaskVo); /** * AI 选项匹配(把 options 序列化后 POST 到外部 AI 服务)。 *

* ⚠️ 入参改成泛型 {@code List}(原为 {@code List}): * 那个类型已随模板模块化搬进 {@code ruoyi-template},而本方法要经 * {@code SubtaskOptionMatchApiBridge} 向模板模块暴露(接口在 ruoyi-common)。 * 泛型让模板模块不必知道 {@code T} 是什么,同时保持 smartor 内部 4 处调用点形状不变。 *

* 语义无变化:方法体只做 {@code jsonObject.put("options", options)} 后整体序列化, * 从不读 {@code T} 的字段。 */ public Integer matchOptionIndex(String url, String questionText, String voiceText, List options, String uuid); }