package ${packageName}.domain;

#foreach ($import in $importList)
import ${import};
#end
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zbf.common.annotation.Excel;
#if($table.crud || $table.sub)
import com.zbf.common.core.domain.BaseEntity;
#elseif($table.tree)
import com.zbf.common.core.domain.TreeEntity;
#end

/**
 * ${functionName}对象 ${tableName}
 *
 * @author ${author}
 * @date ${datetime}
 */
#if($table.crud || $table.sub)
    #set($Entity="BaseEntity")
#elseif($table.tree)
    #set($Entity="TreeEntity")
#end
@TableName(resultMap = "${packageName}.mapper.${ClassName}Mapper.${ClassName}Result")
public class ${ClassName} extends ${Entity} {
private static final long serialVersionUID = 1L;

#foreach ($column in $columns)
    #if(!$table.isSuperColumn($column.javaField))
    /** $column.columnComment */
        #if($column.list)
            #set($parentheseIndex=$column.columnComment.indexOf("（"))
            #if($parentheseIndex != -1)
                #set($comment=$column.columnComment.substring(0, $parentheseIndex))
            #else
                #set($comment=$column.columnComment)
            #end
            #if($parentheseIndex != -1)
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
            #elseif($column.javaType == 'Date')
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
            #else
    @Excel(name = "${comment}")
            #end
        #end
        #if($column.isPk == 1)
    @TableId(value = "$column.columnName",type = IdType.AUTO)
        #end
    private $column.javaType $column.javaField;

    #end
#end
#if($table.sub)
/** $table.subTable.functionName信息 */
    private List<${subClassName}> ${subclassName}List;

#end
#foreach ($column in $columns)
    #if(!$table.isSuperColumn($column.javaField))
        #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
            #set($AttrName=$column.javaField)
        #else
            #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
        #end
    public void set${AttrName}($column.javaType $column.javaField)
            {
            this.$column.javaField = $column.javaField;
            }

    public $column.javaType get${AttrName}()
            {
            return $column.javaField;
            }
    #end
#end

#if($table.sub)
public List<${subClassName}> get${subClassName}List()
        {
        return ${subclassName}List;
        }

public void set${subClassName}List(List<${subClassName}> ${subclassName}List)
        {
        this.${subclassName}List = ${subclassName}List;
        }

#end
@Override
public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
    #foreach ($column in $columns)
        #if($column.javaField.length() > 2 && $column.javaField.substring(1,2).matches("[A-Z]"))
            #set($AttrName=$column.javaField)
        #else
            #set($AttrName=$column.javaField.substring(0,1).toUpperCase() + ${column.javaField.substring(1)})
        #end
            .append("${column.javaField}", get${AttrName}())
    #end
    #if($table.sub)
            .append("${subclassName}List", get${subClassName}List())
    #end
        .toString();
        }
}


















##package ${packageName}.domain;
##
###foreach ($import in $importList)
##import ${import};
###end
##import com.baomidou.mybatisplus.annotation.*;
##import lombok.NoArgsConstructor;
##import lombok.experimental.Accessors;
##import lombok.Data; //添加
##import java.io.Serializable; //添加
##import com.zbf.common.annotation.Excel;
###if($table.crud || $table.sub)
###elseif($table.tree)
##import com.zbf.common.core.domain.TreeEntity;
###end
##
##/**
## * ${functionName}对象 ${tableName}
## *
## * @author ${author}
## * @date ${datetime}
## */
##@Data
##@NoArgsConstructor
##@Accessors(chain = true)
##@TableName("${tableName}")
###if($table.crud || $table.sub)
###set($Entity="BaseEntity")
###elseif($table.tree)
###set($Entity="TreeEntity")
###end
##public class ${ClassName}
##{
##    private static final long serialVersionUID = 1L;
###foreach ($column in $columns)
##    #if(!$table.isSuperColumn($column.javaField))
##    /** $column.columnComment */
##        #if($column.list)
##            #set($parentheseIndex=$column.columnComment.indexOf("（"))
##            #if($parentheseIndex != -1)
##                #set($comment=$column.columnComment.substring(0, $parentheseIndex))
##            #else
##                #set($comment=$column.columnComment)
##            #end
##            #if($parentheseIndex != -1)
##            @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
##            #elseif($column.javaType == 'Date')
##            @JsonFormat(pattern = "yyyy-MM-dd")
##            @Excel(name = "${comment}", width = 30, dateFormat = "yyyy-MM-dd")
##            #else
##            @Excel(name = "${comment}")
##            #end
##        #end
##    private $column.javaType $column.javaField;
##
##    #end
###end
##}
