package com.prolog.rdc.tms.model.dto.pay;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * 承运商台账导出
 * @author panhongbo
 * @since 2023-10-11 18:57
 */
@Data
public class BmsShipBillPayFeeExportDTO {

    @ExcelProperty(value = "运单号")
    private String shipbillNo;

    @ExcelProperty(value = "货主")
    private String cargoOwnerName;

    @ExcelProperty(value = "订单号")
    private String orderNo;

    @ExcelProperty(value = "结算公司")
    private String settlementCompany;

    @ExcelProperty(value = "结算状态")
    private String checkStatusName;

    @ExcelProperty(value = "结算部门")
    private String settlementDepartment;

    @ExcelProperty(value = "运费")
    private BigDecimal transportFee;

    @ExcelProperty(value = "配送费")
    private BigDecimal deliveryFee;

    @ExcelProperty(value = "保价费")
    private BigDecimal insuranceFee;

    @ExcelProperty(value = "支出总价")
    private BigDecimal payAmount;

    @ExcelProperty(value = "合同支出总价")
    private BigDecimal contractPayAmount;

    @ExcelProperty(value = "同步状态")
    private String synchronousStatusName;

    @ExcelProperty(value = "同步失败原因")
    private String synchronousFailReason;

    @ExcelProperty(value = "支出计费状态" )
    private String costStatusName;

    @ExcelProperty(value = "支出计费时间")
    private Date costDate;

    @ExcelProperty(value = "支出计费合同")
    private String costContract;

    @ExcelProperty(value = "支出计费单据")
    private String payFeeCltTypeName;

    @ExcelProperty(value = "支出计费失败原因")
    private String costFailReason;

    @ExcelProperty(value = "支出核算状态")
    private String settlementStatusName;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "支出核算时间")
    private Date settlementDate;

    @ExcelProperty(value = "运单状态")
    private String shipBillStatusName;

    @ExcelProperty(value = "异常状态")
    private String abnormalStatusName;

    @ExcelProperty(value = "承运商类型")
    private String carrierTypeName;

    @ExcelProperty(value = "调度单号")
    private String loadingBillNo;

    @ExcelProperty(value = "承运商名称")
    private String carrierName;

    @ExcelProperty(value = "司机名称")
    private String driverName;

    @ExcelProperty(value = "送货员姓名")
    private String deliveryName;

    @ExcelProperty(value = "车牌号")
    private String vehicleName;

    @ExcelProperty(value = "车型")
    private String vehicleTypeName;

    @ExcelProperty(value = "隶属机构")
    private String affiliationName;

    @ExcelProperty(value = "WMS单号")
    private String wmsOrderNo;

    @ExcelProperty(value = "订单类型")
    private String orderTypeName;

    @ExcelProperty(value = "业务类型")
    private String orderBusinessTypeName;

    @ExcelProperty(value = "配送方式")
    private String deliveryMethodTypeName;

    @ExcelProperty(value = "运输模式")
    private String transportTypeName;

    @ExcelProperty(value = "温度要求")
    private String temperatureRequirementName;

    @ExcelProperty(value = "备注")
    private String memo;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "下单时间")
    private Date orderDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "提交时间")
    private Date submitDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "审核时间")
    private Date auditDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "调度时间")
    private Date loadingDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "调度审核时间")
    private Date loadingAuditDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "启运日期")
    private Date startDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "送达日期")
    private Date deliveryDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "回单日期")
    private Date receiptDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "正本回单日期")
    private Date originalBackDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "完成日期")
    private Date completeDate;

    @ExcelProperty(value = "收货方类型")
    private String consigneeTypeName;

    @ExcelProperty(value = "收货方单位")
    private String consigneeUnitName;

    @ExcelProperty(value = "收货方")
    private String consigneeName;

    @ExcelProperty(value = "收货方目的地")
    private String consigneeProvinceCityDistrict;

    @ExcelProperty(value = "收货方联系人")
    private String consigneeContact;

    @ExcelProperty(value = "收货方手机号")
    private String consigneePhoneNumber;

    @ExcelProperty(value = "收货方座机号")
    private String consigneeLandlineNumber;

    @ExcelProperty(value = "收货方邮箱")
    private String consigneeEmail;

    @ExcelProperty(value = "收货方详细地址")
    private String consigneeAddress;

    @ExcelProperty(value = "收货方备注")
    private String consigneeMemo;

    @ExcelProperty(value = "发货方类型")
    private String shipperTypeName;

    @ExcelProperty(value = "发货方单位")
    private String shipperUnitName;

    @ExcelProperty(value = "发货方")
    private String shipperName;

    @ExcelProperty(value = "发货方始发地")
    private String shipperProvinceCityDistrict;

    @ExcelProperty(value = "发货方联系人")
    private String shipperContact;

    @ExcelProperty(value = "发货方手机号")
    private String shipperPhoneNumber;

    @ExcelProperty(value = "发货方座机号")
    private String shipperLandlineNumber;

    @ExcelProperty(value = "发货方邮箱")
    private String shipperEmail;

    @ExcelProperty(value = "发货方详细地址")
    private String shipperAddress;

    @ExcelProperty(value = "发货方备注")
    private String shipperMemo;

    @ExcelProperty(value = "支出件数")
    private BigDecimal totalPayPcs;

    @ExcelProperty(value = "支出体积")
    private BigDecimal totalPayVolume;

    @ExcelProperty(value = "支出重量")
    private BigDecimal totalPayWeight;

    @ExcelProperty(value = "整件数")
    private BigDecimal packageWholePiece;

    @ExcelProperty(value = "拼箱数")
    private BigDecimal packageLclPiece;

    @ExcelProperty(value = "包裹总重量")
    private BigDecimal packageTotalWeight;

    @ExcelProperty(value = "包裹总体积")
    private BigDecimal packageTotalVolume;

    @ExcelProperty(value = "来源")
    private String sourceName;

    @ExcelProperty(value = "导入批次号")
    private String importBatchNumber;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "创建时间")
    private Date createtime;

    @ExcelProperty(value = "创建人")
    private String createperson;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ExcelProperty(value = "修改时间")
    private Date updatetime;

    @ExcelProperty(value = "修改人")
    private String updateperson;

}