package com.brilliance.isc.vo.bop;

import com.brilliance.mda.runtime.mda.util.Decimals;
import com.brilliance.mda.support.jakson.serialize.BigDecimalSerializeRate;
import com.brilliance.mda.support.jakson.serialize.DecimalLength;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;

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

@JsonInclude(JsonInclude.Include.NON_NULL)
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class DbfResultVo {
    //申报号码
    private String rptno ;
    //【是否报送过】
    private String sndflg ;
    //【基础信息状态】
    private String bassta ;
    //【申报信息状态】
    private String dclsta ;
    //【核销信息状态】
    private String vrfsta ;
    //【所属机构】
    private String bchnam ;
    //【经办日期】
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date credat;
    //操作类型
    private String actiontype ;
    //修改/删除原因
    private String actiondesc ;
    //付款人类型
    private String custype ;
    //个人身份证件号码
    private String idcode ;
    //组织机构
    private String custcod ;
    //付款人名称
    private String custnm ;
    //收款人名称
    private String oppuser ;
    //付款币种
    private String txccy ;
    //付款金额
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal txamt  = Decimals.ZERO_SCALE2;
    //'汇汇率
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(8)
    private BigDecimal exrate  = Decimals.ZERO_SCALE8;
    //'汇金额
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal lcyamt  = Decimals.ZERO_SCALE2;
    //人民币帐号/银行卡号
    private String lcyacc ;
    //现汇金额
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal fcyamt  = Decimals.ZERO_SCALE2;
    //外汇帐号/银行卡号
    private String fcyacc ;
    //其它金额
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal othamt  = Decimals.ZERO_SCALE2;
    //其它帐号/银行卡号
    private String othacc ;
    //结算方式
    private String method ;
    //银行业务编号
    private String buscode ;
    //实际付款币种
    private String actuccy ;
    //实际付款金额
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal actuamt  = Decimals.ZERO_SCALE2;
    //扣费币种
    private String outchargeccy ;
    //扣费金额
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal outchargeamt  = Decimals.ZERO_SCALE2;
    //信用证/保函编号
    private String lcbgno ;
    //开证日期
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date issdate;
    //期限
    private long tenor ;

    //操作类型
    private String vrfActiontype ;
    //修改/删除原因
    private String vrfActiondesc ;
    //收款人常驻国家/地区编码
    private String country ;
    //是否出口核销项下收汇
    private String isref ;
    //付款类型
    private String paytype ;
    //付汇性'
    private String payattr ;
    //交易编码1
    private String txcode ;
    //相应金额1
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal tc1amt  = Decimals.ZERO_SCALE2;
    //交易附言1
    private String txrem ;
    //交易编码2
    private String txcode2 ;
    //相应金额2
    @JsonSerialize(using = BigDecimalSerializeRate.class)
    @DecimalLength(2)
    private BigDecimal tc2amt  = Decimals.ZERO_SCALE2;
    //交易附言2
    private String tx2rem ;
    //合同号
    private String contrno ;
    //发票号
    private String invoino ;
    //提运单号
    private String billno ;
    //合同金额
    private BigDecimal contamt  = new BigDecimal("0.00");
    //外汇局批件/备案表号
    private String regno ;
    //填报人
    private String crtuser ;
    //填报人电话
    private String inptelc ;
    //申报日期
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date rptdate;
}
