Commit 7d7472e9 by chengzhuoshen

根据官方mapping文档完成pacs009001转MT202。

parent c5460253
......@@ -3,6 +3,7 @@ package com.brilliance.swift.mx2mt;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.mt103.Mx2Mt103Creator;
import com.brilliance.swift.mx2mt.mt202cov202.Mx2Mt202Creator;
import com.brilliance.swift.mx2mt.mt900910.Mx2Mt900910Creator;
import com.brilliance.swift.mx2mt.mt940950.Mx2Mt940950Creator;
import com.brilliance.swift.util.StringUtil;
......@@ -64,7 +65,7 @@ public class Mx2MtCreatorManager {
if ("pacs.008.001".equals(messageType)) {
return new Mx2Mt103Creator();
} else if ("pacs.009.001".equals(messageType)) {
return new Mx2Mt103Creator();
return new Mx2Mt202Creator();
}else if("camt.054.001".equals(messageType)){
return new Mx2Mt900910Creator();
} else if("camt.053.001".equals(messageType)){
......
......@@ -90,8 +90,15 @@ public class Field72Generate extends AbstractMx2MtTagsGenerate {
&& !CategoryPurposeCode.CORT.value().equalsIgnoreCase(ctgyPurpCode)) {
mt72FullField += "/CATPURP/" + ctgyPurpCode;
}
//TODO 参数5
//TODO 参数6
String mtCreditorAgt = subFunctionInstructionForCreditorAgentAndJP(bodyHdrParentElementName + ".CdtTrfTxInf.InstrForCdtrAgt");
if (StringUtil.isNotEmpty(mtCreditorAgt)) {
mt72FullField += mtCreditorAgt;
}
String settlementMethod = getXmlNodeValue(grpHdrParentElementName, document, "GrpHdr.SttlmInf.SttlmMtd");
String mtNextAgt = subFunctionInstructionForNextAgent(bodyHdrParentElementName + ".CdtTrfTxInf.InstrForNxtAgt", settlementMethod);
if (StringUtil.isNotEmpty(mtNextAgt)) {
mt72FullField += mtNextAgt;
}
String mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.PrvsInstgAgt1", 210);
if (StringUtil.isEmpty(mtPrvsInstgAgt)) {
mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.PrvsInstgAgt2", 210);
......
......@@ -6,7 +6,6 @@ import com.brilliance.swift.mx2mt.AbstractMx2MtCreator;
import com.brilliance.swift.mx2mt.Mx2MtContextIdentifier;
import com.brilliance.swift.mx2mt.Mx2MtTagsGenerate;
import com.brilliance.swift.mx2mt.mt202cov202.impl.*;
import com.brilliance.swift.mx2mt.mt202cov202.impl.cov.*;
import com.brilliance.swift.util.StringUtil;
import com.brilliance.swift.util.XmlUtil;
import com.brilliance.swift.vo.common.ServiceLevelCode;
......@@ -74,14 +73,14 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
fieldsGenerateList.add(new Field57AGenerate());
fieldsGenerateList.add(new Field58AGenerate());
fieldsGenerateList.add(new Field72Generate());
fieldsGenerateList.add(new Field50AGenerate());
fieldsGenerateList.add(new FieldB52AGenerate());
fieldsGenerateList.add(new FieldB56Generate());
fieldsGenerateList.add(new FieldB57Generate());
fieldsGenerateList.add(new FieldB59Generate());
fieldsGenerateList.add(new FieldB70Generate());
fieldsGenerateList.add(new FieldB72Generate());
fieldsGenerateList.add(new FieldB33BGenerate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field50AGenerate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field52AGenerate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field56AGenerate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field57AGenerate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field59AGenerate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field70Generate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field72Generate());
fieldsGenerateList.add(new com.brilliance.swift.mx2mt.mt202cov202.impl.cov.Field33BGenerate());
return fieldsGenerateList;
}
......
......@@ -10,7 +10,7 @@ public class Field13CGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
new com.brilliance.swift.mx2mt.mt103.impl.Field13CGenerate().setContext(context).tagGenerate();
}
}
......@@ -10,6 +10,6 @@ public class Field20Generate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
new com.brilliance.swift.mx2mt.mt103.impl.Field20Generate().setContext(context).tagGenerate();
}
}
package com.brilliance.swift.mx2mt.mt202cov202.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;
/**
* <CdtTrfTxInf>[1]<PmtId><EndToEndId>
* 取值逻辑:
* field21 = CdtTrfTxInf.PmtId.EndToEndId,如果长度大于16,field21 = field21截取15位 + 最后一位用+代替
* 如果filed21 以/开始或者以/结束或者包含//,field21=NONREF
* 否则保持原值不变
*/
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 endToEndId = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtId.EndToEndId");
if (StringUtil.isNotEmpty(endToEndId)) {
String value = "";
if (endToEndId.length() > 16) {
value = endToEndId.substring(0, 15) + "+";
}
if (value.startsWith("/") || value.endsWith("/") || value.contains("//")) {
value = Mx2MtConstants.MT_21_DEFAULT_VALUE;
}
tags.add(new Tag(name, value));
}
}
}
......@@ -4,14 +4,12 @@ import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
/**
* 直接取<IntrBkSttlmDt>节点作为32A的value date,Amt和Ccy看另一个节点,XXX是货币
* <CdtTrfTxInf>[1]<IntrBkSttlmDt>
* <CdtTrfTxInf>[1]<IntrBkSttlmAmt Ccy="XXX"'>
*
*/
public class Field32AGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
new com.brilliance.swift.mx2mt.mt103.impl.Field32AGenerate().setContext(context).tagGenerate();
}
}
package com.brilliance.swift.mx2mt.mt202cov202.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;
/**
* 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 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();
String bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".CdtTrfTxInf.Dbtr");
String account = mx_to_mtAccount(bodyHdrParentElementName + ".CdtTrfTxInf.DbtrAcct");
String mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".CdtTrfTxInf.Dbtr");
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, "CdtTrfTxInf.Dbtr.FinInstnId.Nm");
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.Dbtr.FinInstnId.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.Dbtr.FinInstnId.PstlAdr.AdrLine");
String mtNameAddress = "";
if (addressLineCount > 0) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.Dbtr.FinInstnId");
} else if (StringUtil.isNotEmpty(countryCode)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.Dbtr.FinInstnId", false);
} else if (StringUtil.isNotEmpty(name)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.Dbtr.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));
}
}
}
......@@ -10,7 +10,7 @@ public class Field53AGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
new com.brilliance.swift.mx2mt.mt103.impl.Field53AGenerate().setContext(context).tagGenerate();
}
}
......@@ -10,6 +10,6 @@ public class Field54AGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
new com.brilliance.swift.mx2mt.mt103.impl.Field54AGenerate().setContext(context).tagGenerate();
}
}
......@@ -9,7 +9,7 @@ public class Field56AGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
new com.brilliance.swift.mx2mt.mt103.impl.Field56AGenerate().setContext(context).tagGenerate();
}
}
......@@ -9,6 +9,6 @@ public class Field57AGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
new com.brilliance.swift.mx2mt.mt103.impl.Field57AGenerate().setContext(context).tagGenerate();
}
}
package com.brilliance.swift.mx2mt.mt202cov202.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 Field58AGenerate extends AbstractMx2MtTagsGenerate {
private static String name_A = "58A";
private static String name_D = "58D";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".CdtTrfTxInf.Cdtr");
String account = mx_to_mtAccount(bodyHdrParentElementName + ".CdtTrfTxInf.CdtrAcct");
String mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".CdtTrfTxInf.Cdtr");
String mtClearChannelId = mx_to_mtClearingIdentifierAndChannel(bodyHdrParentElementName + ".CdtTrfTxInf.Cdtr");
String mtAccount = "";
String value = "";
if (StringUtil.isNotEmpty(bicCode)) {
if (StringUtil.isNotEmpty(account)) {
mtAccount = account;
} else 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.Cdtr.FinInstnId.Nm");
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.Cdtr.FinInstnId.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.Cdtr.FinInstnId.PstlAdr.AdrLine");
String mtNameAddress = "";
if (addressLineCount > 0) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.Cdtr.FinInstnId");
} else if (StringUtil.isNotEmpty(countryCode)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.Cdtr.FinInstnId", false);
} else if (StringUtil.isNotEmpty(name)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.Cdtr.FinInstnId");
}
if (StringUtil.isEmpty(mtNameAddress)) return;//如果name和地址不存在,返回。
if (StringUtil.isNotEmpty(mtClearChannelId)) {
mtAccount = mtClearChannelId;
} else 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.mt202cov202.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.brilliance.swift.vo.common.CategoryPurposeCode;
import com.brilliance.swift.vo.common.ServiceLevelCode;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
/**
* MX_To_MT72FullField2
* 参数列表
* 参数1:CdtTrfTxInf.IntrmyAgt2/CdtTrfTxInf.IntrmyAgt3
* 参数2:CdtTrfTxInf.PmtTpInf.SvcLvl
* 参数3:CdtTrfTxInf.PmtTpInf.LclInstrm
* 参数4:CdtTrfTxInf.PmtTpInf.CtgyPurp
* 参数5:CdtTrfTxInf.InstrForCdtrAgt
* 参数6:CdtTrfTxInf.Purp
* 参数7:CdtTrfTxInf.InstrForNxtAgt
* 参数8:CdtTrfTxInf.DbtrAgt
* 参数9:CdtTrfTxInf.PrvsInstgAgt1/CdtTrfTxInf.PrvsInstgAgt2/CdtTrfTxInf.PrvsInstgAgt3
* 参数10:CdtTrfTxInf.RmtInf
* MT72取值逻辑:
* 1.如果传入参数1,MT72=/INTA/MX_To_MTAgent(参数1)
* 2.如果传入参数2,并且CdtTrfTxInf.PmtTpInf.SvcLvl.Cd 不是SDVA也不是G00n(n代表0-9数字)或者CdtTrfTxInf.PmtTpInf.SvcLvl.Prtry有值,MT72=/SVCLVL/+CdtTrfTxInf.PmtTpInf.SvcLvl.Prtry或者/SVCLVL/+CdtTrfTxInf.PmtTpInf.SvcLvl.Cd,最多找前3条
* 3.如果传入参数3,并且CdtTrfTxInf.PmtTpInf.LclInstrm.Cd有值或者CdtTrfTxInf.PmtTpInf.LclInstrm.Prtry且不在{CRED,CRTS,SPAY,SPRI, SSTD}里面,MT72=/LOCINS/+CdtTrfTxInf.PmtTpInf.LclInstrm.Prtry或者CdtTrfTxInf.PmtTpInf.LclInstrm.Cd
* 4.如果传入参数4,并且CdtTrfTxInf.PmtTpInf.CtgyPurp.Cd不在{INTC, CORT}或者CdtTrfTxInf.PmtTpInf.CtgyPurp.Prtry不在{“INTC CORT”,INTC, CORT},MT72=/CATPURP/+CdtTrfTxInf.PmtTpInf.CtgyPurp.Prtry或者/CATPURP/+CdtTrfTxInf.PmtTpInf.CtgyPurp.Cd
* 5.如果传入参数5,CdtTrfTxInf.InstrForCdtrAgt.Cd过滤掉HOLD/PHOB/TELB,MT72=/ACC/+CdtTrfTxInf.InstrForCdtrAgt.InstrInf
* 6.如果传入参数6,MT72=/PURP/+CdtTrfTxInf.Purp.Prtry 或者/PURP/+CdtTrfTxInf.Purp.Cd
* 7.如果传入参数7,CdtTrfTxInf.InstrForNxtAgt.InstrInf过滤掉“/FIN53/BIC” 结构,MT72=/REC/+CdtTrfTxInf.InstrForNxtAgt.InstrInf
* 8.如果传入参数8,MT72= /INS/+MX_To_MTBICNameAgent(CdtTrfTxInf.DbtrAgt, 210)
* 9.如果传入参数9,
* ①如果CdtTrfTxInf.PrvsInstgAgt1存在,MT72=/INS/+MX_To_MTBICNameAgent(CdtTrfTxInf.PrvsInstgAgt1, 210)
* ②如果CdtTrfTxInf.PrvsInstgAgt2存在,MT72=/INS/+MX_To_MTBICNameAgent(CdtTrfTxInf.PrvsInstgAgt2, 210)
* ③如果CdtTrfTxInf.PrvsInstgAgt3存在,MT72=/INS/+MX_To_MTBICNameAgent(CdtTrfTxInf.PrvsInstgAgt3, 210)
* 组装MT72:根据优先级最多取到7条MT72,每条MT72每行取35字符,分行用//连接,最多取6*35
* 10.如果传入参数10,MT72 = SubfunctionRemittanceInformation(参数10)
*/
public class Field72Generate extends AbstractMx2MtTagsGenerate {
private static String name = "72";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String mt72FullField = "";
//参数1
String mtIntrmyAgt = mx_to_mtAgent(bodyHdrParentElementName + ".CdtTrfTxInf.IntrmyAgt2", 6);
if (StringUtil.isEmpty(mtIntrmyAgt)) {
mtIntrmyAgt = mx_to_mtAgent(bodyHdrParentElementName + ".CdtTrfTxInf.IntrmyAgt3", 6);
}
if (StringUtil.isNotEmpty(mtIntrmyAgt)) {
mt72FullField += "/INTA/" + mtIntrmyAgt;
}
//参数2
int svcLvlCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.SvcLvl");
if (svcLvlCount > 0) {
for (int i=0; i<svcLvlCount; i++) {
if (i == 3) break;
String svcLvlCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.SvcLvl(" + i + ").Cd");
String svcLvlProprietary = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.SvcLvl(" + i + ").Prtry");
if (StringUtil.isNotEmpty(svcLvlProprietary)) {
mt72FullField += "/SVCLVL/" + svcLvlProprietary;
} else {
if (!ServiceLevelCode.SDVA.value().equals(svcLvlCode) && svcLvlCode.indexOf("G00") == -1) {
mt72FullField += "/SVCLVL/" + svcLvlCode;
}
}
}
}
//参数3
String localInstrumentCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.LclInstrm.Cd");
String localInstrumentProprietary = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.LclInstrm.Prtry");
if (StringUtil.isNotEmpty(localInstrumentProprietary)
&& !"CRED".equalsIgnoreCase(localInstrumentProprietary)
&& !"CRTS".equalsIgnoreCase(localInstrumentProprietary)
&& !"SPAY".equalsIgnoreCase(localInstrumentProprietary)
&& !"SPRI".equalsIgnoreCase(localInstrumentProprietary)
&& !"SSTD".equalsIgnoreCase(localInstrumentProprietary)) {
mt72FullField += "/LOCINS/" + localInstrumentProprietary;
} else if (StringUtil.isNotEmpty(localInstrumentCode)){
mt72FullField += "/LOCINS/" + localInstrumentCode;
}
//参数4
String ctgyPurpCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.CtgyPurp.Cd");
String ctgyPurpProprietary = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtTpInf.CtgyPurp.Prtry");
if (StringUtil.isNotEmpty(ctgyPurpProprietary)
&& !"INTC CORT".equalsIgnoreCase(ctgyPurpProprietary)
&& !"INTC".equalsIgnoreCase(ctgyPurpProprietary)
&& !"CORT".equalsIgnoreCase(ctgyPurpProprietary)) {
mt72FullField += "/CATPURP/" + ctgyPurpProprietary;
} else if (StringUtil.isNotEmpty(ctgyPurpCode)
&& !CategoryPurposeCode.INTC.value().equalsIgnoreCase(ctgyPurpCode)
&& !CategoryPurposeCode.CORT.value().equalsIgnoreCase(ctgyPurpCode)) {
mt72FullField += "/CATPURP/" + ctgyPurpCode;
}
//参数5
String mtCreditorAgt = subFunctionInstructionForCreditorAgent(bodyHdrParentElementName + ".CdtTrfTxInf.InstrForCdtrAgt");
if (StringUtil.isNotEmpty(mtCreditorAgt)) {
mt72FullField += mtCreditorAgt;
}
//参数6
String mxPurposeCode = getXmlNodeValue(bodyHdrParentElementName, document, ".CdtTrfTxInf.Purp.Cd");
String mxPurposeProprietary = getXmlNodeValue(bodyHdrParentElementName, document, ".CdtTrfTxInf.Purp.Prtry");
if (StringUtil.isNotEmpty(mxPurposeProprietary)) {
mt72FullField += "/PURP/" + mxPurposeProprietary;
} else if (StringUtil.isNotEmpty(mxPurposeCode)) {
mt72FullField += "/PURP/" + mxPurposeCode;
}
//参数7
String settlementMethod = getXmlNodeValue(grpHdrParentElementName, document, "GrpHdr.SttlmInf.SttlmMtd");
String mtNextAgt = subFunctionInstructionForNextAgent(bodyHdrParentElementName + ".CdtTrfTxInf.InstrForNxtAgt", settlementMethod);
if (StringUtil.isNotEmpty(mtNextAgt)) {
mt72FullField += mtNextAgt;
}
//参数8
String mtDbtrAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.DbtrAgt", 210);
if (StringUtil.isNotEmpty(mtDbtrAgt)) {
mt72FullField += "/INS/" + mtDbtrAgt;
}
//参数9
String mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.PrvsInstgAgt1", 210);
if (StringUtil.isEmpty(mtPrvsInstgAgt)) {
mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.PrvsInstgAgt2", 210);
}
if (StringUtil.isEmpty(mtPrvsInstgAgt)) {
mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.PrvsInstgAgt3", 210);
}
if (StringUtil.isNotEmpty(mtPrvsInstgAgt)) {
mt72FullField += "/INS/" + mtPrvsInstgAgt;
}
//参数10
String mtRemittanceInfo = subFunctionRemittanceInformation(bodyHdrParentElementName + ".RmtInf");
if (StringUtil.isNotEmpty(mtRemittanceInfo)) {
mt72FullField += mtRemittanceInfo;
}
if (StringUtil.isNotEmpty(mt72FullField)) {
List<String> list = StringUtil.outStringList(mt72FullField, 35, "//");
String value = "";
for (int i=0; i<list.size(); i++) {
if (i == 6) break;
if (i == 0) {
value = list.get(i);
} else {
value += Mx2MtConstants.NEW_LINE + list.get(i);
}
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
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 Field33BGenerate extends AbstractMx2MtTagsGenerate {
private static String name = "33B";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String amt = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.InstdAmt");
String ccy = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.InstdAmt@Ccy");
if (StringUtil.isNotEmpty(amt) && StringUtil.isNotEmpty(ccy)) {
tags.add(new Tag(name, ccy + NumberUtil.formatAmt(new BigDecimal(amt), ccy)));
}
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
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.SwiftBlock3;
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_A = "50A";
private static String name_F = "50F";
private static String name_K = "50K";
@Override
public void tagGenerate() throws SwiftException {
// TODO 50F取值待补充
//TODO 为F条件待补充
boolean covFlag = false;
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String bicCode = mx_to_mtAnyBIC(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr");
String account = mx_to_mtAccount(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAcct");
String value = "";
if (StringUtil.isNotEmpty(bicCode)) {
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
value = bicCode;
}
tags.add(new Tag(name_A, value));
covFlag = true;
} else {
String name = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr.Nm");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr.PstlAdr.AdrLine");
if (addressLineCount > 0) {
String mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr");
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + mtNameAddress;
} else {
value = mtNameAddress;
}
tags.add(new Tag(name_K, value));
} else if (StringUtil.isNotEmpty(name)) {
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + name;
} else {
value = name;
}
tags.add(new Tag(name_K, value));
covFlag = true;
}
}
if (covFlag) {
SwiftBlock3 block3 = context.get(SwiftMessage.class).getBlock3();
block3.getTags().add(new Tag("119", "COV"));
}
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
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();
String bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt");
String account = mx_to_mtAccount(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgtAcct");
String mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.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, "CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId.Nm");
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId.PstlAdr.AdrLine");
String mtNameAddress = "";
if (addressLineCount > 0) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId");
} else if (StringUtil.isNotEmpty(countryCode)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId", false);
} else if (StringUtil.isNotEmpty(name)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.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.mt202cov202.impl.cov;
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();
String bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1");
String account = mx_to_mtAccount(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1Acct");
String mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1");
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, "CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId.Nm");
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine");
String mtNameAddress = "";
if (addressLineCount > 0) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId");
} else if (StringUtil.isNotEmpty(countryCode)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId", false);
} else if (StringUtil.isNotEmpty(name)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.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.mt202cov202.impl.cov;
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 Field57AGenerate extends AbstractMx2MtTagsGenerate {
private static String name_A = "57A";
private static String name_D = "57D";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String bicCode = mx_to_mtBICFI(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt");
String account = mx_to_mtAccount(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgtAcct");
String mtClearSystemId = mx_to_mtClearingIdentifier(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt");
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, "CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId.Nm");
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId.PstlAdr.AdrLine");
String mtNameAddress = "";
if (addressLineCount > 0) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId");
} else if (StringUtil.isNotEmpty(countryCode)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndStructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId", false);
} else if (StringUtil.isNotEmpty(name)) {
mtNameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(bodyHdrParentElementName+ ".CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.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.mt202cov202.impl.cov;
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 Field59AGenerate extends AbstractMx2MtTagsGenerate {
private static String name_A = "59A";
private static String name_F = "59F";
private static String name = "59";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String partyPath = bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr";
String partyAcctPath = bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAcct";
String bicCode = mx_to_mtAnyBIC(partyPath);
String account = mx_to_mtAccount(partyAcctPath);
String countryCode = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr.PstlAdr.Ctry");
int addressLineCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr.PstlAdr.AdrLine");
String partyName = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr.Nm");
String value = "";
if (StringUtil.isNotEmpty(bicCode)) {
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
value = bicCode;
}
tags.add(new Tag(name_A, value));
} else if (StringUtil.isNotEmpty(countryCode)){
String nameAddress = mx_to_mtPartyNameAndAddressLEI1(partyPath);
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + nameAddress;
} else {
value = nameAddress;
}
tags.add(new Tag(name_F, value));
} else if (addressLineCount > 0){
boolean structuredAddressIndicator = mx_to_mtAddressLineType(partyPath);
if (structuredAddressIndicator) {
String nameAddress = mx_to_mtPartyNameAndAddressLEI2(partyPath);
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + nameAddress;
} else {
value = nameAddress;
}
tags.add(new Tag(name_F, value));
} else {
String nameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(partyPath);
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + nameAddress;
} else {
value = nameAddress;
}
tags.add(new Tag(name, value));
}
} else if (StringUtil.isNotEmpty(partyName)){
String nameAddress = mx_to_mtFinancialInstitutionNameAndUnstructuredAddress(partyPath);
if (StringUtil.isNotEmpty(account)) {
value = account + Mx2MtConstants.NEW_LINE + nameAddress;
} else {
value = nameAddress;
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
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 Field70Generate extends AbstractMx2MtTagsGenerate {
private static String name = "70";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String mt70FullString = "";
String mtUltimateCreditor = mx_to_mtUltimateParty(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.UltmtCdtr");
if (StringUtil.isNotEmpty(mtUltimateCreditor)) {
String str = "/ULTB/" + mtUltimateCreditor;
if (str.length() > 140) str = str.substring(0, 139) + "+";
if (StringUtil.isEmpty(mt70FullString)) {
mt70FullString += str;
} else {
mt70FullString += "//" + str;
}
}
String mtUltimateDebtor = mx_to_mtUltimateParty(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.UltmtDbtr");
if (StringUtil.isNotEmpty(mtUltimateDebtor)) {
String str = "/ULTD/" + mtUltimateDebtor;
if (str.length() > 140) str = str.substring(0, 139) + "+";
if (StringUtil.isEmpty(mt70FullString)) {
mt70FullString += str;
} else {
mt70FullString += "//" + str;
}
}
String remittanceInfoUnstructured = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.RmtInf.Ustrd");
if (StringUtil.isNotEmpty(remittanceInfoUnstructured)) {
if (StringUtil.isEmpty(mt70FullString)) {
mt70FullString += "/URI/" + remittanceInfoUnstructured;
} else {
mt70FullString += "///URI/" + remittanceInfoUnstructured;
}
}
int remittanceInfoStructuredCount = getXmlNodeCounts(bodyHdrParentElementName, document, "CdtTrfTxInf.UndrlygCstmrCdtTrf.RmtInf.Strd");
if (remittanceInfoStructuredCount > 0) {
if (StringUtil.isEmpty(mt70FullString)) {
mt70FullString += "/SRI/+";
} else {
mt70FullString += "///SRI/+";
}
}
if (StringUtil.isNotEmpty(mt70FullString)) {
String value = StringUtil.getStringByEnter(mt70FullString, 35, 4);
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
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.brilliance.swift.vo.common.SettlementMethodCode;
import com.prowidesoftware.swift.model.SwiftMessage;
import com.prowidesoftware.swift.model.Tag;
import java.util.List;
public class Field72Generate extends AbstractMx2MtTagsGenerate {
private static String name = "72";
@Override
public void tagGenerate() throws SwiftException {
SwiftMessage swiftMessage = context.get(SwiftMessage.class);
List<Tag> tags = swiftMessage.getBlock4().getTags();
String mt72FullField = "";
String mtIntrmyAgt = mx_to_mtAgent(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt2", 6);
if (StringUtil.isEmpty(mtIntrmyAgt)) {
mtIntrmyAgt = mx_to_mtAgent(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt3", 6);
}
if (StringUtil.isNotEmpty(mtIntrmyAgt)) {
mt72FullField += "/INTA/" + mtIntrmyAgt;
}
String mtCreditorAgt = subFunctionInstructionForCreditorAgentAndJP(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.InstrForCdtrAgt");
if (StringUtil.isNotEmpty(mtCreditorAgt)) {
mt72FullField += mtCreditorAgt;
}
String mtNextAgt = subFunctionInstructionForNextAgent(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.InstrForNxtAgt", SettlementMethodCode.COVE.value());
if (StringUtil.isNotEmpty(mtNextAgt)) {
mt72FullField += mtNextAgt;
}
String mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.PrvsInstgAgt1", 210);
if (StringUtil.isEmpty(mtPrvsInstgAgt)) {
mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.PrvsInstgAgt2", 210);
}
if (StringUtil.isEmpty(mtPrvsInstgAgt)) {
mtPrvsInstgAgt = mx_to_mtBICNameAgent(bodyHdrParentElementName + ".CdtTrfTxInf.UndrlygCstmrCdtTrf.PrvsInstgAgt3", 210);
}
if (StringUtil.isNotEmpty(mtPrvsInstgAgt)) {
mt72FullField += "/INS/" + mtPrvsInstgAgt;
}
if (StringUtil.isNotEmpty(mt72FullField)) {
List<String> list = StringUtil.outStringList(mt72FullField, 35, "//");
String value = "";
for (int i=0; i<list.size(); i++) {
if (i == 6) break;
if (i == 0) {
value = list.get(i);
} else {
value += Mx2MtConstants.NEW_LINE + list.get(i);
}
}
tags.add(new Tag(name, value));
}
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
public class FieldB33BGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
public class FieldB52AGenerate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
public class FieldB56Generate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
public class FieldB57Generate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
public class FieldB59Generate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
public class FieldB70Generate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
}
}
package com.brilliance.swift.mx2mt.mt202cov202.impl.cov;
import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
public class FieldB72Generate extends AbstractMx2MtTagsGenerate {
@Override
public void tagGenerate() throws SwiftException {
}
}
......@@ -107,20 +107,15 @@
</PrvsInstgAgt>
<Cdtr>
<FinInstnId>
<BIC>ZXCVDEWS</BIC>
</FinInstnId>
<Nm>33333333</Nm>
<PstlAdr>
<BICFI>ZXCVDEWS</BICFI>
<Nm>33333333</Nm>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<AnyBIC>anybic01</AnyBIC>
</OrgId>
</Id>
</PstlAdr>
</FinInstnId>
</Cdtr>
<CdtrAgt>
<FinInstnId>
......
......@@ -228,20 +228,15 @@
</PrvsInstgAgt>
<Cdtr>
<FinInstnId>
<BIC>ZXCDQWER</BIC>
</FinInstnId>
<Nm>33333333</Nm>
<PstlAdr>
<BICFI>ZXCVDEWS</BICFI>
<Nm>33333333</Nm>
<PstlAdr>
<AdrLine>11</AdrLine>
<AdrLine>22</AdrLine>
<AdrLine>33</AdrLine>
<AdrLine>44</AdrLine>
</PstlAdr>
<Id>
<OrgId>
<AnyBIC>anybic01</AnyBIC>
</OrgId>
</Id>
</PstlAdr>
</FinInstnId>
</Cdtr>
<CdtrAgt>
<FinInstnId>
......
package com.brilliance.mx2mt.mt202;
import com.brilliance.swift.SwiftTransfer;
import com.brilliance.swift.mx2mt.Mx2MtCreatorManager;
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMx2MtFor202 {
public static void main(String[] args) throws Exception {
String mt202 = SwiftTransfer.mx2Mt(
new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxPacs00900109.xml"),
"d:/test/MT202.txt", null);
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxPacs00900109.xml");
String xmlStr = FileUtils.readFileToString(file);
String mt202 = new Mx2MtCreatorManager().mx2Mt(xmlStr, null, null);
System.out.println(mt202);
}
}
package com.brilliance.mx2mt.mt202;
import com.brilliance.swift.SwiftTransfer;
import com.brilliance.swift.mx2mt.Mx2MtCreatorManager;
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMx2MtFor202COV {
public static void main(String[] args) throws Exception {
String mt202Cov = SwiftTransfer.mx2Mt(
new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxPacs00900109_COV.xml"),
"d:/test/MT202Cov.txt", null);
System.out.println(mt202Cov);
File file = new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxPacs00900109_COV.xml");
String xmlStr = FileUtils.readFileToString(file);
String mt202 = new Mx2MtCreatorManager().mx2Mt(xmlStr, null, null);
System.out.println(mt202);
}
}
package com.brilliance.mx2mtmap.mt103;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.brilliance.swift.SwiftTransfer;
import com.brilliance.swift.util.StringUtil;
import com.google.gson.*;
import com.prowidesoftware.swift.model.mx.AbstractMX;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Test {
public static void main(String[] args) throws IOException {
File file = new File("D:\\test\\MxPacs00800102.xml");
File file = new File("D:\\test\\MxPacs00800109.xml");
String xmlStr = FileUtils.readFileToString(file);
//String xmlStr = FileUtils.readFileToString(new File(System.getProperty("user.dir")+"\\swiftCore\\src\\main\\resources\\swiftXml\\MxCamt05400108_CREDIT.xml"));
//Map<String, Object> extraMap = new HashMap<>();
//extraMap.put("bnkBic", "BANKANC0XXX");//发报
// extraMap.put("bnkBic", "FOOBARC0");//收报
Map<String, String> maps = SwiftTransfer.mx2MtMap(xmlStr, null);
maps.forEach((k, v) -> System.out.println(k + "=" + v));
//Map<String, String> maps = SwiftTransfer.mx2MtMap(xmlStr, null);
//maps.forEach((k, v) -> System.out.println(k + "=" + v));
//String gson = SwiftTransfer.mx2Gson(xmlStr);
String gsonStr = SwiftTransfer.mx2Gson(xmlStr);
//System.out.println(gson);
//Map<String, String> maps = SwiftTransfer.mx2Map(xmlStr);
// maps.forEach((k, v) -> System.out.println(k + "=" + v));
//maps.forEach((k, v) -> System.out.println(k + "=" + v));
Map<String, Object> maps = new GsonBuilder().create().fromJson(gsonStr,new TypeToken<Map<String, String>>() {}.getType());
maps.forEach((k, v) -> System.out.println(k + "=" + v));
}
}
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