Commit bd4d2a15 by miniphoto

103、202、202cov

parent 95de107f
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.android.tools.idea.compose.preview.runconfiguration.ComposePreviewRunConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
......@@ -29,9 +29,19 @@ public class Mx2MtConstants {
public static final String MT_TYPE_103 = "103";
public static final String MT_TYPE_202 = "202";
public static final String OUT_PUT_FILE_PATH = "outPutFilePath";
public static final String MX_OBJECT = "mxObj";
public static final String MT_TYPE = "mtType";
public static final String INS = "/INS/";
public static final String ACC = "/ACC/";
public static final String PHONBEN = "/PHONBEN/";
public static final String PHON = "/PHON/";
public static final String TELE = "/TELE/";
public static final String REC = "/REC/";
public static final String PHONIBK = "/PHONIBK/";
}
package com.prowidesoftware.brilliance.mx2mt;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.mt103.Mx2Mt103Creator;
import com.prowidesoftware.brilliance.mx2mt.mt202cov202.Mx2Mt202Creator;
import com.prowidesoftware.brilliance.mx2mt.mt900910.Mx2Mt900910Creator;
import com.prowidesoftware.brilliance.mx2mt.mt940950.Mx2Mt950Creator;
import com.prowidesoftware.swift.model.mx.AbstractMX;
......@@ -93,9 +95,11 @@ public class Mx2MtCreateManager {
}
public AbstractMx2MtCreator getMx2MtCreator(String msgType) throws SwiftException {
/*if ("pacs00800102".equals(msgType)) {
if ("pacs00800102".equals(msgType)) {
return new Mx2Mt103Creator();
} else */if ("camt05300102".equals(msgType)) {
} else if ("pacs00900102".equals(msgType)){
return new Mx2Mt202Creator();
}else if ("camt05300102".equals(msgType)) {
return new Mx2Mt950Creator();
} else if ("camt05400102".equals(msgType)) {
return new Mx2Mt900910Creator();
......@@ -103,4 +107,10 @@ public class Mx2MtCreateManager {
throw new SwiftException("Invalid message type");
}
}
public static void main(String[] args) throws Exception {
Mx2MtCreateManager mx2MtCreateManager = new Mx2MtCreateManager();
String mt950 = mx2MtCreateManager.mx2mt(new File("f:/test/MxPacs00900102.xml"),
"f:/test/MT202.txt");
System.out.println(mt950);
}
}
package com.prowidesoftware.brilliance.mx2mt.mt103;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt103.impl.*;
import com.prowidesoftware.brilliance.util.TemplateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
public class Mx2Mt103Creator extends AbstractMx2MtCreator {
private static final Logger logger = LoggerFactory.getLogger(Mx2Mt103Creator.class);
/**
* Object MxPacs00800102
* receiverBic
* senderBic
* field20
* field13C
* field23B
* field23E
* field26T
* field32A
* field33B
* field36
* field50A
* field50F
* field50K
* field51A
* field52A
* field52D
* field53A
* field53B
* field53D
* field54A
* field54D
* field55A
* field55D
* field56A
* field56C
* field56D
* field57A
* field57C
* field57D
* field59
* field59A
* field70
* field71A
* field71F
* field71G
* field72
* field77B
* @return
*/
@Override
public List<Mx2MtFieldsGenerate> getFieldsGenerateList() {
List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new ReceiverBicFieldGenerate());
fieldsGenerateList.add(new SenderBicFieldGenerate());
fieldsGenerateList.add(new Field13CGenerate());
fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field23BGenerate());
fieldsGenerateList.add(new Field23EGenerate());
fieldsGenerateList.add(new Field26TGenerate());
fieldsGenerateList.add(new Field32AGenerate());
fieldsGenerateList.add(new Field33BGenerate());
fieldsGenerateList.add(new Field36Generate());
fieldsGenerateList.add(new Field50AGenerate());
fieldsGenerateList.add(new Field50FGenerate());
fieldsGenerateList.add(new Field50KGenerate());
fieldsGenerateList.add(new Field52AGenerate());
fieldsGenerateList.add(new Field52DGenerate());
fieldsGenerateList.add(new Field53AGenerate());
fieldsGenerateList.add(new Field53BGenerate());
fieldsGenerateList.add(new Field53DGenerate());
fieldsGenerateList.add(new Field54AGenerate());
fieldsGenerateList.add(new Field54DGenerate());
fieldsGenerateList.add(new Field55AGenerate());
fieldsGenerateList.add(new Field55DGenerate());
fieldsGenerateList.add(new Field56AGenerate());
fieldsGenerateList.add(new Field56CGenerate());
fieldsGenerateList.add(new Field56DGenerate());
fieldsGenerateList.add(new Field57AGenerate());
fieldsGenerateList.add(new Field57CGenerate());
fieldsGenerateList.add(new Field57DGenerate());
fieldsGenerateList.add(new Field59Generate());
fieldsGenerateList.add(new Field59AGenerate());
fieldsGenerateList.add(new Field70Generate());
fieldsGenerateList.add(new Field71AGenerate());
fieldsGenerateList.add(new Field71FGenerate());
fieldsGenerateList.add(new Field71GGenerate());
fieldsGenerateList.add(new Field72Generate());
fieldsGenerateList.add(new Field77BGenerate());
fieldsGenerateList.add(new CommonFieldFor103Generate());
return fieldsGenerateList;
}
@Override
public String generateMtMsg() {
map.forEach((key,value)->{
if (!Mx2MtConstants.MX_OBJECT.equals(key)) {
logger.info(key + "-" + value);
}
});
String outPutFilePath = (String)map.get(Mx2MtConstants.OUT_PUT_FILE_PATH);
String msg = TemplateUtil.makeFileByTemplate("swift_mt_103.vm", map, outPutFilePath, "utf-8");
return msg;
}
}
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.brilliance.util.DateUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00800102;
import com.prowidesoftware.swift.model.mx.dic.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CommonFieldFor103Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(CommonFieldFor103Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("CommonFieldFor103Generate start.");
try {
MxPacs00800102 mxPacs00800102 = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (mxPacs00800102 == null || mxPacs00800102.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = mxPacs00800102.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
String createDateStr = DateUtil.format(grpHdr.getCreDtTm(), "YYMMdd");
String createTimeStr = DateUtil.format(grpHdr.getCreDtTm(), "HHmm");
map.put("createDate", createDateStr);
map.put("createTime", createTimeStr);
String outDateStr = DateUtil.formatNow( "YYMMdd");
String outTimeStr = DateUtil.formatNow("HHmm");
map.put("outDate", outDateStr);
map.put("outTime", outTimeStr);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 CommonField error");
}
}
}
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.brilliance.util.DateUtil;
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 javax.xml.datatype.XMLGregorianCalendar;
import java.util.ArrayList;
import java.util.List;
public class Field13CGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field13CGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field13CGenerate 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();
List<String> filed13cList = new ArrayList<>();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getSttlmTmIndctn() != null){
if (cdtTrfTxInf.get(0).getSttlmTmIndctn().getDbtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getDbtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/SNDTIME/"+hmm+"+0800");
}
if (cdtTrfTxInf.get(0).getSttlmTmIndctn().getCdtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getCdtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/RNCTIME/"+hmm+"+0800");
}
if (cdtTrfTxInf.get(0).getSttlmTmReq().getCLSTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmReq().getCLSTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/CLSTIME/"+hmm+"+0800");
}
}
}
if (filed13cList.size() > 0) {
filed13cList.forEach(filed13c -> logger.info(":13c:"+filed13c));
map.put("filed13CList", filed13cList);
}
} catch(Exception e) {
logger.error(e.getMessage());
e.printStackTrace();
throw new SwiftException("ERROR", "Convert MT103 Field13C error");
}
}
}
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <GrpHdr><MsgId>
*/
public class Field20Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field20Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field20Generate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
map.put("field20", grpHdr.getMsgId());
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field20 error");
}
}
}
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;
/**
* 若<Cd>节点值为“SDVA”,则取默认值“CRED”,否则直接取<Prtry>节点作为23B的值
* <CdtTrfTxInf>[1]<PmtTpInf><SvcLvl><Cd>
* <CdtTrfTxInf>[1]<PmtTpInf><SvcLvl><Prtry>
*/
public class Field23BGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field23BGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field23BGenerate 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
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getPmtTpInf() != null
&& cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl() != null
&& cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl().getCd() != null) {
String field23B_cd = cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl().getCd();
if ("SDVA".equals(field23B_cd)) {
map.put("field23B","CRED");
} else if (cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl().getPrtry() != null){
String prtry = cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl().getPrtry();
map.put("field23B",prtry);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field23B error");
}
}
}
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.ArrayList;
import java.util.List;
/**
* //1)code部分的取值:
* //1.1)若<PmtTpInf><SvcLvl><Cd>节点为“SDVA”,则取值“SDVA”;
* //1.2)若<CtgyPurp><Cd>节点有值,则直接取此节点作为23E的值;
* //1.3)若<InstrForCdtrAgt><Cd>有值,则直接取此节点作为23E的值
* //2)直接取节点<InstrInf>的内容作为addtion information的值
* <CdtTrfTxInf>[1]<PmtTpInf><CtgyPurp><Cd>
* <CdtTrfTxInf>[1]<InstrForCdtrAgt><Cd>
* <CdtTrfTxInf>[1]<InstrForCdtrAgt><InstrInf>
*/
public class Field23EGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field23EGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field23EGenerate 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();
List<String> field23EList = new ArrayList<String>();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getPmtTpInf() != null
&& cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl() != null
&& cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl().getCd() != null){
String field23E_cd = cdtTrfTxInf.get(0).getPmtTpInf().getSvcLvl().getCd();
if ("SDVA".equals(field23E_cd)) {
field23EList.add("SDVA");
}
if (cdtTrfTxInf.get(0).getPmtTpInf().getCtgyPurp() !=null
&& cdtTrfTxInf.get(0).getPmtTpInf().getCtgyPurp().getCd() != null){
String field23E = cdtTrfTxInf.get(0).getPmtTpInf().getCtgyPurp().getCd();
field23EList.add(field23E);
}
if (cdtTrfTxInf.get(0).getInstrForCdtrAgt() != null
&& cdtTrfTxInf.get(0).getInstrForCdtrAgt().size() > 0
&& cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0) != null) {
if (cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0).getCd() != null) {
String field23E = cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0).getCd().value();
field23EList.add(field23E);
}
if (cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0).getInstrInf() != null) {
String field23E = cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0).getInstrInf();
map.put("field23E",field23E);
}
}
}
}
if (field23EList.size() > 0) {
field23EList.forEach(field23E -> logger.info(":23E:"+field23E));
map.put("field23EList", field23EList);
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field23E error");
}
}
}
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;
/**
* <CdtTrfTxInf>[1]<Purp><Prtry>
*/
public class Field26TGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field26TGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field26TGenerate 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).getPurp() != null
&& cdtTrfTxInf.get(0).getPurp().getPrtry() != null){
String field26T = cdtTrfTxInf.get(0).getPurp().getPrtry();
map.put("field26T",field26T);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field26T error");
}
}
}
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.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.brilliance.util.StringUtil;
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 javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.util.List;
public class Field32AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field32AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field32AGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
String month = "";
String day = "";
String year = "";
if (obj.getFIToFICstmrCdtTrf().getCdtTrfTxInf() != null
&& obj.getFIToFICstmrCdtTrf().getCdtTrfTxInf().size() >0
&& obj.getFIToFICstmrCdtTrf().getCdtTrfTxInf().get(0) != null
&& obj.getFIToFICstmrCdtTrf().getCdtTrfTxInf().get(0).getIntrBkSttlmDt() != null){
month = String.valueOf(obj.getFIToFICstmrCdtTrf().getCdtTrfTxInf().get(0).getIntrBkSttlmDt().getMonth());
day = String.valueOf(obj.getFIToFICstmrCdtTrf().getCdtTrfTxInf().get(0).getIntrBkSttlmDt().getDay());
year = String.valueOf(obj.getFIToFICstmrCdtTrf().getCdtTrfTxInf().get(0).getIntrBkSttlmDt().getYear()) + StringUtil.fillWithChar(month, "0", "left", 2) + StringUtil.fillWithChar(day, "0", "left", 2);
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
List<CreditTransferTransactionInformation11> cdtTrfTxInf = fiToFICstmrCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue() != null){
String yymMdd = "";
if (cdtTrfTxInf.get(0).getIntrBkSttlmDt() != null){
XMLGregorianCalendar dt = cdtTrfTxInf.get(0).getIntrBkSttlmDt();
yymMdd = DateUtil.format(dt, "YYMMdd");
}
String ccy = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy();
BigDecimal amt = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue();
String amtStr = NumberUtil.formatAmt(amt, ccy);
map.put("field32A",yymMdd+ccy+amtStr);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field32A error");
}
}
}
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.brilliance.util.NumberUtil;
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.math.BigDecimal;
import java.util.List;
public class Field33BGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field33BGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field33BGenerate 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).getIntrBkSttlmAmt() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy() != null){
String ccy = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy();
BigDecimal amt = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue();
String amtStr = NumberUtil.formatAmt(amt, ccy);
map.put("field33B",ccy+amtStr);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field33B error");
}
}
}
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.math.BigDecimal;
import java.util.List;
public class Field36Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field36Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field36Generate 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).getXchgRate() != null){
BigDecimal field36 = cdtTrfTxInf.get(0).getXchgRate();
map.put("field36",field36);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field36 error");
}
}
}
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>节点有值,则设置50 option为“A”,且BIC为此节点的值
* 2,若节点<IBAN>有值,则在此节点值前面加上“/”后,作为50的账号;
* 3,若节点<Othr><Id>有值,则在此节点值前面加上“//CH”后,作为50的账号;"
* "<CdtTrfTxInf>[1]<Dbtr><Id><OrgId><AnyBIC>
* <CdtTrfTxInf>[1]<DbtrAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<DbtrAcct><Id><Othr><Id>"
* **/
public class Field50AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field50AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field50AGenerate 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).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getDbtr().getId().getOrgId().getBICOrBEI() != null){
map.put("field50Key","A");
map.put("field50A",cdtTrfTxInf.get(0).getDbtr().getId().getOrgId().getBICOrBEI());
}
if (cdtTrfTxInf.get(0).getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN() != null){
map.put("field50Account","/" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field50Account","//CH" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field50A error");
}
}
}
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;
public class Field50FGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field50FGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field50FGenerate 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).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getDbtr().getId().getOrgId().getBICOrBEI() != null){
map.put("field50Key","F");
//TODO 为F条件待补充
}
if (cdtTrfTxInf.get(0).getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN() != null){
map.put("field50Account","/" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field50Account","//CH" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field50F error");
}
}
}
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;
public class Field50KGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field50KGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field50KGenerate 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).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getNm() != null){
map.put("field50Key","K");
}
if (cdtTrfTxInf.get(0).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getDbtr().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getDbtr().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field50Adr",adStr);
if (cdtTrfTxInf.get(0).getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN() != null){
map.put("field50Account","/" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field50Account","//CH" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field50K error");
}
}
}
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,若节点<BICFI>有值,则设置52 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为52的账号;
* 3,若节点<Othr><SchmeNm><Cd>有值,则取“//CH”+<Othr><Id>,则作为52的账号;否则直接取<Othr><Id>,则作为52的账号。
* <CdtTrfTxInf>[1]<DbtrAgt><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<DbtrAgtAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<DbtrAgtAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<DbtrAgtAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field52AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field52AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field52AGenerate 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).getDbtrAgt() != null
&& cdtTrfTxInf.get(0).getDbtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getDbtrAgt().getFinInstnId().getBIC() != null){
map.put("field52Key","A");
map.put("field52A",cdtTrfTxInf.get(0).getDbtrAgt().getFinInstnId().getBIC());
}
if (cdtTrfTxInf.get(0).getDbtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getIBAN() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId() != null){
map.put("field52Account","//CH" + cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId());
}
}else {
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field52A error");
}
}
}
\ No newline at end of file
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,若节点<Nm>有值,则设置52 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与52A相同
* <CdtTrfTxInf>[1]<DbtrAgt><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<DbtrAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field52DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field52DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field52DGenerate 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).getDbtrAgt() != null
&& cdtTrfTxInf.get(0).getDbtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getDbtrAgt().getFinInstnId().getNm() != null){
map.put("field52Key","D");
List<String> adrList = cdtTrfTxInf.get(0).getDbtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field52DAdr",adStr);
}
if (cdtTrfTxInf.get(0).getDbtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getIBAN() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId() != null){
map.put("field52Account","//CH" + cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId());
}
}else {
if (cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field52D error");
}
}
}
\ No newline at end of file
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 1,若节点<BICFI>有值,则设置53 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为53的账号;
* 3,若节点<Othr><Id>有值,则作为53的账号;
* <GrpHdr><SttlmInf><InstgRmbrsmntAgt><FinInstnId><BICFI>
* <GrpHdr><SttlmInf><InstgRmbrsmntAgtAcct><Id><IBAN>
* <GrpHdr><SttlmInf><InstgRmbrsmntAgtAcct><Id><Othr><Id>
* <GrpHdr><SttlmInf><InstgRmbrsmntAgtAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field53AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field53AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field53AGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
if (grpHdr.getSttlmInf() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){
map.put("field53Key","A");
map.put("field53",grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC());
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN());
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field53A error");
}
}
}
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* //如果<SttlmAcct><Id><IBAN>或<SttlmAcct><Id><Othr><Id>有值,则设置53 option为“B”:
* //1)若节点<IBAN>有值,则作为53B的账号;
* //2)若节点<Othr><Id>有值,则作为53B的账号;
* //<GrpHdr><SttlmInf><SttlmAcct><Id><IBAN>
* //<GrpHdr><SttlmInf><SttlmAcct><Id><Othr><Id>
* //<GrpHdr><SttlmInf><SttlmAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field53BGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field53BGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field53BGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
if (grpHdr.getSttlmInf() != null){
if ((grpHdr.getSttlmInf().getSttlmAcct() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN() != null)
|| (grpHdr.getSttlmInf().getSttlmAcct() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId() != null)){
map.put("field53Key","B");
}
if (grpHdr.getSttlmInf().getSttlmAcct() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN());
}
if (grpHdr.getSttlmInf().getSttlmAcct() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId());
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field53B error");
}
}
}
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* //1,若节点<Nm>有值,则设置53 option为“D”,且名称取自此节点,而地址需要合并截取???
* //2,账号取值规则和节点与53A相同
* //<GrpHdr><SttlmInf><InstgRmbrsmntAgt><FinInstnId><Nm>
* //<GrpHdr><SttlmInf><InstgRmbrsmntAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field53DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field53DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field53DGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
if (grpHdr.getSttlmInf() != null){
if ((grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getNm() != null)){
map.put("field53Key","D");
List<String> adrList = grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field53DAdr",adStr);
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN());
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field53D error");
}
}
}
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* //1,若节点<BICFI>有值,则设置54 option为“A”,同时BIC取此栏位;
* //2,若节点<IBAN>有值,则作为54的账号;
* //3,若节点<Othr><Id>有值,则作为54的账号;
* //<GrpHdr><SttlmInf><InstdRmbrsmntAgt><FinInstnId><BICFI>
* //<GrpHdr><SttlmInf><InstdRmbrsmntAgtAcct><Id><IBAN>
* //<GrpHdr><SttlmInf><InstdRmbrsmntAgtAcct><Id><Othr><Id>
*/
public class Field54AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field54AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field54AGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
if (grpHdr.getSttlmInf() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){
map.put("field54Key","A");
map.put("field54",grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC());
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN());
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field54A error");
}
}
}
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* //1,若节点<Nm>有值,则设置54 option为“D”,且名称取自此节点,而地址需要合并截取???
* //2,账号取值规则和节点与54A相同
* //<GrpHdr><SttlmInf><InstdRmbrsmntAgt><FinInstnId><Nm>
* //<GrpHdr><SttlmInf><InstdRmbrsmntAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field54DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field54DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field54DGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
if (grpHdr.getSttlmInf() != null){
if ((grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getNm() != null)){
map.put("field54Key","D");
List<String> adrList = grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field54DAdr",adStr);
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN());
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field54D error");
}
}
}
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* //1,若节点<BICFI>有值,则设置55 option为“A”,同时BIC取此栏位
* //2,若节点<IBAN>有值,则作为55的账号;
* //3,若节点<Othr><Id>有值,则作为55的账号;
* //<GrpHdr><SttlmInf><ThrdRmbrsmntAgt><FinInstnId><BICFI>
* //<GrpHdr><SttlmInf><ThrdRmbrsmntAgtAcct><Id><IBAN>
* //<GrpHdr><SttlmInf><ThrdRmbrsmntAgtAcct><Id><Othr><Id>
*/
public class Field55AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field55AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field55AGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
if (grpHdr.getSttlmInf() != null){
if (grpHdr.getSttlmInf().getThrdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgt().getFinInstnId().getBIC() != null){
map.put("field55Key","A");
map.put("field55",grpHdr.getSttlmInf().getThrdRmbrsmntAgt().getFinInstnId().getBIC());
}
if (grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field55Account",grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getIBAN());
}
if (grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field55Account",grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field55A error");
}
}
}
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.FIToFICustomerCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* //1,若节点<Nm>有值,则设置55 option为“D”,且名称取自此节点,而地址需要合并截取???
* //2,账号取值规则和节点与55A相同
* //<GrpHdr><SttlmInf><ThrdRmbrsmntAgt><FinInstnId><Nm>
* //<GrpHdr><SttlmInf><ThrdRmbrsmntAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field55DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field55DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field55DGenerate start.");
try {
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
FIToFICustomerCreditTransferV02 fiToFICstmrCdtTrf = obj.getFIToFICstmrCdtTrf();
GroupHeader33 grpHdr = fiToFICstmrCdtTrf.getGrpHdr();
if (grpHdr.getSttlmInf() != null){
if ((grpHdr.getSttlmInf().getThrdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgt().getFinInstnId().getNm() != null)){
map.put("field55Key","D");
List<String> adrList = grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field55DAdr",adStr);
}
if (grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field55Account",grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getIBAN());
}
if (grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field55Account",grpHdr.getSttlmInf().getThrdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field55D error");
}
}
}
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,若节点<BICFI>有值,则设置56 option为“A”,同时BIC取此栏位;
* //2,若节点<IBAN>有值,则作为56A的账号;
* //3,若节点<Othr><Id>有值,则作为56A的账号;
* //<CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><BICFI>
* //<CdtTrfTxInf>[1]<IntrmyAgt1Acct><Id><IBAN>
* //<CdtTrfTxInf>[1]<IntrmyAgt1Acct><Id><Othr><Id>
* //<CdtTrfTxInf>[1]<IntrmyAgt1Acct><Id><Othr><SchmeNm><Cd>
*/
public class Field56AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field56AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field56AGenerate 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).getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC() != null){
map.put("field56Key","A");
map.put("field56A",cdtTrfTxInf.get(0).getDbtrAgt().getFinInstnId().getBIC());
}
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field56A error");
}
}
}
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;
/**
* //如果<IntrmyAgt1><FinInstnId><BICFI>为空,且<IntrmyAgt1><FinInstnId><Nm>为空,
* //但节点<IBAN>有值,或者节点<Othr><Id>有值,则设置56option为“C”
* //若节点<Id><Othr><Id>不为空,则取“//CH”+此节点作为账号,否则取节点<MmbId>作为账号:
* //<CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><ClrSysMmbId><ClrSysId><Cd>
* //<CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><ClrSysMmbId><ClrSysId><Prtry>
* //<CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><ClrSysMmbId><MmbId>
* //<CdtTrfTxInf>[1]<IntrmyAgt1Acct><Id><Othr><Id>
*/
public class Field56CGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field56CGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field56CGenerate 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).getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC() == null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getNm() == null){
if ((cdtTrfTxInf.get(0).getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN() != null)
|| (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId() != null)){
map.put("field56Key","C");
}
}
}
if(cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1() != null){
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId() != null) {
map.put("field56Account", "//CH" + cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId());
}else if (cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getClrSysMmbId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getClrSysMmbId().getMmbId() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getClrSysMmbId().getMmbId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field56C error");
}
}
}
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,若节点<Nm>有值,则设置56 option为“D”,且名称取自此节点,而地址需要合并截取???
* //2,账号取值规则和节点与56A相同
* //<CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><Nm>
* //<CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field56DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field56DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field56DGenerate 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).getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getNm() != null){
map.put("field56Key","D");
List<String> adrList = cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field56DAdr",adStr);
}
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field56D error");
}
}
}
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,若节点<BICFI>有值,则设置57 option为“A”,同时BIC取此栏位;
* //2,若节点<IBAN>有值,则作为57A的账号;
* //3,若节点<Othr><Id>有值,则作为57A的账号;
* //<CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><BICFI>
* //<CdtTrfTxInf>[1]<CdtrAgtAcct><Id><IBAN>
* //<CdtTrfTxInf>[1]<CdtrAgtAcct><Id><Othr><Id>
* //<CdtTrfTxInf>[1]<CdtrAgtAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field57AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field57AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field57AGenerate 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).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC() != null){
map.put("field57Key","A");
map.put("field57A",cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC());
}
if (cdtTrfTxInf.get(0).getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field57A error");
}
}
}
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;
/**
* //如果<CdtrAgt><FinInstnId><BICFI>为空,且<CdtrAgt><FinInstnId><Nm>为空,
* // 但节点<IBAN>有值,或者节点<Othr><Id>有值,则设置57 option为“C”
* //若节点<Id><Othr><Id>不为空,则取“//CH”+此节点作为账号,否则取节点<MmbId>作为账号:
* //<CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><ClrSysMmbId><ClrSysId><Cd>
* //<CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><ClrSysMmbId><ClrSysId><Prtry>
* //<CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><ClrSysMmbId><MmbId>
* //<CdtTrfTxInf>[1]<CdtrAgtAcct><Id><Othr><Id>
*/
public class Field57CGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field57CGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field57CGenerate 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).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC() == null)
&& (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getNm() == null)){
if ((cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN() != null)
|| (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId() != null)){
map.put("field57Key","C");
}
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId());
}else if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getClrSysMmbId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getClrSysMmbId().getMmbId() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getClrSysMmbId().getMmbId());
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field57C error");
}
}
}
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,若节点<Nm>有值,则设置57 option为“D”,且名称取自此节点,而地址需要合并截取???
* //2,账号取值规则和节点与57A相同
* //<CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><Nm>
* //<CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field57DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field57DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field57DGenerate 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).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getNm() != null){
map.put("field57Key","D");
List<String> adrList = cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field57DAdr",adStr);
}
if (cdtTrfTxInf.get(0).getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field57D error");
}
}
}
\ No newline at end of file
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");
}
}
}
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,若节点<Nm>有值,则设置59 option为“”,且名称取自此节点,而地址需要合并截取???
* 2,若节点<IBAN>有值,则在此节点的值前面加上“/”后,作为59账号的值;
* 3,若节点<Othr><Id>有值,且节点<Othr><SchmeNm><Cd>有值,则在节点<Othr><Id>的值前面加上“//CH”后,作为59账号的值;
* 4,若节点<Othr><Id>有值,且节点<Othr><SchmeNm><Cd>没值,则在节点<Othr><Id>的值前面加上“/”后,作为59账号的值;" "<CdtTrfTxInf>[1]<Cdtr><Nm>
* <CdtTrfTxInf>[1]<Cdtr><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
* <CdtTrfTxInf>[1]<CdtrAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<CdtrAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<CdtrAcct><Id><Othr><SchmeNm><Cd>"
* **/
public class Field59Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field59Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field59Generate 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().getNm() != null){
map.put("field59Key","");
List<String> adrList = cdtTrfTxInf.get(0).getCdtr().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field59Adr",adStr);
}
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 Field59 error");
}
}
}
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.brilliance.util.StringUtil;
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;
/**
* 取此节点按4*35的格式拆分,放入70栏位中
* <CdtTrfTxInf>[1]<RmtInf><Ustrd>[1]
*/
public class Field70Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field70Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field70Generate 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).getRmtInf() != null
&& cdtTrfTxInf.get(0).getRmtInf().getUstrd() != null
&& cdtTrfTxInf.get(0).getRmtInf().getUstrd().get(0) != null){
String s = cdtTrfTxInf.get(0).getRmtInf().getUstrd().get(0);
StringUtil.getStringByEnter(s, 35, 4);
map.put("field70",s);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field70 error");
}
}
}
\ No newline at end of file
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)如果节点值为 'CRED',则71A取值为“BEN”
* 2)如果节点值为 'DEBT',则71A取值为“OUR”
* 3)如果节点值为'SHAR',则71A取值为“SHA”
* <CdtTrfTxInf>[1]<ChrgBr>
*/
public class Field71AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field71AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field71AGenerate 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).getChrgBr() != null
&& cdtTrfTxInf.get(0).getChrgBr().value() != null) {
String field71A_mx = cdtTrfTxInf.get(0).getChrgBr().value();
String field71A="";
if("CRED".equals(field71A_mx))
{
field71A="BEN";
}
else if("DEBT".equals(field71A_mx))
{
field71A="OUR";
}
else if("SHAR".equals(field71A_mx))
{
field71A="SHA";
}
map.put("field71A",field71A);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field71A error");
}
}
}
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,若71A为“BEN”或“SHA”,则此节点取值为71F
* //CdtTrfTxInf>[1]<ChrgsInf><Amt Ccy="XXX">
*/
public class Field71FGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field71FGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field71FGenerate 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).getChrgsInf().size() >0
&& cdtTrfTxInf.get(0).getChrgsInf().get(0) != null
&& cdtTrfTxInf.get(0).getChrgsInf().get(0).getAmt() != null
&& cdtTrfTxInf.get(0).getChrgsInf().get(0).getAmt().getCcy() != null) {
if ("BEN".equals(map.get("field71A")) || "SHA".equals(map.get("field71A"))){
map.put("field71F",cdtTrfTxInf.get(0).getChrgsInf().get(0).getAmt().getCcy());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field71F error");
}
}
}
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,若71A为“OUR”,则此节点取值为71G;
* <CdtTrfTxInf>[1]<ChrgsInf><Amt Ccy="XXX">
*/
public class Field71GGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field71GGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field71GGenerate 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).getChrgsInf().size() > 0
&& cdtTrfTxInf.get(0).getChrgsInf().get(0) != null
&& cdtTrfTxInf.get(0).getChrgsInf().get(0).getAmt() != null
&& cdtTrfTxInf.get(0).getChrgsInf().get(0).getAmt().getCcy() != null) {
if ("OUR".equals(map.get("field71A"))){
map.put("field71G",cdtTrfTxInf.get(0).getChrgsInf().get(0).getAmt().getCcy());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field71G error");
}
}
}
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,如果<BICFI>有值,则取值为“/INS/”+此节点的值
* //2,如果<Nm>有值,则取值为“/INS/”+此节点的值,超过35字节则将剩下内容用“//内容“的方式进行截取
* //3,若<InstrForCdtrAgt><InstrInf>有值,则转为“/ACC/此节点的值”,超过35字节则将剩下内容用“//内容“的方式进行截取
* //4,若<InstrForNxtAgt><InstrInf>有值,则转为“/REC/此节点的值”,超过35字节则将剩下内容用“//内容“的方式进行截取
* //<CdtTrfTxInf>[1]<PrvsInstgAgt1><FinInstnId><BICFI>
* //<CdtTrfTxInf>[1]<PrvsInstgAgt1><FinInstnId><Nm>
* //<CdtTrfTxInf>[1]<InstrForCdtrAgt><InstrInf>
* //<CdtTrfTxInf>[1]<InstrForNxtAgt><InstrInf>
*/
public class Field72Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field72Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field72Generate 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).getPrvsInstgAgt() != null
&& cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC() != null) {
map.put("field72Adr1","/INS/" + cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC());
}
if (cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getNm() != null){
String str = cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getNm();
String strs = cutForStr(str,35);
map.put("field72Adr2","/INS/" + strs);
}
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getInstrForCdtrAgt().size() > 0
&& cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0) != null
&& cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0).getInstrInf() != null){
String str = cdtTrfTxInf.get(0).getInstrForCdtrAgt().get(0).getInstrInf();
String strs = cutForStr(str,35);
map.put("field72Adr3","/ACC/" + strs);
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getInstrForNxtAgt().size() > 0
&& cdtTrfTxInf.get(0).getInstrForNxtAgt().get(0) != null
&& cdtTrfTxInf.get(0).getInstrForNxtAgt().get(0).getInstrInf() != null){
String str = cdtTrfTxInf.get(0).getInstrForNxtAgt().get(0).getInstrInf();
String strs = cutForStr(str,35);
map.put("field72Adr4","/REC/" + strs);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field72 error");
}
}
//循环截取多少位字节并以//隔开
public String cutForStr(String str,int n){
String line = "";
byte[] b1 = str.getBytes();
for (int i = 0; i <= Math.ceil(b1.length/n); i++){
int b = str.getBytes().length;
if (b > 15){
String s = cutBeginStr(str,n);
line = line + s + "//";
str = str.substring(s.length());
}else{
line = line + str;
}
}
return line;
}
//截取多少位字节
public static String cutBeginStr(String strs,int length){
int sum = 0;
String finalStr = "";
if (null == strs || strs.getBytes().length <= length){
finalStr = (strs == null?"":strs);
}else{
for (int i = 0;i < strs.length();i++){
String str = strs.substring(i,i+1);
//累加单个字符字节数
sum += str.getBytes().length;
if (sum > length){
finalStr = strs.substring(0,i);
break;
}
}
}
return finalStr;
}
}
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,取<RgltryRptg>[1]<Dtls>[1]<Inf>[1]作为第一行信息
* //2,取<RgltryRptg>[2]<Dtls>[1]<Inf>[1]作为第二行信息
* //3,取<RgltryRptg>[3]<Dtls>[1]<Inf>[1]作为第二行信息
* //<CdtTrfTxInf>[1]<RgltryRptg>[1]<Dtls>[1]<Inf>[1]
*/
public class Field77BGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt103.impl.Field77BGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field77BGenerate 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).getRgltryRptg().size() > 0){
if (cdtTrfTxInf.get(0).getRgltryRptg().get(0) != null
&& cdtTrfTxInf.get(0).getRgltryRptg().get(0).getDtls().size() > 0
&& cdtTrfTxInf.get(0).getRgltryRptg().get(0).getDtls().get(0).getInf().size() > 0
&& cdtTrfTxInf.get(0).getRgltryRptg().get(0).getDtls().get(0).getInf().get(0) != null) {
if (cdtTrfTxInf.get(0).getRgltryRptg().get(1) != null
&& cdtTrfTxInf.get(0).getRgltryRptg().get(1).getDtls().size() >0
&& cdtTrfTxInf.get(0).getRgltryRptg().get(1).getDtls().get(0) != null
&& cdtTrfTxInf.get(0).getRgltryRptg().get(1).getDtls().get(0).getInf().size() > 0
&& cdtTrfTxInf.get(0).getRgltryRptg().get(1).getDtls().get(0).getInf().get(0) != null){
if (cdtTrfTxInf.get(0).getRgltryRptg().get(2) != null
&& cdtTrfTxInf.get(0).getRgltryRptg().get(2).getDtls().size() > 0
&& cdtTrfTxInf.get(0).getRgltryRptg().get(2).getDtls().get(0) != null
&& cdtTrfTxInf.get(0).getRgltryRptg().get(2).getDtls().get(0).getInf().size() > 0
&& cdtTrfTxInf.get(0).getRgltryRptg().get(2).getDtls().get(0).getInf().get(0) != null){
map.put("field77B",cdtTrfTxInf.get(0).getRgltryRptg().get(0).getDtls().get(0).getInf().get(0)
+ Mx2MtConstants.NEW_LINE + cdtTrfTxInf.get(0).getRgltryRptg().get(1).getDtls().get(0).getInf().get(0)
+ Mx2MtConstants.NEW_LINE + cdtTrfTxInf.get(0).getRgltryRptg().get(2).getDtls().get(0).getInf().get(0));
}
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 Field77B error");
}
}
}
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.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00800102;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ReceiverBicFieldGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(ReceiverBicFieldGenerate.class);
/**
* <GrpHdr><InstgAgt><FinInstnId><BICFI>
*/
@Override
public void fieldsGenerate() {
logger.info("ReceiverBicFieldGenerate start.");
try{
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
GroupHeader33 grpHdr = obj.getFIToFICstmrCdtTrf().getGrpHdr();
if (grpHdr != null) {
if (grpHdr.getInstgAgt() != null
&& grpHdr.getInstgAgt().getFinInstnId() != null
&& grpHdr.getInstgAgt().getFinInstnId().getBIC() != null){
String receiverBic = grpHdr.getInstgAgt().getFinInstnId().getBIC();
logger.info("Receiver Bic : " + receiverBic);
if (!StringUtil.isEmpty(receiverBic)) {
String mtReceiverBic = "";
if (receiverBic.length() == 8) {
mtReceiverBic = receiverBic + Mx2MtConstants.BICSUFFIX;
} else if (receiverBic.length() == 11) {
mtReceiverBic = receiverBic.substring(0, 8) + Mx2MtConstants.BICMIDDLE + receiverBic.substring(8);
} else {
throw new SwiftException("ERROR", "ReceiverBic length is invalid.");
}
map.put("ReceiverBic", mtReceiverBic);
}
}
}
}catch(Exception e){
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 ReceiverBic error.");
}
}
}
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.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00800102;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader33;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SenderBicFieldGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(ReceiverBicFieldGenerate.class);
/**
* <GrpHdr><InstgAgt><FinInstnId><BICFI>
*/
@Override
public void fieldsGenerate() {
logger.info("SenderBicFieldGenerate start.");
try{
MxPacs00800102 obj = (MxPacs00800102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFIToFICstmrCdtTrf() == null) {
return;
}
GroupHeader33 grpHdr = obj.getFIToFICstmrCdtTrf().getGrpHdr();
if (grpHdr != null) {
if (grpHdr.getInstgAgt() != null
&& grpHdr.getInstgAgt().getFinInstnId() != null
&& grpHdr.getInstgAgt().getFinInstnId().getBIC() != null){
String senderBic = grpHdr.getInstgAgt().getFinInstnId().getBIC();
logger.info("Sender Bic : " + senderBic);
if (!StringUtil.isEmpty(senderBic)) {
String mtsenderBic = "";
if (senderBic.length() == 8) {
mtsenderBic = senderBic + Mx2MtConstants.BICSUFFIX;
} else if (senderBic.length() == 11) {
mtsenderBic = senderBic.substring(0, 8) + Mx2MtConstants.BICMIDDLE + senderBic.substring(8);
} else {
throw new SwiftException("ERROR", "senderBic length is invalid.");
}
map.put("SenderBic", mtsenderBic);
}
}
}
}catch(Exception e){
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT103 SenderBic error.");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.*;
import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov.*;
import com.prowidesoftware.brilliance.util.TemplateUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
public class Mx2Mt202Creator extends AbstractMx2MtCreator {
private static final Logger logger = LoggerFactory.getLogger(Mx2Mt202Creator.class);
@Override
public List<Mx2MtFieldsGenerate> getFieldsGenerateList() {
List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new CommonFieldFor202Generate());
fieldsGenerateList.add(new ReceiverBicFieldGenerate());
fieldsGenerateList.add(new SenderBicFieldGenerate());
fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field21Generate());
fieldsGenerateList.add(new Field13CGenerate());
fieldsGenerateList.add(new Field32AGenerate());
fieldsGenerateList.add(new Field52AGenerate());
fieldsGenerateList.add(new Field52DGenerate());
fieldsGenerateList.add(new Field53AGenerate());
fieldsGenerateList.add(new Field53BGenerate());
fieldsGenerateList.add(new Field53DGenerate());
fieldsGenerateList.add(new Field54AGenerate());
fieldsGenerateList.add(new Field54DGenerate());
fieldsGenerateList.add(new Field56AGenerate());
fieldsGenerateList.add(new Field56DGenerate());
fieldsGenerateList.add(new Field57AGenerate());
fieldsGenerateList.add(new Field57DGenerate());
fieldsGenerateList.add(new Field58AGenerate());
fieldsGenerateList.add(new Field58DGenerate());
fieldsGenerateList.add(new Field72Generate());
fieldsGenerateList.add(new Field50AGenerate());
fieldsGenerateList.add(new Field50FGenerate());
fieldsGenerateList.add(new Field50KGenerate());
fieldsGenerateList.add(new FieldB52AGenerate());
fieldsGenerateList.add(new FieldB52DGenerate());
fieldsGenerateList.add(new FieldB56Generate());
fieldsGenerateList.add(new FieldB57Generate());
fieldsGenerateList.add(new FieldB59Generate());
fieldsGenerateList.add(new FieldB70Generate());
fieldsGenerateList.add(new FieldB33BGenerate());
return fieldsGenerateList;
}
@Override
public String generateMtMsg() {
map.forEach((key,value)->{
if (!Mx2MtConstants.MX_OBJECT.equals(key)) {
logger.info(key + "-" + value);
}
});
if (getMtCov()){
map.put("isCov","202cov");
}else{
map.put("isCov","202");
}
String outPutFilePath = (String)map.get(Mx2MtConstants.OUT_PUT_FILE_PATH);
String msg = TemplateUtil.makeFileByTemplate("swift_mt_202cov.vm", map, outPutFilePath, "utf-8");
return msg;
}
/**
* 判断使用202模板或者202cov模板
* 依据202cov必有值项50有值的话则使用202cov的模板
* @return true:202cov,false:202
*/
public boolean getMtCov(){
Boolean msg = false;
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
msg = false;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
String bicOrBEI = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI();
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null){
msg = true;
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null) {
msg = true;
}
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getNm() != null){
msg = true;
}
return msg;
} catch(Exception e) {
msg = false;
return msg;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CommonFieldFor202Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(CommonFieldFor202Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("CommonFieldFor202Generate start.");
try {
MxPacs00900102 mxPacs00900102 = (MxPacs00900102)map.get("mxObj");
if (mxPacs00900102 == null || mxPacs00900102.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = mxPacs00900102.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
String createDateStr = DateUtil.format(grpHdr.getCreDtTm(), "YYMMdd");
String createTimeStr = DateUtil.format(grpHdr.getCreDtTm(), "HHmm");
map.put("createDate", createDateStr);
map.put("createTime", createTimeStr);
String outDateStr = DateUtil.formatNow( "YYMMdd");
String outTimeStr = DateUtil.formatNow("HHmm");
map.put("outDate", outDateStr);
map.put("outTime", outTimeStr);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 CommonField error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.util.ArrayList;
import java.util.List;
/**
* 1,如果<DbtDtTm>节点有值,则转为/SNDTIME/HHMM+0800,HHMM是此节点中的时间,+0800是香港时区
* 2,如果<CdtDtTm>节点有值,则转为/RNCTIME/HHMM+0800,HHMM是此节点中的时间,+0800是香港时区
* 3,如果<CLSTm>节点有值,则转为/CLSTIME/HHMM+0800,HHMM是此节点中的时间,+0800是香港时区
* <CdtTrfTxInf>[1]<SttlmTmIndctn><DbtDtTm>
* <CdtTrfTxInf>[1]<SttlmTmIndctn><CdtDtTm>
* <CdtTrfTxInf>[1]<SttlmTmReq><CLSTm>
*/
public class Field13CGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field13CGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field13CGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
List<CreditTransferTransactionInformation13> cdtTrfTxInf = obj.getFinInstnCdtTrf().getCdtTrfTxInf();
List<String> filed13cList = new ArrayList<>();
if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmIndctn().getDbtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getDbtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/SNDTIME/"+hmm+"+0800");
}
if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmIndctn().getCdtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getCdtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/RNCTIME/"+hmm+"+0800");
}
if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq() != null
&& obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq().getCLSTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmReq().getCLSTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/CLSTIME/"+hmm+"+0800");
}
if (filed13cList.size() > 0) {
filed13cList.forEach(field61 -> logger.info(":61:"+field61));
map.put("filed13CList", filed13cList);
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field13C error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <GrpHdr><MsgId>
*/
public class Field20Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field20Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field20Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
map.put("field20", grpHdr.getMsgId());
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field20 error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <CdtTrfTxInf>[1]<PmtId><EndToEndId>
*/
public class Field21Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field21Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field21Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
if (finInstnCdtTrf.getCdtTrfTxInf() != null && finInstnCdtTrf.getCdtTrfTxInf().size() > 0) {
if (finInstnCdtTrf.getCdtTrfTxInf().get(0) != null
&& finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId() != null
&& finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId() != null){
String endToEndId = finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId();
map.put("field21", endToEndId);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field21 error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.util.List;
/**
* 直接取<IntrBkSttlmDt>节点作为32A的value date,Amt和Ccy看另一个节点,XXX是货币
* <CdtTrfTxInf>[1]<IntrBkSttlmDt>
* <CdtTrfTxInf>[1]<IntrBkSttlmAmt Ccy="XXX"'>
*/
public class Field32AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field32AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field32AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue() != null){
String yymMdd = "";
if (cdtTrfTxInf.get(0).getIntrBkSttlmDt() != null){
XMLGregorianCalendar dt = cdtTrfTxInf.get(0).getIntrBkSttlmDt();
yymMdd = DateUtil.format(dt, "YYMMdd");
}
String ccy = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy();
BigDecimal amt = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue();
String amtStr = NumberUtil.formatAmt(amt, ccy);
map.put("field32A",yymMdd+ccy+amtStr);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field32A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<BICFI>有值,则设置52 option为“A”,同时BIC取此栏位
* 2,若节点<IBAN>有值,则作为52A的账号;
* 3,若节点<Othr><SchmeNm><Cd>有值,则取“//CH”+<Othr><Id>,则作为52A的账号;否则直接取<Othr><Id>,则作为52A的账号
* <CdtTrfTxInf>[1]<Dbtr><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<DbtrAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<DbtrAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<DbtrAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field52AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field52AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field52AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getBIC() != null){
map.put("field52Key","A");
map.put("field52A",cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field52Account","//CH" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field52A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置52 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与52A相同
* <CdtTrfTxInf>[1]<Dbtr><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<Dbtr><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field52DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field52DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field52DGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getNm() != null){
map.put("field52Key","D");
if (cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field52DAdr",adStr);
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field52Account","//CH" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field52D error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 1,若节点<BICFI>有值,则设置53 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为53A的账号;
* 3,若节点<Othr><Id>有值,则作为53A的账号;
* <GrpHdr><SttlmInf><InstgRmbrsmntAgt><FinInstnId><BICFI>
* <GrpHdr><SttlmInf><InstgRmbrsmntAgtAcct><Id><IBAN>
* <GrpHdr><SttlmInf><InstgRmbrsmntAgtAcct><Id><Othr><Id>
* <GrpHdr><SttlmInf><InstgRmbrsmntAgtAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field53AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field53AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field53AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
if (grpHdr != null){
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){
map.put("field53AKey","A");
map.put("field53A",grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getBIC());
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field53A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 如果<SttlmAcct><Id><IBAN>或<SttlmAcct><Id><Othr><Id>有值,则设置53 option为“B”:
* 1)若节点<IBAN>有值,则作为53B的账号;
* 2)若节点<Othr><Id>有值,则作为53B的账号;
* <GrpHdr><SttlmInf><SttlmAcct><Id><IBAN>
* <GrpHdr><SttlmInf><SttlmAcct><Id><Othr><Id>
* <GrpHdr><SttlmInf><SttlmAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field53BGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field53BGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field53BGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
if (grpHdr != null){
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getSttlmAcct() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId() != null){
if (grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN() != null
|| (grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId() != null)){
map.put("field53BKey","B");
}
if (grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field53B error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置53 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与53A相同
* <GrpHdr><SttlmInf><InstgRmbrsmntAgt><FinInstnId><Nm>
* <GrpHdr><SttlmInf><InstgRmbrsmntAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field53DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field53DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field53DGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
if (grpHdr != null){
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getNm() != null){
map.put("field53DKey","D");
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getPstlAdr() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field53Adr",adStr);
}
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field53D error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 1,若节点<BICFI>有值,则设置54 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为54A的账号;
* 3,若节点<Othr><Id>有值,则作为54A的账号;
* <GrpHdr><SttlmInf><InstdRmbrsmntAgt><FinInstnId><BICFI>
* <GrpHdr><SttlmInf><InstdRmbrsmntAgtAcct><Id><IBAN>
* <GrpHdr><SttlmInf><InstdRmbrsmntAgtAcct><Id><Othr><Id>
* <GrpHdr><SttlmInf><InstdRmbrsmntAgtAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field54AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field54AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field54AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
if (grpHdr != null){
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){
map.put("field54AKey","A");
map.put("field54A",grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC());
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field54Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field54Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field54A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置54 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与54A相同
* <GrpHdr><SttlmInf><InstdRmbrsmntAgt><FinInstnId><Nm>
* <GrpHdr><SttlmInf><InstdRmbrsmntAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field54DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field54DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field54DGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
if (grpHdr != null){
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getNm() != null){
map.put("field54DKey","D");
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field54Adr",adStr);
}
if (grpHdr.getSttlmInf() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field54Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field54Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field54D error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<BICFI>有值,则设置56 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为56A的账号;
* 3,若节点<Othr><Id>有值,则作为56A的账号;
* <CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<IntrmyAgt1Acct><Id><IBAN>
* <CdtTrfTxInf>[1]<IntrmyAgt1Acct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<IntrmyAgt1Acct><Id><Othr><SchmeNm><Cd>
*/
public class Field56AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field56AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field56AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC() != null){
map.put("field56AKey","A");
map.put("field56A",cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC());
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field56A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置56 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与56A相同
* <CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<IntrmyAgt1><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field56DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field56DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field56DGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getNm() != null){
map.put("field56DKey","D");
if (cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field56Adr",adStr);
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field56D error");
}
}
}
\ No newline at end of file
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<BICFI>有值,则设置57 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为57A的账号;
* 3,若节点<Othr><Id>有值,则作为57A的账号;
* <CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<CdtrAgtAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<CdtrAgtAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<CdtrAgtAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field57AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field57AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field57AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC() != null){
map.put("field57AKey","A");
map.put("field57A",cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field57A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置57 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与57A相同
* <CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<CdtrAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field57DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field57DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field57DGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getNm() != null){
map.put("field57DKey","D");
if (cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field57Adr",adStr);
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field57D error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<BICFI>有值,则设置58 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为58A的账号;
* 3,若节点<Othr><Id>有值,则作为58A的账号;
* <CdtTrfTxInf>[1]<Cdtr><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<CdtrAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<CdtrAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<CdtrAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field58AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field58AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field58AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtr() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC() != null){
map.put("field58AKey","A");
map.put("field58A",cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN() != null){
map.put("field58Account",cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId() != null){
map.put("field58Account",cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field58A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置58 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与58A相同
* <CdtTrfTxInf>[1]<Cdtr><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<Cdtr><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class Field58DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field58DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field58DGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtr() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getNm() != null){
map.put("field58DKey","D");
if (cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field58Adr",adStr);
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN() != null){
map.put("field58Account",cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId() != null){
map.put("field58Account",cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field58D error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.InstructionForCreditorAgent2;
import com.prowidesoftware.swift.model.mx.dic.InstructionForNextAgent1;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若<BICFI>有值,则转为“/INS/此节点的值”
* 2,如果<Nm>有值,则取值为“/INS/”+此节点的值,超过35字节则将剩下内容用“//内容“的方式进行截取
* 3,如果节点<InstrForCdtrAgt><Cd>没有值,但节点<InstrForCdtrAgt><InstrInf>有值,则取值“/ACC/”+<InstrForCdtrAgt><InstrInf>节点的值
* 4,如果节点<InstrForCdtrAgt><Cd>值为PHOB,则取值“/PHONBEN/”+<InstrForCdtrAgt><InstrInf>节点的值
* 5,如果节点<InstrForCdtrAgt><Cd>值为TELB,则取值“/PHONBEN/”+<InstrForCdtrAgt><InstrInf>节点的值
* 6,如果节点<InstrForNxtAgt><Cd>值为PHOA,且56a不存在,则取值“/PHON/”+<InstrForNxtAgt><InstrInf>节点的值
* 7,如果节点<InstrForNxtAgt><Cd>值为TELA,则取值“/TELE/”+<InstrForNxtAgt><InstrInf>节点的值
* 8,如果节点<InstrForNxtAgt><Cd>值为空,且<InstrInf>节点有值,则取值“/REC/”+<InstrForNxtAgt><InstrInf>节点的值
* 9,如果节点<InstrForNxtAgt><Cd>值为PHOA,且56a存在,则取值“/PHONIBK/”+<InstrForNxtAgt><InstrInf>节点的值
* <CdtTrfTxInf>[1]<PrvsInstgAgt1><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<PrvsInstgAgt1><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<InstrForCdtrAgt><Cd>
* <CdtTrfTxInf>[1]<InstrForCdtrAgt><InstrInf>
* <CdtTrfTxInf>[1]<InstrForNxtAgt><Cd>
* <CdtTrfTxInf>[1]<InstrForNxtAgt><InstrInf>
* <CdtTrfTxInf>[1]<RmtInf><Ustrd>
*/
public class Field72Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.Field72Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field72Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 && cdtTrfTxInf.get(0) != null){
String bic = "";
String nm = "";
String acc = "";
String phob = "";
String telb = "";
String phoa = "";
String tela = "";
String rec = "";
if (cdtTrfTxInf.get(0).getPrvsInstgAgt() != null
&& cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC() != null){
bic = cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC();
}
if (cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getNm() != null){
nm = Mx2MtConstants.INS + cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC();
}
if (cdtTrfTxInf.get(0).getInstrForCdtrAgt() != null && cdtTrfTxInf.get(0).getInstrForCdtrAgt().size() >0){
List<InstructionForCreditorAgent2> ifcList = cdtTrfTxInf.get(0).getInstrForCdtrAgt();
for (int i=0; i<ifcList.size(); i++){
InstructionForCreditorAgent2 ifca2 = ifcList.get(i);
if (ifca2.getCd() == null && ifca2.getInstrInf() != null){
acc = acc + Mx2MtConstants.ACC + ifca2.getInstrInf();
}
if (ifca2.getCd() != null && "PHOB".equals(ifca2.getCd())){
phob = phob + Mx2MtConstants.PHONBEN + ifca2.getInstrInf();
}
if (ifca2.getCd() != null && "TELB".equals(ifca2.getCd())){
telb = telb + Mx2MtConstants.PHONBEN + ifca2.getInstrInf();
}
}
}
if (cdtTrfTxInf.get(0).getInstrForNxtAgt() != null && cdtTrfTxInf.get(0).getInstrForNxtAgt().size() > 0){
List<InstructionForNextAgent1> ifn = cdtTrfTxInf.get(0).getInstrForNxtAgt();
for (int i=0; i<ifn.size(); i++){
InstructionForNextAgent1 ifna = ifn.get(i);
if (ifna.getCd() != null && "PHOA".equals(ifna.getCd())){
if (map.get("field56A") == null){
phoa = phoa + Mx2MtConstants.PHON + ifna.getInstrInf();
}else{
phoa = phoa + Mx2MtConstants.PHONIBK + ifna.getInstrInf();
}
}
if (ifna.getCd() != null && "TELA".equals(ifna.getCd())){
tela = tela + Mx2MtConstants.TELE + ifna.getInstrInf();
}
if (ifna.getCd() == null && ifna.getInstrInf() != null){
rec = rec + Mx2MtConstants.REC + ifna.getInstrInf();
}
}
}
}
String str72 = bic + nm + acc + phob + telb + phoa + tela +rec;
//35个字符截取
String enter = StringUtil.getStringByEnter(str72, 35, 6);
map.put("filed72",enter);
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field58A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <GrpHdr><InstgAgt><FinInstnId><BICFI>
*/
public class ReceiverBicFieldGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.ReceiverBicFieldGenerate.class);
/**
* <GrpHdr><InstgAgt><FinInstnId><BICFI>
*/
@Override
public void fieldsGenerate() {
logger.info("ReceiverBicFieldGenerate start.");
try{
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
GroupHeader35 grpHdr = obj.getFinInstnCdtTrf().getGrpHdr();
if (grpHdr != null) {
if (grpHdr.getInstgAgt() != null
&& grpHdr.getInstgAgt().getFinInstnId() != null
&& grpHdr.getInstgAgt().getFinInstnId().getBIC() != null){
String receiverBic = grpHdr.getInstgAgt().getFinInstnId().getBIC();
logger.info("Receiver Bic : " + receiverBic);
if (!StringUtil.isEmpty(receiverBic)) {
String mtReceiverBic = "";
if (receiverBic.length() == 8) {
mtReceiverBic = receiverBic + Mx2MtConstants.BICSUFFIX;
} else if (receiverBic.length() == 11) {
mtReceiverBic = receiverBic.substring(0, 8) + Mx2MtConstants.BICMIDDLE + receiverBic.substring(8);
} else {
throw new SwiftException("ERROR", "ReceiverBic length is invalid.");
}
map.put("receiverBic", mtReceiverBic);
}
}
}
}catch(Exception e){
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 ReceiverBic error.");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SenderBicFieldGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(ReceiverBicFieldGenerate.class);
/**
* <GrpHdr><InstgAgt><FinInstnId><BICFI>
*/
@Override
public void fieldsGenerate() {
logger.info("ReceiverBicFieldGenerate start.");
try{
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
GroupHeader35 grpHdr = obj.getFinInstnCdtTrf().getGrpHdr();
if (grpHdr != null) {
if (grpHdr.getInstgAgt() != null
&& grpHdr.getInstgAgt().getFinInstnId() != null
&& grpHdr.getInstgAgt().getFinInstnId().getBIC() != null){
String receiverBic = grpHdr.getInstgAgt().getFinInstnId().getBIC();
logger.info("Sender Bic : " + receiverBic);
if (!StringUtil.isEmpty(receiverBic)) {
String mtsenderBic = "";
if (receiverBic.length() == 8) {
mtsenderBic = receiverBic + Mx2MtConstants.BICSUFFIX;
} else if (receiverBic.length() == 11) {
mtsenderBic = receiverBic.substring(0, 8) + Mx2MtConstants.BICMIDDLE + receiverBic.substring(8);
} else {
throw new SwiftException("ERROR", "senderBic length is invalid.");
}
map.put("senderBic", mtsenderBic);
}
}
}
}catch(Exception e){
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 SenderBic error.");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若<AnyBIC>节点有值,则取为B\50A,且BIC取此值
* 2,若节点<IBAN>有值,则在此节点值前面加上“/”后,作为50A的账号;
* 3,若节点<Othr><SchmeNm><Cd>有值,则取“//CH”+<Othr><Id>,则作为B\50A的账号;否则直接取<Othr><Id>,则作为B\50A的账号。
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><Dbtr><Id><OrgId><AnyBIC>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAcct><Id><Othr><SchmeNm><Cd>
*/
public class Field50AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field50AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field50AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null){
map.put("fieldB50Option","A");
map.put("fieldB50A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI());
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN() != null){
map.put("fieldB50Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN());
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null) {
map.put("fieldB50Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null){
map.put("fieldB50Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field50A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,待补充???
* 2,账号取值规则与B\50A相同
*/
public class Field50FGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field50FGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field50FGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
// TODO 50F取值待补充
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null){
map.put("fieldB50Option","F");
map.put("fieldB50F",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI());
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN() != null){
map.put("fieldB50Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null) {
map.put("fieldB50Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null){
map.put("fieldB50Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field50F error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若<Dbtr><Nm>有录入,则设置B\50 option为“K”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则与B\50A相同
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><Dbtr><Nm>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><Dbtr><PstlAdr><AdrLine>
*/
public class Field50KGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field50KGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field50KGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getNm() != null){
map.put("fieldB50Option","K");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("fieldB50K",adStr);
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN() != null){
map.put("fieldB50Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null) {
map.put("fieldB50Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null){
map.put("fieldB50Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field50K error");
}
}
}
\ No newline at end of file
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.math.BigDecimal;
import java.util.List;
/**
* 直接取此节点作为33B的货币和金额,XXX是货币
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><InstdAmt Ccy="xxx">
*/
public class FieldB33BGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov.FieldB33BGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB33BGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getCcy() != null){
String ccy = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getCcy();
BigDecimal amt = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getValue();
String amtStr = NumberUtil.formatAmt(amt, ccy);
map.put("field33B",ccy+amtStr);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field33B error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若<BICFI>节点有值,则取为B\52A,且BIC取此值
* 2,若节点<IBAN>有值,则在此节点值前面加上“/”后,作为52A的账号;
* 3,若节点<Othr><SchmeNm><Cd>有值,则取“//CH”+<Othr><Id>,则作为B\50A的账号;否则直接取<Othr><Id>,则作为B\52A的账号。
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAgt><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAgtAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAgtAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAgtAcct><Id><Othr><SchmeNm><Cd>
*/
public class FieldB52AGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(FieldB52AGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB52AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getBIC() != null){
map.put("fieldB52Option","A");
map.put("fieldB52A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN() != null){
map.put("fieldB52Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB52Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId() != null){
map.put("fieldB52Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId());
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field52A error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置B\52 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与B\52A相同
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAgt><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><DbtrAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class FieldB52DGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(FieldB52DGenerate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB52DGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getNm() != null){
map.put("fieldB52Option","D");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("fieldB52D",adStr);
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN() != null){
map.put("fieldB52Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getIBAN());
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB52Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId() != null){
map.put("fieldB52Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId());
}
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field52D error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<BICFI>有值,则设置B\56 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为56A的账号;
* 3,若节点<Othr><SchmeNm><Cd>有值,则取“//CH”+<Othr><Id>,则作为B\56A的账号;否则直接取<Othr><Id>,则作为B\56A的账号。
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1Acct><Id><IBAN>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1Acct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1Acct><Id><Othr><SchmeNm><Cd>
* 56c
* 如果<IntrmyAgt1><FinInstnId><BICFI>为空,且<IntrmyAgt1><FinInstnId><Nm>为空,但节点<IBAN>有值,或者节点<Othr><Id>有值,则设置B\56option为“C”
* 若节点<Id><Othr><Id>不为空,则取“//CH”+此节点作为账号,否则取节点<MmbId>作为账号:
<CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1><FinInstnId><ClrSysMmbId><ClrSysId><Cd>
<CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1><FinInstnId><ClrSysMmbId><ClrSysId><Prtry>
<CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1><FinInstnId><ClrSysMmbId><MmbId>
* 56d
* 1,若节点<Nm>有值,则设置B\56 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与B\56A相同
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><IntrmyAgt1><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class FieldB56Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(FieldB56Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB56Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC() != null){
map.put("fieldB56Option","A");
map.put("fieldB56A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null) {
map.put("fieldB56Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}else if(cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC() == null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getNm() == null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null
|| (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null)){
map.put("fieldB56Option","C");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null){
if(cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("fieldB56Account","//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getClrSysMmbId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getClrSysMmbId().getMmbId() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getClrSysMmbId().getMmbId());
}
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getNm() != null){
map.put("fieldB56Option","D");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("fieldB56D",adStr);
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null) {
map.put("fieldB56Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field56 error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 57A
* 1,若节点<BICFI>有值,则设置B\57 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为57A的账号;
* 3,若节点<Othr><SchmeNm><Cd>有值,则取“//CH”+<Othr><Id>,则作为B\57A的账号;否则直接取<Othr><Id>,则作为B\57A的账号。
* <CdtTrfTxInf>[1]<<UndrlygCstmrCdtTrf>CdtrAgt><FinInstnId><BICFI>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAgtAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAgtAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAgtAcct><Id><Othr><SchmeNm><Cd>
* 57C
* 如果<CdtrAgt><FinInstnId><BICFI>为空,且<CdtrAgt><FinInstnId><Nm>为空,但节点<IBAN>有值,或者节点<Othr><Id>有值,则设置B\57 option为“C”
* 若节点<Id><Othr><Id>不为空,则取“//CH”+此节点作为账号,否则取节点<MmbId>作为账号:
* 57d
* 1,若节点<Nm>有值,则设置B\57 option为“D”,且名称取自此节点,而地址需要合并截取???
* 2,账号取值规则和节点与B\57A相同
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAgt><FinInstnId><Nm>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAgt><FinInstnId><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
*/
public class FieldB57Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(FieldB57Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB57Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC() != null) {
map.put("fieldB57Option", "A");
map.put("fieldB57",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN() != null){
map.put("fieldB57Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}
}
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getNm() == null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN() != null
|| (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null)){
map.put("fieldB57Option","C");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null){
map.put("fieldB57Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getClrSysMmbId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getClrSysMmbId().getMmbId() != null){
map.put("fieldB57Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getClrSysMmbId().getMmbId());
}
}else{
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getNm() != null){
map.put("fieldB57Option", "D");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("fieldB57D",adStr);
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN() != null){
map.put("fieldB57Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}
}
}
}
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field57 error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 1,若节点<Nm>有值,则设置B\59 option为“”,且名称取自此节点,而地址需要合并截取???
* 2,若节点<IBAN>有值,则在此节点的值前面加上“/”后,作为B\59账号的值;
* 3,若节点<Othr><Id>有值,且节点<Othr><SchmeNm><Cd>有值,则在节点<Othr><Id>的值前面加上“//CH”后,作为B\59账号的值;
* 4,若节点<Othr><Id>有值,且节点<Othr><SchmeNm><Cd>没值,则在节点<Othr><Id>的值前面加上“/”后,作为B\59账号的值;
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><Cdtr><Nm>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><Cdtr><PstlAdr><AdrLine>[1],<AdrLine>[2],<AdrLine>[3]
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAcct><Id><IBAN>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAcct><Id><Othr><Id>
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><CdtrAcct><Id><Othr><SchmeNm><Cd>
* 1,若节点<AnyBIC>有值,则设置B\59 option为“A”,同时BIC取此栏位;
* 2,账号取值规则和节点与B\59相同
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><Cdtr><Id><OrgId><AnyBIC>
*/
public class FieldB59Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(FieldB59Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB59Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getNm() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC() != null) {
map.put("fieldB59Option", "");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("fieldB59",adStr);
}
}else{
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId().getBICOrBEI() != null){
map.put("fieldB59Option", "A");
map.put("fieldB59A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId().getBICOrBEI());
}
}
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getIBAN() != null){
map.put("fieldB59Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getIBAN());
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
map.put("fieldB57Account","//CH"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getId());
}else {
map.put("fieldB57Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getId());
}
}
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field57 error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
/**
* 取此节点按4*35的格式拆分,放入70栏位中(最多4行每行最多35个字符)
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><RmtInf><Ustrd>[1]
*/
public class FieldB70Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(FieldB70Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB70Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().size() >0
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0) != null){
String s = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0);
String enter = StringUtil.getStringByEnter(s, 35, 4);
map.put("field70",enter);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field70 error");
}
}
}
......@@ -27,10 +27,24 @@
</Doc:InstdAgt>
</Doc:GrpHdr>
<Doc:CdtTrfTxInf>
<Doc:SttlmTmIndctn>
<Doc:DbtDtTm>2022-03-13T20:24:42.112+08:00</Doc:DbtDtTm>
<Doc:CdtDtTm>2022-03-13T22:30:42.112+08:00</Doc:CdtDtTm>
</Doc:SttlmTmIndctn>
<Doc:SttlmTmReq>
<Doc:CLSTm>2022-03-13T21:21:42.112+08:00</Doc:CLSTm>
</Doc:SttlmTmReq>
<Doc:InstrForCdtrAgt>
<Doc:Cd>ghjk</Doc:Cd>
<Doc:InstrInf>789556</Doc:InstrInf>
</Doc:InstrForCdtrAgt>
<Doc:PmtTpInf>
<Doc:SvcLvl>
<Doc:Cd>SDVA1</Doc:Cd>
<Doc:Prtry>CRED</Doc:Prtry>
<Doc:CtgyPurp>
<Doc:Cd>BNKKJJ</Doc:Cd>
</Doc:CtgyPurp>
<Doc:SvcLvl>
<Doc:Cd>SDVA</Doc:Cd>
<Doc:Prtry>1231234165</Doc:Prtry>
</Doc:SvcLvl>
</Doc:PmtTpInf>
<Doc:PmtId>
......@@ -40,7 +54,7 @@
</Doc:PmtId>
<Doc:IntrBkSttlmAmt Ccy="USD">23453</Doc:IntrBkSttlmAmt>
<Doc:IntrBkSttlmDt>2022-03-13+08:00</Doc:IntrBkSttlmDt>
<Doc:ChrgBr>CRED</Doc:ChrgBr>
<Doc:ChrgBr>DEBT</Doc:ChrgBr>
<Doc:Dbtr>
<Doc:Nm>JOE DOE</Doc:Nm>
<Doc:PstlAdr>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.009.001.02">
<FinInstnCdtTrf>
<GrpHdr>
<MsgId>00010013800002001234</MsgId>
<CreDtTm>2022-04-02T13:35:04.807+08:00</CreDtTm>
<NbOfTxs>EODY</NbOfTxs>
<SttlmInf>
<InstgRmbrsmntAgt>
<FinInstnId>
<BIC>BJWHS12X</BIC>
<Nm>NUM123</Nm>
</FinInstnId>
</InstgRmbrsmntAgt>
<InstdRmbrsmntAgt>
<FinInstnId>
<BIC>BJWHS12X</BIC>
<Nm>NUM123</Nm>
</FinInstnId>
</InstdRmbrsmntAgt>
<InstdRmbrsmntAgtAcct>
<Id>
<IBAN>S15612345678012345</IBAN>
<Othr>
<Id>789465123132165</Id>
<SchmeNm>
<Cd>741852</Cd>
</SchmeNm>
</Othr>
</Id>
</InstdRmbrsmntAgtAcct>
</SttlmInf>
<InstgAgt>
<FinInstnId>
<BIC>77777777777</BIC>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
</FinInstnId>
</InstgAgt>
<InstdAgt>
<FinInstnId>
<BIC>77777777777</BIC>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
</FinInstnId>
</InstdAgt>
</GrpHdr>
<CdtTrfTxInf>
<UndrlygCstmrCdtTrf>
<Dbtr>
<Nm>nm01</Nm>
<PstlAdr>
<AdrLine>ade456</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<AnyBIC>anybic01</AnyBIC>
</OrgId>
</Id>
</Dbtr>
<DbtrAgt>
<FinInstnId>
<BIC>77777777777</BIC>
<PstlAdr>
<AdrLine>adr789</AdrLine>
</PstlAdr>
<Nm>nm333333</Nm>
</FinInstnId>
</DbtrAgt>
<IntrmyAgt1>
<FinInstnId>
<BIC>77777777777</BIC>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
<Nm>nm333333</Nm>
<ClrSysMmbId>
<MmbId>mmbid01</MmbId>
<ClrSysId>
<Cd>cd02</Cd>
<Prtry>prtry01</Prtry>
</ClrSysId>
</ClrSysMmbId>
</FinInstnId>
</IntrmyAgt1>
<CdtrAgtAcct>
<Id>
<IBAN>S15612345678012345</IBAN>
<Othr>
<Id>789465123132165</Id>
<SchmeNm>
<Cd>741852</Cd>
</SchmeNm>
</Othr>
</Id>
</CdtrAgtAcct>
<CdtrAgt>
<FinInstnId>
<ClrSysMmbId>
<MmbId>mmbid01</MmbId>
<ClrSysId>
<Cd>cd02</Cd>
<Prtry>prtry01</Prtry>
</ClrSysId>
</ClrSysMmbId>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
<BIC>88888888</BIC>
<Nm>uiopp</Nm>
</FinInstnId>
</CdtrAgt>
<Cdtr>
<Nm>33333333</Nm>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<AnyBIC>anybic01</AnyBIC>
</OrgId>
</Id>
</Cdtr>
<CdtrAcct>
<Id>
<IBAN>S15612345678012345</IBAN>
<Othr>
<Id>789465123132165</Id>
<SchmeNm>
<Cd>741852</Cd>
</SchmeNm>
</Othr>
</Id>
</CdtrAcct>
<RmtInf>
<Ustrd>1111</Ustrd>
</RmtInf>
<InstdAmt Ccy="USD">393.17</InstdAmt>
</UndrlygCstmrCdtTrf>
<PrvsInstgAgt>
<FinInstnId>
<BIC>5555555</BIC>
<Nm>33333333</Nm>
</FinInstnId>
</PrvsInstgAgt>
<Cdtr>
<FinInstnId>
<BIC>9999999</BIC>
</FinInstnId>
<Nm>33333333</Nm>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<AnyBIC>anybic01</AnyBIC>
</OrgId>
</Id>
</Cdtr>
<CdtrAgt>
<FinInstnId>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
<BIC>88888888</BIC>
<Nm>uiopp</Nm>
</FinInstnId>
</CdtrAgt>
<PmtId>
<EndToEndId>end456</EndToEndId>
</PmtId>
<IntrBkSttlmAmt Ccy="USD">120274.34</IntrBkSttlmAmt>
<IntrBkSttlmDt>2022-04-02+08:00</IntrBkSttlmDt>
<SttlmTmIndctn>
<DbtDtTm>2022-04-02T13:35:04.807+08:00</DbtDtTm>
<CdtDtTm>2022-04-02T13:35:04.807+08:00</CdtDtTm>
</SttlmTmIndctn>
<SttlmTmReq>
<CLSTm>13:35:04.807+08:00</CLSTm>
</SttlmTmReq>
<IntrmyAgt1>
<FinInstnId>
<BIC>77777777777</BIC>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
</FinInstnId>
<ClrSysMmbId>
<MmbId>mmbid01</MmbId>
<ClrSysId>
<Cd>cd02</Cd>
<Prtry>prtry01</Prtry>
</ClrSysId>
</ClrSysMmbId>
</IntrmyAgt1>
<IntrmyAgt1Acct>
<Id>
<IBAN>S15612345678012345</IBAN>
<Othr>
<Id>789465123132165</Id>
<SchmeNm>
<Cd>741852</Cd>
</SchmeNm>
</Othr>
</Id>
</IntrmyAgt1Acct>
<Dbtr>
<FinInstnId>
<BIC>789456</BIC>
<Nm>uiopp</Nm>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
</FinInstnId>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>S15612345678012345</IBAN>
<Othr>
<Id>789465123132165</Id>
<SchmeNm>
<Cd>741852</Cd>
</SchmeNm>
</Othr>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>7777777777777777777</BIC>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
<AdrLine>55</AdrLine>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
<DbtrAgtAcct>
<Id>
<IBAN>S15612345678012345</IBAN>
<Othr>
<Id>789465123132165</Id>
<SchmeNm>
<Cd>741852</Cd>
</SchmeNm>
</Othr>
</Id>
</DbtrAgtAcct>
<InstrForCdtrAgt>
<Cd>PHOB</Cd>
<InstrInf>456</InstrInf>
</InstrForCdtrAgt>
<InstrForNxtAgt>
<Cd>TELA</Cd>
<InstrInf>ins123</InstrInf>
</InstrForNxtAgt>
<RmtInf>
<Ustrd>1111</Ustrd>
</RmtInf>
</CdtTrfTxInf>
</FinInstnCdtTrf>
</Document>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment