package com.dst.slms.base.entity;


import org.hibernate.annotations.DynamicUpdate;
import com.dst.slms.common.annotation.EntityMeta;
import com.dst.slms.common.annotation.FieldMeta;
import com.dst.slms.common.entity.CoreBaseInfo;


import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.hibernate.annotations.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import com.dst.slms.common.entity.CoreBillBaseInfo;
import com.dst.slms.common.entity.TreeBaseInfo;
import com.dst.slms.system.entity.SysOrgInfo;

import org.hibernate.annotations.DynamicUpdate;
import org.hibernate.annotations.ForeignKey;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.OrderBy;
/**   
 * @Title: 营销科目 Info 对象
 * @Description: 营销科目
 * @author 
 * @date 2020-05-02 10:08:28
 * @version V1.0   
 */
@Entity
@Table(name="yc_cost_marketAccount")
@DynamicUpdate(true)
@EntityMeta(name="营销科目")
public class MarketAccountInfo  extends TreeBaseInfo implements java.io.Serializable {
	
//	alter table yc_cost_marketAccount add FLONGNUMBER varchar(255) 
//	alter table yc_cost_marketAccount add FISLEAF varchar(255) 
//	alter table yc_cost_marketAccount add FLEVEL varchar(255) 
//	alter table yc_cost_marketAccount add FPARENTID varchar(255) 
//	alter table yc_cost_marketAccount add FDISPLAYNAME varchar(500) 
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@FieldMeta(name="上级组织") 
	@OneToOne
	@JoinColumn(name = "FPARENTID")
	@NotFound(action=NotFoundAction.IGNORE)
	@ForeignKey(name="null") 
	private MarketAccountInfo parent;
	
	/**名称*/
	@Column(name ="FNAME")
	@FieldMeta(name="名称" )
	private java.lang.String name;
	
	/**编号*/
	@Column(name ="FNUMBER")
	@FieldMeta(name="编号" )
	private java.lang.String number;
	
	/**备注*/
	@Column(name ="FREMAKE")
	@FieldMeta(name="备注" )
	private java.lang.String remake;
	
	/**是否启用*/
	@Column(name ="FISENABLE")
	@FieldMeta(name="是否启用" )@org.hibernate.annotations.Type(type="yes_no")
	private boolean isEnable;
	
	/**控制类型*/
	@Column(name ="FcontrolType")
	@FieldMeta(name="控制类型" )
	private java.lang.String controlType;
	
	/**允许超额*/
	@Column(name ="Fisexcess")
	@FieldMeta(name="允许超额" )@org.hibernate.annotations.Type(type="yes_no")
	private boolean isexcess;
	
	/**超额*/
	@Column(name ="FexcessRate")
	@FieldMeta(name="超额" )
	private java.math.BigDecimal excessRate;
	
	/**投放强控*/
	@Column(name ="FisPut")
	@FieldMeta(name="投放强控" )@org.hibernate.annotations.Type(type="yes_no")
	private boolean isPut;
	
	/**媒体信息*/
	@OneToOne(fetch = FetchType.LAZY)@JoinColumn(name = "FmediaID")@NotFound(action=NotFoundAction.IGNORE)@ForeignKey(name="null")
	@FieldMeta(name="媒体信息" )
	private com.dst.slms.base.entity.MediaInfoInfo media;
	
	/**按月控制*/
	@Column(name ="FisMonth")
	@FieldMeta(name="按月控制" )@org.hibernate.annotations.Type(type="yes_no")
	private boolean isMonth;
	
	/**按季控制*/
	@Column(name ="FisQuarter")
	@FieldMeta(name="按季控制" )@org.hibernate.annotations.Type(type="yes_no")
	private boolean isQuarter;
	
	/**按年控制*/
	@Column(name ="FisYear")
	@FieldMeta(name="按年控制" )@org.hibernate.annotations.Type(type="yes_no")
	private boolean isYear;
	
	public MarketAccountInfo getParent() {
		return parnetMap.get("parent")!=null?(MarketAccountInfo) parnetMap.get("parent"):parent;
	}
	
