package com.fs.his.service;

import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.his.domain.FsSopDoctorTask;
import com.fs.his.dto.FsDoctorTaskDTO;
import com.fs.his.dto.SopDoctorTaskDto;
import com.fs.his.vo.SopDoctorTaskVo;

/**
 * 医生处理sop任务Service接口
 * 
 * @author fs
 * @date 2025-12-25
 */
public interface IFsSopDoctorTaskService extends IService<FsSopDoctorTask>{
    /**
     * 查询医生处理sop任务
     * 
     * @param id 医生处理sop任务主键
     * @return 医生处理sop任务
     */
    SopDoctorTaskVo selectFsSopDoctorTaskVoById(Long id);

    /**
     * 查询医生处理sop任务列表
     * 
     * @param queryDto 医生处理sop任务
     * @return 医生处理sop任务集合
     */
    List<SopDoctorTaskVo> selectFsSopDoctorTaskVoList(SopDoctorTaskDto queryDto);

    /**
     * 新增医生处理sop任务
     * 
     * @param fsSopDoctorTask 医生处理sop任务
     * @return 结果
     */
    int insertFsSopDoctorTask(FsSopDoctorTask fsSopDoctorTask);

    /**
     * 修改医生处理sop任务
     * 
     * @param fsSopDoctorTask 医生处理sop任务
     * @return 结果
     */
    int updateFsSopDoctorTask(FsSopDoctorTask fsSopDoctorTask);

    /**
     * 批量删除医生处理sop任务
     * 
     * @param ids 需要删除的医生处理sop任务主键集合
     * @return 结果
     */
    int deleteFsSopDoctorTaskByIds(Long[] ids);

    /**
     * 删除医生处理sop任务信息
     * 
     * @param id 医生处理sop任务主键
     * @return 结果
     */
    int deleteFsSopDoctorTaskById(Long id);

    List<SopDoctorTaskVo> statsDoctorOverviewAllList(SopDoctorTaskDto queryDto);


    List<FsSopDoctorTask> selectFsSopDoctorTaskList(FsSopDoctorTask task);

    /**
     * 提交跟进会员任务
     * */
    int submitDoctorTask(FsDoctorTaskDTO addTaskDto);

    /**
     * 查询跟进会员任务处理记录
     * @param queryDto 医生处理任务
     * @return 医生处理sop任务集合
     * */
    List<SopDoctorTaskVo> selectSopDoctorTaskVoProcessRecordList(SopDoctorTaskDto queryDto);

    /**
     * 销售查询任务列表
     */
    List<FsSopDoctorTask> getSalesSignOffTasks(FsSopDoctorTask param);

    /**
     * 销售查询签收任务（已处理的）
     */
    List<FsSopDoctorTask> getSalesTaskList(FsSopDoctorTask param);
}
