Commit 0e6abdbd by zhanghou

修改了部分910和900的类,完成了部分940,950报文实现类的编写

parent 7f1ddaab
...@@ -34,34 +34,6 @@ public abstract class AbstractMx2MtFieldsGenerate implements Mx2MtFieldsGenerate ...@@ -34,34 +34,6 @@ public abstract class AbstractMx2MtFieldsGenerate implements Mx2MtFieldsGenerate
return XmlUtil.getChildrenCount(document, path, null); return XmlUtil.getChildrenCount(document, path, null);
} }
protected String getMtFormatAccount(CashAccount16 dbtrAcct) {
String account = "";
String iban = "";
String otherId = "";
if (dbtrAcct != null) {
if (dbtrAcct.getId() != null) {
iban = dbtrAcct.getId().getIBAN();
if (StringUtil.isEmpty(iban)) {
GenericAccountIdentification1 othr = dbtrAcct.getId().getOthr();
if (othr != null) {
if (othr.getSchmeNm() != null) {
otherId = othr.getSchmeNm().getCd();
}
if (StringUtil.isEmpty(otherId)) {
otherId = othr.getId();
}
}
}
}
}
if (!StringUtil.isEmpty(iban)) {
account = "/"+iban;
} else if (!StringUtil.isEmpty(otherId)) {
account = "//CH"+otherId;
}
return account;
}
protected String getBicCode(String type, Document document, String path) { protected String getBicCode(String type, Document document, String path) {
//AnyBIC BICFI BICOrBEI BIC //AnyBIC BICFI BICOrBEI BIC
String bicCode = getXmlNodeValue(type, document, path+".AnyBIC"); String bicCode = getXmlNodeValue(type, document, path+".AnyBIC");
......
package com.prowidesoftware.brilliance.mx2mt.mt900910; package com.prowidesoftware.brilliance.mx2mt.mt900910;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt900910.impl.*; import com.prowidesoftware.brilliance.mx2mt.mt900910.impl.*;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.brilliance.util.*; import com.prowidesoftware.brilliance.util.XmlUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102; import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.dom4j.Document; import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.*; import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class Mx2Mt900910Creator extends AbstractMx2MtCreator { public class Mx2Mt900910Creator extends AbstractMx2MtCreator {
......
package com.prowidesoftware.brilliance.mx2mt.mt900910.impl; package com.prowidesoftware.brilliance.mx2mt.mt900910.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.BankToCustomerDebitCreditNotificationV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader42;
import org.dom4j.Document; import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
......
package com.prowidesoftware.brilliance.mx2mt.mt900910.impl; package com.prowidesoftware.brilliance.mx2mt.mt900910.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.dom4j.Document; import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.List;
/** /**
* <Ntfctn><Ntry><NtryDtls><TxDtls><Refs><EndToEndId> * <Ntfctn><Ntry><NtryDtls><TxDtls><Refs><EndToEndId>
*/ */
......
package com.prowidesoftware.brilliance.mx2mt.mt900910.impl; package com.prowidesoftware.brilliance.mx2mt.mt900910.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.dom4j.Document; import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.List;
/** /**
* <Ntfctn><Acct><Id><IBAN> * <Ntfctn><Acct><Id><IBAN>
* <Ntfctn><Acct><Id><<Othr><Id> * <Ntfctn><Acct><Id><<Othr><Id>
...@@ -25,14 +21,14 @@ public class Field25aGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -25,14 +21,14 @@ public class Field25aGenerate extends AbstractMx2MtFieldsGenerate {
try { try {
String iban = ""; String iban = "";
Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT); Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
String BAN = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Acct.Id.IBAN"); String ban = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Acct.Id.IBAN");
if (StringUtil.isNotEmpty(BAN)) { if (StringUtil.isNotEmpty(ban)) {
iban = BAN; iban = ban;
map.put("field25a", iban); map.put("field25a", iban);
}else { }else {
String Id = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Acct.Id.Othr.Id"); String id = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Acct.Id.Othr.Id");
if (StringUtil.isNotEmpty(Id)) { if (StringUtil.isNotEmpty(id)) {
iban = Id; iban = id;
map.put("field25a", iban); map.put("field25a", iban);
} }
} }
......
package com.prowidesoftware.brilliance.mx2mt.mt900910.impl; package com.prowidesoftware.brilliance.mx2mt.mt900910.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil; import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil; import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.dom4j.Document; import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -15,7 +13,6 @@ import org.slf4j.LoggerFactory; ...@@ -15,7 +13,6 @@ import org.slf4j.LoggerFactory;
import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar; import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* <Ntfctn><Ntry><ValDt><Dt> * <Ntfctn><Ntry><ValDt><Dt>
......
...@@ -21,17 +21,19 @@ public class Field52aGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -21,17 +21,19 @@ public class Field52aGenerate extends AbstractMx2MtFieldsGenerate {
String bicCode = getBicCode(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId"); String bicCode = getBicCode(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId");
String memberId = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.ClrSysMmbId.MmbId"); String memberId = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.ClrSysMmbId.MmbId");
String name = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.Nm"); String name = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.Nm");
memberId = "/" + memberId;
if(memberId.length()>35)memberId = memberId.substring(0,35);
if (StringUtil.isNotEmpty(bicCode)) { if (StringUtil.isNotEmpty(bicCode)) {
field52aOption = "A"; field52aOption = "A";
if (StringUtil.isNotEmpty(memberId)) { if (StringUtil.isNotEmpty(memberId)) {
field52a = "/" + memberId + Mx2MtConstants.NEW_LINE + bicCode; field52a = memberId + Mx2MtConstants.NEW_LINE + bicCode;
} else { } else {
field52a = bicCode; field52a = bicCode;
} }
}else if(StringUtil.isNotEmpty(name)){ }else if(StringUtil.isNotEmpty(name)){
field52aOption = "D"; field52aOption = "D";
if (StringUtil.isNotEmpty(memberId)) { if (StringUtil.isNotEmpty(memberId)) {
field52a = "/" + memberId + Mx2MtConstants.NEW_LINE + name; field52a = memberId + Mx2MtConstants.NEW_LINE + name;
} }
int adrLineCount = getXmlNodeCounts(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.PstlAdr.AdrLine"); int adrLineCount = getXmlNodeCounts(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.PstlAdr.AdrLine");
if(adrLineCount>0){ if(adrLineCount>0){
......
...@@ -25,17 +25,19 @@ public class Field56aGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -25,17 +25,19 @@ public class Field56aGenerate extends AbstractMx2MtFieldsGenerate {
String bicCode = getBicCode(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId"); String bicCode = getBicCode(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId");
String memberId = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.ClrSysMmbId.MmbId"); String memberId = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.ClrSysMmbId.MmbId");
String name = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.Nm"); String name = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.Nm");
memberId = "/" + memberId;
if(memberId.length()>35)memberId = memberId.substring(0,35);
if (StringUtil.isNotEmpty(bicCode)) { if (StringUtil.isNotEmpty(bicCode)) {
field56aOption = "A"; field56aOption = "A";
if (StringUtil.isNotEmpty(memberId)) { if (StringUtil.isNotEmpty(memberId)) {
field56a = "/" + memberId + Mx2MtConstants.NEW_LINE + bicCode; field56a = memberId + Mx2MtConstants.NEW_LINE + bicCode;
} else { } else {
field56a = bicCode; field56a = bicCode;
} }
}else if(StringUtil.isNotEmpty(name)){ }else if(StringUtil.isNotEmpty(name)){
field56aOption = "D"; field56aOption = "D";
if (StringUtil.isNotEmpty(memberId)) { if (StringUtil.isNotEmpty(memberId)) {
field56a = "/" + memberId + Mx2MtConstants.NEW_LINE + name;; field56a = memberId + Mx2MtConstants.NEW_LINE + name;;
} }
int adrLineCount = getXmlNodeCounts(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine"); int adrLineCount = getXmlNodeCounts(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine");
if(adrLineCount>0){ if(adrLineCount>0){
......
package com.prowidesoftware.brilliance.mx2mt.mt900910.impl; package com.prowidesoftware.brilliance.mx2mt.mt900910.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.dom4j.Document; import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.List;
public class Field72Generate extends AbstractMx2MtFieldsGenerate { public class Field72Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(Field72Generate.class); private static final Logger logger = LoggerFactory.getLogger(Field72Generate.class);
...@@ -21,9 +17,9 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate { ...@@ -21,9 +17,9 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate {
try { try {
String field72 = ""; String field72 = "";
Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT); Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
String AddtlTxInf = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.AddtlTxInf"); String addtlTxInf = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Ntfctn.Ntry.NtryDtls.TxDtls.AddtlTxInf");
if(StringUtil.isNotEmpty(AddtlTxInf)){ if(StringUtil.isNotEmpty(addtlTxInf)){
field72 = StringUtil.getStringByEnter(AddtlTxInf, 35, 6); field72 = StringUtil.getStringByEnter(addtlTxInf, 35, 6);
} }
map.put("field72", field72); map.put("field72", field72);
} catch (Exception e) { } catch (Exception e) {
......
...@@ -6,14 +6,17 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator; ...@@ -6,14 +6,17 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt940950.impl.*; import com.prowidesoftware.brilliance.mx2mt.mt940950.impl.*;
import com.prowidesoftware.brilliance.util.TemplateUtil; import com.prowidesoftware.brilliance.util.TemplateUtil;
import com.prowidesoftware.brilliance.util.XmlUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05300102; import com.prowidesoftware.swift.model.mx.MxCamt05300102;
import com.prowidesoftware.swift.model.mx.dic.*; import com.prowidesoftware.swift.model.mx.dic.*;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
public class Mx2Mt940950Creator extends AbstractMx2MtCreator { public class Mx2Mt940950Creator extends AbstractMx2MtCreator {
...@@ -36,6 +39,14 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator { ...@@ -36,6 +39,14 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator {
* field64 * field64
*/ */
@Override @Override
public void preProcess() {
Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
Map<String, String> parentElementMaps = XmlUtil.getParentElementMaps(document);
map.put(Mx2MtConstants.GRPHDR_PARENT_ELEMENT_NAME, parentElementMaps.get("GrpHdr"));
map.put(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, parentElementMaps.get("Stmt"));
map.put(Mx2MtConstants.MT_TEMPLATE_NAME, "swift_mt_940_950.vm");
}
@Override
public List<Mx2MtFieldsGenerate> getFieldsGenerateList() { public List<Mx2MtFieldsGenerate> getFieldsGenerateList() {
List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>(); List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>();
...@@ -56,14 +67,6 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator { ...@@ -56,14 +67,6 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator {
return fieldsGenerateList; return fieldsGenerateList;
} }
@Override
public String generateMtMsg() {
postProcess();
String outPutFilePath = (String) map.get(Mx2MtConstants.OUT_PUT_FILE_PATH);
return TemplateUtil.makeFileByTemplate("swift_mt_940_950.vm", map, outPutFilePath, "utf-8");
}
/** /**
* 符合以下其中一个条件,则为940,否则为950报文 * 符合以下其中一个条件,则为940,否则为950报文
* (1)<Stmt><Ntry>[j]数组中,节点<AddtlNtryInf>有值 * (1)<Stmt><Ntry>[j]数组中,节点<AddtlNtryInf>有值
...@@ -73,42 +76,25 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator { ...@@ -73,42 +76,25 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator {
*/ */
public boolean getMtMsg() { public boolean getMtMsg() {
try { try {
MxCamt05300102 mxCamt05300102 = (MxCamt05300102) map.get(Mx2MtConstants.MX_OBJECT); Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
if (mxCamt05300102 == null || mxCamt05300102.getBkToCstmrStmt() == null) { String addtlNtryInf = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.AddtlNtryInf");
return false; if(StringUtils.isNotEmpty(addtlNtryInf)){
return true;
} }
BankToCustomerStatementV02 bkToCstmrStmt = mxCamt05300102.getBkToCstmrStmt(); String cd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.Bal.Tp.CdOrPrtry.Cd");
List<AccountStatement2> stmtList = bkToCstmrStmt.getStmt(); if(StringUtils.isNotEmpty(cd)){
if (stmtList != null && stmtList.size() > 0) { return true;
AccountStatement2 stmt = stmtList.get(0);
List<ReportEntry2> ntryList = stmt.getNtry();
if (ntryList.size() > 0 && StringUtils.isNotEmpty(ntryList.get(0).getAddtlNtryInf()))
return true;
List<CashBalance3> balList = stmt.getBal();
if (balList != null && balList.size() > 0) {
for (CashBalance3 tmpBal : balList) {
if (tmpBal != null
&& tmpBal.getTp() != null
&& tmpBal.getTp().getCdOrPrtry() != null
&& BalanceType12Code.FWAV.equals(tmpBal.getTp().getCdOrPrtry().getCd())) {
return true;
}
}
}
if (StringUtils.isNotEmpty(stmt.getAddtlStmtInf()))
return true;
return false;
} }
String addtlStmtInf = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "stmt.AddtlStmtInf");
if(StringUtils.isNotEmpty(addtlStmtInf)){
return true;
}
return false;
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
throw new SwiftException("ERROR", "Mx2Mt950Creator.getMtMsg() error"); throw new SwiftException("ERROR", "Mx2Mt950Creator.getMtMsg() error");
} }
return false;
} }
@Override @Override
protected String getMtType() { protected String getMtType() {
if (getMtMsg()) { if (getMtMsg()) {
......
...@@ -3,9 +3,8 @@ package com.prowidesoftware.brilliance.mx2mt.mt940950.impl; ...@@ -3,9 +3,8 @@ package com.prowidesoftware.brilliance.mx2mt.mt940950.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxCamt05300102; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.dic.BankToCustomerStatementV02; import org.dom4j.Document;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader42;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -15,17 +14,15 @@ import org.slf4j.LoggerFactory; ...@@ -15,17 +14,15 @@ import org.slf4j.LoggerFactory;
public class Field20Generate extends AbstractMx2MtFieldsGenerate{ public class Field20Generate extends AbstractMx2MtFieldsGenerate{
private static final Logger logger = LoggerFactory.getLogger(Field20Generate.class); private static final Logger logger = LoggerFactory.getLogger(Field20Generate.class);
@Override
public void fieldsGenerate() throws SwiftException{ public void fieldsGenerate() throws SwiftException{
try { try {
MxCamt05300102 mxCamt05300102 = (MxCamt05300102)map.get(Mx2MtConstants.MX_OBJECT); String msgId = "";
if (mxCamt05300102 == null || mxCamt05300102.getBkToCstmrStmt() == null) { Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
return; String id = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "GrpHdr.MsgId");
if (StringUtil.isNotEmpty(id)) {
msgId = id;
map.put("field20", msgId);
} }
BankToCustomerStatementV02 bkToCstmrStmt = mxCamt05300102.getBkToCstmrStmt();
GroupHeader42 grpHdr = bkToCstmrStmt.getGrpHdr();
map.put("field20", grpHdr.getMsgId());
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
throw new SwiftException("ERROR", e.getMessage()); throw new SwiftException("ERROR", e.getMessage());
......
...@@ -4,16 +4,10 @@ import com.prowidesoftware.brilliance.constants.Mx2MtConstants; ...@@ -4,16 +4,10 @@ import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05300102; import org.dom4j.Document;
import com.prowidesoftware.swift.model.mx.dic.AccountIdentification4Choice;
import com.prowidesoftware.swift.model.mx.dic.AccountStatement2;
import com.prowidesoftware.swift.model.mx.dic.BankToCustomerStatementV02;
import com.prowidesoftware.swift.model.mx.dic.GenericAccountIdentification1;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.List;
/** /**
* <Stmt><Acct><Id><IBAN> * <Stmt><Acct><Id><IBAN>
* <Stmt><Acct><Id><Othr><Id> * <Stmt><Acct><Id><Othr><Id>
...@@ -25,26 +19,14 @@ public class Field25aGenerate extends AbstractMx2MtFieldsGenerate{ ...@@ -25,26 +19,14 @@ public class Field25aGenerate extends AbstractMx2MtFieldsGenerate{
@Override @Override
public void fieldsGenerate() throws SwiftException{ public void fieldsGenerate() throws SwiftException{
try { try {
MxCamt05300102 mxCamt05300102 = (MxCamt05300102)map.get(Mx2MtConstants.MX_OBJECT); Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
if (mxCamt05300102 == null || mxCamt05300102.getBkToCstmrStmt() == null) { String iban = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Acct.Id.IBAN");
return; if (StringUtil.isNotEmpty(iban)){
map.put("field25a", iban);
} }
BankToCustomerStatementV02 bkToCstmrStmt = mxCamt05300102.getBkToCstmrStmt(); String id = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Acct.Id.Othr.Id");
List<AccountStatement2> stmtList = bkToCstmrStmt.getStmt(); if (StringUtil.isNotEmpty(id)){
if (stmtList != null && stmtList.size() > 0) { map.put("field25a", id);
AccountStatement2 accountStatement2 = stmtList.get(0);
if (accountStatement2.getAcct() != null
&& accountStatement2.getAcct().getId() != null) {
AccountIdentification4Choice id = accountStatement2.getAcct().getId();
if (!StringUtil.isEmpty(id.getIBAN())) {
map.put("field25a", id.getIBAN());
} else {
GenericAccountIdentification1 othr = id.getOthr();
if (othr != null) {
map.put("field25a", othr.getId());
}
}
}
} }
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
......
...@@ -8,6 +8,7 @@ import com.prowidesoftware.swift.model.mx.MxCamt05300102; ...@@ -8,6 +8,7 @@ import com.prowidesoftware.swift.model.mx.MxCamt05300102;
import com.prowidesoftware.swift.model.mx.dic.AccountStatement2; import com.prowidesoftware.swift.model.mx.dic.AccountStatement2;
import com.prowidesoftware.swift.model.mx.dic.BankToCustomerStatementV02; import com.prowidesoftware.swift.model.mx.dic.BankToCustomerStatementV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader42; import com.prowidesoftware.swift.model.mx.dic.GroupHeader42;
import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -25,33 +26,18 @@ public class Field28CGenerate extends AbstractMx2MtFieldsGenerate{ ...@@ -25,33 +26,18 @@ public class Field28CGenerate extends AbstractMx2MtFieldsGenerate{
@Override @Override
public void fieldsGenerate() throws SwiftException{ public void fieldsGenerate() throws SwiftException{
try { try {
MxCamt05300102 mxCamt05300102 = (MxCamt05300102)map.get(Mx2MtConstants.MX_OBJECT); Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
if (mxCamt05300102 == null || mxCamt05300102.getBkToCstmrStmt() == null) { String elctrncSeqNb = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.ElctrncSeqNb");
return; String pgNb = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "GrpHdr.MsgPgntn.PgNb");
} if(StringUtil.isEmpty(elctrncSeqNb)&&StringUtil.isEmpty(pgNb)){
BankToCustomerStatementV02 bkToCstmrStmt = mxCamt05300102.getBkToCstmrStmt();
BigDecimal seqNb = null;
List<AccountStatement2> stmtList = bkToCstmrStmt.getStmt();
if (stmtList != null && stmtList.size() > 0) {
AccountStatement2 accountStatement2 = stmtList.get(0);
if (accountStatement2 != null) {
seqNb = accountStatement2.getElctrncSeqNb();
}
}
String pgNb = "";
GroupHeader42 grpHdr = bkToCstmrStmt.getGrpHdr();
if (grpHdr != null && grpHdr.getMsgPgntn() != null) {
pgNb = grpHdr.getMsgPgntn().getPgNb();
}
if (seqNb == null && StringUtil.isEmpty(pgNb)) {
throw new SwiftException("ERROR", "Convert MT950 field28C is required!"); throw new SwiftException("ERROR", "Convert MT950 field28C is required!");
} else { }else {
if (seqNb == null) { //only <Stmt><ElctrncSeqNb> if(StringUtil.isEmpty(elctrncSeqNb)){
map.put("field28C", pgNb); map.put("field28C", pgNb);
} else if (StringUtil.isEmpty(pgNb)) { //only <GrpHdr><MsgPgntn><PgNb> }else if(StringUtil.isEmpty(pgNb)){
map.put("field28C", seqNb.toString()); map.put("field28C",elctrncSeqNb);
} else { //<Stmt><ElctrncSeqNb> + "/" + GrpHdr><MsgPgntn><PgNb> }else {
map.put("field28C", seqNb.toString() + "/" + pgNb); map.put("field28C", elctrncSeqNb + "/" + pgNb);
} }
} }
} catch(Exception e) { } catch(Exception e) {
......
...@@ -5,13 +5,16 @@ import com.prowidesoftware.brilliance.exception.SwiftException; ...@@ -5,13 +5,16 @@ import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil; import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil; import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05300102; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.dic.*; import com.prowidesoftware.swift.model.mx.dic.BalanceType12Code;
import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import org.dom4j.Document;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* <Stmt><Bal>[i]<Tp><CdOrPrtry><Cd> * <Stmt><Bal>[i]<Tp><CdOrPrtry><Cd>
...@@ -27,54 +30,41 @@ public class Field60Generate extends AbstractMx2MtFieldsGenerate{ ...@@ -27,54 +30,41 @@ public class Field60Generate extends AbstractMx2MtFieldsGenerate{
@Override @Override
public void fieldsGenerate() throws SwiftException{ public void fieldsGenerate() throws SwiftException{
try { try {
MxCamt05300102 mxCamt05300102 = (MxCamt05300102)map.get(Mx2MtConstants.MX_OBJECT); String filed60Option = "";
if (mxCamt05300102 == null || mxCamt05300102.getBkToCstmrStmt() == null) { String crdr = "";
return; String dt = "";
String ccy = "";
String amt = "";
Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
String cd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Bal.Tp.CdOrPrtry.Cd");
if (BalanceType12Code.PRCD.equals(BalanceType12Code.valueOf(cd))) {
filed60Option = "F";
} else if (BalanceType12Code.ITBD.equals(BalanceType12Code.valueOf(cd))) {
filed60Option = "M";
} else {
throw new SwiftException("ERROR", "cannot find filed60Option.");
} }
BankToCustomerStatementV02 bkToCstmrStmt = mxCamt05300102.getBkToCstmrStmt(); map.put("field60Option", filed60Option);
List<AccountStatement2> stmtList = bkToCstmrStmt.getStmt(); String cdtDbtInd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Bal.CdtDbtInd");
if (stmtList != null && stmtList.size() > 0) { if (CreditDebitCode.CRDT.equals(CreditDebitCode.valueOf(cdtDbtInd))) {
AccountStatement2 stmt = stmtList.get(0); crdr = Mx2MtConstants.DRCRMARK_C;
List<CashBalance3> balList = stmt.getBal(); } else if (CreditDebitCode.DBIT.equals(CreditDebitCode.valueOf(cdtDbtInd))) {
if (balList != null && balList.size() > 0) { crdr = Mx2MtConstants.DRCRMARK_D;
CashBalance3 bal = balList.get(0); } else {
String filed60Option = ""; throw new SwiftException("ERROR", "cannot find filed60 D/C Mark.");
if (bal != null && bal.getTp() != null
&& bal.getTp().getCdOrPrtry() != null) {
if (BalanceType12Code.PRCD.equals(bal.getTp().getCdOrPrtry().getCd())) {
filed60Option = "F";
} else if (BalanceType12Code.ITBD.equals(bal.getTp().getCdOrPrtry().getCd())) {
filed60Option = "M";
} else {
throw new SwiftException("ERROR", "cannot find filed60Option.");
}
map.put("field60Option", filed60Option);
}
if (bal != null) {
String crdr = "";
if (CreditDebitCode.CRDT.equals(bal.getCdtDbtInd())) {
crdr = Mx2MtConstants.DRCRMARK_C;
} else if (CreditDebitCode.DBIT.equals(bal.getCdtDbtInd())) {
crdr = Mx2MtConstants.DRCRMARK_D;
} else {
throw new SwiftException("ERROR", "cannot find filed60 D/C Mark.");
}
String dateStr = "";
if (bal.getDt() != null) {
dateStr = DateUtil.format(bal.getDt().getDt(), "yyMMdd");
}
String ccy = "";
String amtStr = "";
ActiveOrHistoricCurrencyAndAmount ccyAndAmt = bal.getAmt();
if (ccyAndAmt != null) {
ccy = ccyAndAmt.getCcy();
BigDecimal amt = ccyAndAmt.getValue();
amtStr = NumberUtil.formatAmt(amt, ccy);
}
map.put("field60", crdr+dateStr+ccy+amtStr);
}
}
} }
String dateStr = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Bal.Dt.Dt");
if(StringUtil.isNotEmpty(dateStr)){
XMLGregorianCalendar XmlDt = DatatypeFactory.newInstance().newXMLGregorianCalendar(dateStr);
dt = DateUtil.format(XmlDt, "yyMMdd");
}
String amtStr = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Bal.Amt");
String ccyStr = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Bal.Amt@Ccy");
if (StringUtil.isNotEmpty(amtStr) && StringUtil.isNotEmpty(ccyStr)) {
amt = NumberUtil.formatAmt(new BigDecimal(amtStr), ccyStr);
ccy = ccyStr;
}
map.put("field60", crdr+dt+ccy+amt);
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
throw new SwiftException("ERROR", e.getMessage()); throw new SwiftException("ERROR", e.getMessage());
......
...@@ -6,12 +6,14 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; ...@@ -6,12 +6,14 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil; import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil; import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05300102; import com.prowidesoftware.swift.model.mx.dic.CreditDebitCode;
import com.prowidesoftware.swift.model.mx.dic.*; import org.dom4j.Document;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -34,92 +36,67 @@ public class Field61ListGenerate extends AbstractMx2MtFieldsGenerate{ ...@@ -34,92 +36,67 @@ public class Field61ListGenerate extends AbstractMx2MtFieldsGenerate{
@Override @Override
public void fieldsGenerate() throws SwiftException{ public void fieldsGenerate() throws SwiftException{
try { try {
MxCamt05300102 mxCamt05300102 = (MxCamt05300102)map.get(Mx2MtConstants.MX_OBJECT); String valueDateStr = "";
if (mxCamt05300102 == null || mxCamt05300102.getBkToCstmrStmt() == null) { String entryDateStr = "";
return; String drCrMark = "";
String amt = "";
String ccy = "";
List<String> filed61List = new ArrayList<>();
Document document = (Document)map.get(Mx2MtConstants.MX_XML_DOCUMENT);
String dt = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.ValDt.Dt");
String dt2 = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.BookgDt.Dt");
if(StringUtil.isNotEmpty(dt)){
XMLGregorianCalendar valueDateDt = DatatypeFactory.newInstance().newXMLGregorianCalendar(dt);
valueDateStr = DateUtil.format(valueDateDt, "yyMMdd");
} }
BankToCustomerStatementV02 bkToCstmrStmt = mxCamt05300102.getBkToCstmrStmt(); if(StringUtil.isNotEmpty(dt2)){
List<AccountStatement2> stmtList = bkToCstmrStmt.getStmt(); XMLGregorianCalendar entryDateDt = DatatypeFactory.newInstance().newXMLGregorianCalendar(dt);
if (stmtList != null && stmtList.size() > 0) { entryDateStr = DateUtil.format(entryDateDt, "yyMMdd");
AccountStatement2 stmt = stmtList.get(0); }
List<ReportEntry2> ntryList = stmt.getNtry(); String cdtDbtInd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.CdtDbtInd");
if (ntryList.size() > 0) { String rvslInd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.RvslInd");
List<String> filed61List = new ArrayList<>(); if (CreditDebitCode.CRDT.equals(CreditDebitCode.valueOf(cdtDbtInd))) {
for (int i=0; i<ntryList.size(); i++) { if (Boolean.TRUE.equals(Boolean.getBoolean(rvslInd))) {
ReportEntry2 ntry = ntryList.get(i); drCrMark = Mx2MtConstants.DRCRMARK_RD;
String valueDateStr = DateUtil.format(ntry.getValDt().getDt(), "yyMMdd"); } else {
String entryDateStr = DateUtil.format(ntry.getBookgDt().getDt(), "yyMMdd"); drCrMark = Mx2MtConstants.DRCRMARK_C;
String drCrMark = ""; }
if (CreditDebitCode.CRDT.equals(ntry.getCdtDbtInd())) { } else if (CreditDebitCode.DBIT.equals(CreditDebitCode.valueOf(cdtDbtInd))) {
if (Boolean.TRUE.equals(ntry.isRvslInd())) { if (Boolean.TRUE.equals(Boolean.getBoolean(rvslInd))) {
drCrMark = Mx2MtConstants.DRCRMARK_RD; drCrMark = Mx2MtConstants.DRCRMARK_RC;
} else { } else {
drCrMark = Mx2MtConstants.DRCRMARK_C; drCrMark = Mx2MtConstants.DRCRMARK_D;
}
} else if (CreditDebitCode.DBIT.equals(ntry.getCdtDbtInd())) {
if (Boolean.TRUE.equals(ntry.isRvslInd())) {
drCrMark = Mx2MtConstants.DRCRMARK_RC;
} else {
drCrMark = Mx2MtConstants.DRCRMARK_D;
}
} else {
throw new SwiftException("ERROR", "cannot find filed61 D/C Mark.");
}
String ccy = "";
String amtStr = "";
ActiveOrHistoricCurrencyAndAmount ccyAndAmt = ntry.getAmt();
if (ccyAndAmt != null) {
ccy = ccyAndAmt.getCcy();
amtStr = NumberUtil.formatAmt(ccyAndAmt.getValue(), ccy);
}
//TODO
String txnTypeAndIdentification = "";
BankTransactionCodeStructure4 bkTxCd = ntry.getBkTxCd();
if (bkTxCd != null) {
ProprietaryBankTransactionCodeStructure1 prtry = bkTxCd.getPrtry();
if (prtry != null) {
txnTypeAndIdentification = prtry.getCd();
}
}
String referenceForTheAccountOwner = "";
String supplementDetails = "";
List<EntryDetails1> ntryDtlsList = ntry.getNtryDtls();
if (ntryDtlsList.size() > 0) {
EntryDetails1 ntryDtls = ntryDtlsList.get(0);
List<EntryTransaction2> txDtlsList = ntryDtls.getTxDtls();
if (txDtlsList.size() > 0) {
EntryTransaction2 txDtls = txDtlsList.get(0);
if (txDtls.getRefs() != null) {
referenceForTheAccountOwner = txDtls.getRefs().getEndToEndId();
}
supplementDetails = txDtls.getAddtlTxInf();
}
}
String referenceForTheAccountServInst = ntry.getAcctSvcrRef();
StringBuilder sb = new StringBuilder();
sb.append(valueDateStr)
.append(entryDateStr)
.append(drCrMark)
.append(ccy)
.append(amtStr)
.append(txnTypeAndIdentification)
.append(referenceForTheAccountOwner);
if (!StringUtil.isEmpty(referenceForTheAccountServInst)) {
sb.append("//"+referenceForTheAccountServInst);
}
if (!StringUtil.isEmpty(supplementDetails)) {
sb.append(Mx2MtConstants.NEW_LINE+supplementDetails);
}
if (StringUtils.isNotEmpty(ntry.getAddtlNtryInf()))
sb.append(Mx2MtConstants.NEW_LINE).append(":86:").append(StringUtil.getStringByEnter(ntry.getAddtlNtryInf(), 35, 6));
filed61List.add(sb.toString());
}
if (filed61List.size() > 0) {
map.put("field61List", filed61List);
}
} }
} else {
throw new SwiftException("ERROR", "cannot find filed61 D/C Mark.");
}
String amtStr = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.Amt");
String ccyStr = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.Amt@Ccy");
if (StringUtil.isNotEmpty(amtStr) && StringUtil.isNotEmpty(ccyStr)) {
amt = NumberUtil.formatAmt(new BigDecimal(amtStr), ccyStr);
ccy = ccyStr;
}
String cd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.BkTxCd.Prtry.Cd");
String endToEndId = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.NtryDtls.TxDtls.Refs.EndToEndId");
String addtlTxInf = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.NtryDtls.TxDtls.AddtlTxInf");
String acctSvcrRef = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "Stmt.Ntry.AcctSvcrRef");
StringBuilder sb = new StringBuilder();
sb.append(valueDateStr)
.append(entryDateStr)
.append(drCrMark)
.append(ccy)
.append(amt)
.append(cd)
.append(endToEndId);
if (StringUtil.isNotEmpty(acctSvcrRef)) {
sb.append("//"+acctSvcrRef);
}
if (StringUtil.isNotEmpty(addtlTxInf)) {
sb.append(Mx2MtConstants.NEW_LINE+addtlTxInf);
}
filed61List.add(sb.toString());
if (filed61List.size() > 0) {
map.put("field61List", filed61List);
} }
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage()); logger.error(e.getMessage());
......
...@@ -12,7 +12,7 @@ public class Mx2Mt940 { ...@@ -12,7 +12,7 @@ public class Mx2Mt940 {
String s = null; String s = null;
try { try {
URL resource = Mx2Mt940.class.getClassLoader().getResource("swiftXml/"); URL resource = Mx2Mt940.class.getClassLoader().getResource("swiftXml/");
s = new Mx2MtCreateManager().mx2mt(new File(resource.getPath()+"MxCamt05300102_940.xml")); s = new Mx2MtCreateManager().mx2mt(new File(resource.getPath()+"MxCamt05300102_940.xml"),"D:/test/MT940.txt");
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
......
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