/**
* 文件：MateriaBomVersionEntity.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: MateriaBomVersionEntity  </p>
 * <p>Copyright: Copyright &reg;  </p>
 * <p>Company: </p>
 * @author 
 * @version 1.0.0
 */
public class MateriaBomVersionEntity extends BaseEntityLong{
	private static final long serialVersionUID = 1614064931431L;
	
	/** BOM表ID，默认-1,有BOM产品选择 */
	private Long bomId;

	/** BOM代码，包含父类目代码，如WMQ.4G */
	private String bomCode;

	/** 所属物料ID */
	private Long materiaId;

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

	/** 公司代号，参数配置-VerCompanyCode格物G,智魔王Z,默认G */
	private String companyCode;

	/** 扩展编码，扩展编码，发布时会添加到产品代码后面 */
	private String code;

	/** 研发类型，参数配置-VerRdCode硬件H，嵌入式E，软件S，产品设计P，默认P */
	private String rdCode;

	/** 主迭代号，默认1，页面选择 */
	private Integer verNum01;

	/** 次迭代号，默认0，页面选择 */
	private Integer verNum02;

	/** 修正迭代号，默认0，页面选择 */
	private Integer verNum03;

	/** 阶段标识，参数配置-VerStageCode */
	private String stage;

	/** 阶段号，默认1,向上累加 */
	private Long stageNum;

	/** 版本编码，完成版本串如:G-WMQ.ABC.SSS-H01.00.00 */
	private String verCode;

	/** 发布描述 */
	private String publishDesc;

	/** 备注 */
	private String remark;

	/** 版本发布人，登录名loginName */
	private String publishUser;

	/** 版本发布时间 */
	private Date publishTime;

	/** 源文件地址 */
	private String sourceFilePath;

	/** 源文件标识号 */
	private String sourceFileTag;

	/** 发布文件地址 */
	private String publishFilePath;

	/** 发布文件标识号 */
	private String publishFileTag;

	/** 发布状态，0待发布，1审核中，2审核通过，3审核不通过，默认0 */
	private Integer publishStatus;

	/** 实例id，钉钉审批实例id */
	private String processInstanceId;

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

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

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

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


	public MateriaBomVersionEntity(){
		
	}
	/**
	 * 获取 BOM表ID，默认-1,有BOM产品选择
	 * @return bomId
	 */
	public Long getBomId(){
		return this.bomId;
	}

	/**
	 * 设置 BOM表ID，默认-1,有BOM产品选择
	 * @param bomId
	 */
	public void setBomId(Long bomId){
		this.bomId = bomId;
	}

	/**
	 * 获取 BOM代码，包含父类目代码，如WMQ.4G
	 * @return bomCode
	 */
	public String getBomCode(){
		return this.bomCode;
	}

	/**
	 * 设置 BOM代码，包含父类目代码，如WMQ.4G
	 * @param bomCode
	 */
	public void setBomCode(String bomCode){
		this.bomCode = bomCode;
	}

	/**
	 * 获取 所属物料ID
	 * @return materiaId
	 */
	public Long getMateriaId(){
		return this.materiaId;
	}

	/**
	 * 设置 所属物料ID
	 * @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;
	}

	/**
	 * 获取 公司代号，参数配置-VerCompanyCode格物G,智魔王Z,默认G
	 * @return companyCode
	 */
	public String getCompanyCode(){
		return this.companyCode;
	}

	/**
	 * 设置 公司代号，参数配置-VerCompanyCode格物G,智魔王Z,默认G
	 * @param companyCode
	 */
	public void setCompanyCode(String companyCode){
		this.companyCode = companyCode;
	}

	/**
	 * 获取 扩展编码，扩展编码，发布时会添加到产品代码后面
	 * @return code
	 */
	public String getCode(){
		return this.code;
	}

	/**
	 * 设置 扩展编码，扩展编码，发布时会添加到产品代码后面
	 * @param code
	 */
	public void setCode(String code){
		this.code = code;
	}

	/**
	 * 获取 研发类型，参数配置-VerRdCode硬件H，嵌入式E，软件S，产品设计P，默认P
	 * @return rdCode
	 */
	public String getRdCode(){
		return this.rdCode;
	}

