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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * @author lfdc
 * @description 对账页面需要数据vo
 * @date 2023-07-21 17:07:15
 */
@Data
public class LogisticsOrderVO implements Serializable {

    /**
     * 物流订单id
     */
    @JsonProperty("lOrderId")
    private String lOrderId;

    /**
     * 物流订单编号
     */
    @JsonProperty("lOrderNO")
    private String lOrderNO;

    /**
     * 销售订单id
     */
    @JsonProperty("tOrderId")
    private String tOrderId;

    /**
     * 销售订单编号
     */
    @JsonProperty("tOrderNO")
    private String tOrderNO;

    /**
     * 付款方式
     */
    private String payment;

    /**
     * 运输趟次
     */
    private Long count;

    /**
     * 计费方式
     */
    private String billingMode;

    /**
     * 计费方式label
     */
    private String billingModeLabel;

    /**
     * 合同
     */
    private String contractId;

    /**
     * 合同编号
     */
    private String contractNo;

    /**
     * 合同名称
     */
    private String contractName;

    /**
     * 承运单位
     */
    private String carrierCompany;

    /**
     * 承运单位联系电话
     */
    private String carrierPhone;

    /**
     * 承运单位联系人
     */
    private String carrierContacts;

    /**
     * 托运单位
     */
    private String consignCompany;

    /**
     * 托运联系人
     */
    private String consignContacts;

    /**
     * 托运联系电话
     */
    private String consignPhone;

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 计划量
     */
    private BigDecimal amount;

    /**
     * 计划量Label
     */
    private String amountLabel;

    /**
     * 待分配量
     */
    private BigDecimal ignoreAmount;

    /**
     * 待分配量Label
     */
    private String ignoreAmountLabel;

    /**
     * 实际卸货量
     */
    private BigDecimal unloadAmount;

    /**
     * 实际装货量
     */
    private BigDecimal loadAmount;

    /**
     * 运价
     */
    private BigDecimal price;

    private String priceType;

    private List<String> prices;
    /**
     * 运价方式
     */
    private String priceLabel;

    /**
     * 装货地点名称
     */
    private String loadName;

    /**
     * 装货地址明细
     */
    private String loadAddress;

    /**
     * 装货联系人姓名
     */
    private String loadContacts;

    /**
     * 装货联系电话
     */
    private String loadPhone;

    /**
     * 卸货地点名称
     */
    private String unloadName;

    /**
     * 卸货地址明细
     */
    private String unloadAddress;

    /**
     * 卸货联系人姓名
     */
    private String unloadContacts;

    /**
     * 卸货联系电话
     */
    private String unloadPhone;

    /**
     * 发货单位
     */
    private String shipmentsUnitId;

    /**
     * 发货单位
     */
    private String shipmentsUnit;

    /**
     * 收货单位
     */
    private String receiveGoodsUnitId;

    /**
     * 收货单位
     */
    private String receiveGoodsUnit;

    /**
     * 合理损耗
     */
    private BigDecimal loss;

    /**
     * 合理损耗单位
     */
    private String lossUnit;

    /**
     * 合理损耗label
     */
    private String lossUnitLabel;

    /**
     * 扣亏损值
     */
    private BigDecimal goodsPrice;

    /**
     * 扣亏值单位
     */
    private String goodsPriceUnit;

    /**
     * 扣亏值单位label
     */
    private String goodsPriceLabel;

    /**
     * 结算周期
     */
    private Integer settlementCycle;

    /**
     * 结算周期
     */
    private String settlementCycleLabel;

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

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

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建人
     */
    private Long createBy;

    /**
     * 创建人
     */
    private String createByName;

    /**
     * 任务量-分配量计量单位
     */
    private String unit;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
    private Date createTime;

    /**
     * 含税金额
     */
    @JsonProperty("taxMoney")
    private BigDecimal taxMoney;

    /**
     * 扣款金额
     */
    @JsonProperty("deductPrice")
    private BigDecimal deductPrice;

    /**
     * 发货单位
     */
    @JsonProperty("forwardingUnit")
    private String forwardingUnit;

    /**
     * 收货单位
     */
    @JsonProperty("consignee")
    private String consignee;

    @JsonProperty("totalLoadAmount")
    private BigDecimal totalLoadAmount;

    @JsonProperty("totalUnloadAmount")
    private BigDecimal totalUnloadAmount;

    /**
     * 趟次（自己+下游承运总卸货量，算方式为趟次时，最终值以完结输入值为准）
     */
    private Integer totalTake;
}
