
package com.unis.base.server.entity;
import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.unis.common.utils.CurrentUtil;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;


/**
 * 基础实体类
 * 所有继承该实体类的实体在映射成表的时候会自动加入该类中的字段
 *
 * @author huangxing
 */
@Getter
@Setter
public abstract class BaseEntity implements Serializable {
	

	/**
     * 状态默认为1
     */
    @Column(name="status")
    private Integer status = 1;
    
    /**
     * 创建人
     */
    @Column(name="creator")
    private String creator;
    
    /**
     * 创建人编号
     */
    @Column(name="creator_code")
    private String creatorCode;

    /**
     * 创建时间
     */
    @DateTimeFormat( pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name="create_date")
    private Date createDate;

    /**
     * 刷新时间
     */
    //@Column(name="refersher_date")
    //private Date refersherDate;

    /**
     * 刷新时间
     */
    @DateTimeFormat( pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name="refresh_time")
    private Date refreshTime;

    /**
     * 刷新人
     */
    //@Column(name="refersher")
    //private String refersher;

    /**
     * 刷新人
     */
    @Column(name="refresher")
    private String refresher;
    
    /**
     * 刷新人编号
     */
    //@Column(name="refersher_code")
    //private String refersherCode;


    /**
     * 刷新人编号
     */
    @Column(name="refresher_code")
    private String refresherCode;

    /**
     * 备注
     */
    @Column(name="remark")
    private String remark;

    /**
     * 后续加上创建人等信息
     */
    public void buildInsertData(){
        Date date=new Date();
        this.status=1;
        this.createDate=date;
        this.refreshTime=date;
        this.creator= CurrentUtil.getUserAccount();
        this.creatorCode= CurrentUtil.getUserId();
    }

    /**
     * 后续加上创建人等信息
     */
    public void buildInsertData(String pk){
        buildInsertData();
    }

    /**
     * 后续加上修改人等信息
     */
    public void buildUpdateData(){
        Date date=new Date();
        this.refreshTime=date;
        this.refresher= CurrentUtil.getUserAccount();
        this.refresherCode= CurrentUtil.getUserId();
    }
}