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

import com.engine.salary.entity.datacollection.DataCollectionEmployee;
import com.engine.salary.entity.datacollection.po.VariableArchiveItemPO;
import com.engine.salary.entity.datacollection.po.VariableArchivePO;
import com.engine.salary.entity.datacollection.po.VariableItemPO;
import com.engine.salary.entity.taxagent.po.TaxAgentPO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 数据采集-浮动薪酬导入参数
 * <p>Copyright: Copyright (c) 2024</p>
 * <p>Company: 泛微软件</p>
 *
 * @author xzy
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class VariableArchiveImportHandleParam {

    // 上传文件id
    String imageId;

    // 薪资所属月
    String salaryMonth;

    Date salaryMonthDate;

    // ---------------------------
    Long currentEmployeeId;

    String tenantKey;

    /**
     * 人员验证方式
     */
    String empValidType;

    /**
     * 获取租户下所有的人员
     */
    List<DataCollectionEmployee> employees;

    /**
     * 获取所有可被引用的浮动薪资项目
     */
    List<VariableItemPO> variableItems;

    /**
     * 查询已有的浮动薪资档案基本数据
     */
    Map<String, VariableArchivePO> variableArchivesMap;

    /**
     * 浮动薪资项目id
     */
    Collection<Long> variableItemIds;

    /**
     * 查询已生效的浮动薪资项目数据
     */
    Map<String, List<VariableArchiveItemPO>> effectiveItemListMap;

    /**
     * 获取所有个税扣缴义务人
     */
    Collection<TaxAgentPO> taxAgentList;

    /**
     * 当前时间
     */
    Date nowTime = new Date();

    /**
     * 当天
     */
    Date today = new Date();

    /**
     * 待保存浮动薪资档案
     */
    List<VariableArchivePO> variableArchiveSaves;

    /**
     * 待保存浮动薪资档案-浮动薪资项目
     */
    List<VariableArchiveItemPO> variableArchiveItemSaves;

    /**
     * 待删除浮动薪资档案-浮动薪资项目
     */
    List<Long> variableArchiveItemDelSalaryItemIds;
}
