Commit 47105319 by zhanghou

完成camt029001的报文要素展示

parent 5e157cef
package com.brilliance.swift.mx2element;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2element.camt029001.Mx2ElementCamt029001Creator;
import com.brilliance.swift.mx2element.camt053001.Mx2ElementCamt053001Creator;
import com.brilliance.swift.mx2element.camt054001.Mx2ElementCamt054001Creator;
import com.brilliance.swift.mx2element.pacs008001.Mx2ElementPacs008001Creator;
......@@ -37,6 +38,8 @@ public class Mx2ElementCreatorManager {
return new Mx2ElementCamt054001Creator();
}else if("camt.053.001".equals(messageType)){
return new Mx2ElementCamt053001Creator();
}else if("camt.029.001".equals(messageType)){
return new Mx2ElementCamt029001Creator();
}
else {
throw new SwiftException("Invalid message type");
......
package com.brilliance.swift.mx2element.camt029001;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2element.AbstractMx2ElementCreator;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.util.XmlUtil;
import com.brilliance.swift.vo.common.BalanceTypeCode;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class Mx2ElementCamt029001Creator extends AbstractMx2ElementCreator {
@Override
public Map<String, Object> buildElement() {
//AbstractMX abstractMX = AbstractMX.parse(xmlStr);
String messageType = abstractMX.getMxId().getBusinessProcess().name()
+ abstractMX.getMxId().getFunctionality()
+ abstractMX.getMxId().getVariant()
+ abstractMX.getMxId().getVersion();
maps.put("messageType", messageType);
String gsonStr = abstractMX.toJson();
Map<String, Object> mxGsonMaps = JSON.parseObject(gsonStr);
String fileName = "/template/"+messageType+".properties";
InputStream resourceAsStream = AbstractMx2ElementCreator.class.getResourceAsStream(fileName);
if (resourceAsStream == null) {
int versionLength = abstractMX.getMxId().getVersion().length();
fileName = "/template/"+messageType.substring(0, messageType.length()-versionLength)+".properties";
resourceAsStream = AbstractMx2ElementCreator.class.getResourceAsStream(fileName);
}
List<String> properties = StringUtil.inputStreamToLines(resourceAsStream);
if (properties.size() > 0) {
for (String property : properties) {
if (property.startsWith("#")) {
continue;//过滤注释
}
String[] strArr = property.split("=");
if (strArr.length != 2) {
continue;//过滤掉不符合规则的配置
}
String key = strArr[0];
String path = strArr[1];
Object value = getXmlValue(mxGsonMaps, path);
if (value != null) {
maps.put(key, value);
}
}
}
return maps;
}
protected Object getXmlValue(Map<String, Object> jsonMaps, String path) {
Object value = null;
if (path.indexOf("?") > 0) {
String[] childPaths = path.split("\\?");
for (String childPath : childPaths) {
value = getXmlValue(jsonMaps, childPath);
if (value != null) {
return value;
}
}
}
//获取数据类型,&分隔,默认是string
String type = "string";
if (path.indexOf("&") > -1) {
type = path.substring(path.indexOf("&")+1);
path = path.substring(0, path.indexOf("&"));
}
if(path.contains("[")&&path.contains("]")){
String str = path.substring(path.indexOf("[")+1,path.indexOf("]"));
String[] paths = path.split("\\.");
String node = paths[paths.length-1].split("\\[")[0];
String key1 = str.split(",")[0].split(":")[0];
String value1 = str.split(",")[0].split(":")[1];
String key2 = str.split(",")[1].split(":")[0];
String value2= str.split(",")[1].split(":")[1];
List<String> keyList = new ArrayList<>();
List<String> valueList = new ArrayList<>();
if(StringUtil.isNotEmpty(node)&&
StringUtil.isNotEmpty(key1) &&StringUtil.isNotEmpty(key2)
&&StringUtil.isNotEmpty(value1)&&StringUtil.isNotEmpty(value2)){
String fileName = "/template/partyAndAgent.properties";
InputStream resourceAsStream = AbstractMx2ElementCreator.class.getResourceAsStream(fileName);
List<String> properties = StringUtil.inputStreamToLines(resourceAsStream);
if (properties.size() > 0) {
for (String property : properties) {
if (property.startsWith("#")) {
continue;//过滤注释
}
String[] strArr = property.split("=");
if (strArr.length != 2) {
continue;//过滤掉不符合规则的配置
}
String str1 = strArr[0];
String str2 = "";
if(value2.equals("party")){
str2 = strArr[1].split("\\?")[0];
}else if(value2.equals("agent")){
str2 = strArr[1].split("\\?")[1];
}else {
return null;
}
if(StringUtil.isNotEmpty(str1)&&StringUtil.isNotEmpty(str2)){
if(node.equals(value1)&&"finInstnId.bicfi".equals(str2)){
keyList.add(value1+"Bicfi");
}else {
keyList.add(value1+str1.substring(0,1).toUpperCase()+str1.substring(1));
valueList.add(str2);
}
}
}
}
String fileName2 = "/template/"+value2+".properties";
InputStream resourceAsStream2 = AbstractMx2ElementCreator.class.getResourceAsStream(fileName2);
List<String> properties2 = StringUtil.inputStreamToLines(resourceAsStream2);
if (properties2.size() > 0) {
for (String property : properties2) {
if (property.startsWith("#")) {
continue;//过滤注释
}
String[] strArr = property.split("=");
if (strArr.length != 2) {
continue;//过滤掉不符合规则的配置
}
String str1 = strArr[0];
String str2 = strArr[1];
if(StringUtil.isNotEmpty(str1)&&StringUtil.isNotEmpty(str2)){
keyList.add(value1+str1.substring(0,1).toUpperCase()+str1.substring(1));
valueList.add(str2);
}
}
}
}
for (int i = 0; i < keyList.size(); i++) {
Object xmlValue = getXmlValue(jsonMaps, path.split("\\[")[0] + "." + valueList.get(i));
maps.put(keyList.get(i),xmlValue);
}
return null;
}
//需要用. split,然后循环遍历json获取值
String[] paths = path.split("\\.");
Map<String, Object> tmpMaps = jsonMaps;
for (int i=0; i<paths.length; i++) {
String p = paths[i];
Object obj = tmpMaps.get(p);
if (obj == null) return null;
if (obj instanceof JSONArray) {
JSONArray jsonArray = (JSONArray)obj;
if (i == paths.length-1) {
return jsonArray;
} else {
obj = jsonArray.get(0);
if (obj instanceof JSONObject) {
tmpMaps = (Map<String, Object>)obj; //不是最后一层
} else {
return jsonArray;
}
}
} else if (obj instanceof JSONObject) {
tmpMaps = (Map<String, Object>)obj;
} else {
if ("bigdecimal".equals(type)) {
value = new BigDecimal(String.valueOf(obj));
} else if ("boolean".equals(type)) {
value = Boolean.valueOf(String.valueOf(obj));
} else {
value = String.valueOf(obj);
}
break;
}
}
return value;
}
}
......@@ -78,20 +78,22 @@ Change Log
</Sts>
<CxlDtls>
<TxInfAndSts>
<CxlStsId>//CNCL-ID00111111111111111</CxlStsId>
<CxlStsId>CNCL-ID00111111111111111</CxlStsId>
<RslvdCase>
<Id>//CSE-0011111111111111111111111</Id>
<Id>CSE-0011111111111111111111111</Id>
<Cretr>
<Agt>
<FinInstnId>
<BICFI>RBOSGB2L</BICFI>
<Nm>zs</Nm>
<LEI>cd</LEI>
</FinInstnId>
</Agt>
</Cretr>
</RslvdCase>
<OrgnlGrpInf>
<OrgnlMsgId>pacs8bizmsgidr01</OrgnlMsgId>
<OrgnlMsgNmId>//pacs.008.001.08</OrgnlMsgNmId>
<OrgnlMsgNmId>pacs.008.001.08</OrgnlMsgNmId>
<OrgnlCreDtTm>2021-02-17T08:30:00+01:00</OrgnlCreDtTm>
</OrgnlGrpInf>
<OrgnlInstrId>pacs8bizmsgidr01</OrgnlInstrId>
......
......@@ -56,7 +56,7 @@ Change Log
<Undrlyg>
<TxInf>
<Case>
<Id>//CSE-00111111111111111111111111</Id>
<Id>CSE-00111111111111111111111111</Id>
<Cretr>
<Agt>
<FinInstnId>
......@@ -70,7 +70,7 @@ Change Log
<OrgnlMsgNmId>11pacs.008.001.08</OrgnlMsgNmId>
<OrgnlCreDtTm>2021-02-17T08:30:00+01:00</OrgnlCreDtTm>
</OrgnlGrpInf>
<OrgnlInstrId>//pacs8bizmsgidr01</OrgnlInstrId>
<OrgnlInstrId>pacs8bizmsgidr01</OrgnlInstrId>
<OrgnlEndToEndId>pacs008EndToEndId-001</OrgnlEndToEndId>
<OrgnlUETR>8a562c67-ca16-48ba-b074-65581be6f001</OrgnlUETR>
<OrgnlIntrBkSttlmAmt Ccy="EUR">1500000</OrgnlIntrBkSttlmAmt>
......
<?xml version="1.0" encoding="UTF-8" ?>
<RequestPayload>
<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.02">
<Fr>
<FIId>
<FinInstnId>
<BICFI>HELSFIHHXXX</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>NDEAFIHHXXX</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>CNCL-ID001</BizMsgIdr>
<MsgDefIdr>camt.029.001.09</MsgDefIdr>
<BizSvc>swift.cbprplus.02</BizSvc>
<CreDt>2022-07-22T10:17:51.619+08:00</CreDt>
<PssblDplct>false</PssblDplct>
<Prty>NORM</Prty>
</AppHdr>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.029.001.09">
<RsltnOfInvstgtn>
<Assgnmt>
<Id>CNCL-ID001</Id>
<Assgnr>
<Agt>
<FinInstnId>
<BICFI>HELSFIHHXXX</BICFI>
</FinInstnId>
</Agt>
</Assgnr>
<Assgne>
<Agt>
<FinInstnId>
<BICFI>NDEAFIHHXXX</BICFI>
</FinInstnId>
</Agt>
</Assgne>
<CreDtTm>2022-07-22T10:17:51.619+08:00</CreDtTm>
</Assgnmt>
<Sts>
<Conf>CNCL</Conf>
</Sts>
<CxlDtls>
<TxInfAndSts>
<CxlStsId>CNCL-ID001</CxlStsId>
<RslvdCase>
<Id>CSE-001</Id>
<Cretr>
<Agt>
<FinInstnId>
<Nm>NOTPROVIDED</Nm>
<PstlAdr>
<AdrLine>NOTPROVIDED</AdrLine>
</PstlAdr>
</FinInstnId>
</Agt>
</Cretr>
</RslvdCase>
<OrgnlGrpInf>
<OrgnlMsgId>NOTPROVIDED</OrgnlMsgId>
<OrgnlMsgNmId>pacs.008</OrgnlMsgNmId>
<OrgnlCreDtTm>2021-02-17T00:00:00Z</OrgnlCreDtTm>
</OrgnlGrpInf>
<OrgnlUETR>8a562c67-ca16-48ba-b074-65581be6f001</OrgnlUETR>
<CxlStsRsnInf>
<Rsn>
<Cd>AGNT</Cd>
</Rsn>
<AddtlInf>WORLD.HELLO,WORLD.HELLODRLD.HELLO,WORLD.HELLO,WORLD.HELLORLD.HELLO,WORLD.HELLO,WORLD.HELLO</AddtlInf>
</CxlStsRsnInf>
</TxInfAndSts>
</CxlDtls>
</RsltnOfInvstgtn>
</Document>
</RequestPayload>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<RequestPayload>
<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.02">
<Fr>
<FIId>
<FinInstnId>
<BICFI>DEUTDEFFXXX</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>DEUTNL2AXXX</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>FRDA000003421606</BizMsgIdr>
<MsgDefIdr>camt.054.001.08</MsgDefIdr>
<BizSvc>swift.cbprplus.02</BizSvc>
<CreDt>2022-07-21T13:44:54.705+08:00</CreDt>
<PssblDplct>false</PssblDplct>
<Prty>NORM</Prty>
</AppHdr>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08">
<BkToCstmrDbtCdtNtfctn>
<GrpHdr>
<MsgId>FRDA000003421606</MsgId>
<CreDtTm>2022-07-21T13:44:54.705+08:00</CreDtTm>
</GrpHdr>
<Ntfctn>
<Id>FRDA000003421606</Id>
<Acct>
<Id>
<Othr>
<Id>156123456780123459999999999999999+</Id>
</Othr>
</Id>
<Ccy>EUR</Ccy>
</Acct>
<Ntry>
<NtryRef>NOTPROVIDED</NtryRef>
<Amt Ccy="EUR">126</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<DtTm>2014-01-08T15:15:00+13:00</DtTm>
</BookgDt>
<ValDt>
<Dt>2022-03-30</Dt>
</ValDt>
<BkTxCd>
<Prtry>
<Cd>NOTPROVIDED</Cd>
<Issr>NOTPROVIDED</Issr>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<InstrId>E2E1201</InstrId>
<EndToEndId>E2E1201</EndToEndId>
<UETR>8a562c67-ca16-48ba-b074-65581be6f001</UETR>
</Refs>
<Amt Ccy="EUR">126</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<RltdPties>
<Dbtr>
<Agt>
<FinInstnId>
<ClrSysMmbId>
<ClrSysId>
<Cd>ATBLZ</Cd>
</ClrSysId>
<MmbId>FR7630588000010050000143176</MmbId>
</ClrSysMmbId>
<Nm>Creditor 2</Nm>
<PstlAdr>
<AdrLine>TEST111</AdrLine>
<AdrLine>TEST222</AdrLine>
<AdrLine>TEST333</AdrLine>
</PstlAdr>
</FinInstnId>
</Agt>
</Dbtr>
</RltdPties>
<RltdDts>
<IntrBkSttlmDt>2022-03-30</IntrBkSttlmDt>
</RltdDts>
<AddtlTxInf>ENRICHED|TRUE SETT_METHOD|SEPA IAT_IND|FALSE DOMESTIC_IND|FALSE PRIORITY_IND|FALSEENRICHED|TRUE SETT_METHOD|SEPA IAT_ENRICHED|TRUE SETT_METHOD|SEPA IAT_ENRICHED|TRUE SETT_METHOD|SEPA IAT_ENRICHED|TRUE SETT_METH</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
</Ntfctn>
</BkToCstmrDbtCdtNtfctn>
</Document>
</RequestPayload>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<RequestPayload>
<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.02">
<Fr>
<FIId>
<FinInstnId>
<BICFI>DEUTDEFFXXX</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>DEUTNL2AXXX</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>FRDA000003421606</BizMsgIdr>
<MsgDefIdr>camt.054.001.08</MsgDefIdr>
<BizSvc>swift.cbprplus.02</BizSvc>
<CreDt>2022-07-22T10:43:20.604+08:00</CreDt>
<PssblDplct>false</PssblDplct>
<Prty>NORM</Prty>
</AppHdr>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08">
<BkToCstmrDbtCdtNtfctn>
<GrpHdr>
<MsgId>FRDA000003421606</MsgId>
<CreDtTm>2022-07-22T10:43:20.604+08:00</CreDtTm>
</GrpHdr>
<Ntfctn>
<Id>FRDA000003421606</Id>
<Acct>
<Id>
<Othr>
<Id>S15612345678012345</Id>
</Othr>
</Id>
<Ccy>EUR</Ccy>
</Acct>
<Ntry>
<NtryRef>NOTPROVIDED</NtryRef>
<Amt Ccy="EUR">126</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<DtTm>2014-01-08T15:15:00+13:00</DtTm>
</BookgDt>
<ValDt>
<Dt>2022-03-30</Dt>
</ValDt>
<BkTxCd>
<Prtry>
<Cd>NOTPROVIDED</Cd>
<Issr>NOTPROVIDED</Issr>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<InstrId>E2E1201</InstrId>
<EndToEndId>E2E1201</EndToEndId>
<UETR>8a562c67-ca16-48ba-b074-65581be6f001</UETR>
</Refs>
<Amt Ccy="EUR">126</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<RltdPties>
<Dbtr>
<Pty>
<Nm>Creditor 1</Nm>
<PstlAdr>
<AdrLine>TEST1</AdrLine>
<AdrLine>TEST2</AdrLine>
<AdrLine>TEST3</AdrLine>
</PstlAdr>
</Pty>
</Dbtr>
</RltdPties>
<RltdAgts>
<IntrmyAgt1>
<FinInstnId>
<ClrSysMmbId>
<ClrSysId>
<Cd>ATBLZ</Cd>
</ClrSysId>
<MmbId>FR7630588000010050000143176</MmbId>
</ClrSysMmbId>
<Nm>81939316</Nm>
<PstlAdr>
<AdrLine>ADDRESS 1</AdrLine>
<AdrLine>ADDRESS 2</AdrLine>
<AdrLine>ADDRESS 3</AdrLine>
</PstlAdr>
</FinInstnId>
</IntrmyAgt1>
</RltdAgts>
<RltdDts>
<IntrBkSttlmDt>2022-03-30</IntrBkSttlmDt>
</RltdDts>
<AddtlTxInf>ENRICHED|TRUE SETT_METHOD|SEPA IAT_IND|FALSE DOMESTIC_IND|FALSE PRIORITY_IND|FALSE</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
</Ntfctn>
</BkToCstmrDbtCdtNtfctn>
</Document>
</RequestPayload>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<RequestPayload>
<AppHdr xmlns="urn:iso:std:iso:20022:tech:xsd:head.001.001.02">
<Fr>
<FIId>
<FinInstnId>
<BICFI>RBOSGB2LXXX</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>NDEAFIHHXXX</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>CSE-001</BizMsgIdr>
<MsgDefIdr>camt.056.001.08</MsgDefIdr>
<BizSvc>swift.cbprplus.02</BizSvc>
<CreDt>2022-07-22T10:19:54.195+08:00</CreDt>
<PssblDplct>false</PssblDplct>
<Prty>NORM</Prty>
</AppHdr>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.056.001.08">
<FIToFIPmtCxlReq>
<Assgnmt>
<Id>CSE-001</Id>
<Assgnr>
<Agt>
<FinInstnId>
<BICFI>RBOSGB2LXXX</BICFI>
</FinInstnId>
</Agt>
</Assgnr>
<Assgne>
<Agt>
<FinInstnId>
<BICFI>NDEAFIHHXXX</BICFI>
</FinInstnId>
</Agt>
</Assgne>
<CreDtTm>2022-07-22T10:19:54.195+08:00</CreDtTm>
</Assgnmt>
<Undrlyg>
<TxInf>
<Case>
<Id>CSE-001</Id>
<Cretr>
<Agt>
<FinInstnId>
<Nm>NOTPROVIDED</Nm>
<PstlAdr>
<AdrLine>NOTPROVIDED</AdrLine>
</PstlAdr>
</FinInstnId>
</Agt>
</Cretr>
</Case>
<OrgnlGrpInf>
<OrgnlMsgId>pacs8bizmsgidr01</OrgnlMsgId>
<OrgnlMsgNmId>pacs.008</OrgnlMsgNmId>
<OrgnlCreDtTm>2021-02-17T00:00:00Z</OrgnlCreDtTm>
</OrgnlGrpInf>
<OrgnlInstrId>pacs8bizmsgidr01</OrgnlInstrId>
<OrgnlEndToEndId>NOTPROVIDED</OrgnlEndToEndId>
<OrgnlUETR>8a562c67-ca16-48ba-b074-65581be6f001</OrgnlUETR>
<OrgnlIntrBkSttlmAmt Ccy="EUR">1500000</OrgnlIntrBkSttlmAmt>
<OrgnlIntrBkSttlmDt>2021-02-17</OrgnlIntrBkSttlmDt>
<CxlRsnInf>
<Rsn>
<Cd>AM09</Cd>
</Rsn>
<AddtlInf>HELLO,WORLD.HELLO,WORLD.HELLO,WORLD.HELLO,WORLD.HELLO,WORLD.HELLO,WORLD.HELLO,WORLD.HELLO,WORLD.HELLO,WOR</AddtlInf>
<AddtlInf>LD.HELLO,WORLD.HELLO,WORLD.HELLO,WO</AddtlInf>
</CxlRsnInf>
</TxInf>
</Undrlyg>
</FIToFIPmtCxlReq>
</Document>
</RequestPayload>
\ No newline at end of file
clrSysId=finInstnId.clrSysMmbId.mmbId
clrSysIdType=finInstnId.clrSysMmbId.clrSysId.cd
clrSysIdTypePrtry=finInstnId.clrSysMmbId.clrSysId.prtry
\ No newline at end of file
#APPLICATION HEADER
frBic=appHdr.fr.fiId.finInstnId.bicfi?appHdr.fr.orgId.id.orgId.anyBIC
toBic=appHdr.to.fiId.finInstnId.bicfi?appHdr.to.orgId.id.orgId.anyBIC
bizMsgIdr=rsltnOfInvstgtn.assgnmt.id?rsltnOfInvstgtn.cxlDtls.txInfAndSts.cxlStsId?appHdr.bizMsgIdr
msgDefIdr=appHdr.msgDefIdr
bizSvc=appHdr.bizSvc
creDt=rsltnOfInvstgtn.assgnmt.creDtTm?appHdr.creDt
priority=appHdr.prty
#BODY
#11R
orgnlMsgNmId=rsltnOfInvstgtn.cxlDtls.txInfAndSts.orgnlGrpInf.orgnlMsgNmId
orgnlCreDtTm=rsltnOfInvstgtn.cxlDtls.txInfAndSts.orgnlGrpInf.orgnlCreDtTm
#21
rslvdCaseId=rsltnOfInvstgtn.cxlDtls.txInfAndSts.rslvdCase.id
#76
stsConf=sts.conf
rsnCd=rsltnOfInvstgtn.cxlDtls.txInfAndSts.cxlStsRsnInf.rsn.cd
rsnPrtry=rsltnOfInvstgtn.cxlDtls.txInfAndSts.cxlStsRsnInf.rsn.prtry
addtlInf=rsltnOfInvstgtn.cxlDtls.txInfAndSts.cxlStsRsnInf.addtlInf
#Other
orgnlMsgId=rsltnOfInvstgtn.cxlDtls.txInfAndSts.orgnlGrpInf.orgnlMsgId
cretrPty=rsltnOfInvstgtn.cxlDtls.txInfAndSts.rslvdCase.cretr.pty[prefix:cretr,type:party]
cretrAgt=rsltnOfInvstgtn.cxlDtls.txInfAndSts.rslvdCase.cretr.agt[prefix:cretr,type:agent]
\ No newline at end of file
#APPLICATION HEADER
frBic=appHdr.fr.fiId.finInstnId.bicfi?appHdr.fr.orgId.id.orgId.anyBIC
toBic=appHdr.to.fiId.finInstnId.bicfi?appHdr.to.orgId.id.orgId.anyBIC
bizMsgIdr=fiToFIPmtCxlReq.undrlyg.txInf.case.id?appHdr.bizMsgIdr
msgDefIdr=appHdr.msgDefIdr
bizSvc=appHdr.bizSvc
creDt=fiToFIPmtCxlReq.assgnmt.creDtTm?appHdr.creDt
priority=appHdr.prty
#BODY
#11S
orgnlMsgNmId=fiToFIPmtCxlReq.undrlyg.txInf.orgnlGrpInf.orgnlMsgNmId
orgnlCreDtTm=fiToFIPmtCxlReq.undrlyg.txInf.orgnlGrpInf.orgnlCreDtTm
#21
orgnlInstrId=fiToFIPmtCxlReq.undrlyg.txInf.orgnlInstrId
#32
orgnlIntrBkSttlmAmt=fiToFIPmtCxlReq.undrlyg.txInf.orgnlIntrBkSttlmAmt.value&bigdecimal
orgnlIntrBkSttlmCcy=fiToFIPmtCxlReq.undrlyg.txInf.orgnlIntrBkSttlmAmt.ccy
#76
rsnCd=fiToFIPmtCxlReq.undrlyg.txInf.cxlRsnInf.rsn.cd
rsnPrtry=fiToFIPmtCxlReq.undrlyg.txInf.cxlRsnInf.rsn.prtry
addtlInf=fiToFIPmtCxlReq.undrlyg.txInf.cxlRsnInf.addtlInf
#other
cretrPty=fiToFIPmtCxlReq.undrlyg.txInf.case.cretr.pty[prefix:cretr,type:party]
cretrAgt=fiToFIPmtCxlReq.undrlyg.txInf.case.cretr.agt[prefix:cretr,type:agent]
\ No newline at end of file
prvtBirthDt=id.prvtId.dtAndPlcOfBirth.birthDt
prvtPrvcOfBirth=id.prvtId.dtAndPlcOfBirth.prvcOfBirth
prvtCityOfBirth=id.prvtId.dtAndPlcOfBirth.cityOfBirth
prvtCtryOfBirth=id.prvtId.dtAndPlcOfBirth.ctryOfBirth
prvtId=id.prvtId.othr.id
prvtIdType=id.prvtId.othr.schmeNm.cd
prvtIdTypePrtry=id.prvtId.othr.schmeNm.prtry
ctryOfRes=ctryOfRes
phneNb=ctctDtls.phneNb
mobNb=ctctDtls.mobNb
faxNb=ctctDtls.faxNb
emailAdr=ctctDtls.emailAdr
\ No newline at end of file
nm=nm?finInstnId.nm
orgAnyBIC=id.orgId.anyBIC?finInstnId.bicfi
orgLei=id.orgId.lei?finInstnId.lei
orgOthrId=id.orgId.othr.id?finInstnId.othr.id
orgOthrIdType=id.orgId.othr.schmeNm.cd?finInstnId.othr.schmeNm.cd
orgOthrIdTypePrtry=id.orgId.othr.schmeNm.prtry?finInstnId.othr.schmeNm.prtry
pstlAdrType=pstlAdr.adrTp.cd?finInstnId.
pstlAdrCtry=pstlAdr.ctry?finInstnId.pstlAdr.ctry
pstlAdrDept=pstlAdr.dept?finInstnId.pstlAdr.dept
pstlAdrSubDept=pstlAdr.subDept?finInstnId.pstlAdr.subDept
pstlAdrStrtNm=pstlAdr.strtNm?finInstnId.pstlAdr.strtNm
pstlAdrBldgNb=pstlAdr.bldgNb?finInstnId.pstlAdr.bldgNb
pstlAdrBldgNm=pstlAdr.bldgNm?finInstnId.pstlAdr.bldgNm
pstlAdrFlr=pstlAdr.flr?finInstnId.pstlAdr.flr
pstlAdrRoom=pstlAdr.room?finInstnId.pstlAdr.room
pstlAdrTwnNm=pstlAdr.twnNm?finInstnId.pstlAdr.twnNm
pstlAdrPstBx=pstlAdr.pstBx?finInstnId.pstlAdr.pstBx
pstlAdrPstCd=pstlAdr.pstCd?finInstnId.pstlAdr.pstCd
adrLines=pstlAdr.adrLine?finInstnId.pstlAdr.adrLine
\ No newline at end of file
package com.brilliance.mx2element.camt029001;
import com.brilliance.swift.SwiftTransfer;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class Test196 {
public static void main(String[] args) throws IOException {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxCamt02900108_196.xml");
//File file = new File("d:/test/MxPacs00800108.xml");
String xmlStr = FileUtils.readFileToString(file);
String jsonStr = SwiftTransfer.mx2Element(xmlStr);
System.out.println(jsonStr);
}
}
package com.brilliance.mx2element.camt056001;
import com.brilliance.swift.SwiftTransfer;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
public class Test192 {
public static void main(String[] args) throws IOException {
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxCamt05600108_192.xml");
//File file = new File("d:/test/MxPacs00800108.xml");
String xmlStr = FileUtils.readFileToString(file);
String jsonStr = SwiftTransfer.mx2Element(xmlStr);
System.out.println(jsonStr);
}
}
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