package com.ruoyi.project.business.domain.bo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import com.ruoyi.project.business.domain.TbFile;
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-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class TqContractBo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 合同编号(自动采番） */
    @Excel(name = "合同编号(自动采番）")
    private String contractNo;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** *区域 */
    @Excel(name = "*区域")
    private List<Long> areaId;

    /** *国家 */
    @Excel(name = "*国家")
    private List<Long> countryId;

    /** *城市 */
    @Excel(name = "*城市")
    private String city;

    /** *业务员id */
    @Excel(name = "*业务员id")
    private Long salesman;

    /** *终端客户 */
    @Excel(name = "*终端客户")
    private Long endCustomers;

    /** *贸易条款(字典） */
    @Excel(name = "*贸易条款(字典）")
    private List<String> tradeTerms;

    /** *代理商 */
    @Excel(name = "*代理商")
    private List<Long> agentId;

    /** 付款方式（关联字典） */
    @Excel(name = "付款方式", readConverterExp = "关=联字典")
    private String paymentMethod;

    /** 销售模式 */
    @Excel(name = "销售模式")
    private List<String> salesModel;

    /** *币种（关联字典） */
    @Excel(name = "*币种", readConverterExp = "关=联字典")
    private String currencyId;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal amount;

    /** *签单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "*签单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date[] signingDate;

    /** *付款比例(暂定关联字典) */
    @Excel(name = "*付款比例(暂定关联字典)")
    private String paymentRatio;

    /** *审批状态 */
    @Excel(name = "*审批状态")
    private List<String> approveStatus;

    /** 数据权限字符 */
    @Excel(name = "数据权限字符")
    private String permissionChar;

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

    /** *合同状态（履行中，已取消）关联字典 */
    @Excel(name = "*合同状态", readConverterExp = "履=行中，已取消")
    private List<String> status;

    /** 签单月汇率 */
    @Excel(name = "签单月汇率")
    private BigDecimal rate4SigningContracts;

    /** 地址 */
    @Excel(name = "地址")
    private String address;

    /** 电话 */
    @Excel(name = "电话")
    private String telephone;

    /** 邮件 */
    @Excel(name = "邮件")
    private String email;

    /** 商标 */
    @Excel(name = "商标")
    private String shippingMark;

    /** 装船口岸 */
    @Excel(name = "装船口岸")
    private String shipmentPort;

    /** 目的口岸 */
    @Excel(name = "目的口岸")
    private String destinationPort;

    /** 装船期限 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "装船期限", width = 30, dateFormat = "yyyy-MM-dd")
    private Date[] shipmentDeadline;

    private String nickName;

    private Long endCustomersName;

    private List<Long> flowStatus;



}
