package com.sunxung.factoring.entity.entprise;

import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.supplier.*;
import com.sunxung.factoring.entity.sys.FileStorageDO;

import java.util.Date;
import java.util.List;

/**
 * <p>
 * 企业信息
 * </p>
 *
 * @author liutao
 * @since 2023-11-25
 */
@TableName("c_enterprise")
public class Enterprise extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 公司名称
     */
    @TableField("corporate_name")
    private String corporateName;

    /**
     * 统一社会信用代码
     */
    @TableField("social_credit_code")
    private String socialCreditCode;

    /**
     * 法人代表
     */
    @TableField("legal_representative")
    private String legalRepresentative;

    /**
     * 大股东
     */
    @TableField("major_shareholders")
    private String majorShareholders;

    /**
     * 实控人
     */
    @TableField("controller")
    private String controller;

    /**
     * 成立日期
     */
    @TableField("start_sate")
    private Date startSate;

    /**
     * 注册资本
     */
    @TableField("registered_capital")
    private String registeredCapital;

    /**
     * 注册（登记）地址
     */
    @TableField("address")
    private String address;

    /**
     * 实际经营地址
     */
    @TableField("business_address")
    private String businessAddress;

    /**
     * sop综合风险排查信息表id  企业
     */
    @TableField("c_comprehensive_risk_investigation_id")
    private Long cComprehensiveRiskInvestigationId;

    /**
     * sop法人董监高风险扫描表id
     */
    @TableField("c_dongjiangao_risk_id")
    private Long cDongjiangaoRiskId;

    /**
     * sop实控人董监高风险扫描表id
     */
    @TableField("c_dongjiangao_risk_controller_id")
    private Long cDongjiangaoRiskControllerId;

    /**
     * sop大股东董监高风险扫描表id
     */
    @TableField("c_dongjiangao_risk_big_id")
    private Long cDongjiangaoRiskBigId;

    /**
     * 企业准入状态
     */
    @TableField("status")
    private String status;

    /**
     * 企业认证状态 0：未认证 1：已认证
     */
    @TableField("auth_status")
    private Boolean authStatus;

    /**
     * 企业认证短链接
     */
    @TableField("short_auth_url")
    private String shortAuthUrl;

    /**
     * 企业认证链接
     */
    @TableField("auth_url")
    private String authUrl;

    /**
     * 企业授权授权书签署状态 0：未签署 1：已签署
     */
    @TableField("certificate_sign_status")
    private Integer certificateSignStatus;

    /**
     * 授权书签署短链接
     */
    @TableField("certificate_short_sign_url")
    private String certificateShortSignUrl;

    /**
     * 授权书签署链接
     */
    @TableField("certificate_sign_url")
    private String certificateSignUrl;

    /**
     * 授权书合同编号
     */
    @TableField("certificate_contract_id")
    private String certificateContractId;

    /**
     * 企业在法大大上签署授权书的交易号
     */
    @TableField("certificate_transaction_id")
    private String certificateTransactionId;

    /**
     * 在法大大上的客户编号
     */
    @TableField("fdd_customer_id")
    private String fddCustomerId;

    /**
     * 企业授权自动签署状态 0：未认证 1：已认证
     */
    @TableField("auto_sign_status")
    private Integer autoSignStatus;

    /**
     * 自动签署短链接
     */
    @TableField("short_auto_sign_url")
    private String shortAutoSignUrl;

    /**
     * 自动签署链接
     */
    @TableField("auto_sign_url")
    private String autoSignUrl;
    /**
     * 征信相关情况
     */
    @TableField(exist = false)
    private List<CreditSituation> creditSituations;
    /**
     * 企业商誉
     */
    @TableField(exist = false)
    private CorporateGoodwill corporateGoodwill;
    /**
     * 民间借贷
     */
    @TableField(exist = false)
    private List<PrivateLending> privateLendings;
    /**
     * 严重违法
     */
    @TableField(exist = false)
    private List<SeriousIllegality> seriousIllegalities;
    /**
     * 欠税公告
     */
    @TableField(exist = false)
    private List<TaxOweNotice> taxOweNotices;
    /**
     * 税收违法
     */
    @TableField(exist = false)
    private List<TaxIllegalData> taxIllegalData;
    /**
     * 黑名单
     */
    @TableField(exist = false)
    private List<Blacklist> blacklists;
    /**
     * 其他经营异常
     */
    @TableField(exist = false)
    private List<ExceptionData> exceptionData;
    /**
     * 重大负面新闻舆情
     */
    @TableField(exist = false)
    private List<News> news;
    /**
     * 成立年限
     */
    @TableField(exist = false)
    private Integer yearsDiff;

    @TableField(exist = false)
    private List<FileStorageDO> locationMap;
    @TableField(exist = false)
    private List<FileStorageDO> rentalContract;
    @TableField(exist = false)
    private List<FileStorageDO> waterElectricityFees;
    @TableField(exist = false)
    private List<FileStorageDO> officeEnvironment;
    @TableField(exist = false)
    private List<FileStorageDO> businessLicense;
    @TableField(exist = false)
    private List<FileStorageDO> basicAccountInformation;
    @TableField(exist = false)
    private List<FileStorageDO> articlesAssociation;
    @TableField(exist = false)
    private List<FileStorageDO> judgment;
    @TableField(exist = false)
    private List<FileStorageDO> taxReturn;
    @TableField(exist = false)
    private List<FileStorageDO> accountingreport ;

    @TableField(exist = false)
    private List<CCreditInvestigationInfoHistory> creditInvestigationInfoList;
    @TableField(exist = false)
    private List<CCorporateFinanceHistory> corporateFinances;
    @TableField(exist = false)
    private List<CUpstreamProcurementDocumentsHistory> upstreamProcurementDocuments;
    @TableField(exist = false)
    private List<CSalesDocumentsInfoHistory> salesDocumentsInfos;
    @TableField(exist = false)
    private List<CAssociatedEnterpriseInfoHistory> associatedEnterpriseInfos;

    @TableField(exist = false)
    private FileStorageDO fileStorageDO;

    public FileStorageDO getFileStorageDO() {
        return fileStorageDO;
    }

    public void setFileStorageDO(FileStorageDO fileStorageDO) {
        this.fileStorageDO = fileStorageDO;
    }

    public String getCertificateTransactionId() {
        return certificateTransactionId;
    }

    public void setCertificateTransactionId(String certificateTransactionId) {
        this.certificateTransactionId = certificateTransactionId;
    }

    public List<CCreditInvestigationInfoHistory> getCreditInvestigationInfoList() {
        return creditInvestigationInfoList;
    }

    public void setCreditInvestigationInfoList(List<CCreditInvestigationInfoHistory> creditInvestigationInfoList) {
        this.creditInvestigationInfoList = creditInvestigationInfoList;
    }

    public List<CCorporateFinanceHistory> getCorporateFinances() {
        return corporateFinances;
    }

    public void setCorporateFinances(List<CCorporateFinanceHistory> corporateFinances) {
        this.corporateFinances = corporateFinances;
    }

    public List<CUpstreamProcurementDocumentsHistory> getUpstreamProcurementDocuments() {
        return upstreamProcurementDocuments;
    }

    public void setUpstreamProcurementDocuments(List<CUpstreamProcurementDocumentsHistory> upstreamProcurementDocuments) {
        this.upstreamProcurementDocuments = upstreamProcurementDocuments;
    }

    public List<CSalesDocumentsInfoHistory> getSalesDocumentsInfos() {
        return salesDocumentsInfos;
    }

    public void setSalesDocumentsInfos(List<CSalesDocumentsInfoHistory> salesDocumentsInfos) {
        this.salesDocumentsInfos = salesDocumentsInfos;
    }

    public List<CAssociatedEnterpriseInfoHistory> getAssociatedEnterpriseInfos() {
        return associatedEnterpriseInfos;
    }

    public void setAssociatedEnterpriseInfos(List<CAssociatedEnterpriseInfoHistory> associatedEnterpriseInfos) {
        this.associatedEnterpriseInfos = associatedEnterpriseInfos;
    }

    public List<FileStorageDO> getLocationMap() {
        return locationMap;
    }

    public void setLocationMap(List<FileStorageDO> locationMap) {
        this.locationMap = locationMap;
    }

    public List<FileStorageDO> getRentalContract() {
        return rentalContract;
    }

    public void setRentalContract(List<FileStorageDO> rentalContract) {
        this.rentalContract = rentalContract;
    }

    public List<FileStorageDO> getWaterElectricityFees() {
        return waterElectricityFees;
    }

    public void setWaterElectricityFees(List<FileStorageDO> waterElectricityFees) {
        this.waterElectricityFees = waterElectricityFees;
    }

    public List<FileStorageDO> getOfficeEnvironment() {
        return officeEnvironment;
    }

    public void setOfficeEnvironment(List<FileStorageDO> officeEnvironment) {
        this.officeEnvironment = officeEnvironment;
    }

    public List<FileStorageDO> getBusinessLicense() {
        return businessLicense;
    }

    public void setBusinessLicense(List<FileStorageDO> businessLicense) {
        this.businessLicense = businessLicense;
    }

    public List<FileStorageDO> getBasicAccountInformation() {
        return basicAccountInformation;
    }

    public void setBasicAccountInformation(List<FileStorageDO> basicAccountInformation) {
        this.basicAccountInformation = basicAccountInformation;
    }

    public List<FileStorageDO> getArticlesAssociation() {
        return articlesAssociation;
    }

    public void setArticlesAssociation(List<FileStorageDO> articlesAssociation) {
        this.articlesAssociation = articlesAssociation;
    }

    public List<FileStorageDO> getJudgment() {
        return judgment;
    }

    public void setJudgment(List<FileStorageDO> judgment) {
        this.judgment = judgment;
    }

    public List<FileStorageDO> getTaxReturn() {
        return taxReturn;
    }

    public void setTaxReturn(List<FileStorageDO> taxReturn) {
        this.taxReturn = taxReturn;
    }

    public List<FileStorageDO> getAccountingreport() {
        return accountingreport;
    }

    public void setAccountingreport(List<FileStorageDO> accountingreport) {
        this.accountingreport = accountingreport;
    }

    public Enterprise() {
    }

    public Enterprise(JSONObject jsonObject) {
        this.corporateName = jsonObject.getStr("Name");
        this.socialCreditCode = jsonObject.getStr("CreditCode");
        this.startSate = jsonObject.getDate("StartDate");
        this.legalRepresentative = jsonObject.getStr("OperName");
        this.address = jsonObject.getStr("Address");
    }

    public Integer getYearsDiff() {
        return yearsDiff;
    }

    public void setYearsDiff(Integer yearsDiff) {
        this.yearsDiff = yearsDiff;
    }

    public String getController() {
        return controller;
    }

    public void setController(String controller) {
        this.controller = controller;
    }

    public Long getcDongjiangaoRiskControllerId() {
        return cDongjiangaoRiskControllerId;
    }

    public void setcDongjiangaoRiskControllerId(Long cDongjiangaoRiskControllerId) {
        this.cDongjiangaoRiskControllerId = cDongjiangaoRiskControllerId;
    }

    public String getCertificateContractId() {
        return certificateContractId;
    }

    public void setCertificateContractId(String certificateContractId) {
        this.certificateContractId = certificateContractId;
    }

    public List<SeriousIllegality> getSeriousIllegalities() {
        return seriousIllegalities;
    }

    public void setSeriousIllegalities(List<SeriousIllegality> seriousIllegalities) {
        this.seriousIllegalities = seriousIllegalities;
    }

    public List<TaxOweNotice> getTaxOweNotices() {
        return taxOweNotices;
    }

    public void setTaxOweNotices(List<TaxOweNotice> taxOweNotices) {
        this.taxOweNotices = taxOweNotices;
    }

    public List<TaxIllegalData> getTaxIllegalData() {
        return taxIllegalData;
    }

    public void setTaxIllegalData(List<TaxIllegalData> taxIllegalData) {
        this.taxIllegalData = taxIllegalData;
    }

    public List<Blacklist> getBlacklists() {
        return blacklists;
    }

    public void setBlacklists(List<Blacklist> blacklists) {
        this.blacklists = blacklists;
    }

    public List<ExceptionData> getExceptionData() {
        return exceptionData;
    }

    public void setExceptionData(List<ExceptionData> exceptionData) {
        this.exceptionData = exceptionData;
    }

    public List<News> getNews() {
        return news;
    }

    public void setNews(List<News> news) {
        this.news = news;
    }

    public List<PrivateLending> getPrivateLendings() {
        return privateLendings;
    }

    public void setPrivateLendings(List<PrivateLending> privateLendings) {
        this.privateLendings = privateLendings;
    }

    public CorporateGoodwill getCorporateGoodwill() {
        return corporateGoodwill;
    }

    public void setCorporateGoodwill(CorporateGoodwill corporateGoodwill) {
        this.corporateGoodwill = corporateGoodwill;
    }

    public List<CreditSituation> getCreditSituations() {
        return creditSituations;
    }

    public void setCreditSituations(List<CreditSituation> creditSituations) {
        this.creditSituations = creditSituations;
    }

    public String getCorporateName() {
        return corporateName;
    }

    public void setCorporateName(String corporateName) {
        this.corporateName = corporateName;
    }

    public String getSocialCreditCode() {
        return socialCreditCode;
    }

    public void setSocialCreditCode(String socialCreditCode) {
        this.socialCreditCode = socialCreditCode;
    }

    public String getLegalRepresentative() {
        return legalRepresentative;
    }

    public void setLegalRepresentative(String legalRepresentative) {
        this.legalRepresentative = legalRepresentative;
    }

    public String getMajorShareholders() {
        return majorShareholders;
    }

    public void setMajorShareholders(String majorShareholders) {
        this.majorShareholders = majorShareholders;
    }

    public Date getStartSate() {
        return startSate;
    }

    public void setStartSate(Date startSate) {
        this.startSate = startSate;
    }

    public String getRegisteredCapital() {
        return registeredCapital;
    }

    public void setRegisteredCapital(String registeredCapital) {
        this.registeredCapital = registeredCapital;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getBusinessAddress() {
        return businessAddress;
    }

    public void setBusinessAddress(String businessAddress) {
        this.businessAddress = businessAddress;
    }

    public Long getcComprehensiveRiskInvestigationId() {
        return cComprehensiveRiskInvestigationId;
    }

    public void setcComprehensiveRiskInvestigationId(Long cComprehensiveRiskInvestigationId) {
        this.cComprehensiveRiskInvestigationId = cComprehensiveRiskInvestigationId;
    }

    public Long getcDongjiangaoRiskId() {
        return cDongjiangaoRiskId;
    }

    public void setcDongjiangaoRiskId(Long cDongjiangaoRiskId) {
        this.cDongjiangaoRiskId = cDongjiangaoRiskId;
    }

    public Long getcDongjiangaoRiskBigId() {
        return cDongjiangaoRiskBigId;
    }

    public void setcDongjiangaoRiskBigId(Long cDongjiangaoRiskBigId) {
        this.cDongjiangaoRiskBigId = cDongjiangaoRiskBigId;
    }

    public String getStatus() {
        return status;
    }

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

    public Boolean getAuthStatus() {
        return authStatus;
    }

    public void setAuthStatus(Boolean authStatus) {
        this.authStatus = authStatus;
    }

    public String getShortAuthUrl() {
        return shortAuthUrl;
    }

    public void setShortAuthUrl(String shortAuthUrl) {
        this.shortAuthUrl = shortAuthUrl;
    }

    public String getAuthUrl() {
        return authUrl;
    }

    public void setAuthUrl(String authUrl) {
        this.authUrl = authUrl;
    }

    public Integer getCertificateSignStatus() {
        return certificateSignStatus;
    }

    public void setCertificateSignStatus(Integer certificateSignStatus) {
        this.certificateSignStatus = certificateSignStatus;
    }

    public String getCertificateShortSignUrl() {
        return certificateShortSignUrl;
    }

    public void setCertificateShortSignUrl(String certificateShortSignUrl) {
        this.certificateShortSignUrl = certificateShortSignUrl;
    }

    public String getCertificateSignUrl() {
        return certificateSignUrl;
    }

    public void setCertificateSignUrl(String certificateSignUrl) {
        this.certificateSignUrl = certificateSignUrl;
    }

    public String getFddCustomerId() {
        return fddCustomerId;
    }

    public void setFddCustomerId(String fddCustomerId) {
        this.fddCustomerId = fddCustomerId;
    }

    public Integer getAutoSignStatus() {
        return autoSignStatus;
    }

    public void setAutoSignStatus(Integer autoSignStatus) {
        this.autoSignStatus = autoSignStatus;
    }

    public String getShortAutoSignUrl() {
        return shortAutoSignUrl;
    }

    public void setShortAutoSignUrl(String shortAutoSignUrl) {
        this.shortAutoSignUrl = shortAutoSignUrl;
    }

    public String getAutoSignUrl() {
        return autoSignUrl;
    }

    public void setAutoSignUrl(String autoSignUrl) {
        this.autoSignUrl = autoSignUrl;
    }
}
