package com.ruoyi.project.business.domain.vo.contract;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.project.business.domain.TbFile;
import com.ruoyi.project.business.domain.TqContract;
import com.ruoyi.project.business.domain.TqContractHistory;
import com.ruoyi.project.business.domain.TqContractLift;
import com.ruoyi.project.business.domain.flow.Flow;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Transient;

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

/**
 * 【请填写功能名称】对象 tq_contract
 * 
 * @author ruoyi
 * @date 2024-08-14
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class TqContractExportVo
{
    private static final long serialVersionUID = 1L;


    /** 合同编号(自动采番） */
    @Excel(name = "合同号",i18nCode = "contract.contractNo", sort = 1)
    private String contractNo;

    /** 合同名称 */
    @Excel(name = "合同名",i18nCode = "contract.contractName", sort = 2)
    private String contractName;

    /** *签单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签单日期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "contract.signingDate", sort = 3)
    private Date signingDate;

    /** *区域名称 */
    @Excel(name = "区域",i18nCode = "contract.areaName", sort = 4)
    private String areaName;

    /** *国家 */
    @Excel(name = "国家",i18nCode = "contract.countryName", sort = 5)
    private String countryName;

    /** *城市 */
    @Excel(name = "城市",i18nCode = "contract.city", sort = 6)
    private String city;

    /** 代理商 */
    @Excel(name = "代理商",i18nCode = "lift.agentName", sort = 7)
    private String agentName;

    /** *贸易条款(字典） */
    @Excel(name = "贸易条款" , dictType="contract_trade_terms",i18nCode = "contract.tradeTerms", sort = 8)
    private String tradeTerms;

    /** 付款方式（关联字典） */
    @Excel(name = "付款方式",dictType="contract_payment_method",i18nCode = "contract.paymentMethod", sort = 9)
    private String paymentMethod;

    /** 销售模式 */
    @Excel(name = "销售模式", dictType="contract_sales_model",i18nCode = "contract.salesModel", sort = 10)
    private String salesModel;

    /** 业务员 */
    @Excel(name = "业务员",i18nCode = "contract.salesmanName", sort = 11)
    private String salesmanName;

    /** *终端客户名称 */
    @Excel(name = "终端客户",i18nCode = "lift.endCustomersName", sort = 12)
    private String endCustomersName;

    /** *币种（关联字典） */
    @Excel(name = "币种", dictType="currency_type",i18nCode = "contract.currencyId", sort = 13)
    private String currencyId;

    /** 合同金额 */
    private BigDecimal amount;

    /** 合同金额 */
    @Excel(name = "合同金额",i18nCode = "contract.amount", sort = 14 )
    private String amountExport;

    /** *付款比例(暂定关联字典) */
    @Excel(name = "付款比例", dictType="contract_payment_ratio",i18nCode = "contract.paymentRatio", sort = 16)
    private String paymentRatio;

    /** *审批状态 */
    @Excel(name = "审批状态", dictType="contract_approval_status",i18nCode = "contract.approveStatus", sort = 17)
    private String approveStatus;


    /** 地址 */
    @Excel(name = "地址",i18nCode = "contract.address", sort = 18)
    private String address;

    /** 电话 */
    @Excel(name = "电话",i18nCode = "contract.telephone", sort = 19)
    private String telephone;

    /** 邮件 */
    @Excel(name = "邮件",i18nCode = "contract.email", sort = 20)
    private String email;

    /** 装船期限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "装船期限", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "contract.shipmentDeadline", sort = 21)
    private Date shipmentDeadline;

    /** 装船口岸 */
    @Excel(name = "装船口岸",i18nCode = "contract.shipmentPort", sort = 22)
    private String shipmentPort;

    /** 目的口岸 */
    @Excel(name = "目的口岸",i18nCode = "contract.destinationPort", sort = 23)
    private String destinationPort;

    /** 商标 */
    @Excel(name = "商标",i18nCode = "contract.shippingMark", sort = 24)
    private String shippingMark;


    /** *合同状态（履行中，已取消）关联字典 */
    private String status;

    /** 附件集合 */
    @Transient

    private  Long flowStatus;

    private Flow  flow;

    /** 单位 */
    private String unit;


}
