/**
* 文件：MateriaEntity.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: 物料主表</p>
 * <p>Description: MateriaEntity  </p>
 * <p>Copyright: Copyright &reg;  </p>
 * <p>Company: </p>
 * @author 
 * @version 1.0.0
 */
public class MateriaEntity extends BaseEntityLong{
	private static final long serialVersionUID = 1614653142868L;
	
	/** 物料名称，同一类目下不能重名 */
	private String name;

	/** 物料短代码，同一类目下唯一，生成后不可变 */
	private String selfCode;

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

	/** 资产编码，如果有则添加，允许为空 */
	private String assetsCode;

	/** 类目ID，categroy表ID */
	private Long categoryId;

	/** 规格型号 */
	private String specModel;

	/** 计量单位，参数配置-UnitOfMeasure,默认100 */
	private Long unitOfMeasure;

	/** 默认用量，默认1 */
	private Long useNum;

	/** 默认损耗率，0-100，百分比，默认0 */
	private Integer lossRate;

	/** 默认补给方式，参数配置-MateriaSupplyType300外购，301自产，302外协默认300 */
	private Integer supplyType;

	/** 默认计划成本，单位：厘/计量单位 */
	private Long costPlan;

	/** 主图片url，url */
	private String mainPicUrl;

	/** 备注 */
	private String remark;

	/** 是否废弃，0否，1是 */
	private Integer enabled;

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

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

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

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

	/** 扩展字段，数据意义参看扩展字段定义表 */
	private Long field01;

	/** 扩展字段 */
	private Long field02;

	/** 扩展字段 */
	private Long field03;

	/** 扩展字段 */
	private Long field04;

	/** 扩展字段 */
	private Long field05;

	/** 扩展字段 */
	private Long field06;

	/** 扩展字段 */
	private Long field07;

	/** 扩展字段 */
	private Long field08;

	/** 扩展字段 */
	private Long field09;

	/** 扩展字段 */
	private Long field10;

	/** 扩展字段 */
	private String field11;

	/** 扩展字段 */
	private String field12;

	/** 扩展字段 */
	private String field13;

	/** 扩展字段 */
	private String field14;

	/** 扩展字段 */
	private String field15;

	/** 扩展字段 */
	private String field16;

	/** 扩展字段 */
	private String field17;

	/** 扩展字段 */
	private String field18;

	/** 扩展字段 */
	private String field19;

	/** 扩展字段 */
	private String field20;



	public MateriaEntity(){
		
	}

	/**
	 * 获取 物料名称，同一类目下不能重名
	 * @return name
	 */
	public String getName(){
		return this.name;
	}

	/**
	 * 设置 物料名称，同一类目下不能重名
	 * @param name
	 */
	public void setName(String name){
		this.name = name;
	}

	/**
	 * 获取 物料短代码，同一类目下唯一，生成后不可变
	 * @return selfCode
	 */
	public String getSelfCode(){
		return this.selfCode;
	}

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

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

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

	/**
	 * 获取 资产编码，如果有则添加，允许为空
	 * @return assetsCode
	 */
	public String getAssetsCode(){
		return this.assetsCode;
	}

	/**
	 * 设置 资产编码，如果有则添加，允许为空
	 * @param assetsCode
	 */
	public void setAssetsCode(String assetsCode){
		this.assetsCode = assetsCode;
	}

	/**
	 * 获取 类目ID，categroy表ID
	 * @return categoryId
	 */
	public Long getCategoryId(){
		return this.categoryId;
	}

	/**
	 * 设置 类目ID，categroy表ID
	 * @param categoryId
	 */
	public void setCategoryId(Long categoryId){
		this.categoryId = categoryId;
	}

	/**
	 * 获取 规格型号
	 * @return specModel
	 */
	public String getSpecModel(){
		return this.specModel;
	}

	/**
	 * 设置 规格型号
	 * @param specModel
	 */
	public void setSpecModel(String specModel){
		this.specModel = specModel;
	}

	/**
	 * 获取 计量单位，参数配置-UnitOfMeasure,默认100
	 * @return unitOfMeasure
	 */
	public Long getUnitOfMeasure(){
		return this.unitOfMeasure;
	}

	/**
	 * 设置 计量单位，参数配置-UnitOfMeasure,默认100
	 * @param unitOfMeasure
	 */
	public void setUnitOfMeasure(Long unitOfMeasure){
		this.unitOfMeasure = unitOfMeasure;
	}

	/**
	 * 获取 默认用量，默认1
	 * @return useNum
	 */
	public Long getUseNum(){
		return this.useNum;
	}

	/**
	 * 设置 默认用量，默认1
	 * @param useNum
	 */
	public void setUseNum(Long useNum){
		this.useNum = useNum;
	}

	/**
	 * 获取 默认损耗率，0-100，百分比，默认0
	 * @return lossRate
	 */
	public Integer getLossRate(){
		return this.lossRate;
	}

	/**
	 * 设置 默认损耗率，0-100，百分比，默认0
	 * @param lossRate
	 */
	public void setLossRate(Integer lossRate){
		this.lossRate = lossRate;
	}

