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

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 *
 * 司机台账运单DTO
 *
 * @className    :DriverledgerShipBillDTO
 * @author       :fanzw
 * @date         :2023/4/25
 * @description  :
 *
 * @version      :1.2.1
 *
 */
@Data
public class DriverledgerShipBillDTO implements Serializable {

	private static final long serialVersionUID = -3783203434440261293L;

	@ApiModelProperty(value = "运单ID")
	private Long id;

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

	@ApiModelProperty(value = "派车单主键ID")
	private Long loadingId;

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

	@ApiModelProperty(value = "计费类型 10:按运单计费  20:按派车单计费 30:未匹配到价格")
	private Integer feeCltType;

	@ApiModelProperty(value = "计费类型 10:按运单计费  20:按派车单计费 30:未匹配到价格")
	private String feeCltTypeName;

	@ApiModelProperty(value = "货主ID")
	private Long cargoOwnerId;

	@ApiModelProperty(value = "货主编码")
	private String cargoOwnerCode;

	@ApiModelProperty(value = "货主名称")
	private String cargoOwnerName;

	@ApiModelProperty(value = "订单ID")
	private String orderId;

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

	@ApiModelProperty(value = "WMS单据ID")
	private String wmsOrderId;

	@ApiModelProperty(value = "WMS单据编号")
	private String wmsOrderNo;

	@ApiModelProperty(value = "订单类型 数据字典ORDER_TYPE：1普通 2紧急 3加急")
	private Integer orderType;

	@ApiModelProperty(value = "订单类型 数据字典ORDER_TYPE：1普通 2紧急 3加急")
	private String orderTypeName;

	@ApiModelProperty(value = "订单业务类型 数据字典ORDER_BUSINESS_TYPE：1销售订单-直送  2销售订单-供应商配送 3采购订单-供应商配送 4采购订单-自提 5销售退货 6采购退货 7调拨")
	private Integer orderBusinessType;

	@ApiModelProperty(value = "订单业务类型 数据字典ORDER_BUSINESS_TYPE：1销售订单-直送  2销售订单-供应商配送 3采购订单-供应商配送 4采购订单-自提 5销售退货 6采购退货 7调拨")
	private String orderBusinessTypeName;

	@ApiModelProperty(value = "配送方式 数据字典DELIVERY_METHOD_TYPE：1配送 2自提")
	private Integer deliveryMethodType;

	@ApiModelProperty(value = "配送方式 数据字典DELIVERY_METHOD_TYPE：1配送 2自提")
	private String deliveryMethodTypeName;

	@ApiModelProperty(value = "运输类型(运输模式) 数据字典TRANSPORT_TYPE:1整车 2零担")
	private Integer transportType;

	@ApiModelProperty(value = "运输类型(运输模式) 数据字典TRANSPORT_TYPE:1整车 2零担")
	private String transportTypeName;

	@ApiModelProperty(value = "温度要求 数据字典TEMPERATURE_REQUIREMENT：1常温 2冷藏 3冷冻 4恒温")
	private Integer temperatureRequirement;

	@ApiModelProperty(value = "温度要求 数据字典TEMPERATURE_REQUIREMENT：1常温 2冷藏 3冷冻 4恒温")
	private String temperatureRequirementName;

	@ApiModelProperty(value = "所属部门ID")
	private String departmentId;

	@ApiModelProperty(value = "所属部门编码")
	private String departmentCode;

	@ApiModelProperty(value = "所属部门名称")
	private String departmentName;

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

	@ApiModelProperty(value = "发货方类型 数据字典SHIPPER_TYPE:1客户 2仓库 3供应商")
	private Integer shipperType;

	@ApiModelProperty(value = "发货方类型 数据字典SHIPPER_TYPE:1客户 2仓库 3供应商")
	private String shipperTypeName;

	@ApiModelProperty(value = "发货方单位ID")
	private Long shipperUnitId;

	@ApiModelProperty(value = "发货方单位编码")
	private String shipperUnitCode;

	@ApiModelProperty(value = "发货方单位名称")
	private String shipperUnitName;

	@ApiModelProperty(value = "发货方ID")
	private Long shipperId;

	@ApiModelProperty(value = "发货方编码")
	private String shipperCode;