	/**
	 * 设置 研发类型，参数配置-VerRdCode硬件H，嵌入式E，软件S，产品设计P，默认P
	 * @param rdCode
	 */
	public void setRdCode(String rdCode){
		this.rdCode = rdCode;
	}

	/**
	 * 获取 主迭代号，默认1，页面选择
	 * @return verNum01
	 */
	public Integer getVerNum01(){
		return this.verNum01;
	}

	/**
	 * 设置 主迭代号，默认1，页面选择
	 * @param verNum01
	 */
	public void setVerNum01(Integer verNum01){
		this.verNum01 = verNum01;
	}

	/**
	 * 获取 次迭代号，默认0，页面选择
	 * @return verNum02
	 */
	public Integer getVerNum02(){
		return this.verNum02;
	}

	/**
	 * 设置 次迭代号，默认0，页面选择
	 * @param verNum02
	 */
	public void setVerNum02(Integer verNum02){
		this.verNum02 = verNum02;
	}

	/**
	 * 获取 修正迭代号，默认0，页面选择
	 * @return verNum03
	 */
	public Integer getVerNum03(){
		return this.verNum03;
	}

	/**
	 * 设置 修正迭代号，默认0，页面选择
	 * @param verNum03
	 */
	public void setVerNum03(Integer verNum03){
		this.verNum03 = verNum03;
	}

	/**
	 * 获取 阶段标识，参数配置-VerStageCode
	 * @return stage
	 */
	public String getStage(){
		return this.stage;
	}

	/**
	 * 设置 阶段标识，参数配置-VerStageCode
	 * @param stage
	 */
	public void setStage(String stage){
		this.stage = stage;
	}

	/**
	 * 获取 阶段号，默认1,向上累加
	 * @return stageNum
	 */
	public Long getStageNum(){
		return this.stageNum;
	}

	/**
	 * 设置 阶段号，默认1,向上累加
	 * @param stageNum
	 */
	public void setStageNum(Long stageNum){
		this.stageNum = stageNum;
	}

	/**
	 * 获取 版本编码，完成版本串如:G-WMQ.ABC.SSS-H01.00.00
	 * @return verCode
	 */
	public String getVerCode(){
		return this.verCode;
	}

	/**
	 * 设置 版本编码，完成版本串如:G-WMQ.ABC.SSS-H01.00.00
	 * @param verCode
	 */
	public void setVerCode(String verCode){
		this.verCode = verCode;
	}

	/**
	 * 获取 发布描述
	 * @return publishDesc
	 */
	public String getPublishDesc(){
		return this.publishDesc;
	}

	/**
	 * 设置 发布描述
	 * @param publishDesc
	 */
	public void setPublishDesc(String publishDesc){
		this.publishDesc = publishDesc;
	}

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

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

	/**
	 * 获取 版本发布人，登录名loginName
	 * @return publishUser
	 */
	public String getPublishUser(){
		return this.publishUser;
	}

	/**
	 * 设置 版本发布人，登录名loginName
	 * @param publishUser
	 */
	public void setPublishUser(String publishUser){
		this.publishUser = publishUser;
	}

	/**
	 * 获取 版本发布时间
	 * @return publishTime
	 */
	public Date getPublishTime(){
		return this.publishTime;
	}

	/**
	 * 设置 版本发布时间
	 * @param publishTime
	 */
	public void setPublishTime(Date publishTime){
		this.publishTime = publishTime;
	}

	/**
	 * 获取 源文件地址
	 * @return sourceFilePath
	 */
	public String getSourceFilePath(){
		return this.sourceFilePath;
	}

	/**
	 * 设置 源文件地址
	 * @param sourceFilePath
	 */
	public void setSourceFilePath(String sourceFilePath){
		this.sourceFilePath = sourceFilePath;
	}

	/**
	 * 获取 源文件标识号
	 * @return sourceFileTag
	 */
	public String getSourceFileTag(){
		return this.sourceFileTag;
	}

	/**
	 * 设置 源文件标识号
	 * @param sourceFileTag
	 */
	public void setSourceFileTag(String sourceFileTag){
		this.sourceFileTag = sourceFileTag;
	}

