package com.kcim.service;

import cn.hutool.poi.excel.ExcelWriter;
import com.baomidou.mybatisplus.extension.service.IService;
import com.kcim.common.util.PageUtils;
import com.kcim.dao.model.CostDepartmentProfit;
import org.apache.poi.ss.usermodel.Sheet;

import java.util.List;

/**
 * 科室损益计算
 *
 * @author KCYG
 * @email KCYG@xinxicom
 * @date 2021-08-24 16:24:08
 */
public interface CostDepartmentProfitService extends IService<CostDepartmentProfit> {
    /**
     * 查询科室损益数据
     * @param current
     * @param pageSize
     * @param responsibilityCode
     * @param date
     * @param hospId
     * @return
     */
    PageUtils queryList(Integer current, Integer pageSize, String responsibilityCode, String date, Long hospId);

    /**
     * 科室损益计算
     * @param date
     * @param hospId
     */
    void setDepartmentProfit(String date, Long hospId);

    /**
     * 科室损益计算导出
     * @param writer
     * @param sheet
     * @param date
     */
    void getDepartmentProfit(ExcelWriter writer, Sheet sheet, String date);

    /**
     * 科室损益计算导出
     * @param date
     * @param hospId
     * @param reportType
     */
    void getDepartProfitReport(String date, Long hospId, Integer reportType) throws Exception;

    /**
     *  删除科室损益数据
     * @param asList
     */
    void deleteByIds(List<Long> asList);

    void computeProfit(String computeDate, Long hospId, String reportType);

    Object computeProfitReport(String computeDate, Long hospId, String reportType);

    Object getProfitResponsibility(String reportType, String responsibilityName);

    Object getComputeProfitList(String computeDate, Long hospId, String reportType, String responsibilityCode);

    Object getLastComputeDate();

    Object getBatchComputeProfitList(String beginComputeDate, String endComputeDate, Long hospId, String reportType, String responsibilityCode);

    Object getRedirectData(String computeDate, Long reportId, Long hospId, String reportType, String responsibilityCode);

    Object getComputeProfitCollect(String computeDate, Long hospId, String reportType);

    Object getBatchComputeProfitListByYear(String startYear, String endYear, String reportType, String responsibilityCode);
}

