package com.kcim.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kcim.common.util.PageUtils;
import com.kcim.dao.model.CostShareParam;
import com.kcim.dao.model.dto.CostShareParamAccountDto;
import com.kcim.dao.model.dto.CostShareParamEditDto;
import com.kcim.dao.model.dto.CostShareParamSaveDto;
import com.kcim.vo.CostShareParamVO;

import java.util.List;

/**
 * 分摊参数对照表
 *
 * @author KCYG
 * @email KCYG@xinxicom
 * @date 2021-07-28 09:23:28
 */
public interface CostShareParamService extends IService<CostShareParam> {
    /**
     * 分页查询相关的分摊参数数据
     * @param current
     * @param pageSize
     * @param name
     * @return
     */
    PageUtils queryList(Integer current, Integer pageSize, String name, Long hospId);

    /**
     * 保存分摊参数
     * @param costShareParamSaveDto
     */
    void addCostShareParam(CostShareParamSaveDto costShareParamSaveDto);

    /**
     * 修改分摊参数
     * @param costShareParamEditDto
     */
    void updateCostShareParam(CostShareParamEditDto costShareParamEditDto);

    /**
     * 为按照科目的计算方式添加成本科目
     * @param costShareParamAccountDto
     * @return
     */
    CostShareParam updateCostShareParamByAccountId(CostShareParamAccountDto costShareParamAccountDto);

    /**
     * 获取所有分摊参数的集合信息
     * @param hospId
     * @return
     */
    List<CostShareParamVO> getAll(Long hospId);

    /**
     * 根据医院的Id分摊参数的ID获取对应的分摊参数的数据
     * @param id
     * @param hospId
     * @return
     */
    CostShareParamVO getByHospIdAndAPramId(Integer id, Long hospId);

    List<Long> selectIsSelect(Integer shareParamId);

    /**
     * 通过计算方式和id获取是否存在会计科目的成本分摊参数
     * @param shareParamId 主键id
     * @return CostShareParam
     */
    CostShareParam getByIdAndCalcType(Long shareParamId);

    /**
     * 通过code得到name
     * @param shareParamCode
     * @param hospId
     * @return
     */
    String getByCode(String shareParamCode, Long hospId);

    /**
     * 批量删除分摊参数
     * @param asList
     */
    void deleteByIds(List<Integer> asList);
}

