package com.sckw.transport.model.vo.execlVo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sckw.excel.annotation.ExcelContext;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * @author lfdc
 * @description 托运订单导出vo
 * @date 2023-07-24 13:07:40
 */
@Data
@ExcelContext(fileName = "托运订单列表", sheetName = "托运订单列表")
public class ConsignOrderExcelVo implements Serializable {

    /**
     * 状态
     */
    @ExcelProperty(value = "状态")
    private String statusLabel;

    /**
     * 托运订单号
     */
    @JsonProperty("lOrderNo")
    @ExcelProperty(value = "托运订单号")
    private String lOrderNo;

    /**
     * 托运单位
     */
    @ExcelProperty(value = "托运单位")
    private String consignCompany;

    /**
     * 承运单位
     */
    @ExcelProperty(value = "承运单位")
    private String carrierCompany;

    /**
     * 货物名称
     */
    @ExcelProperty(value = "货物名称")
    private String goodsName;

    /**
     * 任务总量
     */
    @ExcelProperty(value = "任务总量")
    private String carryingCapacity;

    /**
     * 待分配量(amount-subcontract_amount-entrust_amount)
     */
    @ExcelProperty(value = "待分配量")
    private String waitDistributionAmount;

    /**
     * 实装量
     */
    @ExcelProperty(value = "实装量")
    private String loadAmount;

    /**
     * 卸货量
     */
    @ExcelProperty(value = "卸货量")
    private String unloadAmount;

    /**
     * 运价
     */
    @ExcelProperty(value = "运价")
    private String priceLabel;

    /**
     * 装货地点名称
     */
    @ExcelProperty(value = "装货地点名称")
    private String loadName;

    /**
     * 地址明细
     */
    @ExcelProperty(value = "地址明细")
    private String loadAddress;

    /**
     * 卸货地点名称
     */
    @ExcelProperty(value = "卸货地点名称")
    private String unloadName;

    /**
     * 地址明细
     */
    @ExcelProperty(value = "地址明细")
    private String unloadAddress;

    /**
     * 订单来源翻译
     */
    @ExcelProperty(value = "订单来源")
    private String orderSourceLabel;

    /**
     * 发货单位
     */
    @ExcelProperty(value = "发货单位")
    private String shipmentsUnit;

    /**
     * 收货单位
     */
    @ExcelProperty(value = "收货单位")
    private String receiveGoodsUnit;

    /**
     * 计费方式
     */
    @ExcelProperty(value = "计费方式")
    private String billingModeLabel;

    /**
     * 合理损耗单位
     */
    @ExcelProperty(value = "合理损耗")
    private String lossUnitLabel;

    /**
     * 扣亏货值/元/吨
     */
    @ExcelProperty(value = "扣亏货值")
    private BigDecimal deficitAmount;

    /**
     * 结算周期
     */
    @ExcelProperty(value = "结算周期")
    private String accountsCycleLabel;

    /**
     * 承运联系人
     */
    @ExcelProperty(value = "承运联系人")
    private String carrierContacts;

    /**
     * 承运联系电话
     */
    @ExcelProperty(value = "承运联系电话")
    private String carrierPhone;

    /**
     * 托运联系人
     */
    @ExcelProperty(value = "托运联系人")
    private String consignContacts;

    /**
     * 托运联系电话
     */
    @ExcelProperty(value = "托运联系电话")
    private String consignPhone;

    /**
     * 发货联系人/装货联系人
     */
    @ExcelProperty(value = "装货联系人")
    private String shipmentsContacts;

    /**
     * 发货电话
     */
    @ExcelProperty(value = "联系电话")
    private String shipmentsPhone;

    /**
     * 收货联系人/卸货点联系人
     */
    @ExcelProperty(value = "卸货点联系人")
    private String receiveGoodsContacts;

    /**
     * 收货电话
     */
    @ExcelProperty(value = "收货电话")
    private String receiveGoodsPhone;

    /**
     * 计划发货时间/计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ExcelProperty(value = "计划开始时间")
    private LocalDate shipmentsDateTime;

    /**
     * 计划收货时间/计划结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @ExcelProperty(value = "计划收货时间")
    private LocalDate receiveGoodsDateTime;

    /**
     * 合同
     */
    @ExcelProperty(value = "合同")
    private String contract;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    private String appointor;