	/**
	 * 获取 发布文件地址
	 * @return publishFilePath
	 */
	public String getPublishFilePath(){
		return this.publishFilePath;
	}

	/**
	 * 设置 发布文件地址
	 * @param publishFilePath
	 */
	public void setPublishFilePath(String publishFilePath){
		this.publishFilePath = publishFilePath;
	}

	/**
	 * 获取 发布文件标识号
	 * @return publishFileTag
	 */
	public String getPublishFileTag(){
		return this.publishFileTag;
	}

	/**
	 * 设置 发布文件标识号
	 * @param publishFileTag
	 */
	public void setPublishFileTag(String publishFileTag){
		this.publishFileTag = publishFileTag;
	}

	/**
	 * 获取 发布状态，0待发布，1审核中，2审核通过，3审核不通过，默认0
	 * @return publishStatus
	 */
	public Integer getPublishStatus(){
		return this.publishStatus;
	}

	/**
	 * 设置 发布状态，0待发布，1审核中，2审核通过，3审核不通过，默认0
	 * @param publishStatus
	 */
	public void setPublishStatus(Integer publishStatus){
		this.publishStatus = publishStatus;
	}

	/**
	 * 获取 实例id，钉钉审批实例id
	 * @return processInstanceId
	 */
	public String getProcessInstanceId(){
		return this.processInstanceId;
	}

	/**
	 * 设置 实例id，钉钉审批实例id
	 * @param processInstanceId
	 */
	public void setProcessInstanceId(String processInstanceId){
		this.processInstanceId = processInstanceId;
	}

	/**
	 * 获取 变更时间
	 * @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 MateriaBomVersionEntity) {
			MateriaBomVersionEntity tmp = (MateriaBomVersionEntity) 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(",bomId:").append(getBomId())
		  .append(",bomCode:").append(getBomCode())
		  .append(",materiaId:").append(getMateriaId())
		  .append(",materiaCode:").append(getMateriaCode())
		  .append(",companyCode:").append(getCompanyCode())
		  .append(",code:").append(getCode())
		  .append(",rdCode:").append(getRdCode())
		  .append(",verNum01:").append(getVerNum01())
		  .append(",verNum02:").append(getVerNum02())
		  .append(",verNum03:").append(getVerNum03())
		  .append(",stage:").append(getStage())
		  .append(",stageNum:").append(getStageNum())
		  .append(",verCode:").append(getVerCode())
		  .append(",publishDesc:").append(getPublishDesc())
		  .append(",remark:").append(getRemark())
		  .append(",publishUser:").append(getPublishUser())
		  .append(",publishTime:").append(getPublishTime())
		  .append(",sourceFilePath:").append(getSourceFilePath())
		  .append(",sourceFileTag:").append(getSourceFileTag())
		  .append(",publishFilePath:").append(getPublishFilePath())
		  .append(",publishFileTag:").append(getPublishFileTag())
		  .append(",publishStatus:").append(getPublishStatus())
		  .append(",processInstanceId:").append(getProcessInstanceId())
		  .append(",updateTime:").append(getUpdateTime())
		  .append(",updateUser:").append(getUpdateUser())
		  .append(",createTime:").append(getCreateTime())
		  .append(",createUser:").append(getCreateUser());
		return sb.toString();
	}
	public void initAttrValue(){
		this.bomId = null;
		this.bomCode = null;
		this.materiaId = null;
		this.materiaCode = null;
		this.companyCode = null;
		this.code = null;
		this.rdCode = null;
		this.verNum01 = 1;
		this.verNum02 = 0;
		this.verNum03 = 0;
		this.stage = null;
		this.stageNum = 1L;
		this.verCode = null;
		this.publishDesc = null;
		this.remark = null;
		this.publishUser = null;
		this.publishTime = new Date();
		this.sourceFilePath = null;
		this.sourceFileTag = null;
		this.publishFilePath = null;
		this.publishFileTag = null;
		this.publishStatus = 0;
		this.processInstanceId = null;
		this.updateTime = null;
		this.updateUser = null;
		this.createTime = null;
		this.createUser = null;
	}
}