package com.bs.jxc.domain;

import com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
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;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 船舶载货清单对象 bm_vessel_cargo
 *
 * @author bs
 * @date 2023-07-10
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("bm_vessel_cargo")
@Data
public class BmVesselCargo extends BaseEntity{
    private static final long serialVersionUID = 1L;

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

    /** 船舶航次ID */

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

    /** 航次号 */

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

    /** 船舶ID */

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

    /** 船舶名称 */

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

    /** 货物ID */

//    @Excel(name = "货物ID")
    @ApiModelProperty(value = "货物ID")
    private Long cargoId;

    /** 货物自然序号 */

    @Excel(name = "货物自然序号")
    @ApiModelProperty(value = "货物自然序号")
    private String cargoNumber;

    /** 商品料号 */

    @Excel(name = "商品料号")
    @ApiModelProperty(value = "商品料号")
    private String itemNumber;

    /** 电子账册项号 */

    @Excel(name = "电子账册项号")
    @ApiModelProperty(value = "电子账册项号")
    private String bookNumber;


    /** HS编号 */

    @Excel(name = "HS编号")
    @ApiModelProperty(value = "HS编号")
    private String hsCode;

    /** 货物名称 */

    @Excel(name = "货物名称")
    @ApiModelProperty(value = "货物名称")
    private String cargoName;

    /** 提运单号 */

    @Excel(name = "提运单号")
    @ApiModelProperty(value = "提运单号")
    private String billNo;


    /** 货主ID */

//    @Excel(name = "货主ID")
    @ApiModelProperty(value = "货主ID")
    private Long custId;

    /** 货主名称 */

    @Excel(name = "货主名称")
    @ApiModelProperty(value = "货主名称")
    private String custName;

    /** 业务性质 */

    @Excel(name = "业务性质 1、进口 2、出口")
    @ApiModelProperty(value = "业务性质")
    private String opType;

    /** 贸易性质 */

    @Excel(name = "贸易性质")
    @ApiModelProperty(value = "贸易性质")
    private String tradType;

    /** 货物件数 */

    @Excel(name = "货物件数")
    @ApiModelProperty(value = "货物件数")
    private BigDecimal cargoNum;

    /** 货物重量 */

    @Excel(name = "货物重量")
    @ApiModelProperty(value = "货物重量")
    private BigDecimal cargoWt;

    /** 货物体积 */

    @Excel(name = "货物体积")
    @ApiModelProperty(value = "货物体积")
    private BigDecimal cargoVol;

    /** 唛头 */

    @Excel(name = "唛头")
    @ApiModelProperty(value = "唛头")
    private String mark;

    /** 包装类型 */

    @Excel(name = "包装类型")
    @ApiModelProperty(value = "包装类型")
    private String packType;

    /** 计量单位 */

    @Excel(name = "计量单位")
    @ApiModelProperty(value = "计量单位")
    private String unit;

    @Excel(name = "规格类型品质")
    @ApiModelProperty(value = "规格类型品质")
    private String cargoSpec;

    /** 原产国 */

    @Excel(name = "原产国")
    @ApiModelProperty(value = "原产国")
    private String originCountry;

    @Excel(name = "第一单位")
    @ApiModelProperty(value = "第一单位")
    private String firstUnit;

    @Excel(name = "单价")
    @ApiModelProperty(value = "单价")
    private BigDecimal unitPrice;

    @Excel(name = "币种")
    @ApiModelProperty(value = "币种")
    private String currType;

    /** 舱口类型 */

    @Excel(name = "舱口类型")
    @ApiModelProperty(value = "舱口类型")
    private String hatchTpe;

    /** 船港货机械 */

    @Excel(name = "船港货机械")
    @ApiModelProperty(value = "船港货机械")
    private String cargoMachine;

    /** 单件重量 */

    @Excel(name = "单件重量")
    @ApiModelProperty(value = "单件重量")
    private BigDecimal pieceWeight;

    /** 实际交接件数 */

    @Excel(name = "实际交接件数")
    @ApiModelProperty(value = "实际交接件数")
    private BigDecimal actNum;

    /** 实际交接重量 */

    @Excel(name = "实际交接重量")
    @ApiModelProperty(value = "实际交接重量")
    private BigDecimal actWt;

    /** 实际交接体积 */

    @Excel(name = "实际交接体积")
    @ApiModelProperty(value = "实际交接体积")
    private BigDecimal actVol;

    /** 其中直提件数 */

    @Excel(name = "其中直提件数")
    @ApiModelProperty(value = "其中直提件数")
    private BigDecimal ztNum;

    /** 其中直提重量 */

    @Excel(name = "其中直提重量")
    @ApiModelProperty(value = "其中直提重量")
    private BigDecimal ztWt;

    /** 其中直提体积 */

    @Excel(name = "其中直提体积")
    @ApiModelProperty(value = "其中直提体积")
    private BigDecimal ztVol;

    /** 其中出入库件数 */

    @Excel(name = "其中出入库件数")
    @ApiModelProperty(value = "其中出入库件数")
    private BigDecimal stockNum;

    /** 其中出入库重量 */

    @Excel(name = "其中出入库重量")
    @ApiModelProperty(value = "其中出入库重量")
    private BigDecimal stockWt;

    /** 其中出入库体积 */

    @Excel(name = "其中出入库体积")
    @ApiModelProperty(value = "其中出入库体积")
    private BigDecimal stockVol;

    /** 所属公司 */

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

    @TableField(exist = false)
    private List<CkBillStock> billStockList;

    /** 有效期至 */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "有效期至", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "有效期至")
    private Date expiryDate;

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

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

    /**
     * 出入库单据
     */
    @TableField(exist = false)
    private String billNumber;

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

    @Excel(name = "货物价值")
    @ApiModelProperty(value = "货物价值")
    private BigDecimal cargoValue;

    @Excel(name = "报关单号")
    @ApiModelProperty(value = "报关单号")
    private String customsNo;

    @Excel(name = "核注清单号")
    @ApiModelProperty(value = "核注清单号")
    private String listNumber;




}
