package com.sunxung.factoring.entity.acceptance;


import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sunxung.factoring.entity.BaseEntity;
import com.sunxung.factoring.entity.customerinformation.Customer;
import com.sunxung.factoring.entity.entprise.Enterprise;
import com.sunxung.factoring.entity.project.ProjectInformation;
import com.sunxung.factoring.entity.sys.FileStorage;
import com.sunxung.factoring.entity.sys.FileStorageDO;
import com.sunxung.factoring.entity.tradingPlatform.Platform;

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

/**
 * 验收单基本信息
 *
 * @author liutao
 * @date 2021.9.10
 */
@TableName("c_acceptance_basic_info_his")
public class AcceptanceHisInfo extends BaseEntity {


    @TableField("business_number")
    private String  businessNumber;
    /**
     * 验收单号
     */
    @TableField("acceptance_number")
    private String acceptanceNumber;
    /**
     * 供应商Id
     */
    @NotNull(message = "请选择供应商")
    @TableField("c_supplier_info_id")
    private Long cSupplierInfoId;
    /**
     * 核心企业Id
     */
    @NotNull(message = "请选择核心企业")
    @TableField("c_project_core_enterprise_id")
    private Long cProjectCoreEnterpriseId;
    /**
     * 贸易平台Id
     */
    @NotNull(message = "请选择贸易平台")
    @TableField("trading_platform_id")
    private Long tradingPlatformId;
    /**
     * 预计结算日期
     */
    @NotNull(message = "请输入预估结算日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @TableField("expected_settlement_date")
    private Date expectedSettlementDate;
    /**
     * 验收经办人（供应商）
     */
    @TableField("check_operator_supplier")
    private String checkOperatorSupplier;
    /**
     * 验收经办人（核心企业）
     */
    @TableField("check_operator_enterprise")
    private String checkOperatorEnterprise;
    /**
     * 状态:
     */
    @TableField("acceptance_status")
    private String acceptanceStatus;
    /**
     * 是否已结算，0:未结算 1:已结算  （注：结算未审核完成统一视为未结算）
     */
    @TableField("is_settlement")
    private Boolean settlement;
    /**
     * 是否做底层，0:未做底层 1:已做底层
     */
    @TableField("is_receivables")
    private Boolean receivables;
    /**
     * 补充说明信息
     */
    @TableField("additional_remarks")
    private String additionalRemarks;


    @TableField("specification")
    private String specification;
//    /**
//     * 业务名称
//     */
//    @TableField("business_name")
//    private String businessName;
    /**
     * 核心企业经办人是否变更 0 否 1 是
     */
//    @TableField("change_person")
//    private Integer changePerson;
    /**
     * 是否签署确认 0否 1是
     */
    @TableField("sign_confirm")
    private Integer signConfirm;
    /**
     * 验收单签署人Id
     */
    @TableField("signer")
    private Long signer;
    /**
     * 1是 0否  是否为刚小二
     */
    @TableField("steel_waiter")
    private Integer steelWaiter;
    /**
     * 申请审核，0:不申请 1:申请
     */
    @TableField("is_approval")
    private Integer approval;

    /**
     * 货物信息
     */
    @TableField(exist = false)
    private List<AcceptanceHisGoodsInfo> acceptanceBusinessGoods;
    /**
     * 验收文件（下游）
     */
    @TableField(exist = false)
    private List<FileStorageDO> fileStorage;
    /**
     *补充说明
     */
    @TableField(exist = false)
    private List<FileStorageDO> supplementFiles;

    /**
     * 上游验收单
     */
    @TableField(exist = false)
    private List<FileStorageDO> upstreamFiles;

    /**
     * 说明信息
     */
    @TableField(exist = false)
    private String supplement;
    /**
     * 供应商
     */
    @TableField(exist = false)
    private Enterprise supplier;
    /**
     * 核心企业
     */
    @TableField(exist = false)
    private Enterprise customer;
    /**
     * 贸易平台
     */
    @TableField(exist = false)
    private Platform platform;

    /**
     * 业务信息
     */
    @TableField(exist = false)
    private ProjectInformation businessBasicInfo;

    /**
     * 人员信息
     */
    @TableField(exist = false)
    private List<AcceptancePersonInfoHistory> acceptancePersonInfoHistories;

    /**
     * 销售单号
     */
    @TableField(exist = false)
    private List<String> SellBillNumber;

    public AcceptanceHisInfo() {
    }

    public String getAcceptanceNumber() {
        return acceptanceNumber;
    }

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

    public Long getTradingPlatformId() {
        return tradingPlatformId;
    }

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

    public Date getExpectedSettlementDate() {
        return expectedSettlementDate;
    }

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

    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 List<FileStorageDO> getUpstreamFiles() {
        return upstreamFiles;
    }

    public void setUpstreamFiles(
        List<FileStorageDO> upstreamFiles) {
        this.upstreamFiles = upstreamFiles;
    }

    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 String getAdditionalRemarks() {
        return additionalRemarks;
    }

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

//    public String getBusinessName() {
//        return businessName;
//    }
//
//    public void setBusinessName(String businessName) {
//        this.businessName = businessName;
//    }

    public Integer getSignConfirm() {
        return signConfirm;
    }

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

    public Long getSigner() {
        return signer;
    }

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

    public Integer getSteelWaiter() {
        return steelWaiter;
    }

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

    public List<AcceptanceHisGoodsInfo> getAcceptanceBusinessGoods() {
        return acceptanceBusinessGoods;
    }

    public void setAcceptanceBusinessGoods(List<AcceptanceHisGoodsInfo> acceptanceBusinessGoods) {
        this.acceptanceBusinessGoods = acceptanceBusinessGoods;
    }

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

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

    public List<FileStorageDO> getSupplementFiles() {
        return supplementFiles;
    }

    public void setSupplementFiles(List<FileStorageDO> supplementFiles) {
        this.supplementFiles = supplementFiles;
    }

    public String getSupplement() {
        return supplement;
    }

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

    public Enterprise getSupplier() {
        return supplier;
    }

    public void setSupplier(Enterprise supplier) {
        this.supplier = supplier;
    }

    public Enterprise getCustomer() {
        return customer;
    }

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

    public Platform getPlatform() {
        return platform;
    }

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

    public ProjectInformation getBusinessBasicInfo() {
        return businessBasicInfo;
    }

    public void setBusinessBasicInfo(ProjectInformation businessBasicInfo) {
        this.businessBasicInfo = businessBasicInfo;
    }

    public List<AcceptancePersonInfoHistory> getAcceptancePersonInfoHistories() {
        return acceptancePersonInfoHistories;
    }

    public void setAcceptancePersonInfoHistories(List<AcceptancePersonInfoHistory> acceptancePersonInfoHistories) {
        this.acceptancePersonInfoHistories = acceptancePersonInfoHistories;
    }

    public Long getcSupplierInfoId() {
        return cSupplierInfoId;
    }

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

    public Long getcProjectCoreEnterpriseId() {
        return cProjectCoreEnterpriseId;
    }

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

    public String getAcceptanceStatus() {
        return acceptanceStatus;
    }

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

    public String getBusinessNumber() {
        return businessNumber;
    }

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

    public String getSpecification() {
        return specification;
    }

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

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

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

    public Integer getApproval() {
        return approval;
    }

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