package com.ruoyi.finance.service;

import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.finance.domain.TFee;
import com.ruoyi.finance.domain.TWareHouseFees;
import com.ruoyi.warehouseBusiness.domain.TWareHouseExcelItem;

import java.util.List;
import java.util.Map;

/**
 * 财务数据主Service接口
 *
 * @author ruoyi
 * @date 2021-01-18
 */
public interface ITFeeService {
    /**
     * 查询财务数据主
     *
     * @param fId 财务数据主ID
     * @return 财务数据主
     */
    public Map<String, Object> selectTFeeById(Long fId);

    /**
     * 查询财务数据主列表
     *
     * @param tFee 财务数据主
     * @return 财务数据主集合
     */
    public List<TFee> selectTFeeList(TFee tFee);

    public List<Map<String, Object>> selectTFeeList1(TFee tFee);

    /**
     * 新增财务数据主
     *
     * @param tFee 财务数据主
     * @return 结果
     */
    public int insertTFee(TFee tFee);


    /**
     *  保存对账、收款
     * @param tfee
     * @param tfeeDo
     * @param loginUser
     * @param fBilltype
     * @return
     */
    public AjaxResult insertTFeeTFeeDo(String tfee, String tfeeDo ,LoginUser loginUser,String fBilltype);

    /**
     * 修改财务数据主
     *
     * @param tFee 财务数据主
     * @return 结果
     */
    public int updateTFee(TFee tFee);

    /**
     * 批量删除财务数据主
     *
     * @param fIds 需要删除的财务数据主ID
     * @return 结果
     */
    public int deleteTFeeByIds(Long[] fIds);

    /**
     * 删除财务数据主信息
     *
     * @param fId 财务数据主ID
     * @return 结果
     */
    public int deleteTFeeById(Long fId);

    /**
     *   对账、收费、付费
     * @param tWareHouseFees
     * @return
     */
    public List<Map<String, Object>> warehouseBillsFeesList(TWareHouseFees tWareHouseFees,String billsType);

    public List<Map<String, Object>> warehouseBillsFeesList(TWareHouseFees tWareHouseFees);

    public List<Map<String, Object>> warehouseBillsFeesProfitList(TWareHouseFees tWareHouseFees);

    /**
     *  财务： 对账、收费、付费   流程确认
     * @param tfee
     * @param tfeeDo
     * @param loginUser
     * @param fBilltype
     * @return
     */
    public AjaxResult confirm(String tfee, String tfeeDo ,LoginUser loginUser,String fBilltype);

    public AjaxResult revoke(String tfee, String tfeeDo ,LoginUser loginUser,String fBilltype);

    public AjaxResult queryRemove(Long fId);

    /**
     *  导出计算明细
     * @param fId
     * @return
     */
    public List<TWareHouseExcelItem> selectTWarehousebillsItemsList(Long  fId);

    public  String  findCtrlcorpid (Long  fId);
}
