package com.sckw.usual.entity.res;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.sckw.usual.entity.KwOrderUsualLandTransportAddress;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @desc: 订单详情返回
 * @author: lt
 * @date: 2024/4/7 17:37
 */
@Data
public class KwOrderDetailRes {

    //======================header=========================
    private String id;
    private Integer orderSource;      //订单来源
    private String orderNo;           //订单编号
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime createTime; //创建时间
    private String createBy;          //创建人
    private Integer status;           //订单状态
    private String statusStr;         //订单中文
    private String qzOrder;           //前置订单号
    private Integer typeHandling;     //装卸类型
    private String typeHandlingStr;   //装卸类型中文
    private String tenantId;

    //=====================企业信息=========================
    private String tyCompanyId;       //托运企业id
    private String tyCompany;         //托运企业
    private String tyPhone;           //托运企业联系方式

    private String cyCompanyId;       //承运企业id
    private String cyCompany;         //承运企业
    private String cyPhone;           //承运企业联系方式

    private String fhCompanyId;       //发货企业id
    private String fhCompany;         //发货企业
    private String fhPhone;           //发货企业联系方式

    private String shCompanyId;       //收货企业id
    private String shCompany;         //收货企业
    private String shPhone;           //收货企业联系方式

    //=====================货物信息========================
    private String goodsId;           //货物id
    private String goodsName;         //货物名称
    private Integer goodsType;        //货物类型
    private String goodsTypeStr;      //货物类型
    private Integer goodsUnit;        //计量单位
    private String goodsUnitStr;      //计量单位
    private Double goodsNum;          //货物数量
    private String goodsVolume;       //货物体积
    private Double goodsWeight;       //货物重量

    //=====================更多信息========================
    private Integer truckType;              //车辆类型
    private String  truckTypeStr;           //车辆类型
    private String  estimateFreight;        //预估运费
    private String  remark;                 //备注

    //=====================地址信息========================
    List<KwOrderUsualLandTransportAddressDto> loadAddressInfo;    //装货信息
    List<KwOrderUsualLandTransportAddressDto> unLoadAddressInfo;  //卸货信息


    //=====================履约信息========================
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private LocalDateTime perStartTime;      //履约开始时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8")
    private LocalDateTime perEndTime;        //履约结束时间
    private String settlementCycle;          //结算周期
    private String settlementCycleStr;       //结算周期
    private String payment;                  //支付方式
    private String paymentStr;               //支付方式
    private String payCompany;               //付款企业
    private Integer billingMode;             //计费方式
    private String billingModeStr;           //计费方式Str
    private BigDecimal price;                //运输单价
    private String gatheringCompany;                //收款单位

    //履约记录
    private BigDecimal remainNum;            //剩余待运量
    private BigDecimal remainAllocation;     //剩余待分配量
    private BigDecimal totalLoadAmount;      //累计装货量
    private BigDecimal totalUnLoadAmount;    //累计卸货量

    //====================扣亏货==========================
    private String rationalLoss;             //合理损耗
    private BigDecimal dedPrice;             //扣款单价


}
