package com.xinelu.manage.mapper.signpatientmanageroutenode;

import com.xinelu.manage.domain.signpatientmanageroutenode.SignPatientManageRouteNode;
import com.xinelu.manage.dto.signpatientmanageroutenode.PatientTaskDto;
import com.xinelu.manage.vo.signpatientmanageroutenode.PatientTaskVo;
import java.util.List;
import org.apache.ibatis.annotations.Param;

/**
 * 签约患者管理任务路径节点Mapper接口
 *
 * @author haown
 * @date 2024-03-18
 */
public interface SignPatientManageRouteNodeMapper {
    /**
     * 查询签约患者管理任务路径节点
     *
     * @param id 签约患者管理任务路径节点主键
     * @return 签约患者管理任务路径节点
     */
    public SignPatientManageRouteNode selectSignPatientManageRouteNodeById(Long id);

	/**
	 * 查询患者管理路径节点
	 * @param patientTaskDto 任务查询传输对象
	 * @return 患者管理任务路径节点
	 */
	List<SignPatientManageRouteNode> getNodeList(PatientTaskDto patientTaskDto);

    /**
     * 查询签约患者管理任务路径节点列表
     *
     * @param signPatientManageRouteNode 签约患者管理任务路径节点
     * @return 签约患者管理任务路径节点集合
     */
    public List<SignPatientManageRouteNode> selectSignPatientManageRouteNodeList(SignPatientManageRouteNode signPatientManageRouteNode);

    /**
     * 新增签约患者管理任务路径节点
     *
     * @param signPatientManageRouteNode 签约患者管理任务路径节点
     * @return 结果
     */
    public int insertSignPatientManageRouteNode(SignPatientManageRouteNode signPatientManageRouteNode);

	int insertBatch(@Param("nodeList") List<SignPatientManageRouteNode> nodeList);

    /**
     * 修改签约患者管理任务路径节点
     *
     * @param signPatientManageRouteNode 签约患者管理任务路径节点
     * @return 结果
     */
    public int updateSignPatientManageRouteNode(SignPatientManageRouteNode signPatientManageRouteNode);

    /**
     * 删除签约患者管理任务路径节点
     *
     * @param id 签约患者管理任务路径节点主键
     * @return 结果
     */
    public int deleteSignPatientManageRouteNodeById(Long id);

    /**
     * 批量删除签约患者管理任务路径节点
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSignPatientManageRouteNodeByIds(Long[] ids);

    /**
     * 批量删除签约患者管理任务路径节点
     *
     * @param manageRouteId 需要删除的数据
     * @return 结果
     */
    int deleteRouteNodeByManageRouteId(Long manageRouteId);

	/**
	 * 查询患者任务列表
	 * @param patientTaskDto 患者任务列表查询传输对象
	 * @return 患者任务列表
	 */
	List<PatientTaskVo> selectPatientTaskList(PatientTaskDto patientTaskDto);
}
