package com.bs.jxc.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;

/**
 * 船舶航次对象 bm_vessel_voyage
 *
 * @author bs
 * @date 2023-07-10
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("bm_vessel_voyage")
@Data
public class BmVesselVoyage extends BaseEntity{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(value = "id",type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;

    /** 航次号 */

    @Excel(name = "航次号")
    @ApiModelProperty(value = "航次号")
    private String voyageNo;

    /** 船舶ID */

//    @Excel(name = "船舶ID")
    @ApiModelProperty(value = "船舶ID")
    private Long vesselId;

    /** 船舶名称 */

    @Excel(name = "船舶名称")
    @ApiModelProperty(value = "船舶名称")
    private String vesselName;

    /** 净吨 */

    @Excel(name = "净吨")
    @ApiModelProperty(value = "净吨")
    private BigDecimal netTon;

    /** 国籍 */

    @Excel(name = "国籍")
    @ApiModelProperty(value = "国籍")
    private String nationality;

    /** 船长 */

    @Excel(name = "船长")
    @ApiModelProperty(value = "船长")
    private BigDecimal vesselLength;

    /** 吃水 */

    @Excel(name = "吃水")
    @ApiModelProperty(value = "吃水")
    private BigDecimal vesselDraft;

    /** 载重吨 */

    @Excel(name = "载重吨")
    @ApiModelProperty(value = "载重吨")
    private BigDecimal dwt;

    /** 船舶动态类型 */

    @Excel(name = "船舶动态类型")
    @ApiModelProperty(value = "船舶动态类型")
    private String dynType;

    /** 船舶动态 */

    @Excel(name = "船舶动态")
    @ApiModelProperty(value = "船舶动态")
    private String shipDyn;

    /** 泊位ID */

//    @Excel(name = "泊位ID")
    @ApiModelProperty(value = "泊位ID")
    private Long berthId;

    /** 泊位名称 */

    @Excel(name = "泊位名称")
    @ApiModelProperty(value = "泊位名称")
    private String berthName;

    /** 来港目的 */

    @Excel(name = "来港目的")
    @ApiModelProperty(value = "来港目的")
    private String opType;

    /** 货物装卸计划量 */

    @Excel(name = "货物装卸计划量")
    @ApiModelProperty(value = "货物装卸计划量")
    private String cargoDesc;

    /** 靠泊时间 */

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "靠泊时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "靠泊时间")
    private Date berthTime;

    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginDate;

    @TableField(exist = false)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;

    /** 起运港 */

    @Excel(name = "起运港")
    @ApiModelProperty(value = "起运港")
    private Long departurePort;

    /** 到达港 */

    @Excel(name = "到达港")
    @ApiModelProperty(value = "到达港")
    private Long arrivalPort;

    /** 在泊时 */

    @Excel(name = "在泊时")
    @ApiModelProperty(value = "在泊时")
    private String onBerth;

    /** 进引 */

    @Excel(name = "进引")
    @ApiModelProperty(value = "进引")
    private String inPilot;

    /** 移引 */

    @Excel(name = "移引")
    @ApiModelProperty(value = "移引")
    private String rePilot;

    /** 离引 */

    @Excel(name = "离引")
    @ApiModelProperty(value = "离引")
    private String unPilot;

    /** 代理 */

    @Excel(name = "代理")
    @ApiModelProperty(value = "代理")
    private String agency;

    /** 所属公司 */

    @Excel(name = "所属公司")
    @ApiModelProperty(value = "所属公司")
    private Long deptId;

    @Excel(name = "状态 1、确认  0 未确认")
    @ApiModelProperty(value = "状态")
    private String status;

    private String remark;

    @TableField(exist = false)
    private String cargoName;
    @TableField(exist = false)
    private String customsNo;
    @TableField(exist = false)
    private String listNumber;
    @TableField(exist = false)
    private String custName;
    @TableField(exist = false)
    private String billNo;
    @TableField(exist = false)
    private String tradType;
}
