package com.sckw.transport.model.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.sckw.core.model.constant.Global;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author zk
 * @desc 车辆运单列表
 * @date 2024/3/11 0011
 */
@Data
@Accessors(chain = true)
public class WaybillOrderSelectVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 4526063761808958350L;

    /**
     * 企业ID
     */
    private Long  entId;

    /**
     * 运单id
     */
    @JsonProperty(value="wOrderId")
    private Long wOrderId;

    /**
     * 运单号
     */
    @JsonProperty(value="wOrderNo")
    private String wOrderNo;

    /**
     * 车辆ID
     */
    private Long truckId;

    /**
     * 车辆牌照
     */
    private String truckNo;

    /**
     * 司机
     */
    private Long driverId;

    /**
     * 司机
     */
    private String driverName;

    /**
     * 司机手机号
     */
    private String driverPhone;

    /**
     * 运单类型数字
     */
    private int type;

    /**
     * 运单类型字符
     */
    private String typeLabel;

    /**
     * 采购企业名称
     */
    private String procureFirmName;

    /**
     * 供应企业名称
     */
    private String supplyFirmName;

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

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

    /**
     * 实际开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date loadTime;

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

    /**
     * 实际结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date unloadTime;

    /**
     * 派单量/吨
     */
    private String entrustAmount;

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

    /**
     * 装货地点
     */
    private List<String> loadAddress;

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

    /**
     * 卸货地点
     */
    private List<String> unloadAddress;

    /**
     * 实装量/吨
     */
    private String loadAmount;

    /**
     * 实卸量/吨
     */
    private String unloadAmount;

    /**
     * 亏吨重量
     */
    private String deficitAmount;

    /**
     * 扣亏量(合理损耗-(实装-实卸))-单位
     */
    private String deficitRealAmount;

    /**
     * 运单状态
     */
    private Integer  status;

    /**
     * 派车时间
     */
    private String sendCarTime;

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

    /**
     * 创建时间
     */
    private String createTime;

    /**
     * 更新时间
     */
    private String updateTime;

    /**
     * 运单状态字符
     */
    private String  statusLabel;

    /**
     * 装载量
     */
    private Double actualWeight;

    /**
     * 趟次
     */
    private Integer count;

    public String getTypeLabel() {
        return type == Global.NUMERICAL_ONE ? "趟次" : "循环";
    }

}
