package com.kcim.vo;

import com.kcim.dao.model.*;
import lombok.Data;

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

/**
 * 科室损益计算数据封装类
 * 用于封装计算科室损益所需的所有数据
 */
@Data
public class ProfitCalculationDataVo {
    /**
     * 计算日期
     */
    private String computeDate;

    /**
     * 当前用户ID
     */
    private Long currentUserID;

    /**
     * 年份
     */
    private Integer year;
    
    /**
     * 月份
     */
    private Integer month;
    
    /**
     * 医院ID
     */
    private Long hospId;
    
    /**
     * 报表类型
     */
    private String reportType;
    
    /**
     * 报表配置列表
     */
    private List<ReportForm> reportFormList;
    
    /**
     * 报表关系列表
     */
    private List<ReportRelation> reportRelationList;
    
    /**
     * 报表关系映射（按报表ID分组）
     */
    private Map<Long, List<ReportRelation>> reportRelationMap;
    
    /**
     * 分摊层级列表
     */
    private List<CostShareLevel> costShareLevelList;
    
    /**
     * 责任中心列表
     */
    private List<Responsibility> responsibilityList;
    
    /**
     * 收入归集数据列表
     */
    private List<IncomeCollection> incomeList;
    
    /**
     * 分摊后查询数据列表
     */
    private List<AllocationQuery> allocationQueryList;
    
    /**
     * 分摊后查询数据VO列表
     */
    private List<AllocationQueryReportVO> allocationQueryReportVOList;
    
    /**
     * 分摊数据列表
     */
    private List<Allocation> allocationList;

    /**
     *  科室收入归集数据分组
     */
    private Map<String, Map<String, List<IncomeCollection>>> respIncomeGroup;


    /**
     * 责任中心+会计科目分组
     */
    Map<String, Map<String, List<AllocationQueryReportVO>>> respAccountCostGroup;

    /**
     * 责任中心+来源责任中心分组
     */
    Map<String, Map<String, List<AllocationQueryReportVO>>> respSourceCostGroup;

    /**
     * 责任中心+分摊层级分组
     */
    Map<String, Map<Long, List<AllocationQueryReportVO>>> respShareLevelCostGroup;
}