Commit cd0a443a by zhanghou

基本完成210,修改n92,n96和942

parent 2782e209
......@@ -43,6 +43,8 @@ public class Mx2MtConstants {
public static final String MT_TYPE_942 = "942";
public static final String MT_TYPE_210 = "210";
public static final String OUT_PUT_FILE_PATH = "outPutFilePath";
public static final String MX_OBJECT = "mxObj";
......
......@@ -9,6 +9,7 @@ import com.brilliance.swift.mx2mt.mt196296.Mx2Mtn96Creator;
import com.brilliance.swift.mx2mt.mt202Retn.Mx2Mt202RetnCreator;
import com.brilliance.swift.mx2mt.mt202Retn.Mx2Mt205RetnCreator;
import com.brilliance.swift.mx2mt.mt202cov202.Mx2Mt202Creator;
import com.brilliance.swift.mx2mt.mt210.Mx2Mt210Creator;
import com.brilliance.swift.mx2mt.mt900910.Mx2Mt900910Creator;
import com.brilliance.swift.mx2mt.mt940950.Mx2Mt940950Creator;
import com.brilliance.swift.mx2mt.mt942.Mx2Mt942Creator;
......@@ -89,7 +90,9 @@ public class Mx2MtCreatorManager {
return new Mx2Mt202RetnCreator();
} else if("pacs.004.001.MT205".equals(messageType)){
return new Mx2Mt205RetnCreator();
} else {
} else if("camt.057.001".equals(messageType)){
return new Mx2Mt210Creator();
}else {
throw new SwiftException("ERROR", "Invalid message type");
}
}
......
......@@ -30,7 +30,7 @@ public class Mx2Mtn92Creator extends AbstractMx2MtCreator {
Map<String, String> parentElementMaps = XmlUtil.getParentElementMaps(document);
context.set(Mx2MtContextIdentifier.APPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("AppHdr"));
context.set(Mx2MtContextIdentifier.GRPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("GrpHdr"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("FIToFIPmtCxlReq"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("Undrlyg"));
}
@Override
......@@ -39,7 +39,7 @@ public class Mx2Mtn92Creator extends AbstractMx2MtCreator {
SwiftBlock3 block3 = context.get(SwiftMessage.class).getBlock3();
Document document = (Document)context.get(Mx2MtContextIdentifier.MX_XMl_DOCUMENT, true);
String bodyParentPath = (String)context.get(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, true);
String uetr = getXmlNodeValue(bodyParentPath, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlUETR");
String uetr = getXmlNodeValue(bodyParentPath, document, "Undrlyg.TxInf.OrgnlUETR");
if (StringUtil.isNotEmpty(uetr)) {
Field121 field121 = new Field121(uetr);
block3.builder().setField121(field121);
......
......@@ -21,8 +21,8 @@ public class Field11SGenerate extends AbstractMx2MtTagsGenerate {
List<Tag> tags = swiftMessage.getBlock4().getTags();
String orgnlMsgNmId = "";
String date = "";
String mtType = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlGrpInf.OrgnlMsgNmId");
String dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlGrpInf.OrgnlCreDtTm");
String mtType = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.OrgnlGrpInf.OrgnlMsgNmId");
String dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.OrgnlGrpInf.OrgnlCreDtTm");
if (StringUtil.isNotEmpty(mtType)) {
orgnlMsgNmId = getMtMsg(mtType);
}
......
......@@ -20,7 +20,7 @@ public class Field20Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.Case.Id");
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.Case.Id");
if (StringUtil.isNotEmpty(messageId)) {
if (messageId.length() > 16) {
messageId = messageId.substring(0, 15) + "+";
......
......@@ -20,7 +20,7 @@ public class Field21Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String orgnlInstrId = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlInstrId");
String orgnlInstrId = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.OrgnlInstrId");
if (StringUtil.isNotEmpty(orgnlInstrId)) {
if (orgnlInstrId.length() > 16) {
orgnlInstrId = orgnlInstrId.substring(0, 15) + "+";
......
......@@ -23,17 +23,17 @@ public class Field79Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String uetr = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlUETR");
String filed79 = mXToMT79CANC(uetr, "FIToFIPmtCxlReq.Undrlyg.TxInf.CxlRsnInf");
String uetr = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.OrgnlUETR");
String filed79 = mXToMT79CANC(uetr, "Undrlyg.TxInf.CxlRsnInf");
if (StringUtil.isNotEmpty(filed79)) {
tags.add(new Tag(name_79, filed79));
String dt = "";
String amt = "";
String ccy = "";
String dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlIntrBkSttlmDt");
String dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.OrgnlIntrBkSttlmDt");
dt = mXToMTDate(dateStr);
String amtStr = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlIntrBkSttlmAmt");
String ccyStr = getXmlNodeValue(bodyHdrParentElementName, document, "FIToFIPmtCxlReq.Undrlyg.TxInf.OrgnlIntrBkSttlmAmt@Ccy");
String amtStr = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.OrgnlIntrBkSttlmAmt");
String ccyStr = getXmlNodeValue(bodyHdrParentElementName, document, "Undrlyg.TxInf.OrgnlIntrBkSttlmAmt@Ccy");
if (StringUtil.isNotEmpty(amtStr)&&StringUtil.isNotEmpty(ccyStr)) {
amt = NumberUtil.formatAmt(new BigDecimal(amtStr), ccyStr);
ccy = ccyStr;
......
......@@ -30,7 +30,7 @@ public class Mx2Mtn96Creator extends AbstractMx2MtCreator {
Map<String, String> parentElementMaps = XmlUtil.getParentElementMaps(document);
context.set(Mx2MtContextIdentifier.APPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("AppHdr"));
context.set(Mx2MtContextIdentifier.GRPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("GrpHdr"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("RsltnOfInvstgtn"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("CxlDtls"));
}
@Override
......@@ -39,7 +39,7 @@ public class Mx2Mtn96Creator extends AbstractMx2MtCreator {
SwiftBlock3 block3 = context.get(SwiftMessage.class).getBlock3();
Document document = (Document)context.get(Mx2MtContextIdentifier.MX_XMl_DOCUMENT, true);
String bodyParentPath = (String)context.get(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, true);
String uetr = getXmlNodeValue(bodyParentPath, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.OrgnlUETR");
String uetr = getXmlNodeValue(bodyParentPath, document, "CxlDtls.TxInfAndSts.OrgnlUETR");
if (StringUtil.isNotEmpty(uetr)) {
Field121 field121 = new Field121(uetr);
block3.builder().setField121(field121);
......
......@@ -22,8 +22,8 @@ public class Field11RGenerate extends AbstractMx2MtTagsGenerate {
List<Tag> tags = swiftMessage.getBlock4().getTags();
String orgnlMsgNmId = "";
String date = "";
String mtType = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.OrgnlGrpInf.OrgnlMsgNmId");
String dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.OrgnlGrpInf.OrgnlCreDtTm");
String mtType = getXmlNodeValue(bodyHdrParentElementName, document, "CxlDtls.TxInfAndSts.OrgnlGrpInf.OrgnlMsgNmId");
String dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "CxlDtls.TxInfAndSts.OrgnlGrpInf.OrgnlCreDtTm");
if (StringUtil.isNotEmpty(mtType)) {
orgnlMsgNmId = getMtMsg(mtType);
}
......
......@@ -20,7 +20,7 @@ public class Field20Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.CxlStsId");
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "CxlDtls.TxInfAndSts.CxlStsId");
if (StringUtil.isNotEmpty(messageId)) {
if (messageId.length() > 16) {
messageId = messageId.substring(0, 15) + "+";
......
......@@ -20,7 +20,7 @@ public class Field21Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String orgnlInstrId = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.RslvdCase.Id");
String orgnlInstrId = getXmlNodeValue(bodyHdrParentElementName, document, "CxlDtls.TxInfAndSts.RslvdCase.Id");
if (StringUtil.isNotEmpty(orgnlInstrId)) {
if (orgnlInstrId.length() > 16) {
orgnlInstrId = orgnlInstrId.substring(0, 15) + "+";
......
......@@ -21,9 +21,9 @@ public class Field76Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String uetr = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.OrgnlUETR");
String sts = getXmlNodeValue(bodyHdrParentElementName, document, "RsltnOfInvstgtn.Sts.Conf");
List<String> list = mXToMT76RCANC(sts,uetr, "RsltnOfInvstgtn.CxlDtls.TxInfAndSts.CxlStsRsnInf");
String uetr = getXmlNodeValue(bodyHdrParentElementName, document, "CxlDtls.TxInfAndSts.OrgnlUETR");
String sts = getXmlNodeValue(bodyHdrParentElementName, document, "Sts.Conf");
List<String> list = mXToMT76RCANC(sts,uetr, "CxlDtls.TxInfAndSts.CxlStsRsnInf");
if(list.size()>0&&StringUtil.isNotEmpty(list.get(0))){
if(StringUtil.isNotEmpty(list.get(0))){
tags.add(new Tag(name_76, list.get(0)));
......
package com.brilliance.swift.mx2mt.mt210;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.mx2mt.AbstractMx2MtCreator;
import com.brilliance.swift.mx2mt.Mx2MtContextIdentifier;
import com.brilliance.swift.mx2mt.Mx2MtTagsGenerate;
import com.brilliance.swift.mx2mt.mt210.impl.*;
import com.brilliance.swift.util.XmlUtil;
import org.dom4j.Document;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Mx2Mt210Creator extends AbstractMx2MtCreator {
@Override
public void preProcess() {
super.preProcess();
Document document = (Document)context.get(Mx2MtContextIdentifier.MX_XMl_DOCUMENT, true);
Map<String, String> parentElementMaps = XmlUtil.getParentElementMaps(document);
context.set(Mx2MtContextIdentifier.APPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("AppHdr"));
context.set(Mx2MtContextIdentifier.GRPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("GrpHdr"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("Ntfctn"));
}
@Override
public List<Mx2MtTagsGenerate> getGenerateTagList() {
List<Mx2MtTagsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field25Generate());
fieldsGenerateList.add(new Field30Generate());
fieldsGenerateList.add(new Field21Generate());
fieldsGenerateList.add(new Field32BGenerate());
fieldsGenerateList.add(new Field50aGenerate());
fieldsGenerateList.add(new Field52aGenerate());
fieldsGenerateList.add(new Field56aGenerate());
return fieldsGenerateList;
}
@Override
protected String getMtType() {
return Mx2MtConstants.MT_TYPE_210;
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field20Generate extends AbstractMx2MtTagsGenerate {
private static String name = "20";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String messageId = getXmlNodeValue(grpHdrParentElementName, document, "GrpHdr.MsgId");
if (StringUtil.isNotEmpty(messageId)) {
if (messageId.length() > 16) {
messageId = messageId.substring(0, 15) + "+";
}
String value = messageId;
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field21Generate extends AbstractMx2MtTagsGenerate {
private static String name = "21";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String filed21 = "";
String endToEndId = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").EndToEndId");
if(StringUtil.isNotEmpty(endToEndId)){
filed21 = endToEndId;
}else {
filed21 = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Id");
}
if (StringUtil.isNotEmpty(filed21)) {
if (filed21.length() > 16) {
filed21 = filed21.substring(0, 15) + "+";
}
String value = filed21;
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field25Generate extends AbstractMx2MtTagsGenerate {
private static String name = "25";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String account = "";
String iban = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Acct.Id.IBAN");
String id = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Acct.Id.Othr.Id");
if(StringUtil.isNotEmpty(iban)){
account = iban;
}else if(StringUtil.isNotEmpty(id)){
account = id;
}else if(StringUtil.isEmpty(iban)&&StringUtil.isEmpty(id)){
String itemIban = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Acct.Id.IBAN");
String itemId = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Acct.Id.Othr.Id");
if(StringUtil.isNotEmpty(itemIban)){
account = itemIban;
}else if(StringUtil.isNotEmpty(itemId)){
account = itemId;
}
}
if(account.length()>0){
tags.add(new Tag(name, account));
}
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field30Generate extends AbstractMx2MtTagsGenerate {
private static String name = "30";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String mxDate = "";
String valDt = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.XpctdValDt");
if(StringUtil.isNotEmpty(valDt)){
mxDate = valDt;
}else {
mxDate = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").XpctdValDt");
}
if(StringUtil.isNotEmpty(mxDate)){
String mtDate = mXToMTDate(mxDate);
tags.add(new Tag(name, mtDate));
}
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.NumberUtil;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.math.BigDecimal;
import java.util.List;
/**
*/
public class Field32BGenerate extends AbstractMx2MtTagsGenerate {
private static String name = "32B";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String amt = "";
String ccy = "";
String amtStr = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Amt");
String ccyStr = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Amt@Ccy");
if (StringUtil.isNotEmpty(amtStr)&&StringUtil.isNotEmpty(ccyStr)) {
amt = NumberUtil.formatAmt(new BigDecimal(amtStr), ccyStr);
ccy = ccyStr;
tags.add(new Tag(name, ccy+amt));
}
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field50aGenerate extends AbstractMx2MtTagsGenerate {
private static String name_ = "50";
private static String name_C = "50C";
private static String name_F = "50F";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
int counts1 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Pty");
int counts2 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Pty");
int counts3 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Agt");
int counts4 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Agt");
String partyPath = "";
String bicCode = "";
String country = "";
int addressLineCount = 0;
String name = "";
String clearSystemId = "";
if(counts1>0){
partyPath = bodyHdrParentElementName + ".Ntfctn.Dbtr.Pty";
bicCode = mx_to_mtAnyBIC(bodyHdrParentElementName + ".Ntfctn.Dbtr.Pty");
country = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Pty.PstlAdr.Ctry");
addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Pty.PstlAdr.AdrLine");
name = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Pty.Nm");
}
if(counts2>0){
partyPath = bodyHdrParentElementName + ".Ntfctn.Itm.Dbtr.Pty";
bicCode = mx_to_mtAnyBIC(bodyHdrParentElementName + ".Ntfctn.Itm("+0+").Dbtr.Pty");
country = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Pty.PstlAdr.Ctry");
addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Pty.PstlAdr.AdrLine");
name = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Pty.Nm");
}
if(counts3>0){
partyPath = bodyHdrParentElementName + ".Ntfctn.Dbtr.Agt";
bicCode = mx_to_mtBICFI(bodyHdrParentElementName+".Ntfctn.Dbtr.Agt");
country = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Agt.FinInstnId.PstlAdr.Ctry");
addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Agt.FinInstnId.PstlAdr.AdrLine");
name = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Dbtr.Agt.FinInstnId.Nm");
clearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".Ntfctn.Dbtr.Agt");
}
if(counts4>0){
partyPath = bodyHdrParentElementName + ".Ntfctn.Itm("+0+").Dbtr.Agt";
bicCode = mx_to_mtBICFI(bodyHdrParentElementName+".Ntfctn.Itm("+0+").Dbtr.Agt");
country = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Agt.FinInstnId.PstlAdr.Ctry");
addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Agt.FinInstnId.PstlAdr.AdrLine");
name = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").Dbtr.Agt.FinInstnId.Nm");
clearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".Ntfctn.Itm("+0+").Dbtr.Agt");
}
if(counts1>0||counts2>0){
String account = mx_to_mtFATFIdentification(partyPath);
if (StringUtil.isNotEmpty(account) && account.length() > 35) {
account = account.substring(0, 35);
}
if (StringUtil.isEmpty(account)) {
account = "/" + Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
if(StringUtil.isNotEmpty(bicCode)){
tags.add(new Tag(name_C, bicCode));
}else if(StringUtil.isNotEmpty(country)){
String nameAddress = mx_to_mtFATFNameAndAddress(partyPath);
tags.add(new Tag(name_F, account + Mx2MtConstants.NEW_LINE + nameAddress));
}else if(addressLineCount>0){
boolean structuredAddressIndicator = mx_to_mtAddressLineType(partyPath);
if (structuredAddressIndicator) {
String nameAddress = mx_to_mtFATFNameAndAddress2(partyPath);
tags.add(new Tag(name_F, account + Mx2MtConstants.NEW_LINE + nameAddress));
} else {
String mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(partyPath);
tags.add(new Tag(name_, mtNameAddress));
}
}else if(StringUtil.isNotEmpty(name)){
String mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(partyPath);
tags.add(new Tag(name_F, account + Mx2MtConstants.NEW_LINE + mtNameAddress));
}
}
if(counts3>0||counts4>0) {
if (StringUtil.isNotEmpty(bicCode)) {
tags.add(new Tag(name_C, bicCode));
} else if (StringUtil.isNotEmpty(country)) {
String nameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName + ".Ntfctn.Dbtr.Agt.FinInstnId", false);
tags.add(new Tag(name_F, nameAddress));
} else if (addressLineCount > 0) {
String nameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(partyPath);
tags.add(new Tag(name_, nameAddress));
} else if (StringUtil.isNotEmpty(clearSystemId)) {
tags.add(new Tag(name_, clearSystemId));
}
}
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field52aGenerate extends AbstractMx2MtTagsGenerate {
private static String name_A = "52A";
private static String name_D = "52D";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
int counts1 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.DbtrAgt");
int counts2 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").DbtrAgt");
String bicCode = "";
String account = "";
String mtClearSystemId = "";
if(counts1>0){
bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".Ntfctn.DbtrAgt");
account = mx_to_mtAccount(bodyHdrParentElementName + ".Ntfctn.DbtrAgt");
mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".Ntfctn.DbtrAgt");
}
if(counts2>0){
bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".Ntfctn.Itm.DbtrAgt");
account = mx_to_mtAccount(bodyHdrParentElementName + ".Ntfctn.Itm.DbtrAgt");
mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".Ntfctn.Itm.DbtrAgt");
}
String mtAccount = "";
String value = "";
if (StringUtil.isNotEmpty(bicCode)) {
if (StringUtil.isNotEmpty(account)) {
mtAccount = account;
} else {
mtAccount = mtClearSystemId;
}
if (StringUtil.isNotEmpty(mtAccount)) {
value = mtAccount + Mx2MtConstants.NEW_LINE + bicCode;
} else {
value = bicCode;
}
tags.add(new Tag(name_A, value));
} else {
String name = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.DbtrAgt.FinInstnId.Nm");
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "Ntfctn.DbtrAgt.FinInstnId.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.DbtrAgt.FinInstnId.PstlAdr.AdrLine");
String mtNameAddress = "";
if (addressLineCount > 0) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".Ntfctn.DbtrAgt.FinInstnId");
} else if (StringUtil.isNotEmpty(countryCode)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName+ ".Ntfctn.DbtrAgt.FinInstnId", false);
} else if (StringUtil.isNotEmpty(name)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".Ntfctn.DbtrAgt.FinInstnId");
}
if (StringUtil.isEmpty(mtNameAddress)) return;//如果name和地址不存在,返回。
if (StringUtil.isNotEmpty(mtClearSystemId)) {
mtAccount = mtClearSystemId;
} else {
mtAccount = account;
}
if (StringUtil.isNotEmpty(mtAccount)) {
value = mtAccount + Mx2MtConstants.NEW_LINE + mtNameAddress;
} else {
value = mtNameAddress;
}
tags.add(new Tag(name_D, value));
}
}
}
package com.brilliance.swift.mx2mt.mt210.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
*/
public class Field56aGenerate extends AbstractMx2MtTagsGenerate {
private static String name_A = "56A";
private static String name_D = "56D";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
int counts1 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.IntrmyAgt");
int counts2 = getXmlNodeCounts(bodyHdrParentElementName, document, "Ntfctn.Itm("+0+").IntrmyAgt");
String bicCode ="";
String mtClearSystemId = "";
String mtClearChannelId = "";
if(counts1>0){
bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".Ntfctn.IntrmyAgt");
mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".Ntfctn.IntrmyAgt");
mtClearChannelId = mx_to_mtClearingIdentifierAndChannel(bodyHdrParentElementName + ".Ntfctn.IntrmyAgt");
}
if(counts2>0){
bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".Ntfctn.("+0+").IntrmyAgt");
mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".Ntfctn.("+0+")IntrmyAgt");
mtClearChannelId = mx_to_mtClearingIdentifierAndChannel(bodyHdrParentElementName + ".Ntfctn.("+0+")IntrmyAgt");
}
String mtAccount = "";
String value = "";
if (StringUtil.isNotEmpty(bicCode)) {
if (StringUtil.isNotEmpty(mtClearChannelId)){
mtAccount = mtClearChannelId;
} else {
mtAccount = mtClearSystemId;
}
if (StringUtil.isNotEmpty(mtAccount)) {
value = mtAccount + Mx2MtConstants.NEW_LINE + bicCode;
} else {
value = bicCode;
}
tags.add(new Tag(name_A, value));
} else {
String name = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.IntrmyAgt1.FinInstnId.Nm");
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.IntrmyAgt1.FinInstnId.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine");
String mtNameAddress = "";
if (addressLineCount > 0) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.IntrmyAgt1.FinInstnId");
} else if (StringUtil.isNotEmpty(countryCode)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.IntrmyAgt1.FinInstnId", false);
} else if (StringUtil.isNotEmpty(name)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.IntrmyAgt1.FinInstnId");
}
if (StringUtil.isEmpty(mtNameAddress)) return;//如果name和地址不存在,返回。
if (StringUtil.isNotEmpty(mtClearChannelId)) {
mtAccount = mtClearChannelId;
} else if (StringUtil.isNotEmpty(mtClearSystemId)) {
mtAccount = mtClearSystemId;
}
if (StringUtil.isNotEmpty(mtAccount)) {
value = mtAccount + Mx2MtConstants.NEW_LINE + mtNameAddress;
} else {
value = mtNameAddress;
}
tags.add(new Tag(name_D, value));
}
}
}
......@@ -21,7 +21,7 @@ public class Mx2Mt942Creator extends AbstractMx2MtCreator {
Map<String, String> parentElementMaps = XmlUtil.getParentElementMaps(document);
context.set(Mx2MtContextIdentifier.APPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("AppHdr"));
context.set(Mx2MtContextIdentifier.GRPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("GrpHdr"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("BkToCstmrAcctRpt"));
context.set(Mx2MtContextIdentifier.BODY_PARENT_ELEMENT_NAME, parentElementMaps.get("Rpt"));
}
@Override
......
......@@ -19,12 +19,12 @@ public class Field13DGenerate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String CreationDateTime = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.CreDtTm");
String CreationDateTime = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.CreDtTm");
String dateStr = "";
if(StringUtil.isNotEmpty(CreationDateTime)){
dateStr = CreationDateTime;
}else {
dateStr = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.GrpHdr.CreDtTm");
dateStr = getXmlNodeValue(grpHdrParentElementName, document, "GrpHdr.CreDtTm");
}
String mxTimeOffset = dateStr.substring(11);
String mtDate = mXToMTDate(dateStr.substring(0,10));
......@@ -34,7 +34,7 @@ public class Field13DGenerate extends AbstractMx2MtTagsGenerate {
if(split[0].length()==1){
split[0] = "0"+split[0];
}
mtTimeOffset = split[0] + split[1] + split[2].substring(3) + split[3];
mtTimeOffset = split[0] + split[1] + split[2].substring(2) + split[3];
}
tags.add(new Tag(name, mtDate+mtTimeOffset));
}
......
package com.brilliance.swift.mx2mt.mt942.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil;
......@@ -19,9 +20,16 @@ public class Field20Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Id");
String messageId = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Id");
if (StringUtil.isNotEmpty(messageId)) {
tags.add(new Tag(name, messageId));
if (messageId.length() > 16) {
messageId = messageId.substring(0, 15) + "+";
}
String value = messageId;
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
......@@ -22,14 +22,14 @@ public class Field25Generate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String iban = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Id.IBAN");
String iban = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Acct.Id.IBAN");
String accountId = "";
if(StringUtil.isNotEmpty(iban)){
accountId = iban;
}else {
accountId = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Id.Othr.Id");
accountId = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Acct.Id.Othr.Id");
}
String anyBic = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ownr.Id.OrgId.AnyBIC");
String anyBic = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Acct.Ownr.Id.OrgId.AnyBIC");
if(StringUtil.isNotEmpty(anyBic)){
tags.add(new Tag(name_25P,accountId+ Mx2MtConstants.NEW_LINE+anyBic));
}else {
......
......@@ -19,12 +19,12 @@ public class Field28CGenerate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String leSeNum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.LglSeqNb");
String leSeNum = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.LglSeqNb");
String mt = "";
if(StringUtil.isEmpty(leSeNum)||leSeNum.length()>5){
mt = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.ElctrncSeqNb");
mt = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.ElctrncSeqNb");
}else {
String pageNum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.RptPgntn.PgNb");
String pageNum = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.RptPgntn.PgNb");
mt = leSeNum + "/" + pageNum;
}
tags.add(new Tag(name,mt));
......
......@@ -19,7 +19,7 @@ public class Field34FGenerate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ccy");
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Acct.Ccy");
tags.add(new Tag(name,currency+"D"+"0,"));
tags.add(new Tag(name,currency+"C"+"0,"));
}
......
......@@ -28,23 +28,23 @@ public class Field61Generate extends AbstractMx2MtTagsGenerate {
try {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
int entryCount = getXmlNodeCounts(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry");
int entryCount = getXmlNodeCounts(bodyHdrParentElementName, document, "Rpt.Ntry");
if (entryCount > 0) {
for (int i = 0; i < entryCount; i++) {
String value = "";
String valueDateStr = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").ValDt.Dt");
String valueDateStr = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").ValDt.Dt");
if (StringUtil.isNotEmpty(valueDateStr)) {
XMLGregorianCalendar valueDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(valueDateStr);
value += DateUtil.format(valueDate, "yyMMdd");
}
String bookDateStr = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").BookgDt.Dt");
String bookDateStr = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").BookgDt.Dt");
if (StringUtil.isNotEmpty(bookDateStr)) {
XMLGregorianCalendar bookDate = DatatypeFactory.newInstance().newXMLGregorianCalendar(bookDateStr);
value += DateUtil.format(bookDate, "MMdd");
}
String code = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").Sts.Cd");
String reversalIndicator = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").RvslInd");
String creditDebitIndicator = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").CdtDbtInd");
String code = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").Sts.Cd");
String reversalIndicator = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").RvslInd");
String creditDebitIndicator = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").CdtDbtInd");
if("BOOK".equals(code)){
if (StringUtil.isNotEmpty(reversalIndicator) && Boolean.valueOf(reversalIndicator)) {
if (CdtDbtCode.DBIT.value().equals(creditDebitIndicator)) {
......@@ -66,13 +66,13 @@ public class Field61Generate extends AbstractMx2MtTagsGenerate {
value += "EC";
}
}
String amt = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").Amt");
String ccy = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").Amt@Ccy");
String amt = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").Amt");
String ccy = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").Amt@Ccy");
if (StringUtil.isNotEmpty(amt) && StringUtil.isNotEmpty(ccy)) {
value += NumberUtil.formatAmt(new BigDecimal(amt), ccy);
}
value += "NTRF";
String endToEndId = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Ntry(" + i + ").NtryDtls.TxDtls.Refs.EndToEndId");
String endToEndId = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Ntry(" + i + ").NtryDtls.TxDtls.Refs.EndToEndId");
if (StringUtil.isNotEmpty(endToEndId)) {
if (endToEndId.length() > 16) {
endToEndId = endToEndId.substring(0, 15) + "+";
......
......@@ -21,10 +21,10 @@ public class Field90CGenerate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String sum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlCdtNtries.Sum");
String nbOfNtries = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlCdtNtries.NbOfNtries");
String sum = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.TxsSummry.TtlCdtNtries.Sum");
String nbOfNtries = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.TxsSummry.TtlCdtNtries.NbOfNtries");
if(StringUtil.isNotEmpty(sum)&&StringUtil.isNotEmpty(nbOfNtries)) {
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ccy");
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Acct.Ccy");
String amt = NumberUtil.formatAmt(new BigDecimal(sum), currency);
if(amt.length()>15||nbOfNtries.length()>5){
......
......@@ -21,10 +21,10 @@ public class Field90DGenerate extends AbstractMx2MtTagsGenerate {
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String sum = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlDbtNtries.Sum");
String nbOfNtries = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.TxsSummry.TtlDbtNtries.NbOfNtries");
String sum = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.TxsSummry.TtlDbtNtries.Sum");
String nbOfNtries = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.TxsSummry.TtlDbtNtries.NbOfNtries");
if(StringUtil.isNotEmpty(sum)&&StringUtil.isNotEmpty(nbOfNtries)) {
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "BkToCstmrAcctRpt.Rpt.Acct.Ccy");
String currency = getXmlNodeValue(bodyHdrParentElementName, document, "Rpt.Acct.Ccy");
String amt = NumberUtil.formatAmt(new BigDecimal(sum), currency);
if(amt.length()>15||nbOfNtries.length()>5){
......
......@@ -39,7 +39,7 @@ Change Log
<BkToCstmrAcctRpt>
<GrpHdr>
<MsgId>cmt052bizmsgidr-001</MsgId>
<CreDtTm>2020-12-15T11:00:00+00:00</CreDtTm>
<CreDtTm>2020-12-15T11:00:00-07:00</CreDtTm>
</GrpHdr>
<Rpt>
<TxsSummry>
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- SWIFT © 2020. All rights reserved.
THE MESSAGE WILL WORK “AS IS” IN THE READINESS PORTAL. IT IS ESSENTIAL THAT USERS REMOVE THE ENVELOPE AND REPLACE IT WITH THEIR OWN TRANSPORT HEADER (FOR EXAMPLE FOR ALLIANCE ACCESS YOU WOULD USE THE XML V2 HEADERS).
=========================================================================================================================================================================================
Legal Disclaimer:
=================
SWIFT © 2020. All rights reserved.
This publication contains SWIFT or third-party confidential information. Do not disclose this publication outside your organisation without SWIFT’s prior written consent.
The use of this document is governed by the legal notices appearing at the end of this document. By using this document, you will be deemed to have accepted those legal notices.
'=================================================================================================================================================================================
Use Case c.57.1 Creditor X RAB Asset Management as Account Owner sends a Notification to Receive to Agent C KBC Bank as Account Servicer.
=========================================================================================================================================================
Change Log
2020-12-02 - Original version
=============================
-->
<Envelope xmlns="urn:swift:xsd:envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:swift:xsd:envelope ../../../../Schemas/Translator_envelope.xsd">
<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.02">
<Fr>
<FIId>
<FinInstnId>
<BICFI>RABOBE22</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>KREDBEBB</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>camt57bizmsgidr1</BizMsgIdr>
<MsgDefIdr>camt.057.001.06</MsgDefIdr>
<BizSvc>swift.cbprplus.02</BizSvc>
<CreDt>2020-11-30T09:00:00+01:00</CreDt>
</AppHdr>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.057.001.06">
<NtfctnToRcv>
<GrpHdr>
<MsgId>camt57bizmsgidr1</MsgId>
<CreDtTm>2020-11-30T09:00:00+01:00</CreDtTm>
</GrpHdr>
<Ntfctn>
<Id>NTFCTNID10001 </Id>
<Acct>
<Id>
<Othr>
<Id>RAB02564185-365</Id>
</Othr>
</Id>
</Acct>
<AcctOwnr>
<Agt>
<FinInstnId>
<BICFI>RABOBE22</BICFI>
</FinInstnId>
</Agt>
</AcctOwnr>
<AcctSvcr>
<FinInstnId>
<BICFI>KREDBEBB</BICFI>
</FinInstnId>
</AcctSvcr>
<Dbtr>
<Pty>
<Nm>ABC Ltd</Nm>
<PstlAdr>
<StrtNm>10 Broad Street</StrtNm>
<TwnNm>London</TwnNm>
<Ctry>GB</Ctry>
</PstlAdr>
</Pty>
</Dbtr>
<DbtrAgt>
<FinInstnId>
<BICFI>BARCGB22</BICFI>
</FinInstnId>
</DbtrAgt>
<IntrmyAgt>
<FinInstnId>
<BICFI>CBPXBE99</BICFI>
</FinInstnId>
</IntrmyAgt>
<Itm>
<Id>NTFCTNITEM01 </Id>
<UETR>761d46fb-3734-4953-a160-afa9d8101212</UETR>
<Amt Ccy="EUR">2000000</Amt>
<XpctdValDt>2020-12-01</XpctdValDt>
</Itm>
</Ntfctn>
</NtfctnToRcv>
</Document>
</Envelope>
package com.brilliance.mx2mt.mt210;
import com.brilliance.swift.mx2mt.Mx2MtCreatorManager;
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMx2MtFor210 {
public static void main(String[] args) throws Exception {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxCamt05700106.xml");
String xmlStr = FileUtils.readFileToString(file);
String mt210 = new Mx2MtCreatorManager().mx2Mt(xmlStr, null, null);
System.out.println(mt210);
}
}
......@@ -7,7 +7,7 @@ import java.io.File;
public class TestMx2MtFor942 {
public static void main(String[] args) throws Exception {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MXcamt05200108.xml");
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MXcamt05200108_942.xml");
String xmlStr = FileUtils.readFileToString(file);
String mt942 = new Mx2MtCreatorManager().mx2Mt(xmlStr, null, null);
System.out.println(mt942);
......
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