package com.prolog.rdc.tms.model.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

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;

@Data
@Table(value = "bms_shipbill_settlement")
public class BmsShipbillSettlementModel implements Serializable {

	private static final long serialVersionUID = 1226991090608101127L;

	@ApiModelProperty(value = "")
	@Id
	@Column(value = "id")
	private Long id;

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

	@ApiModelProperty(value = "结算单号")
	@Column(value = "settlement_no")
	private String settlementNo;

	@ApiModelProperty(value = "费用单号")
	@Column(value = "expense_no")
	private String expenseNo;

	@ApiModelProperty(value = "结算单名称")
	@Column(value = "settlement_name")
	private String settlementName;

	@ApiModelProperty(value = "结算周期 SETTLEMENT_CYCLE")
	@Column(value = "settlement_cycle")
	private Integer settlementCycle;

	@ApiModelProperty(value = "往来单位id")
	@Column(value = "carrier_id")
	private Integer carrierId;

	@ApiModelProperty(value = "往来单位编码")
	@Column(value = "carrier_code")
	private String carrierCode;

	@ApiModelProperty(value = "往来单位名称")
	@Column(value = "carrier_name")
	private String carrierName;

	@ApiModelProperty(value = "结算部门")
	@Column(value = "settlement_department")
	private String settlementDepartment;

	@ApiModelProperty(value = "结算部门ID")
	@Column(value = "settlement_department_id")
	private String settlementDepartmentId;

	@ApiModelProperty(value = "结算部门编码")
	@Column(value = "settlement_department_code")
	private String settlementDepartmentCode;

	@ApiModelProperty(value = "结算公司id")
	@Column(value = "settlement_company_id")
	private Long settlementCompanyId;

	@ApiModelProperty(value = "结算公司编码")
	@Column(value = "settlement_company_code")
	private String settlementCompanyCode;

	@ApiModelProperty(value = "结算公司")
	@Column(value = "settlement_company")
	private String settlementCompany;

	@ApiModelProperty(value = "挂帐结束日期")
	@Column(value = "card_end_date")
	private Date cardEndDate;

	@ApiModelProperty(value = "开票结束日期")
	@Column(value = "invoice_start_date")
	private Date invoiceEndDate;

	@ApiModelProperty(value = "税点")
	@Column(value = "tax_point")
	private String taxPoint;

	@ApiModelProperty(value = "含税金额")
	@Column(value = "tax_amt")
	private BigDecimal taxAmt;

	@ApiModelProperty(value = "无税金额")
	@Column(value = "no_tax_amt")
	private BigDecimal noTaxAmt;

	@ApiModelProperty(value = "总税额")
	@Column(value = "tot_tax")
	private BigDecimal totTax;

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

	@ApiModelProperty(value = "状态 0：草稿 1：审核中, 2审核完成  99作废")
	@Column(value = "status")
	private Integer status;

	/*
	 * @ApiModelProperty(value = "")
	 * 
	 * @Column(value = "attr_str1") private String attrStr1;
	 * 
	 * @ApiModelProperty(value = "")
	 * 
	 * @Column(value = "attr_str2") private String attrStr2;
	 * 
	 * @ApiModelProperty(value = "")
	 * 
	 * @Column(value = "attr_str3") private String attrStr3;
	 * 
	 * @ApiModelProperty(value = "")
	 * 
	 * @Column(value = "attr_str4") private String attrStr4;
	 * 
	 * @ApiModelProperty(value = "")
	 * 
	 * @Column(value = "attr_str5") private String attrStr5;
	 */

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

	@ApiModelProperty(value = "")
	@Column(value = "enterprise_name")
	private String enterpriseName;

	@ApiModelProperty(value = "")
	@Column(value = "createperson")
	private String createperson;

	@ApiModelProperty(value = "")
	@Column(value = "createtime")
	private Date createtime;

	@ApiModelProperty(value = "")
	@Column(value = "updateperson")
	private String updateperson;

	@ApiModelProperty(value = "")
	@Column(value = "updatetime")
	private Date updatetime;

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

}
