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

import com.engine.salary.common.BaseQueryParam;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;

/**
 * @Author weaver_cl
 * @Description: 高级查询档案列表
 * @Date 2022/3/17
 * @Version V1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class InsuranceArchivesListParam extends BaseQueryParam {
    //姓名
    private String userName;

    //工号")
    private String jobNum;

    //部门(多选)")
    private List<BigDecimal> departmentIds;

    //分部(多选)")
    private List<BigDecimal> subcompanyIds;

    private String departmentIdsStr;
    private String subcompanyIdsStr;

    //状态(多线)")
    private List<String> statuses;
    private String statusesStr;

    //岗位(多选)")
    private List<BigDecimal> positions;

    private String positionsStr;

    //入职时间")
    private String[] hireDate;

    //离职时间")
    private String[] dimissionDate;

    //入职开始时间")
    private String hiredateStart;

    //入职结束时间")
    private String hiredateEnd;

    //离职开始时间")
    private String dimissionDateStart;

    //离职结束时间")
    private String dimissionDateEnd;

    //社保方案id")
    private Long siSchemeId;

    //公积金方案id")
    private Long fundSchemeId;

    //其他福利方案id")
    private Long otherSchemeId;

    //导出档案员工id集合")
    private List<Long> employeeIds;

    //分页起始索引")
    private Long startNum;


    //快捷搜索")
    private String keyword;

    //快捷搜索和高级搜索标识")
    private String dataSource;

    //是否导出原有数据")
    private Boolean exportData;

    //是否导出所有核酸异常数据")
    private Boolean inspectAll;

    //主键id集合")
    private List<Long> ids;

    //账单月份")
    private String billMonth;

    //是否导出模板")
    private Boolean templateFlag;

    //分权
    private Boolean needAuth;
    //个税扣缴义务人下人员
    private Collection<Long> taxAgentEmployeeIds;
    //个税扣缴义务人
    private Collection<Long> taxAgentIds;
    //个税扣缴义务人id
    private Long taxAgentId;
    //福利执行状态
    private List<String> runStatuses;

    /**
     * 人事状态
     */
    private List<String> personnelStatuses;

    /**
     * 是否是外部系统档案
     */
    private boolean extWelArchiveList;
}
