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.TqContractLift;
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
@NoArgsConstructor
@AllArgsConstructor
public class TqContractLiftExportVo
{

    /** *签单日期1 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "签单日期", width = 30, dateFormat = "yyyy-MM-dd",i18nCode = "lift.signingDate", sort= 5)
    private Date signingDate;
    /** 合同号 2*/
    @Excel(name = "合同号",i18nCode = "lift.contractNo", sort= 2)
    private String contractNo;
    /** 合同号-版本号 3*/
    @Excel(name = "合同号-版本号",i18nCode = "lift.contractNoVersionNo", sort= 3)
    private String contractNoVersionNo;

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

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

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

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

    // 业务员名称8
    @Excel(name = "业务员",i18nCode = "lift.salesmanName", sort = 8)
    private String salesmanName;


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

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

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

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

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

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

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

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

    /** 数量 17*/
    @Excel(name = "数量",i18nCode = "lift.count", sort= 17)
    private Long count;


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

    /** 单价 18*/
    @Excel(name = "单价",i18nCode = "lift.unitPrice", sort= 18)
    private String unitPriceExport;



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

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

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

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

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

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

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

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

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

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

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

    /** 项目状态 31*/
    @Excel(name = "项目状态",i18nCode = "lift.productionOrderStatus", dictType="production_order_status",sort= 31)
    private String productionOrderStatus;

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

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

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

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

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

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


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

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

    /** 金额 39*/
    @Excel(name = "金额",i18nCode = "lift.amountOfMoney", sort= 39)
    private String amountOfMoneyExport;

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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


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


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

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

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

    /** 报关月份 57*/
    @Excel(name = "报关月份", width = 30, dateFormat = "yyyy-MM",i18nCode = "lift.customsDeclarationMonth", sort= 57)
    private Date customsDeclarationMonth;

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

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

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

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


    @Excel(name = "备注", i18nCode = "common.remark", headNeedMerge = true, sort = Integer.MAX_VALUE - 10)
    private String remark;


    /** 后续收取运费 */
//    @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 = "项目状态",dictType = "contract_project_status",i18nCode = "lift.projectStatus", sort= 53)
    private String projectStatus;

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

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

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

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

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

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

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

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

    private String type;

    private String elevatorTypeName;

    /** *报价者 */
    private String quoterName;
    /** *单位 */
    private String unit;

    /** ID */
    private Long id;
}
