package com.ruoyi.project.business.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

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

/**
 * 【请填写功能名称】对象 tq_contract_lift
 * 
 * @author ruoyi
 * @date 2024-08-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
@AllArgsConstructor
public class TqContractLiftHistory 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 Long areaId;

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

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

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

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

    /** *贸易条款 */
    @Excel(name = "*贸易条款")
    private String tradeTerms;

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

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

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

    /** 金额 */
    @Excel(name = "金额")
    private BigDecimal amountOfMoney;

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

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

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

    /** 生产令号 */
    @Excel(name = "生产令号")
    private String productionOrderNo;

    /** 合同号-版本号 */
    @Excel(name = "合同号-版本号")
    private String contractNoVersionNo;

    /** 业务员 */
    @Excel(name = "业务员")
    private String salesModel;

    /** 合同更改日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同更改日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractAmendmentDate;

    /** 产品类别 */
    @Excel(name = "产品类别")
    private String productCategory;

    /** 梯型 */
    @Excel(name = "梯型")
    private String elevatorModel;

    /** 规格 */
    @Excel(name = "规格")
    private String specification;

    /** 数量 */
    @Excel(name = "数量")
    private Long count;


    /** 单价 */
    @Excel(name = "单价")
    private BigDecimal unitPrice;

    /** 报价折扣 */
    @Excel(name = "报价折扣")
    private String quotationDiscount;

    /** 预计排产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计排产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedProductionScheduleDate;

    /** 希望排产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "希望排产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date hopeToScheduleProductionDate;

    /** 实际排产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际排产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualProductionScheduleDate;

    /** 排产日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "排产日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date productionScheduleDate;

    /** 项目取消暂停原因 */
    @Excel(name = "项目取消暂停原因")
    private String reasonForProjectCancellationAndSus;

    /** 延期过期发货原因 */
    @Excel(name = "延期过期发货原因")
    private String reasonForDelayedOverdueShipment;

    /** 未排产原因 */
    @Excel(name = "未排产原因")
    private String reasonForNonScheduling;

    /** 希望发货日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "希望发货日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date hopeForDeliveryDate;

    /** 实际发货日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际发货日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualDeliveryDate;

    /** 港口 */
    @Excel(name = "港口")
    private String port;

    /** 生产订单状态 */
    @Excel(name = "生产订单状态")
    private String productionOrderStatus;

    /** 评审折扣 */
    @Excel(name = "评审折扣")
    private String reviewDiscount;

    /** 评审运费 */
    @Excel(name = "评审运费")
    private BigDecimal reviewShippingCosts;

    /** 评审佣金 */
    @Excel(name = "评审佣金")
    private BigDecimal reviewCommission;

    /** 佣金付款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "佣金付款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date commissionPaymentDate;

    /** 收款日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收款日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payoutDate;

    /** 收款银行 */
    @Excel(name = "收款银行")
    private String receivingBank;

    /** 已收金额 */
    @Excel(name = "已收金额")
    private BigDecimal receivedAmount;

    /** 收款比例 */
    @Excel(name = "收款比例")
    private String paymentRatio;

    /** 应收余额 */
    @Excel(name = "应收余额")
    private BigDecimal accountsReceivableBalance;

    /** 计划调整日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划调整日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planAdjustmentDate;

    /** 实际内陆运费 */
    @Excel(name = "实际内陆运费")
    private BigDecimal actualInlandFreightCost;

    /** 实际海运费 */
    @Excel(name = "实际海运费")
    private BigDecimal actualOceanFreight;

    /** 开票日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date invoiceDate;

    /** 报关月份 */
    @Excel(name = "报关月份")
    private String customsDeclarationMonth;

    /** 后续收取运费 */
    @Excel(name = "后续收取运费")
    private BigDecimal subsequentCollectionOfShippingFees;

    /** 收取日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "收取日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date collectionDate;

    /** 预计内陆运费 */
    @Excel(name = "预计内陆运费")
    private BigDecimal planInlandFreightCost;

    /** 预计海运费 */
    @Excel(name = "预计海运费")
    private BigDecimal planOceanFreight;

    /** 项目状态 */
    @Excel(name = "项目状态")
    private String projectStatus;

    /** 排产月汇率 */
    @Excel(name = "排产月汇率")
    private BigDecimal rate4ProductionScheduling;

    /** 发货月汇率 */
    @Excel(name = "发货月汇率")
    private BigDecimal rate4Shipment;

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


    /** 电梯号 */
    @Excel(name = "电梯号")
    private String elevatorCode;

    /** 来源 */
    @Excel(name = "来源")
    private String origin;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String elevatorType;

    /** 报价编号-版本 */
    @Excel(name = "报价编号-版本")
    private String quotationNoVersion;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String projectName;

    /** 报价者 */
    @Excel(name = "报价者")
    private String quoter;

    /** 附加费用 */
    @Excel(name = "附加费用")
    private BigDecimal additionalCost;

    /** 附加费用 */
    @Excel(name = "附加费用")
    private BigDecimal otherCost;

    @Excel
    private Long version;

    /** 电梯总价 */
    private BigDecimal liftAmount;

}
