package com.ym.mec.biz.service;

import com.ym.mec.biz.dal.dto.FinancialExpenditureDto;
import com.ym.mec.biz.dal.dto.QuitMusicGroupDto;
import com.ym.mec.biz.dal.dto.ReturnFeeDto;
import com.ym.mec.biz.dal.entity.FinancialExpenditure;
import com.ym.mec.biz.dal.page.FinancialExpenditureQueryInfo;
import com.ym.mec.common.entity.HttpResponseResult;
import com.ym.mec.common.page.PageInfo;
import com.ym.mec.common.page.QueryInfo;
import com.ym.mec.common.service.BaseService;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.net.MalformedURLException;
import java.util.List;
import java.util.Map;

public interface FinancialExpenditureService extends BaseService<Long, FinancialExpenditure> {
    /**
     * @param file:
     * @return java.lang.Object
     * @describe 导入财务支出
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/7
     * @time 18:31
     */
    List<FinancialExpenditure> importFinancialExpenditure(MultipartFile file) throws Exception;

    PageInfo<FinancialExpenditureDto> queryFinancialExpenditurePage(FinancialExpenditureQueryInfo queryInfo);

    /**
     * @param ids:
     * @return void
     * @describe 批量删除
     * @apiNote 时光荏苒，认真工作的时间总是过得很快，而我、享受这一刻！
     * @author zouxuan
     * @date 2020/9/9
     * @time 11:44
     */
    void batchDel(String ids);


    /**
     * 批量插入支出记录
     *
     * @param financialExpenditures
     * @return
     */
    List<FinancialExpenditure> batchAdd(List<FinancialExpenditure> financialExpenditures);

    /**
    * @description: 同步oa审批到支出记录
     * @param workOrderId
    * @return void
    * @author zx
    * @date 2021/11/25 16:07
    */
    void syncOaPayLog(Integer workOrderId,String fileUrl) throws Exception;

    /**
    * @description: 校验课程、乐团退费参数
     * @param paramMap
    * @return com.ym.mec.common.entity.HttpResponseResult
    * @author zx
    * @date 2021/11/29 14:40
    */
    void checkCourseReturnFee(Map<String,String> paramMap);

    /**
    * @description: 校验oa退团excel
     * @param file
    * @return void
    * @author zx
    * @date 2022/3/29 14:57
    */
    List<FinancialExpenditure> checkOaQuitMusicGroupExcel(byte[] buf, String filename) throws Exception;
}
