/**
* 文件：MateriaBomEntity.java
* 版本：1.0.0
* 日期：
* Copyright &reg; 
* All right reserved.
*/

package com.mortals.xhx.module.materia.model;

import com.mortals.framework.model.BaseEntityLong;

import java.util.Date;

/**
 * <p>Title: 物料BOM单表</p>
 * <p>Description: MateriaBomEntity  </p>
 * <p>Copyright: Copyright &reg;  </p>
 * <p>Company: </p>
 * @author 
 * @version 1.0.0
 */
public class MateriaBomEntity extends BaseEntityLong{
	private static final long serialVersionUID = 1614069964438L;
	
	/** bom短代码，同一产品树下唯一，生成后不可变 */
	private String selfCode;

	/** bom代码，包括物料BOM类目代码 */
	private String code;

	/** 物料BOM类目ID */
	private Long bomTreeId;

	/** 物料BOM类目CODE，物料BOM类目代码 */
	private String bomTreeCode;

	/** 所属物料ID，bom与物料一一对应 */
	private Long materiaId;

	/** 所属物料代码 */
	private String materiaCode;

	/** 所属物料名称 */
	private String materiaName;

	/** BOM版本，产品版本发布时生成 */
	private String version;

	/** BOM类型，参数配置-BomUseTypeEBOM,PBOM,MBOM等 */
	private Integer useType;

	/** bom状态，0修订中，10审核中，20已发布；审核中和已发布时不可修改；每发布一次产生一新BOM(即复制一份)，且状态为已发布，不可再修改 */
	private Integer status;

	/** bom备注 */
	private String remark;

	/** 变更时间 */
	private Date updateTime;

	/** 变更用户loginName */
	private String updateUser;

	/** 创建时间 */
	private Date createTime;

	/** 创建用户loginName */
	private String createUser;


	public MateriaBomEntity(){
		
	}
	/**
	 * 获取 bom短代码，同一产品树下唯一，生成后不可变
	 * @return selfCode
	 */
	public String getSelfCode(){
		return this.selfCode;
	}

	/**
	 * 设置 bom短代码，同一产品树下唯一，生成后不可变
	 * @param selfCode
	 */
	public void setSelfCode(String selfCode){
		this.selfCode = selfCode;
	}

	/**
	 * 获取 bom代码，包括物料BOM类目代码
	 * @return code
	 */
	public String getCode(){
		return this.code;
	}

	/**
	 * 设置 bom代码，包括物料BOM类目代码
	 * @param code
	 */
	public void setCode(String code){
		this.code = code;
	}

	/**
	 * 获取 物料BOM类目ID
	 * @return bomTreeId
	 */
	public Long getBomTreeId(){
		return this.bomTreeId;
	}

	/**
	 * 设置 物料BOM类目ID
	 * @param bomTreeId
	 */
	public void setBomTreeId(Long bomTreeId){
		this.bomTreeId = bomTreeId;
	}

	/**
	 * 获取 物料BOM类目CODE，物料BOM类目代码
	 * @return bomTreeCode
	 */
	public String getBomTreeCode(){
		return this.bomTreeCode;
	}

	/**
	 * 设置 物料BOM类目CODE，物料BOM类目代码
	 * @param bomTreeCode
	 */
	public void setBomTreeCode(String bomTreeCode){
		this.bomTreeCode = bomTreeCode;
	}

	/**
	 * 获取 所属物料ID，bom与物料一一对应
	 * @return materiaId
	 */
	public Long getMateriaId(){
		return this.materiaId;
	}

	/**
	 * 设置 所属物料ID，bom与物料一一对应
	 * @param materiaId
	 */
	public void setMateriaId(Long materiaId){
		this.materiaId = materiaId;
	}

	/**
	 * 获取 所属物料代码
	 * @return materiaCode
	 */
	public String getMateriaCode(){
		return this.materiaCode;
	}

	/**
	 * 设置 所属物料代码
	 * @param materiaCode
	 */
	public void setMateriaCode(String materiaCode){
		this.materiaCode = materiaCode;
	}

	/**
	 * 获取 所属物料名称
	 * @return materiaName
	 */
	public String getMateriaName(){
		return this.materiaName;
	}

	/**
	 * 设置 所属物料名称
	 * @param materiaName
	 */
	public void setMateriaName(String materiaName){
		this.materiaName = materiaName;
	}

	/**
	 * 获取 BOM版本，产品版本发布时生成
	 * @return version
	 */
	public String getVersion(){
		return this.version;
	}

