package com.ruoyi.project.business.domain;

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

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 合同列表对象 tq_contract
 * 
 * @author ruoyi
 * @date 2024-08-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class TqContract extends BaseEntity
{
    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;




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



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



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

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

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

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

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

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

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

    /** *合同状态（履行中，已取消）关联字典 */
    @Excel(name = "合同状态",i18nCode = "contract.status", sort = 12)
    private String status;

    /** 签单月美元汇率 */
    @Excel(name = "签单月汇率",i18nCode = "contract.mUsdRate4SigningContracts", sort = 13)
    private BigDecimal rate4SigningContracts;


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

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

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

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

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

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

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

    /** 数据权限字符 */
    private String permissionChar;

    /** 删除标记（0：未删除  1：已删除） */
    private String delFlag;

    /** ID */
    private Long id;

    /** *区域 */
    private Long areaId;

    /** *国家 */
    private Long countryId;

    /** *业务员id */
    private Long salesman;

    /** *终端客户 */
    private Long endCustomers;

    /** *代理商 */
    private Long agentId;




//    /** 附件地址拼接字符串 */
//    @Transient
//    private String file;
//
//    /** 附件集合 */
//    @Transient
//    private List<TbFile> fileList;
//
//    private List<TqContractLift> tqContractLiftList;
//
//    private TqContractHistory tqContractHistory;


}