	@ApiModelProperty(value = "发货方名称")
	private String shipperName;

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

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

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

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

	@ApiModelProperty(value = "发货方关联手机号")
	private String shipperRelatedPhoneNumber;

	@ApiModelProperty(value = "发货方省编码")
	private String shipperProvince;

	@ApiModelProperty(value = "发货方省名称")
	private String shipperProvinceName;

	@ApiModelProperty(value = "发货方市编码")
	private String shipperCity;

	@ApiModelProperty(value = "发货方市名称")
	private String shipperCityName;

	@ApiModelProperty(value = "发货方区/县编码")
	private String shipperDistrict;

	@ApiModelProperty(value = "发货方区/县名称")
	private String shipperDistrictName;

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

	@ApiModelProperty(value = "发货方经度")
	private BigDecimal shipperLongitude;

	@ApiModelProperty(value = "发货方纬度")
	private BigDecimal shipperLatitude;

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

	@ApiModelProperty(value = "始发地")
	private String shipperProvinceCityDistrict;

	@ApiModelProperty(value = "收货方类型 数据字典CONSIGNEE_TYPE:1客户 2仓库 3供应商")
	private Integer consigneeType;

	@ApiModelProperty(value = "收货方类型 数据字典CONSIGNEE_TYPE:1客户 2仓库 3供应商")
	private String consigneeTypeName;

	@ApiModelProperty(value = "收货方单位ID")
	private Long consigneeUnitId;

	@ApiModelProperty(value = "收货方单位编码")
	private String consigneeUnitCode;

	@ApiModelProperty(value = "收货方单位名称")
	private String consigneeUnitName;

	@ApiModelProperty(value = "收货方ID")
	private Long consigneeId;

	@ApiModelProperty(value = "收货方编码")
	private String consigneeCode;

	@ApiModelProperty(value = "收货方名称")
	private String consigneeName;

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

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

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

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

	@ApiModelProperty(value = "收货方关联手机号")
	private String consigneeRelatedPhoneNumber;

	@ApiModelProperty(value = "收货方省编码")
	private String consigneeProvince;

	@ApiModelProperty(value = "收货方省名称")
	private String consigneeProvinceName;

	@ApiModelProperty(value = "收货方市编码")
	private String consigneeCity;

	@ApiModelProperty(value = "收货方市名称")
	private String consigneeCityName;

	@ApiModelProperty(value = "收货方区/县编码")
	private String consigneeDistrict;

	@ApiModelProperty(value = "收货方区/县名称")
	private String consigneeDistrictName;

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

	@ApiModelProperty(value = "收货方经度")
	private BigDecimal consigneeLongitude;

	@ApiModelProperty(value = "收货方纬度")
	private BigDecimal consigneeLatitude;

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

	@ApiModelProperty(value = "目的地")
	private String consigneeProvinceCityDistrict;

	@ApiModelProperty(value = "回单图片 数据字典WHETHER:0否，1是")
	private Integer consigneeReturnOrderPicture;

	@ApiModelProperty(value = "企业ID")
	private Long enterpriseId;

	@ApiModelProperty(value = "企业名称")
	private String enterpriseName;

	@ApiModelProperty(value = "字符扩展1")
	private String extStr1;

	@ApiModelProperty(value = "字符扩展2")
	private String extStr2;

	@ApiModelProperty(value = "字符扩展3")
	private String extStr3;

	@ApiModelProperty(value = "字符扩展4")
	private String extStr4;

	@ApiModelProperty(value = "字符扩展5")
	private String extStr5;

	@ApiModelProperty(value = "数值属性扩展1")
	private BigDecimal extNum1;

	@ApiModelProperty(value = "数值属性扩展2")
	private BigDecimal extNum2;

	@ApiModelProperty(value = "数值属性扩展3")
	private BigDecimal extNum3;

	@ApiModelProperty(value = "数值属性扩展4")
	private BigDecimal extNum4;

	@ApiModelProperty(value = "数值属性扩展5")
	private BigDecimal extNum5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展1")
	private Date extDate1;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展2")
	private Date extDate2;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展3")
	private Date extDate3;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展4")
	private Date extDate4;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展5")
	private Date extDate5;

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

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

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

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

	@ApiModelProperty(value = "总件数")
	private BigDecimal totalPcs;

