package com.prolog.rdc.tms.model.dto.planMng;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import io.swagger.annotations.ApiModel;
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;

/**
 * 计划明细单DTO
 *
 * @author lhb
 * @since 2023-06-07 15:30:16
 */
@Data
@ApiModel("计划明细单DTO")
public class PlanBillDetailDTO implements Serializable {

	private static final long serialVersionUID = -95869941042132913L;

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

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

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

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

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

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

	@ApiModelProperty(value = "货主ID")
	private Long cargoOwnerId;

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

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

	@ApiModelProperty(value = "收货方ID")
	private Long consigneeId;

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "超限提交日期")
	private Date transfiniteCommitDate;

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

	@ApiModelProperty(value = "装车地点")
	private String loadingLocation;

	@ApiModelProperty(value = "待发运情况说明")
	private String deliveryDescription;

	@ApiModelProperty(value = "产品名称,多个运单的产品名称,分隔组合")
	private String productName;

	@ApiModelProperty(value = "是否过磅 0:否 1:是")
	private Integer isWeigh;

	@ApiModelProperty(value = "是否过磅 0:否 1:是")
	private String isWeighName;

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

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

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

	@ApiModelProperty(value = "仓库ID")
	private Long branchId;

	@ApiModelProperty(value = "仓库编码")
	private String branchCode;

	@ApiModelProperty(value = "仓库名称")
	private String branchName;

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

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

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

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

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "是否超限  0否 1是")
	private String isTransfiniteName;


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

	@ApiModelProperty(value = "计划箱数")
	private Long planPcs;

	@ApiModelProperty(value = "实际箱数")
	private Long actualPcs;

	@ApiModelProperty(value = "计划车数")
	private Long planVehicleNumber;

	@ApiModelProperty(value = "实际车数")
	private Long actualVehicleNumber;

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

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

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

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

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


	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "创建时间")
	private Date createtime;

	@ApiModelProperty(value = "创建人")
	private String createperson;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@Column(value = "updatetime")
	private Date updatetime;

	@ApiModelProperty(value = "修改人")
	private String updateperson;

	@ApiModelProperty(value = "颜色标记 底纹背景颜色")
	private String colorTagBgdColor;

	@ApiModelProperty(value = "颜色标记 字体颜色")
	private String colorTagFontColor;

	@ApiModelProperty(value = "记录标记语")
	private String recordTagWord;

	@ApiModelProperty(value = "运单状态 数据字典SHIPBILL_STATUS:0已作废 10初始化 20已提交 5已回退")
	private Integer status;

	@ApiModelProperty(value = "运单状态名称")
	private String statusName;
}
