package com.kcim.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kcim.dao.model.dto.AccountingEditDTO;
import com.kcim.dao.model.dto.AccountingSaveDTO;
import com.kcim.vo.AccountVO;
import com.kcim.dao.model.Accounting;
import com.kcim.vo.SelectAccountingVO;

import java.util.List;

/**
 * 会计科目管理表
 *
 * @author huangrui
 * @email 
 * @date 2021-07-28 13:52:24
 */
public interface AccountingService extends IService<Accounting> {

    /**
     * 获取会计科目列表按收入支出类型
     *
     * @param accountType  会计科目类型1.收入，2.支出
     * @param shareParamId
     * @param filter
     * @return
     */
    List<AccountVO> getListByAccountType(Integer accountType, Integer shareParamId, Integer incomeGroutSetId, String filter);

    /**
     * 保存会计科目
     *
     * @param accountingSaveDTO
     */
    void saveAccounting(AccountingSaveDTO accountingSaveDTO);

    /**
     * 选择会计科目列表
     *
     * @return
     */
    List<SelectAccountingVO> selectAccounting();

    /**
     * 编辑科目代码
     *
     * @param accountingEditDTO
     */
    void updateAccount(AccountingEditDTO accountingEditDTO);

    /**
     * 删除
     *
     * @param id
     */
    void deleteAccount(Long id);

    /**
     * 通过code得到对应的会计科目对象 需要调用者自己判断空
     *
     * @param accountCode 会计科目代码
     * @return {@link Accounting} 可能为空 需要调用者自行判断
     */
    Accounting getByCode(String accountCode,Long hospId);

    Object getAccountTypeDict(Integer type);

    List<Accounting> getAccountList(Long hospId, List<String> accountList);
}