	@ApiModelProperty(value = "总体积")
	private BigDecimal totalVolume;

	@ApiModelProperty(value = "总重量")
	private BigDecimal totalWeight;

	@ApiModelProperty(value = "运单状态 数据字典SHIPBILL_STATUS:0已作废 10初始化 20已提交 5已回退")
	private Integer status;

	@ApiModelProperty(value = "运单状态 数据字典SHIPBILL_STATUS:0已作废 10初始化 20已提交 5已回退")
	private String statusName;

	@ApiModelProperty(value = "来源 数据字典SOURCE 1.新增 2.excel导入 3.接口导入")
	private Integer source;

	@ApiModelProperty(value = "来源 数据字典SOURCE 1.新增 2.excel导入 3.接口导入")
	private String sourceName;

	@ApiModelProperty(value = "承运方(调度)类型 数据字典LINE_CARRIER_TYPE:1.承运商  2.司机")
	private Integer carrierType;

	@ApiModelProperty(value = "承运方(调度)类型 数据字典LINE_CARRIER_TYPE:1.承运商  2.司机")
	private String carrierTypeName;

	@ApiModelProperty(value = "承运商ID")
	private Long carrierId;

	@ApiModelProperty(value = "承运商编码")
	private String carrierCode;

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

	@ApiModelProperty(value = "司机ID")
	private Long driverId;

	@ApiModelProperty(value = "司机编号")
	private String driverCode;

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

	@ApiModelProperty(value = "司机手机号")
	private String driverPhoneNumber;

	@ApiModelProperty(value = "车型ID")
	private Long vehicleTypeId;

	@ApiModelProperty(value = "车型编号")
	private String vehicleTypeCode;

	@ApiModelProperty(value = "车型名称")
	private String vehicleTypeName;

	@ApiModelProperty(value = "车型")
	private String vehicleType;

	@ApiModelProperty(value = "配载重量装载率")
	private String weightLoadingRate;

	@ApiModelProperty(value = "隶属机构ID")
	private Long affiliationId;

	@ApiModelProperty(value = "隶属机构编码")
	private String affiliationCode;

	@ApiModelProperty(value = "隶属机构名称")
	private String affiliationName;

	@ApiModelProperty(value = "所属组织ID")
	private Long organizationId;

	@ApiModelProperty(value = "所属组织编码")
	private String organizationCode;

	@ApiModelProperty(value = "所属组织名称")
	private String organizationName;

	@ApiModelProperty(value = "启运日期")
	private Date startDate;

	@ApiModelProperty(value = "送达日期")
	private Date deliveryDate;

	@ApiModelProperty(value = "回单日期")
	private Date receiptDate;

	@ApiModelProperty(value = "正本回单日期")
	private Date originalBackDate;

	@ApiModelProperty(value = "完成日期")
	private Date completeDate;

	@ApiModelProperty(value = "仓库ID")
	private Long branchId;

	@ApiModelProperty(value = "仓库编码")
	private String branchCode;

	@ApiModelProperty(value = "仓库名称")
	private String branchName;

	@ApiModelProperty(value = "扫描状态 数据字典SCAN_STATUS:10初始 20已装车扫描")
	private Integer scanStatus;

	@ApiModelProperty(value = "配送状态 数据字典DELIVERY_STATUS:10配送失败 20配送滞留 30配送成功")
	private Integer deliveryStatus;

	@ApiModelProperty(value = "流程配置 Add新增,AddCommit新增提交,Commit提交,CommitReview提交审核,Review审核," + "ReviewDispatch匹配唯一承运方自动调度,Dispatch调度,DispatchCheck调度后自动审核,Check调度审核,Appointment预约," + "ArrangeGoods理货,LoadUnLoad装卸,Scanning装车扫描,SendOff启运登记,ArriveConfirm送达确认")
	private String flowConfig;

	@ApiModelProperty(value = "流程配置 接单Receive,接单后自动提交ReceiveCommit,承运商是否开启接单拒绝RejectReceive,Commit提交,CommitReview提交审核,Review审核," + "ReviewDispatch匹配唯一承运方自动调度,Dispatch调度,DispatchCheck调度后自动审核,Check调度审核,Appointment预约," + "ArrangeGoods理货,LoadUnLoad装卸,Scanning装车扫描,SendOff启运登记,ArriveConfirm送达确认")
	private String carrierFlowConfig;

