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 lhb
 * @since 2023-06-07 13:51:50
 */
@Data
@Table("tms_transport_plan_bill_Detail")
public class TmsTransPlanBillDetailModel implements Serializable {
	private static final long serialVersionUID = -83661984680307412L;

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

	@ApiModelProperty(value = "运输计划单ID")
	@Column(value = "plan_bill_id")
	private String planBillId;

	@ApiModelProperty(value = "运输计划单编号")
	@Column(value = "plan_bill_no")
	private String planBillNo;

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

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

	@ApiModelProperty(value = "运单明细行id")
	@Column(value = "shipbill_detail_id")
	private String shipbillDetailId;

	@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 = "收货方ID")
	@Column(value = "consignee_id")
	private Long consigneeId;

	@ApiModelProperty(value = "收货方编码")
	@Column(value = "consignee_code")
	private String consigneeCode;

	@ApiModelProperty(value = "收货方名称")
	@Column(value = "consignee_name")
	private String consigneeName;

	@ApiModelProperty(value = "收货方类型 数据字典CONSIGNEE_TYPE:1客户 2仓库 3供应商")
	@Column(value = "consignee_type")
	private Integer consigneeType;

	@ApiModelProperty(value = "订单ID")
	@Column(value = "order_id")
	private String orderId;

	@ApiModelProperty(value = "订单编号")
	@Column(value = "order_no")
	private String orderNo;

	@ApiModelProperty(value = "mes单据编号")
	@Column(value = "mes_order_no")
	private String mesOrderNo;

	@ApiModelProperty(value = "订单业务类型 数据字典ORDER_BUSINESS_TYPE：1销售订单-直送  2销售订单-供应商配送 3采购订单-供应商配送 4采购订单-自提 5销售退货 6采购退货 7调拨")
	@Column(value = "order_business_type")
	private Integer orderBusinessType;

	@ApiModelProperty(value = "产品名称")
	@Column(value = "product_name")
	private String productName;

	@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 = "备注")
	@Column(value = "memo")
	private String memo;

	@ApiModelProperty(value = "计划箱数")
	@Column(value = "plan_pcs")
	private BigDecimal planPcs;

	@ApiModelProperty(value = "实际箱数")
	@Column(value = "actual_pcs")
	private BigDecimal actualPcs;

	@ApiModelProperty(value = "计划重量")
	@Column(value = "plan_weight")
	private BigDecimal planWeight;

	@ApiModelProperty(value = "实际重量")
	@Column(value = "actual_weight")
	private BigDecimal actualWeight;

	@ApiModelProperty(value = "所属部门ID")
	@Column(value = "department_id")
	private String departmentId;

	@ApiModelProperty(value = "所属部门编码")
	@Column(value = "department_code")
	private String departmentCode;

	@ApiModelProperty(value = "所属部门名称")
	@Column(value = "department_name")
	private String departmentName;

	@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 = "plan_delivery_date")
	private String planDeliveryDate;

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

	@ApiModelProperty(value = "承运方名称")
	@Column(value = "carrier_name")
	private String carrierName;

	@ApiModelProperty(value = "计划单状态 数据字典：PLAN_BILL_STATUS:10待调度 20已调度")
	@Column(value = "status")
	private Integer status;
}
