package com.bs.tm.domain;

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 com.bs.common.annotation.Excel;
import com.bs.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

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

/**
 * 货源信息对象 tm_cargo_source
 *
 * @author bs
 * @date 2024-02-07
 */
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tm_cargo_source")
@Data
public class TmCargoSource extends BaseEntity{
    private static final long serialVersionUID = 1L;

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

    /** 客户id */

    @Excel(name = "客户id")
    @ApiModelProperty(value = "客户id")
    private Long custId;

    @ApiModelProperty(value = "客户名称")
    private String custName;

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "订单日期")
    private Date orderDate;

    /** 发布时间 */

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

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

    /** 有效截止时间 */

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "有效截止时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "有效截止时间")
    private Date validTime;

    /** 货物体积 */

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

    /** 货源类型 */

    @Excel(name = "货源类型")
    @ApiModelProperty(value = "货源类型")
    private String cargoType;

    /** 货物信息 */

    @Excel(name = "货物信息")
    @ApiModelProperty(value = "货物信息")
    private String cargoInfo;

    /** 货物重量 */

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

    /** 货物价值 */

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

    /** 货物件数 */

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

    /** 货物外包装 */

    @Excel(name = "货物外包装")
    @ApiModelProperty(value = "货物外包装")
    private String cargoPack;

    /** 发货人 */

    @Excel(name = "发货人")
    @ApiModelProperty(value = "发货人")
    private String dispatchUser;

    /** 发货地 */

    @Excel(name = "发货地")
    @ApiModelProperty(value = "发货地")
    private String dispatchPlace;

    /** 发货地编码 */

    @Excel(name = "发货地编码")
    @ApiModelProperty(value = "发货地编码")
    private String dispatchPlaceCode;

    /** 发货详细地址 */

    @Excel(name = "发货详细地址")
    @ApiModelProperty(value = "发货详细地址")
    private String dispatchPlaceDetail;

    /** 发货地位置 */

    @Excel(name = "发货地位置")
    @ApiModelProperty(value = "发货地位置")
    private String dispatchLocation;

    /** 发货人固定电话 */

    @Excel(name = "发货人固定电话")
    @ApiModelProperty(value = "发货人固定电话")
    private String dispatchTel;

    /** 发货人手机号码 */

    @Excel(name = "发货人手机号码")
    @ApiModelProperty(value = "发货人手机号码")
    private String dispatchMobile;

    /** 发货单位id,便于后期扩展(发货单位选择控件,统计) */

    @Excel(name = "发货单位id,便于后期扩展(发货单位选择控件,统计)")
    @ApiModelProperty(value = "发货单位id,便于后期扩展(发货单位选择控件,统计)")
    private String dispatchCustId;

    /** 收货人 */

    @Excel(name = "收货人")
    @ApiModelProperty(value = "收货人")
    private String receiveUser;

    /** 收货地 */

    @Excel(name = "收货地")
    @ApiModelProperty(value = "收货地")
    private String receivePlace;

    /** 收货地编码 */

    @Excel(name = "收货地编码")
    @ApiModelProperty(value = "收货地编码")
    private String receivePlaceCode;

    /** 收货详细地址 */

    @Excel(name = "收货详细地址")
    @ApiModelProperty(value = "收货详细地址")
    private String receivePlaceDetail;

    /** 收货地位置 */

    @Excel(name = "收货地位置")
    @ApiModelProperty(value = "收货地位置")
    private String receiveLocation;

    /** 收货方手机号码 */

    @Excel(name = "收货方手机号码")
    @ApiModelProperty(value = "收货方手机号码")
    private String receiveMobile;

    /** 收货方固定电话 */

    @Excel(name = "收货方固定电话")
    @ApiModelProperty(value = "收货方固定电话")
    private String receiveTel;

    /** 收货方单位ID */

    @Excel(name = "收货方单位ID")
    @ApiModelProperty(value = "收货方单位ID")
    private String receiveCustId;

    /** 运价 */

    @Excel(name = "运价")
    @ApiModelProperty(value = "运价")
    private BigDecimal freightRates;

    /** 车长要求 */

    @Excel(name = "车长要求")
    @ApiModelProperty(value = "车长要求")
    private String vehicleLength;

    /** 联系人 */

    @Excel(name = "联系人")
    @ApiModelProperty(value = "联系人")
    private String linkMan;

    /** 交易电话 */

    @Excel(name = "交易电话")
    @ApiModelProperty(value = "交易电话")
    private String mobileNumber;

    /** 车辆结构 */

    @Excel(name = "车辆结构")
    @ApiModelProperty(value = "车辆结构")
    private String vehicleStucture;

    /** 单位地址 */

    @Excel(name = "单位地址")
    @ApiModelProperty(value = "单位地址")
    private String custAddr;

    /** 状态 */

    @Excel(name = "状态")
    @ApiModelProperty(value = "状态")
    private String status;

    /** 备注 */

    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /** 是否定向发布 */

    @Excel(name = "是否定向发布")
    @ApiModelProperty(value = "是否定向发布")
    private String isTarget;

    /** 船舶名称 */

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

    /** 航次 */

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

    /** 提单号 */

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

    /** 作业号 */

    @Excel(name = "作业号")
    @ApiModelProperty(value = "作业号")
    private String jobNo;


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

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


    @TableField(exist = false)
    @ApiModelProperty(value = "订单明细")
    private List<TmCargoDetail> cargoList;




}