	@ApiModelProperty(value = "运费")
	private BigDecimal transportationPrice;

	@ApiModelProperty(value = "提货费")
	private BigDecimal pickUpFee;

	@ApiModelProperty(value = "支出总价 类型为支出的含税金额")
	private BigDecimal payAmount;

	@ApiModelProperty(value = "合同支出总价 类型为支出的来源是价格表生成 含税金额")
	private BigDecimal contractPayAmount;

	@ApiModelProperty(value = "计费时间")
	private Date costDate;

	@ApiModelProperty(value = "计费合同")
	private String costContract;

	@ApiModelProperty(value = "计费状态 1：计费成功，2：计费失败")
	private Integer costStatus;

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

	@ApiModelProperty(value = "疫情补贴")
	private BigDecimal subsidies;

	@ApiModelProperty(value = "送货费")
	private BigDecimal deliveryFee;

	@ApiModelProperty(value = "核算状态 0:未核算，1：核算待提交，2：核算审批中，3:核算完成 ")
	private Integer settlementStatus;

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

	@ApiModelProperty(value = "车辆ID")
	private Long vehicleId;

	@ApiModelProperty(value = "车辆编号")
	private String vehicleCode;

	@ApiModelProperty(value = "车辆名称")
	private String vehicleName;

	@ApiModelProperty(value = "同步状态")
	private Integer synchronousStatus;

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

	@ApiModelProperty(value = "同步时间")
	private Date synchronousDate;

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

	@ApiModelProperty(value = "运单状态")
	private Integer shipBillStatus;

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

	@ApiModelProperty(value = "异常状态 0:非异常 1:异常")
	private Integer abnormalStatus;

	@ApiModelProperty(value = "异常状态 0:非异常 1:异常")
	private String abnormalStatusName;

	@ApiModelProperty(value = "下单时间")
	private Date orderDate;

	@ApiModelProperty(value = "提交时间")
	private Date submitDate;

	@ApiModelProperty(value = "审核时间")
	private Date auditDate;

	@ApiModelProperty(value = "调度时间")
	private Date loadingDate;

	@ApiModelProperty(value = "调度审核时间")
	private Date loadingAuditDate;

	@ApiModelProperty(value = "完成时间")
	private Date completionDate;

	@ApiModelProperty(value = "总里程")
	private BigDecimal totalMileage;

	@ApiModelProperty(value = "核算时间")
	private Date settlementDate;

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

	@ApiModelProperty(value = "结算公司id")
	private String settlementCompanyId;

	@ApiModelProperty(value = "结算公司编码")
	private String settlementCompanyCode;

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

	@ApiModelProperty(value = "结算部门ID")
	private String settlementDepartmentId;

	@ApiModelProperty(value = "结算部门编码")
	private String settlementDepartmentCode;

	@ApiModelProperty(value = "运输时效")
	private BigDecimal transportAging;

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

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

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

	@ApiModelProperty(value = "包裹整件数")
	private BigDecimal packageWholePiece;

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

	@ApiModelProperty(value = "送货员电话")
	private String deliveryTel;

	@ApiModelProperty(value = "配送站点ID")
	private Long deliveryStationId;

	@ApiModelProperty(value = "配送站点编号")
	private String deliveryStationCode;

	@ApiModelProperty(value = "配送站点名称")
	private String deliveryStationName;

	@ApiModelProperty(value = "配送区域")
	private String deliveryAreas;

	@ApiModelProperty(value = "线路ID")
	private Long lineId;

	@ApiModelProperty(value = "线路编码")
	private String lineCode;

	@ApiModelProperty(value = "线路名称")
	private String lineName;

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

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

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

	@ApiModelProperty(value = "支出计费类型 10:按运单计费  20:按派车单计费 30:未匹配到价格")
	private Integer payFeeCltType;

	@ApiModelProperty(value = "支出计费类型 10:按运单计费  20:按派车单计费 30:未匹配到价格")
	private String payFeeCltTypeName;

	@ApiModelProperty(value = "支出里程")
	private BigDecimal totalPayMileage;

}