	/**
	 * 获取 默认补给方式，参数配置-MateriaSupplyType300外购，301自产，302外协默认300
	 * @return supplyType
	 */
	public Integer getSupplyType(){
		return this.supplyType;
	}

	/**
	 * 设置 默认补给方式，参数配置-MateriaSupplyType300外购，301自产，302外协默认300
	 * @param supplyType
	 */
	public void setSupplyType(Integer supplyType){
		this.supplyType = supplyType;
	}

	/**
	 * 获取 默认计划成本，单位：厘/计量单位
	 * @return costPlan
	 */
	public Long getCostPlan(){
		return this.costPlan;
	}

	/**
	 * 设置 默认计划成本，单位：厘/计量单位
	 * @param costPlan
	 */
	public void setCostPlan(Long costPlan){
		this.costPlan = costPlan;
	}

	/**
	 * 获取 主图片url，url
	 * @return mainPicUrl
	 */
	public String getMainPicUrl(){
		return this.mainPicUrl;
	}

	/**
	 * 设置 主图片url，url
	 * @param mainPicUrl
	 */
	public void setMainPicUrl(String mainPicUrl){
		this.mainPicUrl = mainPicUrl;
	}

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

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

	/**
	 * 获取 是否废弃，0否，1是
	 * @return enabled
	 */
	public Integer getEnabled(){
		return this.enabled;
	}

	/**
	 * 设置 是否废弃，0否，1是
	 * @param enabled
	 */
	public void setEnabled(Integer enabled){
		this.enabled = enabled;
	}

	/**
	 * 获取 变更时间
	 * @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;
	}

	/**
	 * 获取 扩展字段，数据意义参看扩展字段定义表
	 * @return field01
	 */
	public Long getField01(){
		return this.field01;
	}

	/**
	 * 设置 扩展字段，数据意义参看扩展字段定义表
	 * @param field01
	 */
	public void setField01(Long field01){
		this.field01 = field01;
	}

	/**
	 * 获取 扩展字段
	 * @return field02
	 */
	public Long getField02(){
		return this.field02;
	}

	/**
	 * 设置 扩展字段
	 * @param field02
	 */
	public void setField02(Long field02){
		this.field02 = field02;
	}

	/**
	 * 获取 扩展字段
	 * @return field03
	 */
	public Long getField03(){
		return this.field03;
	}

	/**
	 * 设置 扩展字段
	 * @param field03
	 */
	public void setField03(Long field03){
		this.field03 = field03;
	}

	/**
	 * 获取 扩展字段
	 * @return field04
	 */
	public Long getField04(){
		return this.field04;
	}

	/**
	 * 设置 扩展字段
	 * @param field04
	 */
	public void setField04(Long field04){
		this.field04 = field04;
	}

	/**
	 * 获取 扩展字段
	 * @return field05
	 */
	public Long getField05(){
		return this.field05;
	}

	/**
	 * 设置 扩展字段
	 * @param field05
	 */
	public void setField05(Long field05){
		this.field05 = field05;
	}

	/**
	 * 获取 扩展字段
	 * @return field06
	 */
	public Long getField06(){
		return this.field06;
	}

	/**
	 * 设置 扩展字段
	 * @param field06
	 */
	public void setField06(Long field06){
		this.field06 = field06;
	}

	/**
	 * 获取 扩展字段
	 * @return field07
	 */
	public Long getField07(){
		return this.field07;
	}

	/**
	 * 设置 扩展字段
	 * @param field07
	 */
	public void setField07(Long field07){
		this.field07 = field07;
	}

	/**
	 * 获取 扩展字段
	 * @return field08
	 */
	public Long getField08(){
		return this.field08;
	}

	/**
	 * 设置 扩展字段
	 * @param field08
	 */
	public void setField08(Long field08){
		this.field08 = field08;
	}

	/**
	 * 获取 扩展字段
	 * @return field09
	 */
	public Long getField09(){
		return this.field09;
	}

	/**
	 * 设置 扩展字段
	 * @param field09
	 */
	public void setField09(Long field09){
		this.field09 = field09;
	}

	/**
	 * 获取 扩展字段
	 * @return field10
	 */
	public Long getField10(){
		return this.field10;
	}

	/**
	 * 设置 扩展字段
	 * @param field10
	 */
	public void setField10(Long field10){
		this.field10 = field10;
	}

	/**
	 * 获取 扩展字段
	 * @return field11
	 */
	public String getField11(){
		return this.field11;
	}

	/**
	 * 设置 扩展字段
	 * @param field11
	 */
	public void setField11(String field11){
		this.field11 = field11;
	}

	/**
	 * 获取 扩展字段
	 * @return field12
	 */
	public String getField12(){
		return this.field12;
	}

	/**
	 * 设置 扩展字段
	 * @param field12
	 */
	public void setField12(String field12){
		this.field12 = field12;
	}

	/**
	 * 获取 扩展字段
	 * @return field13
	 */
	public String getField13(){
		return this.field13;
	}

