package com.sunxung.factoring.entity.project;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
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-11-25
 */
@TableName("c_project_information")
public class ProjectInformation extends Project {

    private static final long serialVersionUID = 1L;

    @TableField(exist = false)
    private Long historyId;

    /**
     * 供应商企业信息
     */
    @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;

    /**
     * 项目业主方历史信息id
     */
    @TableField("c_enterprise_history_id")
    private Long cEnterpriseHistoryId;

    /**
     * 是否为项目成立的公司 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("project_nature_detail_des")
    private String projectNatureDetailDes;

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

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

    /**
     * 货物品类三级分类
     */
    @TableField("goods_category_detail_des")
    private String goodsCategoryDetailDes;

    /**
     *  用途
     */
    @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 statusStr;

    /**
     * 是否已做销售合同，0:否 1:是
     */
    @TableField("sales")
    private Integer sales;

    /**
     * 是否已做招投标 1 是 0 否
     */
    @TableField("already_bidding")
    private Integer alreadyBidding;


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

    /**
     *  项目状态
     */
    @TableField(exist = false)
    private String projectStatusStr;

    /**
     *  核心企业状态
     */
    @TableField(exist = false)
    private String coreStatusStr;

    /**
     *  主办方
     */
    @TableField(exist = false)
    private String ownerName;

    /**
     *  核心企业
     */
    @TableField(exist = false)
    private String customerName;

    /**
     *  供应商名称
     */
    @TableField(exist = false)
    private String supplierName;

    /**
     *  主办方
     */
    @TableField(exist = false)
    private CEnterpriseHistory enterprise;

    /**
     *  核心企业
     */
    @TableField(exist = false)
    private ProjectCoreEnterprise projectCoreEnterprise;

    /**
     *  是否提交 TRUE提交 FALSE暂存
     */
    @TableField(exist = false)
    private Boolean visible;

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

    /**
     *  文件
     */
    @TableField(exist = false)
    private List<Long> biddingFileIds;

    /**
     *  文件
     */
    @TableField(exist = false)
    private List<Long> departmentFileIds;

    /**
     * 风险经理
     */
    @TableField(exist = false)
    private Long riskManagerId;

    public String getErrorsString() {
        return errorsString;
    }

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

    @Override
    public String getSupplierName() {
        return supplierName;
    }

    @Override
    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public String getProjectNatureDetailDes() {
        return projectNatureDetailDes;
    }

    public void setProjectNatureDetailDes(String projectNatureDetailDes) {
        this.projectNatureDetailDes = projectNatureDetailDes;
    }

    public String getGoodsCategoryDetailDes() {
        return goodsCategoryDetailDes;
    }

    public void setGoodsCategoryDetailDes(String goodsCategoryDetailDes) {
        this.goodsCategoryDetailDes = goodsCategoryDetailDes;
    }

    public String getPurposeDetail() {
        return purposeDetail;
    }

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

    public Long getRiskManagerId() {
        return riskManagerId;
    }

    public void setRiskManagerId(Long riskManagerId) {
        this.riskManagerId = riskManagerId;
    }

    public Long getHistoryId() {
        return historyId;
    }

    public void setHistoryId(Long historyId) {
        this.historyId = historyId;
    }

    public String getProjectStatusStr() {
        return projectStatusStr;
    }

    public void setProjectStatusStr(String projectStatusStr) {
        this.projectStatusStr = projectStatusStr;
    }

    public String getCoreStatusStr() {
        return coreStatusStr;
    }

    public void setCoreStatusStr(String coreStatusStr) {
        this.coreStatusStr = coreStatusStr;
    }

    @Override
    public String getOwnerName() {
        return ownerName;
    }

    @Override
    public void setOwnerName(String ownerName) {
        this.ownerName = ownerName;
    }

    @Override
    public String getCustomerName() {
        return customerName;
    }

    @Override
    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public List<Long> getBiddingFileIds() {
        return biddingFileIds;
    }

    public void setBiddingFileIds(List<Long> biddingFileIds) {
        this.biddingFileIds = biddingFileIds;
    }

    public List<Long> getDepartmentFileIds() {
        return departmentFileIds;
    }

    public void setDepartmentFileIds(List<Long> departmentFileIds) {
        this.departmentFileIds = departmentFileIds;
    }

    public Long getcEnterpriseHistoryId() {
        return cEnterpriseHistoryId;
    }

    public void setcEnterpriseHistoryId(Long cEnterpriseHistoryId) {
        this.cEnterpriseHistoryId = cEnterpriseHistoryId;
    }

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

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

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

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

    public String getStatusStr() {
        return statusStr;
    }

    public void setStatusStr(String statusStr) {
        this.statusStr = statusStr;
    }

    @Override
    public String getBusinessNumber() {
        return businessNumber;
    }

    @Override
    public void setBusinessNumber(String businessNumber) {
        this.businessNumber = businessNumber;
    }

    public Boolean getVisible() {
        return visible;
    }

    public void setVisible(Boolean visible) {
        this.visible = visible;
    }

    public CEnterpriseHistory getEnterprise() {
        return enterprise;
    }

    public void setEnterprise(CEnterpriseHistory enterprise) {
        this.enterprise = enterprise;
    }

    public ProjectCoreEnterprise getProjectCoreEnterprise() {
        return projectCoreEnterprise;
    }

    public void setProjectCoreEnterprise(ProjectCoreEnterprise projectCoreEnterprise) {
        this.projectCoreEnterprise = projectCoreEnterprise;
    }

    public Long getcSupplierInfoId() {
        return cSupplierInfoId;
    }

    public void setcSupplierInfoId(Long cSupplierInfoId) {
        this.cSupplierInfoId = cSupplierInfoId;
    }
    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 Integer getSales() {
        return sales;
    }

    public void setSales(Integer sales) {
        this.sales = sales;
    }

    public Integer getAlreadyBidding() {
        return alreadyBidding;
    }

    public void setAlreadyBidding(Integer alreadyBidding) {
        this.alreadyBidding = alreadyBidding;
    }

    @Override
    public String toString() {
        return "CProjectInformation{" +
            "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 +
        "}";
    }
}
