package com.yunyan.system.domain.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yunyan.common.annotation.Excel;
import com.yunyan.common.core.domain.BaseEntityVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * 部门表 sys_dept
 *
 * @author yunyan
 */
@Data
public class SysDeptImportDataDto
{
    private static final long serialVersionUID = 1L;

    /** 部门ID */
    @TableId(value = "dept_id", type = IdType.INPUT)
    private Long deptId;

    /** 父部门ID */
    private Long parentId;

    /** 祖级列表 */
    private String ancestors;

    /** 单位名称 */
    @Excel(name = "单位名称")
    private String deptName;

    /** 显示顺序 */
    //@Excel(name = "显示顺序")
    //private Integer orderNum;

    /** 归属区域 */
    @Excel(name = "归属区域")
    @ApiModelProperty(value = "归属区域")
    private String area;

    /** 单位代码 */
    @Excel(name = "单位编码")
    @ApiModelProperty(value = "单位编码")
    private String deptCode;

    @Excel(name = "区域编码")
    @ApiModelProperty(value = "区域编码")
    private String areaCode;

    @Excel(name = "单位级别", dictType = "sys_dept_level")
    @ApiModelProperty(value = "单位级别: 按字典")
    private Integer deptLevel;

    /** 上一个部门名称 */
    @Excel(name = "上级单位名称")
    //@TableField(exist = false)
    private String parentName;

    /** 归属区域 */
    @Excel(name = "上级归属区域")
    private String areaParent;

    @Excel(name = "上级单位编码")
    private String deptCodeParent;

    @Excel(name = "上级区域编码")
    @ApiModelProperty(value = "上级区域编码")
    private String areaCodeParent;

    @Excel(name = "上级的单位级别", dictType = "sys_dept_level")
    @ApiModelProperty(value = "上级的单位级别: 按字典")
    private Integer deptLevelParent;

    @Excel(name = "序号")
    @ApiModelProperty(value = "序号")
    private String indexNo;

    @Excel(name = "是否采集数据(是/否)", readConverterExp = "0=否, 1=是")
    @ApiModelProperty(value = "是否采集数据: 0-否, 1-是, 默认0")
    private Integer importFlag;

    @Excel(name = "单位性质", readConverterExp="1=行政单位, 2=事业单位")
    @ApiModelProperty(value = "单位属性: 1-行政单位(含参照公务员法管理的事业单位), 2-事业单位, 默认1")
    private Integer deptAttr;

}