	public void setParent(MarketAccountInfo parent) {
		this.parent = parent;
	}
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  名称
	 */
	public java.lang.String getName(){
		return this.name;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  名称
	 */
	public void setName(java.lang.String name){
		this.name = name;
	}
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  编号
	 */
	public java.lang.String getNumber(){
		return this.number;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  编号
	 */
	public void setNumber(java.lang.String number){
		this.number = number;
	}
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  备注
	 */
	public java.lang.String getRemake(){
		return this.remake;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  备注
	 */
	public void setRemake(java.lang.String remake){
		this.remake = remake;
	}
	
	/**
	 *方法: 取得java.lang.Boolean
	 *@return: java.lang.Boolean  是否启用
	 */
	public boolean getIsEnable(){
		return this.isEnable;
	}

	/**
	 *方法: 设置java.lang.Boolean
	 *@param: java.lang.Boolean  是否启用
	 */
	public void setIsEnable(boolean isEnable){
		this.isEnable = isEnable;
	}
	
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  控制类型
	 */
	public java.lang.String getControlType(){
		return this.controlType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  控制类型
	 */
	public void setControlType(java.lang.String controlType){
		this.controlType = controlType;
	}
	
	/**
	 *方法: 取得java.lang.Boolean
	 *@return: java.lang.Boolean  允许超额
	 */
	public boolean getIsexcess(){
		return this.isexcess;
	}

	/**
	 *方法: 设置java.lang.Boolean
	 *@param: java.lang.Boolean  允许超额
	 */
	public void setIsexcess(boolean isexcess){
		this.isexcess = isexcess;
	}
	
	/**
	 *方法: 取得java.math.BigDecimal
	 *@return: java.math.BigDecimal  超额
	 */
	public java.math.BigDecimal getExcessRate(){
		return this.excessRate;
	}

	/**
	 *方法: 设置java.math.BigDecimal
	 *@param: java.math.BigDecimal  超额
	 */
	public void setExcessRate(java.math.BigDecimal excessRate){
		this.excessRate = excessRate;
	}
	
	/**
	 *方法: 取得java.lang.Boolean
	 *@return: java.lang.Boolean  投放强控
	 */
	public boolean getIsPut(){
		return this.isPut;
	}

	/**
	 *方法: 设置java.lang.Boolean
	 *@param: java.lang.Boolean  投放强控
	 */
	public void setIsPut(boolean isPut){
		this.isPut = isPut;
	}
	
	/**
	 *方法: 取得com.dst.slms.base.entity.MediaInfoInfo
	 *@return: com.dst.slms.base.entity.MediaInfoInfo  媒体信息
	 */
	public com.dst.slms.base.entity.MediaInfoInfo getMedia(){
		return this.media;
	}

	/**
	 *方法: 设置com.dst.slms.base.entity.MediaInfoInfo
	 *@param: com.dst.slms.base.entity.MediaInfoInfo  媒体信息
	 */
	public void setMedia(com.dst.slms.base.entity.MediaInfoInfo media){
		this.media = media;
	}
	
	/**
	 *方法: 取得java.lang.Boolean
	 *@return: java.lang.Boolean  按月控制
	 */
	public boolean getIsMonth(){
		return this.isMonth;
	}

	/**
	 *方法: 设置java.lang.Boolean
	 *@param: java.lang.Boolean  按月控制
	 */
	public void setIsMonth(boolean isMonth){
		this.isMonth = isMonth;
	}
	
	/**
	 *方法: 取得java.lang.Boolean
	 *@return: java.lang.Boolean  按季控制
	 */
	public boolean getIsQuarter(){
		return this.isQuarter;
	}

	/**
	 *方法: 设置java.lang.Boolean
	 *@param: java.lang.Boolean  按季控制
	 */
	public void setIsQuarter(boolean isQuarter){
		this.isQuarter = isQuarter;
	}
	
	/**
	 *方法: 取得java.lang.Boolean
	 *@return: java.lang.Boolean  按年控制
	 */
	public boolean getIsYear(){
		return this.isYear;
	}

	/**
	 *方法: 设置java.lang.Boolean
	 *@param: java.lang.Boolean  按年控制
	 */
	public void setIsYear(boolean isYear){
		this.isYear = isYear;
	}
	
			
	@Override
	public void setBosType(String bosType) {
		this.bosType = "9MLI2GZA";
	}
}
