package com.kcim.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.kcim.common.util.PageUtils;
import com.kcim.common.util.Result;
import com.kcim.dao.model.CostCostingGroup;
import com.kcim.vo.CommonDepartVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 成本归集
 *
 * @author KCYG
 * @email KCYG@xinxicom
 * @date 2021-08-12 11:00:23
 */
public interface CostCostingGroupService extends IService<CostCostingGroup> {
    /**
     * 批量导入成本数据
     *
     * @param read
     * @param file
     * @param dateTime
     * @param fileType
     * @return
     */
    Result importCostingGroup(List<List<Object>> read, MultipartFile file, String dateTime, Integer fileType);

    /**
     * 分摊前查询
     *
     * @param current            当前页
     * @param pageSize           每页数据大小
     * @param responsibilityCode 责任中心代码
     * @param accountCode        会计中心代码
     * @param date               日期 yyyy-MM-dd
     * @param hospId             医院id
     * @param departmentCode
     * @param filter
     * @return 分摊前查询列表
     */
    PageUtils queryStartAllocation(Integer current, Integer pageSize, String responsibilityCode, String accountCode, String date, Long hospId, String departmentCode, String filter);

    /**
     * 成本分摊列表
     * @param current 当前页
     * @param pageSize 每页数据大小
     * @param date 日期 这里是 yyyy-MM-dd
     * @param hospId 医院id
     * @return 分页对象
     */
    PageUtils queryAllocation(Integer current, Integer pageSize, String date, Long hospId);



    /**
     * 得到这个月的所有导入的成本数据
     * @param year 年
     * @param month 月
     * @param hospId 医院id
     * @return List
     */
    List<CostCostingGroup> getByYearAndDate(Integer year, Integer month, Long hospId);

    /**
     * 撤销分摊
     * @param year
     * @param month
     * @param hospId
     */
    void cancelAllocation(Integer year, Integer month, Long hospId);

    List<CostCostingGroup> getRealData(List<Long> maxId, Long hospId, Integer year, Integer month);


    List<CommonDepartVo> getDepartment(Integer type, String computeDate, String departmentName);

    void removeCost(String computeDate);

}

