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 DbbResultVo {
    //申报号码
    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 dclActiontype ;
    //修改/删除原因
    private String dclActiondesc ;
    //收款人常驻国家/地区编码
    private String country ;
    //付款类型
    private String paytype ;
    //交易编码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 isref ;
    //申请人
    private String crtuser ;
    //申请人电话
    private String inptelc ;
    //申报日期
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date rptdate;
    //外汇局批件/备案表号
    private String regno ;
    //操作类型
    private String vrfActiontype ;
    //修改/删除原因
    private String vrfActiondesc ;
    //合同号
    private String contrno ;
    //发票号
    private String invoino ;
    //填报人
    private String vrfCrtuser ;
    //填报人电话
    private String vrfInptelc ;
    //申报日期
    @JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date vrfRptdate;
}
