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 TqContractLift extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 生产令号 */
    @Excel(name = "生产令号",i18nCode = "lift.productionOrderNo", sort = 1)
    private String productionOrderNo;

    /** 合同编号 */
    @Excel(name = "合同编号",i18nCode = "lift.contractNo", sort= 2)
    private String contractNo;

    /** 合同号-版本号 */
    @Excel(name = "合同号-版本号",i18nCode = "lift.contractNoVersionNo", sort= 3)
    private String contractNoVersionNo;

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

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

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



    /** *贸易条款 */
    @Excel(name = "贸易条款", dictType="contract_trade_terms",i18nCode = "lift.tradeTerms", sort= 12)
    private String tradeTerms;

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

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

    /** 产品类别 */
    @Excel(name = "产品类别",dictType = "product_category",i18nCode = "lift.productCategory", sort= 15)
    private String productCategory;

    /** 梯型 */
    @Excel(name = "梯型",i18nCode = "lift.elevatorModel", sort= 16)
    private String elevatorModel;

    /** 规格 */
    @Excel(name = "规格",i18nCode = "lift.specification", sort= 17)
    private String specification;

    /** 数量 */
    @Excel(name = "数量",i18nCode = "lift.count", sort= 18)
    private Long count;
    /** *币种（关联字典） */
    @Excel(name = "币种", dictType="currency_type",i18nCode = "lift.currencyId", sort= 19)
    private String currencyId;

    /** 单价 */
    @Excel(name = "单价",i18nCode = "lift.unitPrice", sort= 20)
    private BigDecimal unitPrice;

    /** 金额 */
    @Excel(name = "金额",i18nCode = "lift.amountOfMoney", sort= 21)
    private BigDecimal amountOfMoney;

    /** 报价折扣 */
    @Excel(name = "报价折扣",i18nCode = "lift.quotationDiscount", sort= 22)
    private String quotationDiscount;

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

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

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

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

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

    /** 项目取消暂停原因 */
    @Excel(name = "项目取消暂停原因",i18nCode = "lift.reasonForProjectCancellationAndSus", sort= 28)
    private String reasonForProjectCancellationAndSus;

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

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

    /** 港口 */
    @Excel(name = "港口",i18nCode = "lift.port", sort= 31)
    private String port;

    /** 生产订单状态 */
    @Excel(name = "生产订单状态",i18nCode = "lift.productionOrderStatus", dictType="production_order_status",sort= 32)
    private String productionOrderStatus;

    /** 评审折扣 */
    @Excel(name = "评审折扣",i18nCode = "lift.reviewDiscount", sort= 33)
    private String reviewDiscount;

    /** 评审运费 */
    @Excel(name = "评审运费",i18nCode = "lift.reviewShippingCosts", sort= 34)
    private BigDecimal reviewShippingCosts;

    /** 评审佣金 */
    @Excel(name = "评审佣金",i18nCode = "lift.reviewCommission", sort= 35)
    private BigDecimal reviewCommission;

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

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

    /** 收款银行 */
    @Excel(name = "收款银行",i18nCode = "lift.receivingBank", sort= 38)
    private String receivingBank;

    /** 已收金额 */
    @Excel(name = "已收金额",i18nCode = "lift.receivedAmount", sort= 39)
    private BigDecimal receivedAmount;

    /** 收款比例 */
    @Excel(name = "收款比例",i18nCode = "lift.paymentRatio", sort= 40,dictType = "payment_ratio")
    private String paymentRatio;

    /** 应收余额 */
    @Excel(name = "应收余额",i18nCode = "lift.accountsReceivableBalance", sort= 41)
    private BigDecimal accountsReceivableBalance;

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

    /** 实际内陆运费 */
    @Excel(name = "实际内陆运费",i18nCode = "lift.actualInlandFreightCost", sort= 43)
    private BigDecimal actualInlandFreightCost;

    /** 实际海运费 */
    @Excel(name = "实际海运费",i18nCode = "lift.actualOceanFreight", sort= 44)
    private BigDecimal actualOceanFreight;

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

    /** 报关月份 */
    @Excel(name = "报关月份",i18nCode = "lift.customsDeclarationMonth", sort= 46)
    private String customsDeclarationMonth;

    /** 后续收取运费 */
    @Excel(name = "后续收取运费",i18nCode = "lift.subsequentCollectionOfShippingFees", sort= 47)
    private BigDecimal subsequentCollectionOfShippingFees;

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

    /** 延期过期发货原因 */
    @Excel(name = "延期过期发货原因",i18nCode = "lift.reasonForDelayedOverdueShipment", sort= 49)
    private String reasonForDelayedOverdueShipment;

    /** 未排产原因 */
    @Excel(name = "未排产原因",i18nCode = "lift.reasonForNonScheduling", sort= 50)
    private String reasonForNonScheduling;

    /** 预计内陆运费 */
    @Excel(name = "预计内陆运费",i18nCode = "lift.planInlandFreightCost", sort= 51)
    private BigDecimal planInlandFreightCost;

    /** 预计海运费 */
    @Excel(name = "预计海运费",i18nCode = "lift.planOceanFreight", sort= 52)
    private BigDecimal planOceanFreight;

    /** 项目状态 */
    @Excel(name = "项目状态",dictType = "contract_project_status",i18nCode = "lift.projectStatus", sort= 53)
    private String projectStatus;

    /** 排产月汇率 */
    @Excel(name = "排产月汇率",i18nCode = "lift.mUsdRate4ProductionScheduling", sort= 54)
    private BigDecimal rate4ProductionScheduling;

    /** 发货月汇率 */
    @Excel(name = "发货月汇率",i18nCode = "lift.mUsdRate4Shipment", sort= 56)
    private BigDecimal rate4Shipment;

    /** 签单月汇率 */
    @Excel(name = "签单月汇率",i18nCode = "lift.mUsdRate4SigningContracts", sort= 58)
    private BigDecimal rate4SigningContracts;

    /** 电梯号 */
    @Excel(name = "电梯号",i18nCode = "lift.elevatorCode", sort= 60)
    private String elevatorCode;

    /** 来源 */
    @Excel(name = "来源",dictType = "contract_lift_origin",i18nCode = "lift.origin", sort= 61)
    private String origin;

    /** 设备类型 */
    @Excel(name = "设备类型",dictType = "elevator_type",i18nCode = "lift.elevatorType", sort= 62)
    private String elevatorType;

    /** 报价编号-版本 */
    @Excel(name = "报价编号-版本",i18nCode = "lift.quotationNoVersion", sort= 63)
    private String quotationNoVersion;

    /** 项目名称 */
    @Excel(name = "项目名称",i18nCode = "lift.projectName", sort= 64)
    private String projectName;

    /** 报价者 */
    @Excel(name = "报价者",i18nCode = "lift.quoter", sort= 65)
    private String quoter;

    /** 附加费用 */
    @Excel(name = "附加费用",i18nCode = "lift.additionalCost", sort= 66)
    private BigDecimal additionalCost;

    /** 其他费用 */
    @Excel(name = "其他费用",i18nCode = "lift.otherCost", sort= 67)
    private BigDecimal otherCost;

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

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

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

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

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

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

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

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




