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

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

import org.springframework.format.annotation.DateTimeFormat;

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;

/**
 * (TmsShipbillTransportLog)Model
 *
 * @author zhangsj
 * @since 2022-06-13 12:01:01
 */
@Data
@Table("tms_shipbill_transport_log")
public class TmsShipbillTransLogModel implements Serializable {
    private static final long serialVersionUID = -50828408079041323L;

    @Id
    @ApiModelProperty(value = "主键ID")
    @Column(value = "id")
    private String id;

    @ApiModelProperty(value = "装车单明细ID")
    @Column(value = "loading_bill_detail_id")
    private String loadingBillDetailId;

    @ApiModelProperty(value = "运单ID")
    @Column(value = "shipbill_id")
    private String shipbillId;

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

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "理货开始时间")
    @Column(value = "arrange_goods_start_time")
    private Date arrangeGoodsStartTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "理货结束时间")
    @Column(value = "arrange_goods_end_time")
    private Date arrangeGoodsEndTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "装卸开始时间")
    @Column(value = "load_and_unload_start_time")
    private Date loadAndUnloadStartTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "装卸结束时间")
    @Column(value = "load_and_unload_end_time")
    private Date loadAndUnloadEndTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "启运签到时间")
    @Column(value = "departure_sign_time")
    private Date departureSignTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "启运时间")
    @Column(value = "departure_time")
    private Date departureTime;

    @ApiModelProperty(value = "启运备注")
    @Column(value = "departure_memo")
    private String departureMemo;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "送达签到时间")
    @Column(value = "delivery_sign_time")
    private Date deliverySignTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "送达时间")
    @Column(value = "delivery_time")
    private Date deliveryTime;

    @ApiModelProperty(value = "送达签收人")
    @Column(value = "delivery_sign_person")
    private String deliverySignPerson;

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

    @ApiModelProperty(value = "送达失败原因 数据字典DELIVERY_FAILURE_REASON 10无理由退货 20商品保质期、批次问题 30商品包装(质量)问题")
    @Column(value = "delivery_failure_reason")
    private Integer deliveryFailureReason;

    @ApiModelProperty(value = "送达滞留原因 数据字典DELIVERY_STRANDED_REASON 10无法联系到客户")
    @Column(value = "delivery_stranded_reason")
    private Integer deliveryStrandedReason;

    @ApiModelProperty(value = "送达备注")
    @Column(value = "delivery_memo")
    private String deliveryMemo;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "回单时间")
    @Column(value = "receipt_time")
    private Date receiptTime;

    @ApiModelProperty(value = "回单备注")
    @Column(value = "receipt_memo")
    private String receiptMemo;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "回单返回时间")
    @Column(value = "orig_receipt_return_time")
    private Date origReceiptReturnTime;

    @ApiModelProperty(value = "回单状态 数据字典 ORIG_RECEIPT_STATUS：10正常签收 20异常签收")
    @Column(value = "orig_receipt_status")
    private Integer origReceiptStatus;

    @ApiModelProperty(value = "回单类型  数据字典 ORIG_RECEIPT_TYPE：10原件 20复印件")
    @Column(value = "orig_receipt_type")
    private Integer origReceiptType;

    @ApiModelProperty(value = "回单时效")
    @Column(value = "orig_receipt_aging")
    private BigDecimal origReceiptAging;

    @ApiModelProperty(value = "回单接收人")
    @Column(value = "orig_receipt_receive_person")
    private String origReceiptReceivePerson;

    @ApiModelProperty(value = "回单接收份数")
    @Column(value = "orig_receipt_num")
    private Integer origReceiptNum;

    @ApiModelProperty(value = "正本回单备注")
    @Column(value = "orig_receipt_memo")
    private String origReceiptMemo;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "自提时间")
    @Column(value = "self_pick_up_time")
    private Date selfPickUpTime;

    @ApiModelProperty(value = "自提交接人")
    @Column(value = "self_pick_up_contact")
    private String selfPickUpContact;

    @ApiModelProperty(value = "自提人")
    @Column(value = "self_pick_up_person")
    private String selfPickUpPerson;

    @ApiModelProperty(value = "自提联系方式")
    @Column(value = "self_pick_up_tel")
    private String selfPickUpTel;

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

    @ApiModelProperty(value = "自提身份证")
    @Column(value = "id_card")
    private String idCard;

    @ApiModelProperty(value = "自提备注")
    @Column(value = "self_pick_up_memo")
    private String selfPickUpMemo;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "异常发生时间")
    @Column(value = "abnormal_time")
    private Date abnormalTime;

    @ApiModelProperty(value = "异常类型 数据字典 ABNORMAL_TYPE：10货物异常 20单据异常")
    @Column(value = "abnormal_type")
    private Integer abnormalType;

    @ApiModelProperty(value = "异常事件 数据字典 ABNORMAL_EVENT：10货物缺失 20货物破损")
    @Column(value = "abnormal_event")
    private Integer abnormalEvent;

    @ApiModelProperty(value = "客户投诉")
    @Column(value = "abnormal_complain")
    private Integer abnormalComplain;

    @ApiModelProperty(value = "异常内容")
    @Column(value = "abnormal_content")
    private String abnormalContent;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "客服反馈时间")
    @Column(value = "feed_back_time")
    private Date feedBackTime;

    @ApiModelProperty(value = "实时地点")
    @Column(value = "feed_back_place")
    private String feedBackPlace;

    @ApiModelProperty(value = "反馈内容")
    @Column(value = "feed_back_content")
    private String feedBackContent;

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

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

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

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

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "异常关闭时间")
    @Column(value = "abnormal_close_time")
    private Date abnormalCloseTime;

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

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

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "订单下单时间")
    @Column(value = "order_dt")
    private Date orderDt;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "预计提货开始时间")
    @Column(value = "estimated_pickup_start_time")
    private Date estimatedPickupStartTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "提交时间")
    @Column(value = "commit_dt")
    private Date commitDt;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "审核时间")
    @Column(value = "review_dt")
    private Date reviewDt;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "调度时间")
    @Column(value = "dis_dt")
    private Date disDt;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "调度审核时间")
    @Column(value = "dis_check_dt")
    private Date disCheckDt;

    @ApiModelProperty(value = "异常图片")
    @Column(value = "abnormal_picture")
    private String abnormalPicture;

    @ApiModelProperty(value = "服务评价评分1星2星3星4星5星")
    @Column(value = "service_rating")
    private Integer serviceRating;

    @ApiModelProperty(value = "服务评价对象数据字典serviceobject:1发货方2物流公司")
    @Column(value = "service_object")
    private Integer serviceObject;

    @ApiModelProperty(value = "服务评价问题数据字典serviceproblem:1收费错误2态度问题")
    @Column(value = "service_problem")
    private Integer serviceProblem;

    @ApiModelProperty(value = "服务评价描述")
    @Column(value = "service_description")
    private String serviceDescription;

    @ApiModelProperty(value = "服务评价图片")
    @Column(value = "service_pictures")
    private String servicePictures;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "服务评价时间")
    @Column(value = "service_date")
    private Date serviceDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "运单关闭时间")
    @Column(value = "close_dt")
    private Date closeDt;

    @ApiModelProperty(value = "运单关闭类型")
    @Column(value = "close_type")
    private Integer closeType;

    @ApiModelProperty(value = "运单关闭原因")
    @Column(value = "close_reason")
    private String closeReason;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "签收时间")
    @Column(value = "sign_in_time")
    private Date signInTime;

    @ApiModelProperty(value = "签收人")
    @Column(value = "sign_in_person")
    private String signInPerson;

	@ApiModelProperty(value = "托运交接时间")
	@Column(value = "consignment_handover_time")
	private Date consignmentHandoverTime;

	@ApiModelProperty(value = "托运交接人")
	@Column(value = "consignment_handover_person")
	private String consignmentHandoverPerson;

	@ApiModelProperty(value = "托运交接人(经办人)联系方式")
	@Column(value = "consignment_handover_contact")
	private String consignmentHandoverContact;

	@ApiModelProperty(value = "托运交接人(经办人)身份证")
	@Column(value = "consignment_handover_idcard")
	private String consignmentHandoverIdcard;

	@ApiModelProperty(value = "托运交接司机")
	@Column(value = "consignment_handover_driver")
	private String consignmentHandoverDriver;

	@ApiModelProperty(value = "托运交接司机联系方式")
	@Column(value = "consignment_handover_driver_contact")
	private String consignmentHandoverDriverContact;

	@ApiModelProperty(value = "托运交接车牌")
	@Column(value = "consignment_handover_plate_number")
	private String consignmentHandoverPlateNumber;

	@ApiModelProperty(value = "托运交接配送人")
	@Column(value = "consignment_handover_shipper")
	private String consignmentHandoverShipper;

	@ApiModelProperty(value = "托运交接设备号")
	@Column(value = "consignment_handover_device")
	private String consignmentHandoverDevice;

	@ApiModelProperty(value = "托运交接备注")
	@Column(value = "consignment_handover_memo")
	private String consignmentHandoverMemo;

	@ApiModelProperty(value = "托运交接状态")
	@Column(value = "consignment_handover_status")
	private Integer consignmentHandoverStatus;

}
