package com.fs.his.service;

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fs.his.domain.FsFollow;
import com.fs.his.domain.FsPackageOrder;
import com.fs.his.param.FsFollowListDParam;
import com.fs.his.param.FsFollowListUParam;
import com.fs.his.param.FsFollowParam;
import com.fs.his.vo.*;

/**
 * 随访管理Service接口
 *
 * @author fs
 * @date 2023-07-14
 */
public interface IFsFollowService
{
    /**
     * 查询随访管理
     *
     * @param followId 随访管理主键
     * @return 随访管理
     */
    public FsFollow selectFsFollowByFollowId(Long followId);

    /**
     * 查询随访管理列表
     *
     * @param fsFollow 随访管理
     * @return 随访管理集合
     */
    public List<FsFollow> selectFsFollowList(FsFollow fsFollow);

    /**
     * 新增随访管理
     *
     * @param fsFollow 随访管理
     * @return 结果
     */
    public int insertFsFollow(FsFollow fsFollow);

    /**
     * 修改随访管理
     *
     * @param fsFollow 随访管理
     * @return 结果
     */
    public int updateFsFollow(FsFollow fsFollow);

    /**
     * 批量删除随访管理
     *
     * @param followIds 需要删除的随访管理主键集合
     * @return 结果
     */
    public int deleteFsFollowByFollowIds(Long[] followIds);

    /**
     * 删除随访管理信息
     *
     * @param followId 随访管理主键
     * @return 结果
     */
    public int deleteFsFollowByFollowId(Long followId);

    List<FsFollowListVO> selectFsFollowListVO(FsFollowParam fsFollow);

    FsFollowVO selectFsFollowVOByFollowId(Long followId);

    void addFsFollowByPackageOrder(FsPackageOrder order) throws JsonProcessingException;

    List<FsFollowListUVO> selectFsFollowListUVO(FsFollowListUParam param);

    List<FsFollowListDVO> selectFsFollowListDVO(FsFollowListDParam param);

    List<FsFollowExcelListVO> selectFsFollowListExcelVO(FsFollowParam fsFollow);

    List<FsFollowExportListVO> selectFsFollowExportListVO(FsFollowParam fsFollow);

    Boolean isEntityNull(FsFollowParam fsFollow);

    Long selectFsFollowListExcelVOCount(FsFollowParam fsFollow);


}
