package cn.com.countrygarden.bi.main.model.investment;

import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.util.Date;


/**
 * 个人项目收益
 *
 * @author 汤婷
 * @email www.justintoforest@gamail.com
 * @url 
 * @date 2018-08-20
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
@Table(name = "invest_project_profit")
public class InvestProjectProfit implements Serializable{
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;
    /**
     * 项目名称
     */
 	@Column(name="project_name")
    private String projectName;
    /**
     * 项目id
     */
 	@Column(name="project_id")
    private String projectId;
    /**
     * 个人区域投资id
     */
 	@Column(name="person_investment_id")
    private String personInvestmentId;
    /**
     * 资金池（房产发放）
     */
 	@Column(name="property_distribution_capital")
    private BigDecimal propertyDistributionCapital;
    /**
     * 单独资金账户（房产发放）
     */
 	@Column(name="property_distribution_capital_account")
    private BigDecimal propertyDistributionCapitalAccount;
    /**
     * 资金池（个人已发放）
     */
 	@Column(name="issued_capital")
    private BigDecimal issuedCapital;
    /**
     * 单独资金账户（个人已发放）
     */
 	@Column(name="issued_capital_account")
    private BigDecimal issuedCapitalAccount;
    /**
     * 资金池（个人未发放）
     */
 	@Column(name="unissued_capital")
    private BigDecimal unissuedCapital;
    /**
     * 单独资金账户（个人未发放）
     */
 	@Column(name="unissued_capital_account")
    private BigDecimal unissuedCapitalAccount;
    /**
     * 资金池（区域跟投）
     */
 	@Column(name="region_follow_capital")
    private BigDecimal regionFollowCapital;
    /**
     * 单独资金账户（区域跟投）
     */
 	@Column(name="region_follow_capital_account")
    private BigDecimal regionFollowCapitalAccount;
    /**
     * 资金池（阶段性现金返还）
     */
 	@Column(name="cash_return_capital")
    private BigDecimal cashReturnCapital;
    /**
     * 单独资金账户（阶段性现金返还）
     */
 	@Column(name="cash_return_capital_account")
    private BigDecimal cashReturnCapitalAccount;
    /**
     * 资金池（利润分配）
     */
 	@Column(name="profit_distribution_capital")
    private BigDecimal profitDistributionCapital;
    /**
     * 单独资金账户（利润分配）
     */
 	@Column(name="profit_distribution_capital_account")
    private BigDecimal profitDistributionCapitalAccount;
    /**
     * 资金池（本金返还）
     */
 	@Column(name="principal_return_capital")
    private BigDecimal principalReturnCapital;
    /**
     * 单独资金账户（本金返还）
     */
 	@Column(name="principal_return_capital_account")
    private BigDecimal principalReturnCapitalAccount;
    /**
     * 资金池（本金未收回）
     */
 	@Column(name="principal_notrecovered_capital")
    private BigDecimal principalNotrecoveredCapital;
    /**
     * 单独资金账户（本金未收回）
     */
 	@Column(name="principal_notrecovered_capital_account")
    private BigDecimal principalNotrecoveredCapitalAccount;
    /**
     * 创建人
     */
 	@Column(name="create_by")
    private String createBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createTime;
    /**
     * 修改人
     */
 	@Column(name="update_by")
    private String updateBy;
    /**
     * 修改时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;
    /**
     * 可用
     */
 	@Column(name="flag")
    private Integer flag;
    public InvestProjectProfit() {
          super();
    }
    public void setId(Integer id) {
          this.id = id;
    }
	
    public Integer getId() {
          return id;
    }
    public void setProjectName(String projectName) {
          this.projectName = projectName;
    }
	
    public String getProjectName() {
          return projectName;
    }
    public void setProjectId(String projectId) {
          this.projectId = projectId;
    }
	
    public String getProjectId() {
          return projectId;
    }



	public String getPersonInvestmentId() {
		return personInvestmentId;
	}
	public void setPersonInvestmentId(String personInvestmentId) {
		this.personInvestmentId = personInvestmentId;
	}
	public void setPropertyDistributionCapital(BigDecimal propertyDistributionCapital) {
          this.propertyDistributionCapital = propertyDistributionCapital;
    }
	
    public BigDecimal getPropertyDistributionCapital() {
          return propertyDistributionCapital;
    }
    public void setPropertyDistributionCapitalAccount(BigDecimal propertyDistributionCapitalAccount) {
          this.propertyDistributionCapitalAccount = propertyDistributionCapitalAccount;
    }
	
    public BigDecimal getPropertyDistributionCapitalAccount() {
          return propertyDistributionCapitalAccount;
    }
    public void setIssuedCapital(BigDecimal issuedCapital) {
          this.issuedCapital = issuedCapital;
    }
	
    public BigDecimal getIssuedCapital() {
          return issuedCapital;
    }
    public void setIssuedCapitalAccount(BigDecimal issuedCapitalAccount) {
          this.issuedCapitalAccount = issuedCapitalAccount;
    }
	
    public BigDecimal getIssuedCapitalAccount() {
          return issuedCapitalAccount;
    }
    public void setUnissuedCapital(BigDecimal unissuedCapital) {
          this.unissuedCapital = unissuedCapital;
    }
	
    public BigDecimal getUnissuedCapital() {
          return unissuedCapital;
    }
    public void setUnissuedCapitalAccount(BigDecimal unissuedCapitalAccount) {
          this.unissuedCapitalAccount = unissuedCapitalAccount;
    }
	
    public BigDecimal getUnissuedCapitalAccount() {
          return unissuedCapitalAccount;
    }
    public void setRegionFollowCapital(BigDecimal regionFollowCapital) {
          this.regionFollowCapital = regionFollowCapital;
    }
	
    public BigDecimal getRegionFollowCapital() {
          return regionFollowCapital;
    }
    public void setRegionFollowCapitalAccount(BigDecimal regionFollowCapitalAccount) {
          this.regionFollowCapitalAccount = regionFollowCapitalAccount;
    }
	
    public BigDecimal getRegionFollowCapitalAccount() {
    	if(regionFollowCapitalAccount==null) {
    		return regionFollowCapitalAccount=new BigDecimal(0);
    	}
          return regionFollowCapitalAccount;
    }
    public void setCashReturnCapital(BigDecimal cashReturnCapital) {
          this.cashReturnCapital = cashReturnCapital;
    }
	
    public BigDecimal getCashReturnCapital() {
          return cashReturnCapital;
    }
    public void setCashReturnCapitalAccount(BigDecimal cashReturnCapitalAccount) {
          this.cashReturnCapitalAccount = cashReturnCapitalAccount;
    }
	
    public BigDecimal getCashReturnCapitalAccount() {
          return cashReturnCapitalAccount;
    }
    public void setProfitDistributionCapital(BigDecimal profitDistributionCapital) {
          this.profitDistributionCapital = profitDistributionCapital;
    }
	
    public BigDecimal getProfitDistributionCapital() {
          return profitDistributionCapital;
    }
    public void setProfitDistributionCapitalAccount(BigDecimal profitDistributionCapitalAccount) {
          this.profitDistributionCapitalAccount = profitDistributionCapitalAccount;
    }
	
    public BigDecimal getProfitDistributionCapitalAccount() {
          return profitDistributionCapitalAccount;
    }
    public void setPrincipalReturnCapital(BigDecimal principalReturnCapital) {
          this.principalReturnCapital = principalReturnCapital;
    }
	
    public BigDecimal getPrincipalReturnCapital() {
          return principalReturnCapital;
    }
    public void setPrincipalReturnCapitalAccount(BigDecimal principalReturnCapitalAccount) {
          this.principalReturnCapitalAccount = principalReturnCapitalAccount;
    }
	
    public BigDecimal getPrincipalReturnCapitalAccount() {
          return principalReturnCapitalAccount;
    }
    public void setPrincipalNotrecoveredCapital(BigDecimal principalNotrecoveredCapital) {
          this.principalNotrecoveredCapital = principalNotrecoveredCapital;
    }
	
    public BigDecimal getPrincipalNotrecoveredCapital() {
          return principalNotrecoveredCapital;
    }
    public void setPrincipalNotrecoveredCapitalAccount(BigDecimal principalNotrecoveredCapitalAccount) {
          this.principalNotrecoveredCapitalAccount = principalNotrecoveredCapitalAccount;
    }
	
    public BigDecimal getPrincipalNotrecoveredCapitalAccount() {
          return principalNotrecoveredCapitalAccount;
    }
    public void setCreateBy(String createBy) {
          this.createBy = createBy;
    }
	
    public String getCreateBy() {
          return createBy;
    }
    public void setCreateTime(Date createTime) {
          this.createTime = createTime;
    }
	
    public Date getCreateTime() {
          return createTime;
    }
    public void setUpdateBy(String updateBy) {
          this.updateBy = updateBy;
    }
	
    public String getUpdateBy() {
          return updateBy;
    }
    public void setUpdateTime(Date updateTime) {
          this.updateTime = updateTime;
    }
	
    public Date getUpdateTime() {
          return updateTime;
    }
    public void setFlag(Integer flag) {
          this.flag = flag;
    }
	
    public Integer getFlag() {
          return flag;
    }
}
