package org.jeecg.modules.basedata.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotEmpty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @ClassName FdMilestoneTemplateItemTree
 * @Author 谷瑞
 * @Description //TODO
 * @Date 2019/5/15 9:42
 **/


public class FdMilestoneTemplateItemTree implements Serializable {

    private static final long serialVersionUID= 1L;

    /**
     * 对应BmSupplierClass中的id字段,前端数据树中的key
     */
    private String key;

    /**
     * 对应BmSupplierClass中的id字段,前端数据树中的value
     */
    private String value;

    /**
     * 对应BmSupplierClass.name字段,前端数据树中的title
     */
    private String title;
    /**
     * 是否叶子节点
     */
    private boolean isLeaf;

    /**主键*/
    private java.lang.String id;
    /**里程碑模板主键*/
    private java.lang.String pkMilestoneTemplate;
    /**编码/序号*/
    private java.lang.String code;
    /**里程碑描述*/
    private java.lang.String description;
    /**权重*/
    private java.lang.String weight;
    /**是否关键节点0否1是*/
    private java.lang.String isKeypoint;
    /**排序*/
    private java.lang.String sort;
    /**父节点*/
    private java.lang.String parentId;
    /**所有父节点*/
    private java.lang.String parentIds;
    /**是否停用0正常1停用*/
    private java.lang.String enable;
    /**删除标记0正常1删除*/
    private java.lang.String delFlag;
    /**版本号*/
    private java.lang.String version;
    /**创建人*/
    private java.lang.String createBy;
    /**创建时间*/
    private java.util.Date createTime;
    /**最后修改人*/
    private java.lang.String updateBy;
    /**最后修改时间*/
    private java.util.Date updateTime;
    /**备注*/
    private java.lang.String memo;
    /**扩展字段1*/
    private java.lang.String def1;
    /**扩展字段2*/
    private java.lang.String def2;
    /**扩展字段3*/
    private java.lang.String def3;
    /**扩展字段4*/
    private java.lang.String def4;
    /**扩展字段5*/
    private java.lang.String def5;
    /**加字段*/
    private List<FdMilestoneTemplateItemTree> children = new ArrayList<>();

    private Boolean isKeypointBoo;

    private Boolean payMilestonesBoolean;

    private Boolean uploadFileBoolean;

    private Boolean isKeypointBoolean;

    //临床里程碑查询用
    //是否付款节点
    private boolean payMilestonesBoo;
    //是否上传下载
    private boolean uploadFileBoo;

    public FdMilestoneTemplateItemTree(){}

    public FdMilestoneTemplateItemTree(FdMilestoneTemplateItem fdMilestoneTemplateItem){
        this.key = fdMilestoneTemplateItem.getId();
        this.value = fdMilestoneTemplateItem.getId();
        this.title = fdMilestoneTemplateItem.getCode();
        this.id = fdMilestoneTemplateItem.getId();
        this.pkMilestoneTemplate = fdMilestoneTemplateItem.getPkMilestoneTemplate();
        this.code = fdMilestoneTemplateItem.getCode();
        this.description = fdMilestoneTemplateItem.getDescription();
        this.weight = fdMilestoneTemplateItem.getWeight();
        this.isKeypoint = fdMilestoneTemplateItem.getIsKeypoint();
        this.sort = fdMilestoneTemplateItem.getSort();
        this.parentId = fdMilestoneTemplateItem.getParentId();
        this.parentIds = fdMilestoneTemplateItem.getParentIds();
        this.enable = fdMilestoneTemplateItem.getEnable();
        this.delFlag = fdMilestoneTemplateItem.getDelFlag();
        this.version = fdMilestoneTemplateItem.getVersion();
        this.createBy = fdMilestoneTemplateItem.getCreateBy();
        this.createTime = fdMilestoneTemplateItem.getCreateTime();
        this.updateBy = fdMilestoneTemplateItem.getUpdateBy();
        this.updateTime = fdMilestoneTemplateItem.getUpdateTime();
        this.memo = fdMilestoneTemplateItem.getMemo();
        this.def1 = fdMilestoneTemplateItem.getDef1();
        this.def2 = fdMilestoneTemplateItem.getDef2();
        this.def3 = fdMilestoneTemplateItem.getDef3();
        this.def4 = fdMilestoneTemplateItem.getDef4();
        this.def5 = fdMilestoneTemplateItem.getDef5();
        this.payMilestonesBoolean=false;
        this.uploadFileBoolean=false;
        this.payMilestonesBoo=false;
        this.uploadFileBoo=false;
    }

