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

/**
 * 单据 支出费用主表 Model
 *
 * @author lhb
 * @since 2023-04-10 18:57
 */
@Data
@Table(value = "bms_bill_pay_fee_header")
public class BmsBillPayFeeHeaderModel implements Serializable {

	private static final long serialVersionUID = 1250661358571549829L;

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

	@ApiModelProperty(value = "单据编号 运单编号/派车单编号")
	@Column(value = "bill_no")
	private String billNo;

	@ApiModelProperty(value = "派车单/运单 主键ID")
	@Column(value = "bill_id")
	private Long billId;

	@ApiModelProperty(value = "单据类型  运单/派车单 10 运单, 20 派车单")
	@Column(value = "bill_type")
	private Integer billType;


	@ApiModelProperty(value = "支出费用类型   1 支出托运费用, 2 支出司机费用")
	@Column(value = "pay_fee_type")
	private Integer payFeeType;

	@ApiModelProperty(value = "结算状态 CHECK_STATUS 0：未结算，1：对账提交，2：对账确认，3：结算单生成 4 结算单审核")
	@Column(value = "check_status")
	private Integer checkStatus;

	@ApiModelProperty(value = "支出总价 类型为支出的含税金额")
	@Column(value = "pay_amount")
	private BigDecimal payAmount;

	@ApiModelProperty(value = "合同支出总价 类型为支出的来源是价格表生成 含税金额")
	@Column(value = "contract_pay_amount")
	private BigDecimal contractPayAmount;

	@ApiModelProperty(value = "计费时间")
	@Column(value = "cost_date")
	private Date costDate;

	@ApiModelProperty(value = "计费合同")
	@Column(value = "cost_contract")
	private String costContract;

	@ApiModelProperty(value = "计费状态 1：计费成功，2：计费失败")
	@Column(value = "cost_status")
	private Integer costStatus;

	@ApiModelProperty(value = "计费失败原因")
	@Column(value = "cost_fail_reason")
	private String costFailReason;

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

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

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

	@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 = "核算时间")
	@Column(value = "settlement_date")
	private Date settlementDate;

	@Column(value = "settlement_status")
	@ApiModelProperty(value = "核算状态 0:未核算，1：核算待提交，2：核算审批中，3:核算完成 ")
	private Integer settlementStatus;

	@ApiModelProperty(value = "异常状态 0:非异常 1:异常")
	@Column(value = "abnormal_status")
	private Integer abnormalStatus;

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

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

	@Column(value = "createtime")
	@ApiModelProperty(value = "创建时间")
	private Date createtime;

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

	@Column(value = "updatetime")
	@ApiModelProperty(value = "最后修改时间")
	private Date updatetime;

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

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

}