package com.prolog.rdc.tms.app.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;

/**
 * 运单明细表
 *
 * @author zhangsj
 * @since 2022-03-30 14:15:01
 */
@Data
@Table("tms_shipbill_detail")
public class TmsShipbillDetailModel implements Serializable {

	private static final long serialVersionUID = 374788088439137176L;

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

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

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

	@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 = "货主ID")
	@Column(value = "cargo_owner_id")
	private Long cargoOwnerId;

	@ApiModelProperty(value = "货主编码")
	@Column(value = "cargo_owner_code")
	private String cargoOwnerCode;

	@ApiModelProperty(value = "货主名称")
	@Column(value = "cargo_owner_name")
	private String cargoOwnerName;

	@ApiModelProperty(value = "明细行号")
	@Column(value = "seqno")
	private Integer seqno;

	@ApiModelProperty(value = "原明细行号")
	@Column(value = "original_seqno")
	private Integer originalSeqno;

	@ApiModelProperty(value = "商品ID")
	@Column(value = "item_id")
	private Long itemId;

	@ApiModelProperty(value = "商品编码")
	@Column(value = "item_code")
	private String itemCode;

	@ApiModelProperty(value = "商品名称")
	@Column(value = "item_name")
	private String itemName;

	@ApiModelProperty(value = "商品品类ID")
	@Column(value = "item_category_id")
	private Long itemCategoryId;

	@ApiModelProperty(value = "商品品类编码")
	@Column(value = "item_category_code")
	private String itemCategoryCode;

	@ApiModelProperty(value = "商品品类名称")
	@Column(value = "item_category_name")
	private String itemCategoryName;

	@ApiModelProperty(value = "包装类型  数据字典PACK_TYPE:1纸箱  2包装袋")
	@Column(value = "pack_type")
	private Integer packType;

	@ApiModelProperty(value = "货物温层  数据字典CARGO_THERMOSPHERE:1常温 2冷藏 3冷冻")
	@Column(value = "cargo_thermosphere")
	private Integer cargoThermosphere;

	@ApiModelProperty(value = "件数")
	@Column(value = "pcs")
	private BigDecimal pcs;

	@ApiModelProperty(value = "体积")
	@Column(value = "volume")
	private BigDecimal volume;

	@ApiModelProperty(value = "重量")
	@Column(value = "weight")
	private BigDecimal weight;

	@ApiModelProperty(value = "备注")
	@Column(value = "memo")
	private String memo;

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

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

	@ApiModelProperty(value = "字符属性扩展1")
	@Column(value = "ext_str1")
	private String extStr1;

	@ApiModelProperty(value = "字符属性扩展2")
	@Column(value = "ext_str2")
	private String extStr2;

	@ApiModelProperty(value = "字符属性扩展3")
	@Column(value = "ext_str3")
	private String extStr3;

	@ApiModelProperty(value = "字符属性扩展4")
	@Column(value = "ext_str4")
	private String extStr4;

	@ApiModelProperty(value = "字符属性扩展5")
	@Column(value = "ext_str5")
	private String extStr5;

	@ApiModelProperty(value = "数值属性扩展1")
	@Column(value = "ext_num1")
	private BigDecimal extNum1;

	@ApiModelProperty(value = "数值属性扩展2")
	@Column(value = "ext_num2")
	private BigDecimal extNum2;

	@ApiModelProperty(value = "数值属性扩展3")
	@Column(value = "ext_num3")
	private BigDecimal extNum3;

	@ApiModelProperty(value = "数值属性扩展4")
	@Column(value = "ext_num4")
	private BigDecimal extNum4;

	@ApiModelProperty(value = "数值属性扩展5")
	@Column(value = "ext_num5")
	private BigDecimal extNum5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展1")
	@Column(value = "ext_date1")
	private Date extDate1;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展2")
	@Column(value = "ext_date2")
	private Date extDate2;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展3")
	@Column(value = "ext_date3")
	private Date extDate3;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展4")
	@Column(value = "ext_date4")
	private Date extDate4;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展5")
	@Column(value = "ext_date5")
	private Date extDate5;

	@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;

	@ApiModelProperty(value = "库存件数")
	@Column(value = "inventory_pcs")
	private Integer inventoryPcs;

	@ApiModelProperty(value = "暂存位")
	@Column(value = "staging_location")
	private String stagingLocation;

	// STD-DEVELOP20220823 lhb 销售单模式 20220919 start
	@ApiModelProperty(value = "发货件数")
	@Column(value = "delivery_pcs")
	private BigDecimal deliveryPcs;

	@ApiModelProperty(value = "原始件数")
	@Column(value = "orig_pcs")
	private BigDecimal origPcs;

	@ApiModelProperty(value = "关闭件数")
	@Column(value = "closing_pcs")
	private BigDecimal closingPcs;
	// STD-DEVELOP20220823 lhb 销售单模式 20220919 end

	@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;

	@ApiModelProperty(value = "运单关闭人")
	@Column(value = "closeperson")
	private String closeperson;

	@ApiModelProperty(value = "签收件数")
	@Column(value = "sign_in_pcs")
	private BigDecimal signInPcs;

	@ApiModelProperty(value = "温控区间（上限）")
	@Column(value = "temperature_ctl_upper_limit")
	private BigDecimal temperatureCtlUpperLimit;

	@ApiModelProperty(value = "温控区间（下限）")
	@Column(value = "temperature_ctl_lower_limit")
	private BigDecimal temperatureCtlLowerLimit;

	@ApiModelProperty(value = "计划发货件数")
	@Column(value = "plan_delivery_pcs")
	private BigDecimal planDeliveryPcs;

	@ApiModelProperty(value = "提货件数")
	@Column(value = "pick_up_pcs")
	private BigDecimal pickUpPcs;

	@ApiModelProperty(value = "单位体积")
	@Column(value = "unit_volume")
	private BigDecimal unitVolume;

	@ApiModelProperty(value = "单位重量")
	@Column(value = "unit_weight")
	private BigDecimal unitWeight;

	@ApiModelProperty(value = "计划发运日期")
	@Column(value = "plan_delivery_date")
	private Date planDeliveryDate;

	@ApiModelProperty(value = "计划入库日期")
	@Column(value = "plan_warehousing_date")
	private Date planWarehousingDate;

	@ApiModelProperty(value = "实际入库日期")
	@Column(value = "actual_warehousing_date")
	private Date actualWarehousingDate;

	@ApiModelProperty(value = "是否超限  0否 1是")
	@Column(value = "is_transfinite")
	private Integer isTransfinite;

	@ApiModelProperty(value = "超限说明")
	@Column(value = "transfinite_description")
	private String transfiniteDescription;

	@ApiModelProperty(value = "长(cm)")
	@Column(value = "length")
	private BigDecimal length;

	@ApiModelProperty(value = "宽(cm)")
	@Column(value = "width")
	private BigDecimal width;

	@ApiModelProperty(value = "高(cm)")
	@Column(value = "height")
	private BigDecimal height;

	@ApiModelProperty(value = "计划状态 初始空,10已作成计划单")
	@Column(value = "plan_status")
	private Integer planStatus;

	@ApiModelProperty(value = "父明细主键")
	@Column(value = "father_id")
	private String fatherId;

	@ApiModelProperty(value = "扫描状态 数据字典SCAN_STATUS:10初始 20已装车扫描")
	@Column(value = "scan_status")
	private Integer scanStatus;

}