    @ExcelProperty(value = "创建时间")
    private String createTime;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

//    /**
//     *  贸易订单编号
//     */
//    @JsonProperty("tOrderNo")
//    @ExcelProperty(value = "贸易订单编号")
//    private String tOrderNo;
//
//    /**
//     * 签约方式
//     */
//    @ExcelProperty(value = "签约方式")
//    private String signingLabel;
//
//    @ExcelProperty(value = "修改时间")
//    private String updateTime;
//
//    /**
//     * 商品价值（扣亏货值）
//     */
//    @ExcelProperty(value = "扣亏货值")
//    private String goodsPriceLabel;
//
//    /**
//     * 分包量（给下游承运商分包的量）
//     */
//    @ExcelProperty(value = "分包量")
//    private String subcontractAmount;
//
//    /**
//     * 已委托量(自己承运,给下游司机分配的量)
//     */
//    @ExcelProperty(value = "已委托量")
//    private String entrustAmount;

//    /**
//     * 结算周期
//     */
//    @ExcelProperty(value = "结算周期")
//    private String accountsCycle;
//    /**
//     * 发起人
//     */
//    @ExcelProperty(value = "发起人")
//    private String appointor;
//    /**
//     * 计费方式
//     */
//    @ExcelProperty(value = "计费方式")
//    private String billingMode;
//    /**
//     * 承运单位
//     */
//    @ExcelProperty(value = "承运单位")
//    private String carrierCompany;
//    /**
//     * 承运联系人
//     */
//    @ExcelProperty(value = "承运联系人")
//    private String carrierContacts;
//    /**
//     * 承运订单
//     */
//    @ExcelProperty(value = "承运订单")
//    private String carrierOrder;
//    /**
//     * 承运联系电话
//     */
//    @ExcelProperty(value = "承运联系电话")
//    private String carrierPhone;
//    /**
//     * 分配承运量
//     */
//    @ExcelProperty(value = "分配承运量")
//    private String carryingCapacity;
//    /**
//     * 托运单位
//     */
//    @ExcelProperty(value = "托运单位")
//    private String consignCompany;
//    /**
//     * 托运联系人
//     */
//    @ExcelProperty(value = "托运联系人")
//    private String consignContacts;
//    /**
//     * 托运联系电话
//     */
//    @ExcelProperty(value = "托运联系电话")
//    private String consignPhone;
//    /**
//     * 合同
//     */
//    @ExcelProperty(value = "合同")
//    private String contract;
//    /**
//     * 扣亏货值/元/吨
//     */
//    @ExcelProperty(value = "扣亏货值/元/吨")
//    private String deficitAmount;
//    /**
//     * 货物名称
//     */
//    @ExcelProperty(value = "货物名称")
//    private String goodsName;
//    /**
//     * 装货地点
//     */
//    @ExcelProperty(value = "装货地点")
//    private String loadAddress;
//    /**
//     * 数据库id
//     */
//    private String lOrderId;
//    /**
//     * 托运订单号
//     */
//    @ExcelProperty(value = "托运订单号")
//    private String lOrderNo;
//    /**
//     * 合理损耗
//     */
//    @ExcelProperty(value = "合理损耗")
//    private String loss;
//    /**
//     * 计划时间
//     */
//    @ExcelProperty(value = "计划时间")
//    private String plannedDateTime;
//    /**
//     * 运价
//     */
//    @ExcelProperty(value = "运价")
//    private String price;
//    /**
//     * 收货联系人
//     */
//    @ExcelProperty(value = "收货联系人")
//    private String receiveGoodsContacts;
//    /**
//     * 计划收货时间
//     */
//    @ExcelProperty(value = "计划收货时间")
//    private String receiveGoodsDateTime;
//    /**
//     * 收货电话
//     */
//    @ExcelProperty(value = "收货电话")
//    private String receiveGoodsPhone;
//    /**
//     * 备注
//     */
//    @ExcelProperty(value = "备注")
//    private String remark;
//    /**
//     * 发货联系人
//     */
//    @ExcelProperty(value = "发货联系人")
//    private String shipmentsContacts;
//    /**
//     * 计划发货时间
//     */
//    @ExcelProperty(value = "计划发货时间")
//    private String shipmentsDateTime;
//    /**
//     * 发货电话
//     */
//    @ExcelProperty(value = "发货电话")
//    private String shipmentsPhone;
//    /**
//     * 签约方式
//     */
//    @ExcelProperty(value = "签约方式")
//    private String signing;
//    /**
//     * 状态
//     */
//    @ExcelProperty(value = "状态")
//    private String status;
//    /**
//     * 卸货地点
//     */
//    @ExcelProperty(value = "卸货地点")
//    private String unloadAddress;
//    /**
//     * 关联承运订单号
//     */
//    @ExcelProperty(value = "关联承运订单号")
//    private String wOrderNo;
//    /**
//     * 创建时间
//     */
//    @ExcelProperty(value = "创建时间")
//    private String createTime;
//    /**
//     * 修改时间
//     */
//    @ExcelProperty(value = "修改时间")
//    private String updateTime;

}
