package com.kcim.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kcim.dao.model.ReportRelation;
import com.kcim.dao.model.dto.ReportRelationDTO;
import com.kcim.vo.RelationVO;

import java.util.List;

/**
 * 报表对应项目设置关系
 *
 * @author huangrui
 * @email 
 * @date 2021-08-03 13:53:52
 */
public interface ReportRelationService extends IService<ReportRelation> {

    /**
     * 报表项目关联的会计科目对象
     * @param reportId 报表项目id
     * @param hospId 医院id
     * @return {@link RelationVO}
     */
    List<RelationVO> getAccountRelation(Long reportId, Long hospId);

    /**
     * 报表项目关联的分摊层级对象
     * @param reportId 报表项目id
     * @param hospId 医院id
     * @return {@link RelationVO}
     */
    List<RelationVO> getShareLevel(Long reportId, Long hospId);

    /**
     * 根据关系类型，获取可绑定的关系数据（包含回显）
     * @param reportId  报表项目id
     * @param relation 1.对应会计科目设置，2.对应分摊参数设置，根据列表中showAddRelation字段是否存在判断
     * @param hospId 医院id
     * @return 返回所有列表 并便是已选择的元素
     */
    List<RelationVO> getRelationList(Long reportId, Integer relation, Long hospId);

    /**
     * 编辑相关关系
     * @param reportRelationDTO
     * @param hospId
     */
    void saveReportRelation(ReportRelationDTO reportRelationDTO, Long hospId);


    /**
     * 报表项目关联的分摊层级对象
     *
     * @param reportId 报表项目id
     * @param hospId   医院id
     * @return {@link RelationVO}
     */
    List<RelationVO> getResponsibilities(Long reportId, Long hospId);

    /**
     *  批量删除分摊层级的数据
     * @param asList 分摊层级的Id集合
     */
    void deleteByIds(List<Long> asList);

    void removeByReportIds(List<Long> asList);
}

