package com.engine.salary.entity.salaryarchive.dto;

import com.cloudstore.eccom.pc.table.WeaTableType;
import com.engine.salary.annotation.SalaryTable;
import com.engine.salary.annotation.SalaryTableColumn;
import com.engine.salary.annotation.TableTitle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 个税扣缴义务人调整记录列表
 * <p>Copyright: Copyright (c) 2022</p>
 * <p>Company: 泛微软件</p>
 *
 * @author qiantao
 * @version 1.0
 **/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
//个税扣缴义务人调整记录列表")
@SalaryTable(pageId = "a4f85287-e3f9-4275-1567-7d06e54y6rj8", tableType = WeaTableType.CHECKBOX)
public class TaxAgentAdjustRecordListDTO {
    //主键id")
    @JsonSerialize(using = ToStringSerializer.class)
    @SalaryTableColumn(column = "id", display = false)
    private Long id;

    /**
     * 人员信息表的主键id
     */
    private Long employeeId;

    @SalaryTableColumn(text = "姓名", width = "10%", column = "username")
    @TableTitle(title = "姓名",dataIndex = "username",key = "username")
    private String username;

    @SalaryTableColumn(text = "部门", width = "10%", column = "departmentName")
    @TableTitle(title = "部门",dataIndex = "departmentName",key = "departmentName")
    private String departmentName;

    @SalaryTableColumn(text = "员工状态", width = "10%", column = "employeeStatus")
    @TableTitle(title = "员工状态",dataIndex = "employeeStatus",key = "employeeStatus")
    private String employeeStatus;

    @SalaryTableColumn(text = "调整前", width = "10%", column = "adjustBefore")
    @TableTitle(title = "调整前",dataIndex = "adjustBefore",key = "adjustBefore")
    private String adjustBefore;

    @SalaryTableColumn(text = "调整后", width = "10%", column = "adjustAfter")
    @TableTitle(title = "调整后",dataIndex = "adjustAfter",key = "adjustAfter")
    private String adjustAfter;

    @SalaryTableColumn(text = "调整原因", width = "10%", column = "adjustReason")
    @TableTitle(title = "调整原因",dataIndex = "adjustReason",key = "adjustReason")
    private String adjustReason;

    @SalaryTableColumn(text = "生效日期", width = "10%", column = "effectiveTime")
    @TableTitle(title = "生效日期",dataIndex = "effectiveTime",key = "effectiveTime")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date effectiveTime;

    @SalaryTableColumn(text = "操作人", width = "10%", column = "operator")
    @TableTitle(title = "操作人",dataIndex = "operator",key = "operator")
    private String operator;

    @SalaryTableColumn(text = "操作时间", width = "10%", column = "operateTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableTitle(title = "操作时间",dataIndex = "operateTime",key = "operateTime")
    private Date operateTime;

    @SalaryTableColumn(text = "备注", width = "10%", column = "description")
    @TableTitle(title = "备注",dataIndex = "description",key = "description")
    private String description;

    /**
     * 薪资档案id
     */
    private Long salaryArchiveId;

    /**
     * 个税扣缴义务人id
     */
    @JsonIgnore
    private Long taxAgentId;

}
