package com.sunxung.factoring.entity.project;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.supplier.CEnterpriseHistory;
import com.sunxung.factoring.entity.sys.FileStorageDO;

import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * 项目信息历史记录
 * </p>
 *
 * @author liutao
 * @since 2023-12-15
 */
@TableName("c_project_information_history")
public class CProjectInformationHistory extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 供应商企业信息
     */
    @TableField("c_supplier_info_id")
    private Long cSupplierInfoId;

    /**
     * 业务编号
     */
    @TableField("business_number")
    private String businessNumber;

    /**
     * 项目类型
     */
    @TableField("project_type")
    private String projectType;

    /**
     * 项目名称
     */
    @TableField("project_name")
    private String projectName;

    /**
     * 项目业主方信息id
     */
    @TableField("c_enterprise_id")
    private Long cEnterpriseId;

    /**
     * 是否为项目成立的公司 0否 1是
     */
    @TableField("company_for_project")
    private Integer companyForProject;

    /**
     * 项目地点
     */
    @TableField("project_address")
    private String projectAddress;

    /**
     * 项目周期
     */
    @TableField("project_cycle")
    private String projectCycle;

    /**
     * 项目性质
     */
    @TableField("project_nature")
    private String projectNature;

    /**
     * 项目性质内容
     */
    @TableField("project_nature_detail")
    private String projectNatureDetail;

    /**
     * 货物品类
     */
    @TableField("goods_category")
    private String goodsCategory;

    /**
     * 货物品类
     */
    @TableField("goods_category_detail")
    private String goodsCategoryDetail;

    /**
     *  用途
     */
    @TableField("purpose")
    private String purpose;

    /**
     *  用途
     */
    @TableField("purpose_detail")
    private String purposeDetail;

    /**
     * 财政资金
     */
    @TableField("financial_funds")
    private BigDecimal financialFunds;

    /**
     * 银行贷款
     */
    @TableField("bank_loans")
    private BigDecimal bankLoans;

    /**
     * 利用外资
     */
    @TableField("foreign_capital")
    private BigDecimal foreignCapital;

    /**
     * 企事业单位自筹自己
     */
    @TableField("raise_independently")
    private BigDecimal raiseIndependently;

    /**
     * 专项资金
     */
    @TableField("special_fund")
    private BigDecimal specialFund;

    /**
     * 其他资金
     */
    @TableField("other_funds")
    private BigDecimal otherFunds;

    /**
     * 未知
     */
    @TableField("unknown")
    private BigDecimal unknown;

    /**
     * 是否招投标 0否 1是
     */
    @TableField("bidding")
    private Integer bidding;

    /**
     * 本次拟合作金额
     */
    @TableField("cooperation_amount")
    private BigDecimal cooperationAmount;

    /**
     * 月供货峰值
     */
    @TableField("peak_value")
    private BigDecimal peakValue;

    /**
     * 预估账期
     */
    @TableField("estimated_accounting_period")
    private Long estimatedAccountingPeriod;

    /**
     * 用款高峰值
     */
    @TableField("high_peak_usage")
    private BigDecimal highPeakUsage;

    /**
     *  项目状态
     */
    @TableField("status")
    private String status;


    /**
     *  红否原因
     */
    @TableField("errors_string")
    private String errorsString;

    @TableField(exist = false)
    private CEnterpriseHistory enterpriseHistory;

    @TableField(exist = false)
    private List<FileStorageDO> biddingFiles;
    @TableField(exist = false)
    private List< FileStorageDO > departmentFiles;

    public CEnterpriseHistory getEnterpriseHistory() {
        return enterpriseHistory;
    }

    public void setEnterpriseHistory(CEnterpriseHistory enterpriseHistory) {
        this.enterpriseHistory = enterpriseHistory;
    }

    public String getErrorsString() {
        return errorsString;
    }

    public void setErrorsString(String errorsString) {
        this.errorsString = errorsString;
    }

    public List<FileStorageDO> getBiddingFiles() {
        return biddingFiles;
    }

    public void setBiddingFiles(List<FileStorageDO> biddingFiles) {
        this.biddingFiles = biddingFiles;
    }

    public List<FileStorageDO> getDepartmentFiles() {
        return departmentFiles;
    }

    public void setDepartmentFiles(List<FileStorageDO> departmentFiles) {
        this.departmentFiles = departmentFiles;
    }

    public Long getcSupplierInfoId() {
        return cSupplierInfoId;
    }

    public void setcSupplierInfoId(Long cSupplierInfoId) {
        this.cSupplierInfoId = cSupplierInfoId;
    }
    public String getBusinessNumber() {
        return businessNumber;
    }

    public void setBusinessNumber(String businessNumber) {
        this.businessNumber = businessNumber;
    }
    public String getProjectType() {
        return projectType;
    }

    public void setProjectType(String projectType) {
        this.projectType = projectType;
    }
    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }
    public Long getcEnterpriseId() {
        return cEnterpriseId;
    }

    public void setcEnterpriseId(Long cEnterpriseId) {
        this.cEnterpriseId = cEnterpriseId;
    }
    public Integer getCompanyForProject() {
        return companyForProject;
    }

    public void setCompanyForProject(Integer companyForProject) {
        this.companyForProject = companyForProject;
    }
    public String getProjectAddress() {
        return projectAddress;
    }

    public void setProjectAddress(String projectAddress) {
        this.projectAddress = projectAddress;
    }
    public String getProjectCycle() {
        return projectCycle;
    }

    public void setProjectCycle(String projectCycle) {
        this.projectCycle = projectCycle;
    }
    public String getProjectNature() {
        return projectNature;
    }

    public void setProjectNature(String projectNature) {
        this.projectNature = projectNature;
    }
    public String getProjectNatureDetail() {
        return projectNatureDetail;
    }

    public void setProjectNatureDetail(String projectNatureDetail) {
        this.projectNatureDetail = projectNatureDetail;
    }
    public String getGoodsCategory() {
        return goodsCategory;
    }

    public void setGoodsCategory(String goodsCategory) {
        this.goodsCategory = goodsCategory;
    }
    public String getGoodsCategoryDetail() {
        return goodsCategoryDetail;
    }

    public void setGoodsCategoryDetail(String goodsCategoryDetail) {
        this.goodsCategoryDetail = goodsCategoryDetail;
    }
    public String getPurpose() {
        return purpose;
    }

    public void setPurpose(String purpose) {
        this.purpose = purpose;
    }
    public BigDecimal getFinancialFunds() {
        return financialFunds;
    }

    public void setFinancialFunds(BigDecimal financialFunds) {
        this.financialFunds = financialFunds;
    }
    public BigDecimal getBankLoans() {
        return bankLoans;
    }

    public void setBankLoans(BigDecimal bankLoans) {
        this.bankLoans = bankLoans;
    }
    public BigDecimal getForeignCapital() {
        return foreignCapital;
    }

    public void setForeignCapital(BigDecimal foreignCapital) {
        this.foreignCapital = foreignCapital;
    }
    public BigDecimal getRaiseIndependently() {
        return raiseIndependently;
    }

    public void setRaiseIndependently(BigDecimal raiseIndependently) {
        this.raiseIndependently = raiseIndependently;
    }
    public BigDecimal getSpecialFund() {
        return specialFund;
    }

    public void setSpecialFund(BigDecimal specialFund) {
        this.specialFund = specialFund;
    }
    public BigDecimal getOtherFunds() {
        return otherFunds;
    }

    public void setOtherFunds(BigDecimal otherFunds) {
        this.otherFunds = otherFunds;
    }
    public BigDecimal getUnknown() {
        return unknown;
    }

    public void setUnknown(BigDecimal unknown) {
        this.unknown = unknown;
    }
    public Integer getBidding() {
        return bidding;
    }

    public void setBidding(Integer bidding) {
        this.bidding = bidding;
    }
    public BigDecimal getCooperationAmount() {
        return cooperationAmount;
    }

    public void setCooperationAmount(BigDecimal cooperationAmount) {
        this.cooperationAmount = cooperationAmount;
    }
    public BigDecimal getPeakValue() {
        return peakValue;
    }

    public void setPeakValue(BigDecimal peakValue) {
        this.peakValue = peakValue;
    }
    public Long getEstimatedAccountingPeriod() {
        return estimatedAccountingPeriod;
    }

    public void setEstimatedAccountingPeriod(Long estimatedAccountingPeriod) {
        this.estimatedAccountingPeriod = estimatedAccountingPeriod;
    }
    public BigDecimal getHighPeakUsage() {
        return highPeakUsage;
    }

    public void setHighPeakUsage(BigDecimal highPeakUsage) {
        this.highPeakUsage = highPeakUsage;
    }
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getPurposeDetail() {
        return purposeDetail;
    }

    public void setPurposeDetail(String purposeDetail) {
        this.purposeDetail = purposeDetail;
    }

    @Override
    public String toString() {
        return "CProjectInformationHistory{" +
            "cSupplierInfoId=" + cSupplierInfoId +
            ", businessNumber=" + businessNumber +
            ", projectType=" + projectType +
            ", projectName=" + projectName +
            ", cEnterpriseId=" + cEnterpriseId +
            ", companyForProject=" + companyForProject +
            ", projectAddress=" + projectAddress +
            ", projectCycle=" + projectCycle +
            ", projectNature=" + projectNature +
            ", projectNatureDetail=" + projectNatureDetail +
            ", goodsCategory=" + goodsCategory +
            ", goodsCategoryDetail=" + goodsCategoryDetail +
            ", purpose=" + purpose +
            ", financialFunds=" + financialFunds +
            ", bankLoans=" + bankLoans +
            ", foreignCapital=" + foreignCapital +
            ", raiseIndependently=" + raiseIndependently +
            ", specialFund=" + specialFund +
            ", otherFunds=" + otherFunds +
            ", unknown=" + unknown +
            ", bidding=" + bidding +
            ", cooperationAmount=" + cooperationAmount +
            ", peakValue=" + peakValue +
            ", estimatedAccountingPeriod=" + estimatedAccountingPeriod +
            ", highPeakUsage=" + highPeakUsage +
            ", status=" + status +
        "}";
    }
}
