package jnpf.model.personnels.req.transfer;

import jnpf.model.personnels.dto.base.FtbPersonnelsBaseForOA;
import jnpf.model.personnels.dto.salary.FtbPersonnelsSalaryInfo;
import lombok.Data;

import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 调岗请求对象
 */
@Data
public class SaveTransferReq extends FtbPersonnelsBaseForOA {

    private String id;
    /**
     * 用户ID
     */
    private String userId;

    /**
     * 调岗前组织
     */
    @NotBlank(message = "原组织不能为空")
    private String fromOrg;

    /**
     * 调岗前岗位
     */
    @NotBlank(message = "原岗位不能为空")
    private String fromPositionId;

    /**
     * 调岗前职等
     */
    @NotBlank(message = "原职等不能为空")
    private String fromRankId;


    /**
     * 调岗前直接主管
     */
    private String fromManager;

    /**
     * 调岗后角色，多个角色逗号分开
     */
    private String toRole;

    /**
     * 调岗后角色，多个角色逗号分开
     */
    private List<String> toRoles;

    /**
     * 调岗后直接主管
     */
    private String toManager;


    /**
     * 调岗后组织
     */
    @NotBlank(message = "调整组织不能为空")
    private String toOrg;

    /**
     * 调岗后岗位
     */
    @NotBlank(message = "调整岗位不能为空")
    private String toPositionId;

    /**
     * 调岗后职等
     */
    @NotBlank(message = "调整职等不能为空")
    private String toRankId;


    /**
     * 调岗后薪酬
     */
    @Digits(integer = 12, fraction = 2, message = "金额的格式应为最多12位整数和2位小数")
    private BigDecimal toMoney;

    /**
     * 调岗后备注
     */

    private String remarks;

    /**
     * 附件
     */
    private String files;

    /**
     * 是否需要审批：0、需要审批  1、不需要审批
     */
    private Integer isNeedCheck;

    /**
     * 工作交接列表
     */
    List<TransferPositionHandoverReq> workerPositionHandoverList;

    /**
     * 物品交接列表
     */
    List<TransferPositionHandoverReq> goodsPositionHandoverList;

    /**
     * 考勤组
     */
    private String attendanceGroup;

    /**
     * 是否调整薪酬(0,否,1是) (v1.1)
     */
    private String isAdjustSalary;


    /**
     * 薪资生效日期
     */
    private Date payrollEffectiveDate;


    /**
     * 薪资结构(0,不使用,1使用) (v1.1)
     */
    private String salaryStructure;
    /**
     *  薪资详情 (v1.1)
     */
    private List<FtbPersonnelsSalaryInfo> salaryStructureList;

    /**
     * 是否作废 0否 1是
     */
    private Integer isDelete;
    /**
     * 来源 0、员工个人申请，1、审批办理 2 ,手动办理
     */
    private String  source;

    /**
     * 薪资调整原因
     */
    private String  reasonsForSalaryAdjustments;
}