	/**
	 * 设置 BOM版本，产品版本发布时生成
	 * @param version
	 */
	public void setVersion(String version){
		this.version = version;
	}

	/**
	 * 获取 BOM类型，参数配置-BomUseTypeEBOM,PBOM,MBOM等
	 * @return useType
	 */
	public Integer getUseType(){
		return this.useType;
	}

	/**
	 * 设置 BOM类型，参数配置-BomUseTypeEBOM,PBOM,MBOM等
	 * @param useType
	 */
	public void setUseType(Integer useType){
		this.useType = useType;
	}

	/**
	 * 获取 bom状态，0修订中，10审核中，20已发布；审核中和已发布时不可修改；每发布一次产生一新BOM(即复制一份)，且状态为已发布，不可再修改
	 * @return status
	 */
	public Integer getStatus(){
		return this.status;
	}

	/**
	 * 设置 bom状态，0修订中，10审核中，20已发布；审核中和已发布时不可修改；每发布一次产生一新BOM(即复制一份)，且状态为已发布，不可再修改
	 * @param status
	 */
	public void setStatus(Integer status){
		this.status = status;
	}

	/**
	 * 获取 bom备注
	 * @return remark
	 */
	public String getRemark(){
		return this.remark;
	}

	/**
	 * 设置 bom备注
	 * @param remark
	 */
	public void setRemark(String remark){
		this.remark = remark;
	}

	/**
	 * 获取 变更时间
	 * @return updateTime
	 */
	public Date getUpdateTime(){
		return this.updateTime;
	}

	/**
	 * 设置 变更时间
	 * @param updateTime
	 */
	public void setUpdateTime(Date updateTime){
		this.updateTime = updateTime;
	}

	/**
	 * 获取 变更用户loginName
	 * @return updateUser
	 */
	public String getUpdateUser(){
		return this.updateUser;
	}

	/**
	 * 设置 变更用户loginName
	 * @param updateUser
	 */
	public void setUpdateUser(String updateUser){
		this.updateUser = updateUser;
	}

	/**
	 * 获取 创建时间
	 * @return createTime
	 */
	public Date getCreateTime(){
		return this.createTime;
	}

	/**
	 * 设置 创建时间
	 * @param createTime
	 */
	public void setCreateTime(Date createTime){
		this.createTime = createTime;
	}

	/**
	 * 获取 创建用户loginName
	 * @return createUser
	 */
	public String getCreateUser(){
		return this.createUser;
	}

	/**
	 * 设置 创建用户loginName
	 * @param createUser
	 */
	public void setCreateUser(String createUser){
		this.createUser = createUser;
	}


	@Override
	public int hashCode() {
		return this.getId().hashCode();
	}
	@Override
	public boolean equals(Object obj) {
		if (obj == null)
			return false;
		if (obj instanceof MateriaBomEntity) {
			MateriaBomEntity tmp = (MateriaBomEntity) obj;
			if (this.getId().longValue() == tmp.getId().longValue()) {
				return true;
			}
		}
		return false;
	}
	public String toString(){
		StringBuilder sb = new StringBuilder("");
		sb.append("id:").append(getId())
		  .append(",selfCode:").append(getSelfCode())
		  .append(",code:").append(getCode())
		  .append(",bomTreeId:").append(getBomTreeId())
		  .append(",bomTreeCode:").append(getBomTreeCode())
		  .append(",materiaId:").append(getMateriaId())
		  .append(",materiaCode:").append(getMateriaCode())
		  .append(",materiaName:").append(getMateriaName())
		  .append(",version:").append(getVersion())
		  .append(",useType:").append(getUseType())
		  .append(",status:").append(getStatus())
		  .append(",remark:").append(getRemark())
		  .append(",updateTime:").append(getUpdateTime())
		  .append(",updateUser:").append(getUpdateUser())
		  .append(",createTime:").append(getCreateTime())
		  .append(",createUser:").append(getCreateUser());
		return sb.toString();
	}
	public void initAttrValue(){
		this.selfCode = null;
		this.code = null;
		this.bomTreeId = null;
		this.bomTreeCode = null;
		this.materiaId = null;
		this.materiaCode = null;
		this.materiaName = null;
		this.version = null;
		this.useType = null;
		this.status = null;
		this.remark = null;
		this.updateTime = null;
		this.updateUser = null;
		this.createTime = null;
		this.createUser = null;
	}
}