/**
 * BladeX Commercial License Agreement
 * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
 * <p>
 * Use of this software is governed by the Commercial License Agreement
 * obtained after purchasing a license from BladeX.
 * <p>
 * 1. This software is for development use only under a valid license
 * from BladeX.
 * <p>
 * 2. Redistribution of this software's source code to any third party
 * without a commercial license is strictly prohibited.
 * <p>
 * 3. Licensees may copyright their own code but cannot use segments
 * from this software for such purposes. Copyright of this software
 * remains with BladeX.
 * <p>
 * Using this software signifies agreement to this License, and the software
 * must not be used for illegal purposes.
 * <p>
 * Author: Chill Zhuang (bladejava@qq.com)
 */
package org.springblade.transport.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;

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

/**
 * 运单管理实体类
 *
 * @author Chill
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_waybill")
@Schema(description = "运单管理")
public class Waybill extends TenantEntity {

	@Serial
	private static final long serialVersionUID = 1L;

	@Schema(description = "运单号")
	private String waybillNo;

	@Schema(description = "项目ID")
	private Long projectId;

	@Schema(description = "项目")
	private String projectName;

	@Schema(description = "客户合同ID")
	private Long contractId;

	@Schema(description = "客户合同")
	private String contractName;

	@Schema(description = "客户名称")
	private String customerName;

	@Schema(description = "运输类型")
	private String transportType;

	@Schema(description = "货物名称")
	private String cargoName;

	@Schema(description = "货物类型")
	private String cargoType;

	@Schema(description = "规格")
	private String specification;

	@Schema(description = "型号")
	private String model;

	@Schema(description = "数量")
	private BigDecimal quantity;

	@Schema(description = "数量单位")
	private String quantityUnit;

	@Schema(description = "发货地址ID")
	private Long departureAddressId;

	@Schema(description = "发货地")
	private String departureName;

	@Schema(description = "发货地址")
	private String departureAddress;

	@Schema(description = "发货联系人")
	private String departureContact;

	@Schema(description = "发货联系方式")
	private String departurePhone;

	@Schema(description = "收货地址ID")
	private Long arrivalAddressId;

	@Schema(description = "收货地")
	private String arrivalName;

	@Schema(description = "收货地址")
	private String arrivalAddress;

	@Schema(description = "收货联系人")
	private String arrivalContact;

	@Schema(description = "收货联系方式")
	private String arrivalPhone;

	@Schema(description = "任务录入模式")
	private String taskEntryMode;

	@Schema(description = "承运类型")
	private String carrierType;

	@Schema(description = "承运商ID")
	private Long carrierId;

	@Schema(description = "承运商名称")
	private String carrierName;

	@Schema(description = "司机ID")
	private Long driverId;

	@Schema(description = "司机姓名")
	private String driverName;

	@Schema(description = "司机手机号")
	private String driverPhone;

	@Schema(description = "车/船/航班/班列号")
	private String vehicleNo;

	@Schema(description = "挂车车牌号")
	private String trailerVehicleNo;

	@Schema(description = "押运人")
	private String escortName;

	@Schema(description = "押运人手机号")
	private String escortPhone;

	@Schema(description = "里程")
	private BigDecimal mileage;

	@Schema(description = "预计发货日期")
	private LocalDate estimatedStartTime;

	@Schema(description = "预计完成日期")
	private LocalDate estimatedEndTime;

	@Schema(description = "单价")
	private BigDecimal unitPrice;

	@Schema(description = "计价单位")
	private String priceUnit;

	@Schema(description = "其他费用合计")
	private BigDecimal otherFeeTotal;

	@Schema(description = "任务备注")
	private String taskRemark;

	@Schema(description = "原始单号")
	private String originalNo;

	@Schema(description = "业务状态")
	private String businessStatus;

	@Schema(description = "数据来源")
	private String dataSource;

	@Schema(description = "开始日期")
	private LocalDate startDate;

	@Schema(description = "结束日期")
	private LocalDate endDate;

	@Schema(description = "运输计划ID")
	private Long planId;

	@Schema(description = "计划名称")
	private String planName;

	@Schema(description = "多联总单")
	private String masterNo;

	@Schema(description = "配载单号")
	private String loadingNo;

	@Schema(description = "运单批次号")
	private String batchNo;

	@Schema(description = "导入批次ID")
	private Long importBatchId;

	@Schema(description = "关联单号")
	private String relationNo;

	@Schema(description = "当前过程节点")
	private String currentProcessNode;

	@Schema(description = "货物信息")
	private String goodsJson;

	@Schema(description = "承运信息")
	private String carrierJson;

	@Schema(description = "任务信息")
	private String taskInfoJson;

	@Schema(description = "过程节点")
	private String processJson;

	@Schema(description = "费用信息")
	private String freightJson;

	@Schema(description = "附件")
	private String attachmentsJson;

	@Schema(description = "所属组织ID")
	private Long deptId;

	@Schema(description = "所属组织")
	private String deptName;

	@Schema(description = "备注")
	private String remark;

}