	/**
	 * 设置 扩展字段
	 * @param field13
	 */
	public void setField13(String field13){
		this.field13 = field13;
	}

	/**
	 * 获取 扩展字段
	 * @return field14
	 */
	public String getField14(){
		return this.field14;
	}

	/**
	 * 设置 扩展字段
	 * @param field14
	 */
	public void setField14(String field14){
		this.field14 = field14;
	}

	/**
	 * 获取 扩展字段
	 * @return field15
	 */
	public String getField15(){
		return this.field15;
	}

	/**
	 * 设置 扩展字段
	 * @param field15
	 */
	public void setField15(String field15){
		this.field15 = field15;
	}

	/**
	 * 获取 扩展字段
	 * @return field16
	 */
	public String getField16(){
		return this.field16;
	}

	/**
	 * 设置 扩展字段
	 * @param field16
	 */
	public void setField16(String field16){
		this.field16 = field16;
	}

	/**
	 * 获取 扩展字段
	 * @return field17
	 */
	public String getField17(){
		return this.field17;
	}

	/**
	 * 设置 扩展字段
	 * @param field17
	 */
	public void setField17(String field17){
		this.field17 = field17;
	}

	/**
	 * 获取 扩展字段
	 * @return field18
	 */
	public String getField18(){
		return this.field18;
	}

	/**
	 * 设置 扩展字段
	 * @param field18
	 */
	public void setField18(String field18){
		this.field18 = field18;
	}

	/**
	 * 获取 扩展字段
	 * @return field19
	 */
	public String getField19(){
		return this.field19;
	}

	/**
	 * 设置 扩展字段
	 * @param field19
	 */
	public void setField19(String field19){
		this.field19 = field19;
	}

	/**
	 * 获取 扩展字段
	 * @return field20
	 */
	public String getField20(){
		return this.field20;
	}

	/**
	 * 设置 扩展字段
	 * @param field20
	 */
	public void setField20(String field20){
		this.field20 = field20;
	}


	@Override
	public int hashCode() {
		return this.getId().hashCode();
	}
	@Override
	public boolean equals(Object obj) {
		if (obj == null)
			return false;
		if (obj instanceof MateriaEntity) {
			MateriaEntity tmp = (MateriaEntity) 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(",name:").append(getName())
		  .append(",selfCode:").append(getSelfCode())
		  .append(",code:").append(getCode())
		  .append(",assetsCode:").append(getAssetsCode())
		  .append(",categoryId:").append(getCategoryId())
		  .append(",specModel:").append(getSpecModel())
		  .append(",unitOfMeasure:").append(getUnitOfMeasure())
		  .append(",useNum:").append(getUseNum())
		  .append(",lossRate:").append(getLossRate())
		  .append(",supplyType:").append(getSupplyType())
		  .append(",costPlan:").append(getCostPlan())
		  .append(",mainPicUrl:").append(getMainPicUrl())
		  .append(",remark:").append(getRemark())
		  .append(",enabled:").append(getEnabled())
		  .append(",updateTime:").append(getUpdateTime())
		  .append(",updateUser:").append(getUpdateUser())
		  .append(",createTime:").append(getCreateTime())
		  .append(",createUser:").append(getCreateUser())
		  .append(",field01:").append(getField01())
		  .append(",field02:").append(getField02())
		  .append(",field03:").append(getField03())
		  .append(",field04:").append(getField04())
		  .append(",field05:").append(getField05())
		  .append(",field06:").append(getField06())
		  .append(",field07:").append(getField07())
		  .append(",field08:").append(getField08())
		  .append(",field09:").append(getField09())
		  .append(",field10:").append(getField10())
		  .append(",field11:").append(getField11())
		  .append(",field12:").append(getField12())
		  .append(",field13:").append(getField13())
		  .append(",field14:").append(getField14())
		  .append(",field15:").append(getField15())
		  .append(",field16:").append(getField16())
		  .append(",field17:").append(getField17())
		  .append(",field18:").append(getField18())
		  .append(",field19:").append(getField19())
		  .append(",field20:").append(getField20());
		return sb.toString();
	}
	public void initAttrValue(){
		this.name = null;
		this.selfCode = null;
		this.code = null;
		this.assetsCode = null;
		this.categoryId = null;
		this.specModel = null;
		this.unitOfMeasure = 100L;
		this.useNum = 1L;
		this.lossRate = 0;
		this.supplyType = 300;
		this.costPlan = null;
		this.mainPicUrl = null;
		this.remark = null;
		this.enabled = 1;
		this.updateTime = null;
		this.updateUser = null;
		this.createTime = null;
		this.createUser = null;
		this.field01 = null;
		this.field02 = null;
		this.field03 = null;
		this.field04 = null;
		this.field05 = null;
		this.field06 = null;
		this.field07 = null;
		this.field08 = null;
		this.field09 = null;
		this.field10 = null;
		this.field11 = null;
		this.field12 = null;
		this.field13 = null;
		this.field14 = null;
		this.field15 = null;
		this.field16 = null;
		this.field17 = null;
		this.field18 = null;
		this.field19 = null;
		this.field20 = null;
	}
}