    public boolean isPayMilestonesBoo() {
        return payMilestonesBoo;
    }

    public void setPayMilestonesBoo(boolean payMilestonesBoo) {
        this.payMilestonesBoo = payMilestonesBoo;
    }

    public boolean isUploadFileBoo() {
        return uploadFileBoo;
    }

    public void setUploadFileBoo(boolean uploadFileBoo) {
        this.uploadFileBoo = uploadFileBoo;
    }

    public Boolean getKeypointBoolean() {
        return isKeypointBoolean;
    }

    public void setKeypointBoolean(Boolean keypointBoolean) {
        isKeypointBoolean = keypointBoolean;
    }

    public Boolean getPayMilestonesBoolean() {
        return payMilestonesBoolean;
    }

    public void setPayMilestonesBoolean(Boolean payMilestonesBoolean) {
        this.payMilestonesBoolean = payMilestonesBoolean;
    }

    public Boolean getUploadFileBoolean() {
        return uploadFileBoolean;
    }

    public void setUploadFileBoolean(Boolean uploadFileBoolean) {
        this.uploadFileBoolean = uploadFileBoolean;
    }

    public Boolean getKeypointBoo() {
        return isKeypointBoo;
    }

    public void setKeypointBoo(Boolean keypointBoo) {
        isKeypointBoo = keypointBoo;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getPkMilestoneTemplate() {
        return pkMilestoneTemplate;
    }

    public void setPkMilestoneTemplate(String pkMilestoneTemplate) {
        this.pkMilestoneTemplate = pkMilestoneTemplate;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getWeight() {
        return weight;
    }

    public void setWeight(String weight) {
        this.weight = weight;
    }

    public String getIsKeypoint() {
        return isKeypoint;
    }

    public void setIsKeypoint(String isKeypoint) {
        this.isKeypoint = isKeypoint;
    }

    public String getSort() {
        return sort;
    }

    public void setSort(String sort) {
        this.sort = sort;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getParentIds() {
        return parentIds;
    }

    public void setParentIds(String parentIds) {
        this.parentIds = parentIds;
    }

    public String getEnable() {
        return enable;
    }

    public void setEnable(String enable) {
        this.enable = enable;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getVersion() {
        return version;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo;
    }

    public String getDef1() {
        return def1;
    }

    public void setDef1(String def1) {
        this.def1 = def1;
    }

    public String getDef2() {
        return def2;
    }

    public void setDef2(String def2) {
        this.def2 = def2;
    }

    public String getDef3() {
        return def3;
    }

    public void setDef3(String def3) {
        this.def3 = def3;
    }

    public String getDef4() {
        return def4;
    }

    public void setDef4(String def4) {
        this.def4 = def4;
    }

    public String getDef5() {
        return def5;
    }

    public void setDef5(String def5) {
        this.def5 = def5;
    }

    public List<FdMilestoneTemplateItemTree> getChildren() {
        return children;
    }

    public void setChildren(List<FdMilestoneTemplateItemTree> children) {
        if (children == null) {
            this.isLeaf = true;
        }
        this.children = children;
    }

    public boolean getIsLeaf() {
        return isLeaf;
    }

    public void setIsLeaf(boolean leaf) {
        isLeaf = leaf;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}
