package com.sunxung.factoring.entity.financing.apply;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.entprise.Enterprise;
import com.sunxung.factoring.entity.tradingPlatform.Platform;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 下游验收单-基础信息表
 * </p>
 *
 * @author yafan
 * @since 2023-11-30
 */
@TableName("c_acceptance_basic_info")
public class CAcceptanceBasicInfo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 项目Id
     */
    @NotNull(message = "业务编号不能为空！")
    @TableField("business_number")
    private String businessNumber;

    /**
     * 贸易平台Id
     */
    @TableField("trading_platform_id")
    private Long tradingPlatformId;

    /**
     * 核心企业Id
     */
    @TableField("c_project_core_enterprise_id")
    private Long cProjectCoreEnterpriseId;

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

    /**
     * 验收单号
     */
    @TableField("acceptance_number")
    private String acceptanceNumber;

    /**
     * 预计结算日期
     */
    @NotNull(message = "请输入预估结算日期")
    @TableField("expected_settlement_date")
    private Date expectedSettlementDate;

    /**
     * 是否签署确认 0否 1是
     */
    @NotNull(message = "否签署确认不能为空")
    @TableField("sign_confirm")
    private Integer signConfirm;

    /**
     * 特别说明
     */
    @TableField("specification")
    private String specification;

    /**
     * 验收经办人（供应商）
     */
    @NotNull(message = "验收经办人（供应商）不能为空！")
    @TableField("check_operator_supplier")
    private String checkOperatorSupplier;

    /**
     * 验收经办人（核心企业）
     */
    @NotNull(message = "验收经办人（核心企业）不能为空！")
    @TableField("check_operator_enterprise")
    private String checkOperatorEnterprise;

    /**
     * 验收经办人（供应商）联系方式
     */
    @TableField("check_operator_supplier_contact")
    private String checkOperatorSupplierContact;

    /**
     * 验收经办人（核心企业）联系方式
     */
    @TableField("check_operator_enterprise_contact")
    private String checkOperatorEnterpriseContact;

    /**
     * 1是 0否  是否为刚小二
     */
    @NotNull(message = "是否为刚小二不能为空！")
    @TableField("steel_waiter")
    private Integer steelWaiter;

    /**
     * 状态
     */
    @TableField("acceptance_status")
    private String acceptanceStatus;

    /**
     * 当前阶段
     */
    @TableField("stage")
    private String stage;

    /**
     * 补充说明信息
     */
    @TableField("additional_remarks")
    private String additionalRemarks;

    /**
     * 是否已结算，0:未结算 1:已结算  （注：结算未审核完成统一视为未结算）
     */
    @TableField("is_settlement")
    private Boolean settlement;

    /**
     * 是否做底层，0:未做底层 1:已做底层
     */
    @TableField("is_receivables")
    private Boolean receivables;

    /**
     * 申请审核，0:不申请 1:申请
     */
    @TableField("is_approval")
    private Integer approval;

    /**
     * 验收单签署人Id
     */
    @TableField("signer")
    private Long signer;

    /**
     * 客户Id
     */
    @TableField("sys_user_id")
    private Long sysUserId;

    /**
     * 业务相关货物信息
     */
    @TableField(exist = false)
    private List<CAcceptanceGoodsInfo> acceptanceGoodInfos;


    /**
     * 验收单附件
     */
    @TableField(exist = false)
    private List<Long> fileStorageIds;
    /**
     * 补充说明附件
     */
    @TableField(exist = false)
    private List<Long> supplementFileIds;
    /**
     * 补充说明
     */
    @TableField(exist = false)
    private String supplement;


    /**
     * 核心企业名称
     **/
    @TableField(exist = false)
    private Enterprise coreEnterprise;

    /**
     * 主企业（供应商）名称
     **/
    @TableField(exist = false)
    private Enterprise mainEnterprise;
    /**
     * 贸易平台
     */
    @TableField(exist = false)
    private Platform platform;

    /**
     * 项目名称
     */
    @TableField(exist = false)
    private String projectName;

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

    /**
     * 钢小二销售单号
     */
    @TableField(exist = false)
    private List<String> sellBillNumber;

    /**
     * 验收单货物编号
     */
    @TableField(exist = false)
    private String acceptanceGoodsNumber;

    public String getBusinessNumber() {
        return businessNumber;
    }

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

    public Long getTradingPlatformId() {
        return tradingPlatformId;
    }

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

    public Long getcProjectCoreEnterpriseId() {
        return cProjectCoreEnterpriseId;
    }

    public void setcProjectCoreEnterpriseId(Long cProjectCoreEnterpriseId) {
        this.cProjectCoreEnterpriseId = cProjectCoreEnterpriseId;
    }

    public Long getcSupplierInfoId() {
        return cSupplierInfoId;
    }

    public void setcSupplierInfoId(Long cSupplierInfoId) {
        this.cSupplierInfoId = cSupplierInfoId;
    }

    public String getAcceptanceNumber() {
        return acceptanceNumber;
    }

    public void setAcceptanceNumber(String acceptanceNumber) {
        this.acceptanceNumber = acceptanceNumber;
    }

    public Date getExpectedSettlementDate() {
        return expectedSettlementDate;
    }

    public void setExpectedSettlementDate(Date expectedSettlementDate) {
        this.expectedSettlementDate = expectedSettlementDate;
    }

    public Integer getSignConfirm() {
        return signConfirm;
    }

    public void setSignConfirm(Integer signConfirm) {
        this.signConfirm = signConfirm;
    }

    public String getSpecification() {
        return specification;
    }

    public void setSpecification(String specification) {
        this.specification = specification;
    }

    public String getCheckOperatorSupplier() {
        return checkOperatorSupplier;
    }

    public void setCheckOperatorSupplier(String checkOperatorSupplier) {
        this.checkOperatorSupplier = checkOperatorSupplier;
    }

    public String getCheckOperatorEnterprise() {
        return checkOperatorEnterprise;
    }

    public void setCheckOperatorEnterprise(String checkOperatorEnterprise) {
        this.checkOperatorEnterprise = checkOperatorEnterprise;
    }

    public String getCheckOperatorSupplierContact() {
        return checkOperatorSupplierContact;
    }

    public void setCheckOperatorSupplierContact(String checkOperatorSupplierContact) {
        this.checkOperatorSupplierContact = checkOperatorSupplierContact;
    }

    public String getCheckOperatorEnterpriseContact() {
        return checkOperatorEnterpriseContact;
    }

    public void setCheckOperatorEnterpriseContact(String checkOperatorEnterpriseContact) {
        this.checkOperatorEnterpriseContact = checkOperatorEnterpriseContact;
    }

    public Integer getSteelWaiter() {
        return steelWaiter;
    }

    public void setSteelWaiter(Integer steelWaiter) {
        this.steelWaiter = steelWaiter;
    }

    public String getAcceptanceStatus() {
        return acceptanceStatus;
    }

    public void setAcceptanceStatus(String acceptanceStatus) {
        this.acceptanceStatus = acceptanceStatus;
    }

    public String getStage() {
        return stage;
    }

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

    public String getAdditionalRemarks() {
        return additionalRemarks;
    }

    public void setAdditionalRemarks(String additionalRemarks) {
        this.additionalRemarks = additionalRemarks;
    }

    public Boolean getSettlement() {
        return settlement;
    }

    public void setSettlement(Boolean settlement) {
        this.settlement = settlement;
    }

    public Boolean getReceivables() {
        return receivables;
    }

    public void setReceivables(Boolean receivables) {
        this.receivables = receivables;
    }

    public Integer getApproval() {
        return approval;
    }

    public void setApproval(Integer approval) {
        this.approval = approval;
    }

    public Long getSigner() {
        return signer;
    }

    public void setSigner(Long signer) {
        this.signer = signer;
    }

    public Long getSysUserId() {
        return sysUserId;
    }

    public void setSysUserId(Long sysUserId) {
        this.sysUserId = sysUserId;
    }

    public List<CAcceptanceGoodsInfo> getAcceptanceGoodInfos() {
        return acceptanceGoodInfos;
    }

    public void setAcceptanceGoodInfos(List<CAcceptanceGoodsInfo> acceptanceGoodInfos) {
        this.acceptanceGoodInfos = acceptanceGoodInfos;
    }

    public List<Long> getFileStorageIds() {
        return fileStorageIds;
    }

    public void setFileStorageIds(List<Long> fileStorageIds) {
        this.fileStorageIds = fileStorageIds;
    }

    public List<Long> getSupplementFileIds() {
        return supplementFileIds;
    }

    public void setSupplementFileIds(List<Long> supplementFileIds) {
        this.supplementFileIds = supplementFileIds;
    }

    public String getSupplement() {
        return supplement;
    }

    public void setSupplement(String supplement) {
        this.supplement = supplement;
    }

    public Enterprise getCoreEnterprise() {
        return coreEnterprise;
    }

    public void setCoreEnterprise(Enterprise coreEnterprise) {
        this.coreEnterprise = coreEnterprise;
    }

    public Enterprise getMainEnterprise() {
        return mainEnterprise;
    }

    public void setMainEnterprise(Enterprise mainEnterprise) {
        this.mainEnterprise = mainEnterprise;
    }

    public Platform getPlatform() {
        return platform;
    }

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

    public String getProjectName() {
        return projectName;
    }

    public void setProjectName(String projectName) {
        this.projectName = projectName;
    }

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

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

    public List<Long> getDeleteSupplementIds() {
        return deleteSupplementIds;
    }

    public void setDeleteSupplementIds(List<Long> deleteSupplementIds) {
        this.deleteSupplementIds = deleteSupplementIds;
    }

    public List<String> getSellBillNumber() {
        return sellBillNumber;
    }

    public void setSellBillNumber(List<String> sellBillNumber) {
        this.sellBillNumber = sellBillNumber;
    }

    public String getAcceptanceGoodsNumber() {
        return acceptanceGoodsNumber;
    }

    public void setAcceptanceGoodsNumber(String acceptanceGoodsNumber) {
        this.acceptanceGoodsNumber = acceptanceGoodsNumber;
    }
}
