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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;
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;

/**
 * 预约单汇总 Model
 *
 * @author xiaoyf
 * @since 2020-04-03 10:57
 */
@Data
@Table(value = "tms_appointment_header")
public class TmsAppointmentHeaderModel implements Serializable {

	private static final long serialVersionUID = 4828511131756530462L;

	@Id
	@ApiModelProperty(value = "预约单ID")
	@Column(value = "appointment_id")
	private String appointmentId;

	@ApiModelProperty(value = "预约单号")
	@Column(value = "appointment_no")
	private String appointmentNo;

	@ApiModelProperty(value = "预约类型")
	@Column(value = "appointment_type")
	private Integer appointmentType;

	@ApiModelProperty(value = "预约状态")
	@Column(value = "status")
	private Integer status;

	@ApiModelProperty(value = "理货状态 数据字典TALLY_STATUS: 10未理货 20开始理货 30理货完成")
	@Column(value = "tally_status")
	private Integer tallyStatus;

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

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

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

	@ApiModelProperty(value = "仓库详细地址")
	@Column(value = "branch_address")
	private String branchAddress;

	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
	@ApiModelProperty(value = "预约日期")
	@Column(value = "appointment_date")
	private Date appointmentDate;

	@ApiModelProperty(value = "预约时间段 数据格式严格按 09:00-12:00(示例)存储")
	@Column(value = "appointment_time")
	private String appointmentTime;

	@ApiModelProperty(value = "预约号码")
	@Column(value = "reserve_number")
	private String reserveNumber;

	@ApiModelProperty(value = "预约时间")
	@Column(value = "reserve_number_time")
	private Date reserveNumberTime;

	@ApiModelProperty(value = "取号号码(排队号)")
	@Column(value = "queue_number")
	private String queueNumber;

	@ApiModelProperty(value = "取号时间")
	@Column(value = "queue_number_time")
	private Date queueNumberTime;

	@ApiModelProperty(value = "叫号号码(叫号顺序)")
	@Column(value = "call_number")
	private String callNumber;

	@ApiModelProperty(value = "叫号时间")
	@Column(value = "call_number_time")
	private Date callNumberTime;

	@ApiModelProperty(value = "紧急运单数量")
	@Column(value = "urgent_quantity")
	private Integer urgentQuantity;

	@ApiModelProperty(value = "运单数量")
	@Column(value = "shipbill_quantity")
	private Integer shipbillQuantity;

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

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

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

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

	@ApiModelProperty(value = "司机编码")
	@Column(value = "driver_code")
	private String driverCode;

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

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

	@ApiModelProperty(value = "车牌号")
	@Column(value = "vehicle_plate_number")
	private String vehiclePlateNumber;

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

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

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

	@ApiModelProperty(value = "月台编号")
	@Column(value = "platform_code")
	private String platformCode;

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

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

	@ApiModelProperty(value = "创建时间")
	@Column(value = "createtime")
	private Date createtime;

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

	@ApiModelProperty(value = "修改时间")
	@Column(value = "updatetime")
	private Date updatetime;

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

	@ApiModelProperty(value = "装卸开始时间")
	@Column(value = "load_and_unload_start_time")
	private Date loadAndUnloadStartTime;

	@ApiModelProperty(value = "装卸结束时间")
	@Column(value = "load_and_unload_end_time")
	private Date loadAndUnloadEndTime;

	// STD-DEVELOP20220823 lhb 4273 20220902 start
	@ApiModelProperty(value = "理货工ID")
	@Column(value = "tally_worker_id")
	private Long tallyWorkerId;

	@ApiModelProperty(value = "理货工编码")
	@Column(value = "tally_worker_code")
	private String tallyWorkerCode;

	@ApiModelProperty(value = "理货工名称")
	@Column(value = "tally_worker_name")
	private String tallyWorkerName;

	@ApiModelProperty(value = "装卸工ID")
	@Column(value = "load_and_unload_worker_id")
	private Long loadAndUnloadWorkerId;

	@ApiModelProperty(value = "装卸工编码")
	@Column(value = "load_and_unload_worker_code")
	private String loadAndUnloadWorkerCode;

	@ApiModelProperty(value = "装卸工名称")
	@Column(value = "load_and_unload_worker_name")
	private String loadAndUnloadWorkerName;
	// STD-DEVELOP20220823 lhb 4273 20220902 end

	@ApiModelProperty(value = "生成模式1发货方模式2收货方模式3运单模式4派车单模式")
	@Column(value = "create_mode")
	private String createMode;
}
