package com.sunxung.factoring.entity.businessmanagement;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.customerinformation.Customer;
import com.sunxung.factoring.entity.project.Project;
import com.sunxung.factoring.entity.purchcontractmanagement.PurchContractBasicInfo;
import com.sunxung.factoring.entity.sys.Dictionary;
import com.sunxung.factoring.entity.sys.FileStorage;
import com.sunxung.factoring.entity.tradingPlatform.Platform;

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

/**
 * @author liutao
 * 业务管理基本信息
 */
@TableName(value = "business_basic_info")
public class BusinessBasicInfo extends Project {

    /**
     * 业务名称
     */
    @TableField(value = "business_name")
    private String name;
    /**
     * 核心企业id
     */
    @TableField(value = "enterprise_customer_info_id")
    private Long enterpriseCustomerInfoId;
    /**
     * 贸易平台
     */
    @TableField(value = "trading_platform_id")
    private Long tradingPlatformId;
    /**
     * 保证金上限(履约保证金)
     */
    @TableField(value = "deposit_limit")
    private BigDecimal depositLimit;
    /**
     * 项目内容
     */
    @TableField(value = "contents")
    private String contents;
    /**
     * 业务经理Id
     */
    @TableField(value = "manager_id")
    private Long managerId;

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

    /**
     * 是否资格预审 0否  1是
     */
    @TableField(value = "prequalification")
    private Integer prequalification;

    /**
     * 资格预审材料说明
     */
    @TableField(value = "description_of_prequalification_materials")
    private String descriptionOfPrequalificationMaterials;

    /**
     * 当前阶段
     */
    @TableField(value = "stage")
    private Long stage;

    @TableField("status")
    private Long statusDic;

    /**
     * 供货商
     */
    @TableField(exist = false)
    private List<BusinessSupplierInfo> businessSupplierInfos;

    /**
     * 附件
     */
    @TableField(exist = false)
    private List<FileStorage> fileStorage;

    /**
     * 最长货物未结算天数
     */
    @TableField(exist = false)
    private Integer unsettledDays;
    /**
     * 企业客户信息
     */
    @TableField(exist = false)
    private Customer customer;

    /**
     * 贸易平台
     */
    @TableField(exist = false)
    private Platform platform;

    /**
     * 业务状态
     **/
    @TableField(exist = false)
    private Dictionary businessBasicDict;

    /**
     * 删除的文件
     */
    @TableField(exist = false)
    private List<Long> deleteFileIds;

    /**
     * 卖方名称
     */
    @TableField(exist = false)
    private String enterpriseName;

    /**
     * 状态字典项名称
     */
    @TableField(exist = false)
    private String dicName;


    /**
     * 待结算金额
     */
    @TableField(exist = false)
    private BigDecimal pendingSettlementAmount;

    /**
     * 结算金额（发票管理）
     */
    @TableField(exist = false)
    private BigDecimal settlementAmount;

    /**
     * 已开票金额（发票管理）
     */
    @TableField(exist = false)
    private BigDecimal invoiceAmount;

    /**
     * 业务经理名字
     */
    @TableField(exist = false)
    private String userName;

    @TableField(exist = false)
    private String taskId;

    @TableField(exist = false)
    private String businessKey;

    /**
     * 供应商发货人
     */
    @TableField(exist = false)
    private String sellerName;

    /**
     * 验收经办人(核心企业)
     **/
    @TableField(exist = false)
    private String checkOperator;

    /**
     * 结算经办人(核心企业) 供结算单
     **/
    @TableField(exist = false)
    private String settlementOperator;
    /**
     * 采购合同基础信息
     */
    @TableField(exist = false)
    private PurchContractBasicInfo purchContractBasicInfo;

    public Long getStatusDic() {
        return statusDic;
    }

    public void setStatusDic(Long statusDic) {
        this.statusDic = statusDic;
    }

    public Long getStage() {
        return stage;
    }

    public void setStage(Long stage) {
        this.stage = stage;
    }

    public String getTaskId() {
        return taskId;
    }

    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    public String getBusinessKey() {
        return businessKey;
    }

    public void setBusinessKey(String businessKey) {
        this.businessKey = businessKey;
    }

    public BusinessBasicInfo() {
    }

    public BusinessBasicInfo(String businessNumber) {
        super.setBusinessNumber(businessNumber);
    }

    public Integer getBidding() {
        return bidding;
    }

    public void setBidding(Integer bidding) {
        this.bidding = bidding;
    }

