package com.engine.salary.report.entity.param;

import com.engine.salary.report.entity.po.SalaryStatisticsItemPO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 薪资报表统计条件保存参数
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SalaryStatisticsSearchConditionSaveParam {
    //报表id
    private Long id;

    //统计维度
    private Long dimension;

    /**
     * 1、上月
     * 2、本月
     * 3、一季度
     * 4、二季度
     * 5、三季度
     * 6、四季度
     * 7、上半年
     * 8、下半年
     * 9、本年
     * 10、自定义
     */
    //事件类型
    private Integer timeType;

    //薪资所属月-开始月
    private Date salaryStartMonth;

    //薪资所属月-终止月
    private Date salaryEndMonth;

    //个税扣缴义务人配置
    private List<Map<String, Object>> taxAgent;

    //薪资账套配置
    private List<Map<String, Object>> salarySob;

    //收入所得项目配置
    private List<Map<String, Object>> incomeCategory;

    //分部配置
    private List<Map<String, Object>> subCompany;

    //部门配置
    private List<Map<String, Object>> department;

    //职级配置
    private List<Map<String, Object>> grade;

    //岗位配置
    private List<Map<String, Object>> position;

    //人员状态配置
    private List<Map<String, Object>> status;

    //人员
    private List<Map<String, Object>> employee;

    //入职日期
    private List<LocalDate> hiredate;

    //离职日期
    private List<LocalDate> leavedate;

    //统计项列表
    private List<SalaryStatisticsItemPO> items;
}
