Field59AGenerate.java 3.95 KB
Newer Older
miniphoto committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
package com.prowidesoftware.brilliance.mx2mt.mt103.impl;

import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00800102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation11;
import com.prowidesoftware.swift.model.mx.dic.FIToFICustomerCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;

/**
 * 1,若节点<AnyBIC>有值,则设置59 option为“A”,同时BIC取此栏位;
 * 2,账号取值规则和节点与59相同
 * <CdtTrfTxInf>[1]<Cdtr><Id><OrgId><AnyBIC>
 */
public class Field59AGenerate extends AbstractMx2MtFieldsGenerate {
    private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field59AGenerate.class);
    @Override
    public void fieldsGenerate() throws SwiftException {
        logger.info("Field59AGenerate start.");
        try {
            MxPacs00800102 obj =  (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
            if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
                return;
            }
            FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
            List<CreditTransferTransactionInformation11> cdtTrfTxInf = fiToFICstmrCdtTrf.getCdtTrfTxInf();
            if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
                if (cdtTrfTxInf.get(0) != null
                        && cdtTrfTxInf.get(0).getCdtr() != null
                        && cdtTrfTxInf.get(0).getCdtr().getId() != null
                        && cdtTrfTxInf.get(0).getCdtr().getId().getOrgId() != null
                        && cdtTrfTxInf.get(0).getCdtr().getId().getOrgId().getBICOrBEI() != null){
                    map.put("field59AKey","A");
                }
                if (cdtTrfTxInf.get(0).getCdtrAcct() != null
                        && cdtTrfTxInf.get(0).getCdtrAcct().getId() != null){
                    if (cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN() != null){
                        map.put("field59Account","/" + cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN());
                    }
                    if ((cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
                            && cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId() != null)
                            &&
                            (cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
                                    && cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getSchmeNm() != null
                                    && cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getSchmeNm().getCd() != null)){
                        map.put("field59Account","//CH" + cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId());
                    }
                }
                if (cdtTrfTxInf.get(0).getCdtrAcct() != null
                        && cdtTrfTxInf.get(0).getCdtrAcct().getId() != null){
                    if ((cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
                            && cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId() != null)
                            &&
                            (cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
                                    && cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getSchmeNm() != null
                                    && cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getSchmeNm().getCd() == null)){
                        map.put("field59Account","/" + cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId());
                    }
                }
            }
        } catch(Exception e) {
            logger.error(e.getMessage());
            throw new SwiftException("ERROR", "Convert MT103 Field59A error");
        }

    }
}