    public Integer getPrequalification() {
        return prequalification;
    }

    public void setPrequalification(Integer prequalification) {
        this.prequalification = prequalification;
    }

    public String getDescriptionOfPrequalificationMaterials() {
        return descriptionOfPrequalificationMaterials;
    }

    public void setDescriptionOfPrequalificationMaterials(String descriptionOfPrequalificationMaterials) {
        this.descriptionOfPrequalificationMaterials = descriptionOfPrequalificationMaterials;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getEnterpriseCustomerInfoId() {
        return enterpriseCustomerInfoId;
    }

    public void setEnterpriseCustomerInfoId(Long enterpriseCustomerInfoId) {
        this.enterpriseCustomerInfoId = enterpriseCustomerInfoId;
    }

    public Long getTradingPlatformId() {
        return tradingPlatformId;
    }

    public void setTradingPlatformId(Long tradingPlatformId) {
        this.tradingPlatformId = tradingPlatformId;
    }

    public BigDecimal getDepositLimit() {
        return depositLimit;
    }

    public void setDepositLimit(BigDecimal depositLimit) {
        this.depositLimit = depositLimit;
    }

    public String getContents() {
        return contents;
    }

    public void setContents(String contents) {
        this.contents = contents;
    }

    public Long getManagerId() {
        return managerId;
    }

    public void setManagerId(Long managerId) {
        this.managerId = managerId;
    }

    public List<BusinessSupplierInfo> getBusinessSupplierInfos() {
        return businessSupplierInfos;
    }

    public void setBusinessSupplierInfos(List<BusinessSupplierInfo> businessSupplierInfos) {
        this.businessSupplierInfos = businessSupplierInfos;
    }

    public List<FileStorage> getFileStorage() {
        return fileStorage;
    }

    public void setFileStorage(List<FileStorage> fileStorage) {
        this.fileStorage = fileStorage;
    }

    public Integer getUnsettledDays() {
        return unsettledDays;
    }

    public void setUnsettledDays(Integer unsettledDays) {
        this.unsettledDays = unsettledDays;
    }

    public Customer getCustomer() {
        return customer;
    }

    public void setCustomer(Customer customer) {
        this.customer = customer;
    }

    public Platform getPlatform() {
        return platform;
    }

    public void setPlatform(Platform platform) {
        this.platform = platform;
    }

    public Dictionary getBusinessBasicDict() {
        return businessBasicDict;
    }

    public void setBusinessBasicDict(Dictionary businessBasicDict) {
        this.businessBasicDict = businessBasicDict;
    }

    public List<Long> getDeleteFileIds() {
        return deleteFileIds;
    }

    public void setDeleteFileIds(List<Long> deleteFileIds) {
        this.deleteFileIds = deleteFileIds;
    }

    public String getEnterpriseName() {
        return enterpriseName;
    }

    public void setEnterpriseName(String enterpriseName) {
        this.enterpriseName = enterpriseName;
    }

    public String getDicName() {
        return dicName;
    }

    public void setDicName(String dicName) {
        this.dicName = dicName;
    }

    public BigDecimal getPendingSettlementAmount() {
        return pendingSettlementAmount;
    }

    public void setPendingSettlementAmount(BigDecimal pendingSettlementAmount) {
        this.pendingSettlementAmount = pendingSettlementAmount;
    }

    public BigDecimal getSettlementAmount() {
        return settlementAmount;
    }

    public void setSettlementAmount(BigDecimal settlementAmount) {
        this.settlementAmount = settlementAmount;
    }

    public BigDecimal getInvoiceAmount() {
        return invoiceAmount;
    }

    public void setInvoiceAmount(BigDecimal invoiceAmount) {
        this.invoiceAmount = invoiceAmount;
    }

    public String getSellerName() {
        return sellerName;
    }

    public void setSellerName(String sellerName) {
        this.sellerName = sellerName;
    }

    public String getCheckOperator() {
        return checkOperator;
    }

    public void setCheckOperator(String checkOperator) {
        this.checkOperator = checkOperator;
    }

    public PurchContractBasicInfo getPurchContractBasicInfo() {
        return purchContractBasicInfo;
    }

    public void setPurchContractBasicInfo(PurchContractBasicInfo purchContractBasicInfo) {
        this.purchContractBasicInfo = purchContractBasicInfo;
    }

    public String getSettlementOperator() {
        return settlementOperator;
    }

    public void setSettlementOperator(String settlementOperator) {
        this.settlementOperator = settlementOperator;
    }
}
