Commit fc92d441 by chengzhuoshen

1.rewrite MT202,MT202Cov, MT900910 used new template

2.remove logger code
parent 75cc02d6
......@@ -37,6 +37,36 @@ public class Mx2MtConstants {
public static final String MT_TYPE = "mtType";
public static final String MT_IO_TYPE = "mtIOType";
public static final String MT_IO_TYPE_INPUT = "I";
public static final String MT_IO_TYPE_OUTPUT = "O";
public static final String HEADER_APPLICATION_IDEN_F = "F";
public static final String HEADER_APPLICATION_IDEN_A = "A";
public static final String HEADER_APPLICATION_IDEN_L = "L";
/**
* GPA USER-TO-USER
*/
public static final String HEADER_SERVICE_TYPE_01 = "01";
/**
* ACK/NAK,UAK/UNK
*/
public static final String HEADER_SERVICE_TYPE_21 = "21";
/**
* SELECT
*/
public static final String HEADER_SERVICE_TYPE_03 = "03";
public static final String HEADER_PRIORITY_NORMAL = "N";
public static final String HEADER_PRIORITY_HIGH = "U";
public static final String INS = "/INS/";
public static final String ACC = "/ACC/";
public static final String PHONBEN = "/PHONBEN/";
......@@ -44,4 +74,6 @@ public class Mx2MtConstants {
public static final String TELE = "/TELE/";
public static final String REC = "/REC/";
public static final String PHONIBK = "/PHONIBK/";
public static final String HEAD3_MT202_COVER = "{119:COV}";
}
package com.prowidesoftware.brilliance.mx2mt;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.*;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader42;
import com.prowidesoftware.swift.model.mx.dic.Priority2Code;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
......@@ -18,6 +22,7 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
protected AbstractMx2MtCreator withObj(Object obj) {
map.put(Mx2MtConstants.MX_OBJECT, obj);
map.put(Mx2MtConstants.MT_IO_TYPE, Mx2MtConstants.MT_IO_TYPE_OUTPUT);
return this;
}
......@@ -39,6 +44,14 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
return this;
}
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
protected void generateCommonField(GroupHeader42 grpHdr) {
if (grpHdr != null) {
String createDateStr = DateUtil.format(grpHdr.getCreDtTm(), "YYMMdd");
......@@ -52,11 +65,133 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
}
}
public Map<String, Object> getMap() {
return map;
//TODO
protected String getRandomNumber(int length) {
String randomNumber = "";
Random random = new Random();
for (int i=0; i<length; i++) {
randomNumber += random.nextInt(9);
}
return randomNumber;
}
public void setMap(Map<String, Object> map) {
this.map = map;
protected String getPriority(AppHdr appHdr) {
String priority = Mx2MtConstants.HEADER_PRIORITY_NORMAL;
if (appHdr != null) {
if (appHdr instanceof BusinessAppHdrV01) {
BusinessAppHdrV01 businessAppHdrV01 = (BusinessAppHdrV01)appHdr;
if (StringUtil.isNotEmpty(businessAppHdrV01.getPrty())) {
if (Priority2Code.HIGH.equals(Priority2Code.fromValue(businessAppHdrV01.getPrty()))) {
priority = Mx2MtConstants.HEADER_PRIORITY_HIGH;
}
}
} else if (appHdr instanceof BusinessAppHdrV02) {
BusinessAppHdrV02 businessAppHdrV02 = (BusinessAppHdrV02)appHdr;
if (StringUtil.isNotEmpty(businessAppHdrV02.getPrty())) {
if (Priority2Code.HIGH.equals(Priority2Code.fromValue(businessAppHdrV02.getPrty()))) {
priority = Mx2MtConstants.HEADER_PRIORITY_HIGH;
}
}
}
}
return priority;
}
protected String processBicCode(String bicCode) {
String processedBicCode = "";
if (!StringUtil.isEmpty(bicCode)) {
if (bicCode.length() == 8) {
processedBicCode = bicCode + Mx2MtConstants.BICSUFFIX;
} else if (bicCode.length() == 11) {
processedBicCode = bicCode.substring(0, 8) + Mx2MtConstants.BICMIDDLE + bicCode.substring(8);
} else {
throw new SwiftException("ERROR", "BicCode length is invalid.");
}
}
return processedBicCode;
}
protected abstract String getMtType();
/**
* process method
*/
@Override
public void generateHead1() {
String headApplicationIden = Mx2MtConstants.HEADER_APPLICATION_IDEN_F;
String headServiceType = Mx2MtConstants.HEADER_SERVICE_TYPE_01;
String bicCode = "";
String sessionNumber = getRandomNumber(4);
String sequenceNumber = getRandomNumber(6);
String mtIOType = (String)map.get(Mx2MtConstants.MT_IO_TYPE);
AbstractMX abstractMX = (AbstractMX)map.get(Mx2MtConstants.MX_OBJECT);
AppHdr appHdr = abstractMX.getAppHdr();
if (appHdr != null) {
if (Mx2MtConstants.MT_IO_TYPE_INPUT.equals(mtIOType)) {
bicCode = processBicCode(appHdr.from());
} else if (Mx2MtConstants.MT_IO_TYPE_OUTPUT.equals(mtIOType)) {
bicCode = processBicCode(appHdr.to());
}
}
String head1 = headApplicationIden + headServiceType + bicCode + sessionNumber + sequenceNumber;
map.put("head1", head1);
}
@Override
public void generateHead2() {
String mtIOType = (String)map.get(Mx2MtConstants.MT_IO_TYPE);
String mtType = getMtType();
AbstractMX abstractMX = (AbstractMX)map.get(Mx2MtConstants.MX_OBJECT);
AppHdr appHdr = abstractMX.getAppHdr();
String priority = getPriority(appHdr);
String head2 = "";
if (Mx2MtConstants.MT_IO_TYPE_INPUT.equals(mtIOType)) {
String bicCode = "";
if (appHdr != null) {
bicCode = processBicCode(appHdr.to());
}
head2 = mtIOType + mtType + bicCode + priority;
} else if (Mx2MtConstants.MT_IO_TYPE_OUTPUT.equals(mtIOType)) {
String createDateStr = "";
String createTimeStr = "";
String outDateStr = DateUtil.formatNow( "YYMMdd");
String outTimeStr = DateUtil.formatNow("HHmm");
String bicCode = "";
String sessionNumber = getRandomNumber(4);
String sequenceNumber = getRandomNumber(6);
if (appHdr != null) {
bicCode = processBicCode(appHdr.from());
if (appHdr.creationDate() != null) {
createDateStr = DateUtil.format(appHdr.creationDate(), "YYMMdd");
createTimeStr = DateUtil.format(appHdr.creationDate(), "HHmm");
} else {
createDateStr = DateUtil.formatNow("YYMMdd");
createTimeStr = DateUtil.formatNow("HHmm");
}
}
StringBuilder sb = new StringBuilder();
sb.append(mtIOType)
.append(mtType)
.append(createTimeStr)
.append(createDateStr)
.append(bicCode)
.append(sessionNumber)
.append(sequenceNumber)
.append(outTimeStr)
.append(outDateStr)
.append(priority);
head2 = sb.toString();
}
map.put("head2", head2);
}
@Override
public void generateHead3() {
//need childClasses implements
map.put("head3", "");
}
@Override
public void generateHead5() {
map.put("head5", "");
}
}
......@@ -3,6 +3,8 @@ package com.prowidesoftware.brilliance.mx2mt;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.dic.CashAccount16;
import com.prowidesoftware.swift.model.mx.dic.GenericAccountIdentification1;
import java.util.Map;
......@@ -33,4 +35,32 @@ public abstract class AbstractMx2MtFieldsGenerate implements Mx2MtFieldsGenerate
}
return processedBicCode;
}
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;
}
}
......@@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class Mx2MtCreateManager {
......@@ -85,12 +86,16 @@ public class Mx2MtCreateManager {
public String convert(String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
AbstractMx2MtCreator creator = getMx2MtCreator(msgType);
creator.withObj(mxObj).withOutPutFilePath(outPutFilePath).withExtraMap(extraMap);
creator.generateHead1();
creator.generateHead2();
creator.generateHead3();
List<Mx2MtFieldsGenerate> generateList = creator.getFieldsGenerateList();
for (int i=0; i<generateList.size(); i++) {
AbstractMx2MtFieldsGenerate fieldsGenerate = (AbstractMx2MtFieldsGenerate) generateList.get(i);
fieldsGenerate.withMap(creator.getMap());
fieldsGenerate.fieldsGenerate();
}
creator.generateHead5();
return creator.generateMtMsg();
}
......
......@@ -3,8 +3,30 @@ package com.prowidesoftware.brilliance.mx2mt;
import java.util.List;
public interface Mx2MtCreator {
/**
* generate {1:}
*/
public void generateHead1();
/**
* generate {2:}
*/
public void generateHead2();
/**
* Optional
* generate {3:}
*/
public void generateHead3();
/**
* generate {4:}
*/
public List<Mx2MtFieldsGenerate> getFieldsGenerateList();
/**
* generate {5:}
*/
public void generateHead5();
public String generateMtMsg();
}
......@@ -94,4 +94,9 @@ public class Mx2Mt103Creator extends AbstractMx2MtCreator {
String msg = TemplateUtil.makeFileByTemplate("swift_mt_103.vm", map, outPutFilePath, "utf-8");
return msg;
}
@Override
protected String getMtType() {
return Mx2MtConstants.MT_TYPE_103;
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.*;
import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov.*;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.brilliance.util.TemplateUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
......@@ -20,9 +23,6 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
@Override
public List<Mx2MtFieldsGenerate> getFieldsGenerateList() {
List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new CommonFieldFor202Generate());
fieldsGenerateList.add(new ReceiverBicFieldGenerate());
fieldsGenerateList.add(new SenderBicFieldGenerate());
fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field21Generate());
fieldsGenerateList.add(new Field13CGenerate());
......@@ -40,22 +40,14 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
fieldsGenerateList.add(new FieldB57Generate());
fieldsGenerateList.add(new FieldB59Generate());
fieldsGenerateList.add(new FieldB70Generate());
fieldsGenerateList.add(new FieldB72Generate());
fieldsGenerateList.add(new FieldB33BGenerate());
return fieldsGenerateList;
}
@Override
public String generateMtMsg() {
map.forEach((key,value)->{
System.out.println(key + "-" + value);
});
if (getMtCov()){
map.put("isCov","O202cov");
map.put("cov","{119:COV}");
}else{
map.put("isCov","O202");
}
String outPutFilePath = (String)map.get("outFilePath");
String outPutFilePath = (String)map.get(Mx2MtConstants.OUT_PUT_FILE_PATH);
String msg = TemplateUtil.makeFileByTemplate("swift_mt_202cov.vm", map, outPutFilePath, "utf-8");
return msg;
}
......@@ -68,36 +60,43 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
public boolean getMtCov(){
Boolean msg = false;
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
msg = false;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
String bicOrBEI = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI();
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null){
msg = true;
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
if (cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null) {
&& StringUtil.isNotEmpty(cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI())){
msg = true;
}
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
if (cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getNm() != null){
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& StringUtil.isNotEmpty(cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getNm())){
msg = true;
}
return msg;
} catch(Exception e) {
msg = false;
return msg;
throw new SwiftException("ERROR", "Judge 202 or 202Cov error");
}
return msg;
}
@Override
protected String getMtType() {
return Mx2MtConstants.MT_TYPE_202;
}
@Override
public void generateHead3() {
String head3 = "";
if (getMtCov()) {
head3 = Mx2MtConstants.HEAD3_MT202_COVER;
}
map.put("head3", head3);
}
}
\ No newline at end of file
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class CommonFieldFor202Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(CommonFieldFor202Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("CommonFieldFor202Generate start.");
try {
MxPacs00900102 mxPacs00900102 = (MxPacs00900102)map.get("mxObj");
if (mxPacs00900102 == null || mxPacs00900102.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = mxPacs00900102.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
String createDateStr = DateUtil.format(grpHdr.getCreDtTm(), "YYMMdd");
String createTimeStr = DateUtil.format(grpHdr.getCreDtTm(), "HHmm");
map.put("createDate", createDateStr);
map.put("createTime", createTimeStr);
String outDateStr = DateUtil.formatNow( "YYMMdd");
String outTimeStr = DateUtil.formatNow("HHmm");
map.put("outDate", outDateStr);
map.put("outTime", outTimeStr);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 CommonField error");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil;
......@@ -25,37 +26,33 @@ public class Field13CGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field13CGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
List<CreditTransferTransactionInformation13> cdtTrfTxInf = obj.getFinInstnCdtTrf().getCdtTrfTxInf();
List<String> filed13cList = new ArrayList<>();
List<String> field13cList = new ArrayList<>();
if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmIndctn().getDbtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getDbtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/SNDTIME/"+hmm+"+0800");
field13cList.add("/SNDTIME/"+hmm+"+0800");
}
if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmIndctn().getCdtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getCdtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/RNCTIME/"+hmm+"+0800");
field13cList.add("/RNCTIME/"+hmm+"+0800");
}
if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq() != null
&& obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq().getCLSTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmReq().getCLSTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/CLSTIME/"+hmm+"+0800");
field13cList.add("/CLSTIME/"+hmm+"+0800");
}
if (filed13cList.size() > 0) {
filed13cList.forEach(field61 -> logger.info(":61:"+field61));
map.put("filed13CList", filed13cList);
if (field13cList.size() > 0) {
map.put("field13CList", field13cList);
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field13C error");
}
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
......@@ -16,10 +17,8 @@ public class Field20Generate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field20Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
......@@ -27,7 +26,6 @@ public class Field20Generate extends AbstractMx2MtFieldsGenerate {
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
map.put("field20", grpHdr.getMsgId());
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field20 error");
}
......
......@@ -15,9 +15,8 @@ public class Field21Generate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field21Generate start.");
try {
String field21 = "NONREF";
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
......@@ -27,12 +26,11 @@ public class Field21Generate extends AbstractMx2MtFieldsGenerate {
if (finInstnCdtTrf.getCdtTrfTxInf().get(0) != null
&& finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId() != null
&& finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId() != null){
String endToEndId = finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId();
map.put("field21", endToEndId);
field21 = finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId();
}
}
map.put("field21", field21);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field21 error");
}
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.ActiveCurrencyAndAmount;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
......@@ -25,9 +27,8 @@ public class Field32AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field32AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
......@@ -38,19 +39,23 @@ public class Field32AGenerate extends AbstractMx2MtFieldsGenerate {
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue() != null){
String yymMdd = "";
String yyMMdd = "";
if (cdtTrfTxInf.get(0).getIntrBkSttlmDt() != null){
XMLGregorianCalendar dt = cdtTrfTxInf.get(0).getIntrBkSttlmDt();
yymMdd = DateUtil.format(dt, "YYMMdd");
yyMMdd = DateUtil.format(dt, "yyMMdd");
}
String ccy = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy();
BigDecimal amt = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue();
String amtStr = NumberUtil.formatAmt(amt, ccy);
map.put("field32A",yymMdd+ccy+amtStr);
ActiveCurrencyAndAmount intrBkSttlmAmt = cdtTrfTxInf.get(0).getIntrBkSttlmAmt();
String ccy = "";
String amtStr = "";
if (intrBkSttlmAmt != null) {
ccy = intrBkSttlmAmt.getCcy();
BigDecimal amt = intrBkSttlmAmt.getValue();
amtStr = NumberUtil.formatAmt(amt, ccy);
}
map.put("field32A",yyMMdd+ccy+amtStr);
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field32A error");
}
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -26,56 +27,76 @@ public class Field52AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field52AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getBIC() != null){
map.put("field52Key","A");
map.put("field52A",cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getBIC());
}else if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getDbtr() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getNm() != null){
map.put("field52Key","D");
if (cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field52DAdr",adStr);
}
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field52Account","//CH" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
String field52Option = "";
String field52A = "";
if (cdtTrfTxInf != null) {
BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getDbtr();
if (dbtr != null) {
FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field52Option = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(cdtTrfTxInf.getDbtrAcct());
if (!StringUtil.isEmpty(account)) {
field52A = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field52A = bicCode;
}
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field52Option = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(cdtTrfTxInf.getDbtrAcct());
if (!StringUtil.isEmpty(account)) {
field52A = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field52A = nameAddr;
}
}
}else if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId());
}
}
}
map.put("field52Option", field52Option);
map.put("field52A", field52A);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field52A error");
}
}
public CreditTransferTransactionInformation13 getCreditTransferTransactionInformation13() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0);
} else {
return null;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -35,72 +36,91 @@ public class Field53AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field53AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
if (grpHdr != null && grpHdr.getSttlmInf() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){
map.put("field53AKey","A");
map.put("field53A",grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getBIC());
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId());
SettlementInformation13 sttlmInf = getSttlmInf();
String field53Option = "";
String field53A = "";
if (sttlmInf != null) {
BranchAndFinancialInstitutionIdentification4 instgRmbrsmntAgt = sttlmInf.getInstgRmbrsmntAgt();
if (instgRmbrsmntAgt != null) {
FinancialInstitutionIdentification7 finInstnId = instgRmbrsmntAgt.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field53Option = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(sttlmInf.getInstgRmbrsmntAgtAcct());
if (!StringUtil.isEmpty(account)) {
field53A = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field53A = bicCode;
}
}
}
}else if (grpHdr.getSttlmInf().getSttlmAcct() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId() != null){
if (grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN() != null
|| (grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId() != null)){
map.put("field53BKey","B");
}
if (grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId());
}
}else if (grpHdr.getSttlmInf().getInstgRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getNm() != null){
map.put("field53DKey","D");
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getPstlAdr() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("field53Adr",adStr);
}
if (StringUtil.isEmpty(field53Option)) {
String account = getMtFormatAccount(sttlmInf.getSttlmAcct());
if (!StringUtil.isEmpty(account)) {
field53Option = "B";
field53A = account;
}
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId());
}
if (StringUtil.isEmpty(field53Option)) {
if (instgRmbrsmntAgt != null) {
FinancialInstitutionIdentification7 finInstnId = instgRmbrsmntAgt.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field53Option = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(sttlmInf.getInstgRmbrsmntAgtAcct());
if (!StringUtil.isEmpty(account)) {
field53A = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field53A = nameAddr;
}
}
}
}
}
}
map.put("field53Option", field53Option);
map.put("field53A", field53A);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field53A error");
}
}
public SettlementInformation13 getSttlmInf() {
SettlementInformation13 sttlmInf = null;
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
if (finInstnCdtTrf.getGrpHdr() != null) {
sttlmInf = finInstnCdtTrf.getGrpHdr().getSttlmInf();
}
return sttlmInf;
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -30,48 +31,75 @@ public class Field54AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field54AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
if (grpHdr != null && grpHdr.getSttlmInf() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){
map.put("field54AKey","A");
map.put("field54A",grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC());
}else if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getNm() != null){
map.put("field54DKey","D");
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
SettlementInformation13 sttlmInf = getSttlmInf();
String field54Option = "";
String field54A = "";
if (sttlmInf != null) {
BranchAndFinancialInstitutionIdentification4 instdRmbrsmntAgt = sttlmInf.getInstdRmbrsmntAgt();
if (instdRmbrsmntAgt != null) {
FinancialInstitutionIdentification7 finInstnId = instdRmbrsmntAgt.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field54Option = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(sttlmInf.getInstdRmbrsmntAgtAcct());
if (!StringUtil.isEmpty(account)) {
field54A = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field54A = bicCode;
}
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field54Option = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(sttlmInf.getInstdRmbrsmntAgtAcct());
if (!StringUtil.isEmpty(account)) {
field54A = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field54A = nameAddr;
}
}
map.put("field54Adr",adStr);
}
}
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId() != null){
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN() != null){
map.put("field54Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getIBAN());
}else if (grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr() != null
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field54Account",grpHdr.getSttlmInf().getInstdRmbrsmntAgtAcct().getId().getOthr().getId());
}
}
}
map.put("field54Option", field54Option);
map.put("field54A", field54A);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field54A error");
}
}
public SettlementInformation13 getSttlmInf() {
SettlementInformation13 sttlmInf = null;
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
if (finInstnCdtTrf.getGrpHdr() != null) {
sttlmInf = finInstnCdtTrf.getGrpHdr().getSttlmInf();
}
return sttlmInf;
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -29,51 +30,75 @@ public class Field56AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field56AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC() != null){
map.put("field56AKey","A");
map.put("field56A",cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC());
}
}else if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getNm() != null){
map.put("field56DKey","D");
if (cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
String field56Option = "";
String field56A = "";
if (cdtTrfTxInf != null) {
BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getIntrmyAgt1();
if (dbtr != null) {
FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field56Option = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(cdtTrfTxInf.getIntrmyAgt1Acct());
if (!StringUtil.isEmpty(account)) {
field56A = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field56A = bicCode;
}
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field56Option = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(cdtTrfTxInf.getIntrmyAgt1Acct());
if (!StringUtil.isEmpty(account)) {
field56A = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field56A = nameAddr;
}
}
}
map.put("field56Adr",adStr);
}
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("field56Account",cdtTrfTxInf.get(0).getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
map.put("field56Option", field56Option);
map.put("field56A", field56A);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field56A error");
}
}
public CreditTransferTransactionInformation13 getCreditTransferTransactionInformation13() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0);
} else {
return null;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -29,51 +30,76 @@ public class Field57AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field57AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC() != null){
map.put("field57AKey","A");
map.put("field57A",cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC());
}else if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getNm() != null){
map.put("field57DKey","D");
if (cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
String field57Option = "";
String field57A = "";
if (cdtTrfTxInf != null) {
BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getCdtrAgt();
if (dbtr != null) {
FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field57Option = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(cdtTrfTxInf.getCdtrAgtAcct());
if (!StringUtil.isEmpty(account)) {
field57A = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field57A = bicCode;
}
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field57Option = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(cdtTrfTxInf.getCdtrAgtAcct());
if (!StringUtil.isEmpty(account)) {
field57A = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field57A = nameAddr;
}
}
map.put("field57Adr",adStr);
}
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId() != null){
map.put("field57Account",cdtTrfTxInf.get(0).getCdtrAgtAcct().getId().getOthr().getId());
}
}
}
map.put("field57Option", field57Option);
map.put("field57A", field57A);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field57A error");
}
}
public CreditTransferTransactionInformation13 getCreditTransferTransactionInformation13() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0);
} else {
return null;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -29,52 +30,77 @@ public class Field58AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field58AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtr() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC() != null){
map.put("field58AKey","A");
map.put("field58A",cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC());
}else if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtr() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getNm() != null){
map.put("field58DKey","D");
if (cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
String field58Option = "";
String field58A = "";
if (cdtTrfTxInf != null) {
BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getCdtr();
if (dbtr != null) {
FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field58Option = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(cdtTrfTxInf.getCdtrAcct());
if (!StringUtil.isEmpty(account)) {
field58A = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field58A = bicCode;
}
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field58Option = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(cdtTrfTxInf.getCdtrAcct());
if (!StringUtil.isEmpty(account)) {
field58A = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field58A = nameAddr;
}
}
map.put("field58Adr",adStr);
}
}
if (cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN() != null){
map.put("field58Account",cdtTrfTxInf.get(0).getCdtrAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId() != null){
map.put("field58Account",cdtTrfTxInf.get(0).getCdtrAcct().getId().getOthr().getId());
}
}
}
map.put("field58Option", field58Option);
map.put("field58A", field58A);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field58A error");
}
}
public CreditTransferTransactionInformation13 getCreditTransferTransactionInformation13() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0);
} else {
return null;
}
}
}
......@@ -5,13 +5,11 @@ import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.InstructionForCreditorAgent2;
import com.prowidesoftware.swift.model.mx.dic.InstructionForNextAgent1;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List;
/**
......@@ -38,75 +36,101 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("Field72Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 && cdtTrfTxInf.get(0) != null){
String bic = "";
String nm = "";
String acc = "";
String phob = "";
String telb = "";
String phoa = "";
String tela = "";
String rec = "";
if (cdtTrfTxInf.get(0).getPrvsInstgAgt() != null
&& cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC() != null){
bic = cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC();
CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
StringBuilder sb = new StringBuilder();
String field72 = "";
if (cdtTrfTxInf != null) {
BranchAndFinancialInstitutionIdentification4 prvsInstgAgt = cdtTrfTxInf.getPrvsInstgAgt();
if (prvsInstgAgt != null && prvsInstgAgt.getFinInstnId() != null) {
String bicCode = prvsInstgAgt.getFinInstnId().getBIC();
if (StringUtil.isEmpty(bicCode)) {
bicCode = prvsInstgAgt.getFinInstnId().getNm();
}
if (StringUtil.isNotEmpty(bicCode)) {
bicCode = Mx2MtConstants.INS + bicCode;
if (bicCode.length() > 35) {
bicCode = bicCode.substring(0, 35);
}
if (sb.length() == 0) {
sb.append(bicCode);
} else {
sb.append(Mx2MtConstants.NEW_LINE).append(bicCode);
}
}
if (cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getNm() != null){
nm = Mx2MtConstants.INS + cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC();
}
List<InstructionForCreditorAgent2> instrForCdtrAgtList = cdtTrfTxInf.getInstrForCdtrAgt();
if (instrForCdtrAgtList.size() > 0) {
String cdtrAgtCode = "";
InstructionForCreditorAgent2 instrForCdtrAgt = instrForCdtrAgtList.get(0);
if (instrForCdtrAgt.getCd() == null && StringUtil.isNotEmpty(instrForCdtrAgt.getInstrInf())) {
cdtrAgtCode = Mx2MtConstants.ACC + instrForCdtrAgt.getInstrInf();
} else if (Instruction5Code.PHOB.equals(instrForCdtrAgt.getCd()) && StringUtil.isNotEmpty(instrForCdtrAgt.getInstrInf())) {
cdtrAgtCode = Mx2MtConstants.PHONBEN + instrForCdtrAgt.getInstrInf();
} else if (Instruction5Code.TELB.equals(instrForCdtrAgt.getCd()) && StringUtil.isNotEmpty(instrForCdtrAgt.getInstrInf())) {
cdtrAgtCode = Mx2MtConstants.PHONBEN + instrForCdtrAgt.getInstrInf();
}
if (cdtTrfTxInf.get(0).getInstrForCdtrAgt() != null && cdtTrfTxInf.get(0).getInstrForCdtrAgt().size() >0){
List<InstructionForCreditorAgent2> ifcList = cdtTrfTxInf.get(0).getInstrForCdtrAgt();
for (int i=0; i<ifcList.size(); i++){
InstructionForCreditorAgent2 ifca2 = ifcList.get(i);
if (ifca2.getCd() == null && ifca2.getInstrInf() != null){
acc = acc + Mx2MtConstants.ACC + ifca2.getInstrInf();
}
if (ifca2.getCd() != null && "PHOB".equals(ifca2.getCd())){
phob = phob + Mx2MtConstants.PHONBEN + ifca2.getInstrInf();
}
if (ifca2.getCd() != null && "TELB".equals(ifca2.getCd())){
telb = telb + Mx2MtConstants.PHONBEN + ifca2.getInstrInf();
}
if (StringUtil.isNotEmpty(cdtrAgtCode)) {
if (cdtrAgtCode.length() > 35) {
cdtrAgtCode = cdtrAgtCode.substring(0, 35);
}
if (sb.length() == 0) {
sb.append(cdtrAgtCode);
} else {
sb.append(Mx2MtConstants.NEW_LINE).append(cdtrAgtCode);
}
}
if (cdtTrfTxInf.get(0).getInstrForNxtAgt() != null && cdtTrfTxInf.get(0).getInstrForNxtAgt().size() > 0){
List<InstructionForNextAgent1> ifn = cdtTrfTxInf.get(0).getInstrForNxtAgt();
for (int i=0; i<ifn.size(); i++){
InstructionForNextAgent1 ifna = ifn.get(i);
if (ifna.getCd() != null && "PHOA".equals(ifna.getCd())){
if (map.get("field56A") == null){
phoa = phoa + Mx2MtConstants.PHON + ifna.getInstrInf();
}else{
phoa = phoa + Mx2MtConstants.PHONIBK + ifna.getInstrInf();
}
}
if (ifna.getCd() != null && "TELA".equals(ifna.getCd())){
tela = tela + Mx2MtConstants.TELE + ifna.getInstrInf();
}
if (ifna.getCd() == null && ifna.getInstrInf() != null){
rec = rec + Mx2MtConstants.REC + ifna.getInstrInf();
}
}
List<InstructionForNextAgent1> instrForNxtAgtList = cdtTrfTxInf.getInstrForNxtAgt();
if (instrForNxtAgtList.size() > 0) {
String nextAgentCode = "";
InstructionForNextAgent1 instrForNxtAgt = instrForNxtAgtList.get(0);
if (instrForNxtAgt.getCd() == null && StringUtil.isNotEmpty(instrForNxtAgt.getInstrInf())) {
nextAgentCode = Mx2MtConstants.REC + instrForNxtAgt.getInstrInf();
} else if (Instruction4Code.TELA.equals(instrForNxtAgt.getCd()) && StringUtil.isNotEmpty(instrForNxtAgt.getInstrInf())) {
nextAgentCode = Mx2MtConstants.TELE + instrForNxtAgt.getInstrInf();
} else if (Instruction4Code.PHOA.equals(instrForNxtAgt.getCd()) && StringUtil.isNotEmpty(instrForNxtAgt.getInstrInf())) {
String field56Option = (String)map.get("field56Option");
if (StringUtil.isEmpty(field56Option)) {
nextAgentCode = Mx2MtConstants.PHON + instrForNxtAgt.getInstrInf();
} else {
nextAgentCode = Mx2MtConstants.PHONIBK + instrForNxtAgt.getInstrInf();
}
}
if (StringUtil.isNotEmpty(nextAgentCode)) {
if (nextAgentCode.length() > 35) {
nextAgentCode = nextAgentCode.substring(0, 35);
}
if (sb.length() == 0) {
sb.append(nextAgentCode);
} else {
sb.append(Mx2MtConstants.NEW_LINE).append(nextAgentCode);
}
}
}
String str72 = bic + nm + acc + phob + telb + phoa + tela +rec;
//35个字符截取
String enter = StringUtil.getStringByEnter(str72, 35, 6);
map.put("filed72",enter);
}
if (sb.length() > 0) {
field72 = sb.toString();
}
map.put("field72", field72);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field58A error");
throw new SwiftException("ERROR", "Convert MT202 filed72 error");
}
}
public CreditTransferTransactionInformation13 getCreditTransferTransactionInformation13() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0);
} else {
return null;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* <GrpHdr><InstgAgt><FinInstnId><BICFI>
*/
public class ReceiverBicFieldGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.ReceiverBicFieldGenerate.class);
/**
* <GrpHdr><InstgAgt><FinInstnId><BICFI>
*/
@Override
public void fieldsGenerate() {
logger.info("ReceiverBicFieldGenerate start.");
try{
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
GroupHeader35 grpHdr = obj.getFinInstnCdtTrf().getGrpHdr();
if (grpHdr != null) {
if (grpHdr.getInstgAgt() != null
&& grpHdr.getInstgAgt().getFinInstnId() != null
&& grpHdr.getInstgAgt().getFinInstnId().getBIC() != null){
String receiverBic = grpHdr.getInstgAgt().getFinInstnId().getBIC();
logger.info("Receiver Bic : " + receiverBic);
if (!StringUtil.isEmpty(receiverBic)) {
String mtReceiverBic = "";
if (receiverBic.length() == 8) {
mtReceiverBic = receiverBic + Mx2MtConstants.BICSUFFIX;
} else if (receiverBic.length() == 11) {
mtReceiverBic = receiverBic.substring(0, 8) + Mx2MtConstants.BICMIDDLE + receiverBic.substring(8);
} else {
throw new SwiftException("ERROR", "ReceiverBic length is invalid.");
}
map.put("receiverBic", mtReceiverBic);
}
}
}
}catch(Exception e){
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 ReceiverBic error.");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class SenderBicFieldGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(ReceiverBicFieldGenerate.class);
/**
* <GrpHdr><InstdAgt><FinInstnId><BICFI>
*/
@Override
public void fieldsGenerate() {
logger.info("ReceiverBicFieldGenerate start.");
try{
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
GroupHeader35 grpHdr = obj.getFinInstnCdtTrf().getGrpHdr();
if (grpHdr != null) {
if (grpHdr.getInstgAgt() != null
&& grpHdr.getInstdAgt().getFinInstnId() != null
&& grpHdr.getInstdAgt().getFinInstnId().getBIC() != null){
String receiverBic = grpHdr.getInstdAgt().getFinInstnId().getBIC();
logger.info("Sender Bic : " + receiverBic);
if (!StringUtil.isEmpty(receiverBic)) {
String mtsenderBic = "";
if (receiverBic.length() == 8) {
mtsenderBic = receiverBic + Mx2MtConstants.BICSUFFIX;
} else if (receiverBic.length() == 11) {
mtsenderBic = receiverBic.substring(0, 8) + Mx2MtConstants.BICMIDDLE + receiverBic.substring(8);
} else {
throw new SwiftException("ERROR", "senderBic length is invalid.");
}
map.put("senderBic", mtsenderBic);
}
}
}
}catch(Exception e){
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 SenderBic error.");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -32,58 +33,76 @@ public class Field50AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
// TODO 50F取值待补充
logger.info("Field50AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null){
map.put("fieldB50Option","A");
map.put("fieldB50A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getNm() != null){
map.put("fieldB50Option","K");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("fieldB50K",adStr);
}
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN() != null){
map.put("fieldB50Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN());
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null) {
map.put("fieldB50Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
String field50BOption = "";
String field50B = "";
if (undrlygCstmrCdtTrf != null) {
PartyIdentification32 dbtr = undrlygCstmrCdtTrf.getDbtr();
if (dbtr != null) {
Party6Choice id = dbtr.getId();
if (dbtr.getId() != null
&& dbtr.getId().getOrgId() != null
&& StringUtil.isNotEmpty(dbtr.getId().getOrgId().getBICOrBEI())) {
String bicCode = dbtr.getId().getOrgId().getBICOrBEI();
field50BOption = "A";
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getDbtrAcct());
if (!StringUtil.isEmpty(account)) {
field50B = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field50B = bicCode;
}
} else if (StringUtil.isNotEmpty(dbtr.getNm())) {
field50BOption = "K";
String nameAddr = "";
PostalAddress6 pstlAdr = dbtr.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getDbtrAcct());
if (!StringUtil.isEmpty(account)) {
field50B = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field50B = nameAddr;
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null){
map.put("fieldB50Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId());
}
}
}
}
map.put("field50BOption", field50BOption);
map.put("field50B", field50B);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field50A error");
}
}
public CreditTransferTransactionInformation12 getUndrlygCstmrCdtTrf() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf();
} else {
return null;
}
}
}
......@@ -22,12 +22,12 @@ public class FieldB33BGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB33BGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
String filed33B = "";
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
......@@ -38,11 +38,11 @@ public class FieldB33BGenerate extends AbstractMx2MtFieldsGenerate {
String ccy = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getCcy();
BigDecimal amt = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getValue();
String amtStr = NumberUtil.formatAmt(amt, ccy);
map.put("field33B",ccy+amtStr);
filed33B = ccy+amtStr;
}
}
map.put("field33B", filed33B);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field33B error");
}
}
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -29,55 +30,76 @@ public class FieldB52AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB52AGenerate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getBIC() != null){
map.put("fieldB52Option","A");
map.put("fieldB52A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getBIC());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getNm() != null){
map.put("fieldB52Option","D");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null) {
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i < adrList.size(); i++) {
adStr = adStr + adrList.get(i);
}
map.put("fieldB52D", adStr);
}
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getIBAN() != null){
map.put("fieldB52Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB52Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId());
CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
String field52BOption = "";
String field52B = "";
if (undrlygCstmrCdtTrf != null) {
BranchAndFinancialInstitutionIdentification4 dbtr = undrlygCstmrCdtTrf.getDbtrAgt();
if (dbtr != null) {
FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field52BOption = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getDbtrAgtAcct());
if (!StringUtil.isEmpty(account)) {
field52B = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field52B = bicCode;
}
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field52BOption = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
}
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getDbtrAgtAcct());
if (!StringUtil.isEmpty(account)) {
field52B = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field52B = nameAddr;
}
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId() != null){
map.put("fieldB52Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId());
}
}
}
map.put("field52BOption", field52BOption);
map.put("field52B", field52B);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field52A error");
throw new SwiftException("ERROR", "Convert MT202COV Field52 error");
}
}
public CreditTransferTransactionInformation12 getUndrlygCstmrCdtTrf() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf();
} else {
return null;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -36,87 +37,81 @@ public class FieldB56Generate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB56Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC() != null){
map.put("fieldB56Option","A");
map.put("fieldB56A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null) {
map.put("fieldB56Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
String field56BOption = "";
String field56B = "";
if (undrlygCstmrCdtTrf != null) {
BranchAndFinancialInstitutionIdentification4 intrmyAgt1 = undrlygCstmrCdtTrf.getIntrmyAgt1();
if (intrmyAgt1 != null) {
FinancialInstitutionIdentification7 finInstnId = intrmyAgt1.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field56BOption = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getIntrmyAgt1Acct());
if (!StringUtil.isEmpty(account)) {
field56B = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field56B = bicCode;
}
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field56BOption = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i = 0; i < adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE + adrLine;
}
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}else if(cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC() == null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getNm() == null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null
|| (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null)){
map.put("fieldB56Option","C");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null){
if(cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("fieldB56Account","//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getClrSysMmbId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getClrSysMmbId().getMmbId() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getClrSysMmbId().getMmbId());
}
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getIntrmyAgt1Acct());
if (!StringUtil.isEmpty(account)) {
field56B = account + Mx2MtConstants.NEW_LINE + nameAddr;
} else {
field56B = nameAddr;
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getNm() != null){
map.put("fieldB56Option","D");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
} else {
if (finInstnId.getClrSysMmbId() != null
&& StringUtil.isNotEmpty(finInstnId.getClrSysMmbId().getMmbId())) {
field56BOption = "C";
field56B = "/" + finInstnId.getClrSysMmbId().getMmbId();
}
map.put("fieldB56D",adStr);
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null) {
map.put("fieldB56Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null){
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId());
}
}
}
}
}
map.put("field56BOption", field56BOption);
map.put("field56B", field56B);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field56 error");
}
}
public CreditTransferTransactionInformation12 getUndrlygCstmrCdtTrf() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf();
} else {
return null;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -34,89 +35,82 @@ public class FieldB57Generate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB57Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC() != null) {
map.put("fieldB57Option", "A");
map.put("fieldB57",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC());
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN() != null){
map.put("fieldB57Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}
CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
String field57BOption = "";
String field57B = "";
if (undrlygCstmrCdtTrf != null) {
BranchAndFinancialInstitutionIdentification4 cdtrAgt = undrlygCstmrCdtTrf.getCdtrAgt();
if (cdtrAgt != null) {
FinancialInstitutionIdentification7 finInstnId = cdtrAgt.getFinInstnId();
if (finInstnId != null) {
if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
field57BOption = "A";
String bicCode = finInstnId.getBIC();
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getCdtrAgtAcct());
if (!StringUtil.isEmpty(account)) {
field57B = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field57B = bicCode;
}
}
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getNm() == null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN() != null
|| (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null)){
map.put("fieldB57Option","C");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null){
map.put("fieldB57Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getClrSysMmbId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getClrSysMmbId().getMmbId() != null){
map.put("fieldB57Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getClrSysMmbId().getMmbId());
}
}else{
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getNm() != null){
map.put("fieldB57Option", "D");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
}
map.put("fieldB57D",adStr);
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN() != null){
map.put("fieldB57Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN());
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
} else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
field57BOption = "D";
String nameAddr = "";
PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i = 0; i < adrLineList.size(); i++) {
if (i == 4) {
break;
}
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) {
map.put("fieldB57Account", cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId());
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE + adrLine;
}
}
}
}
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getCdtrAgtAcct());
if (!StringUtil.isEmpty(account)) {
field57B = account + Mx2MtConstants.NEW_LINE + nameAddr;
} else {
field57B = nameAddr;
}
} else {
if (finInstnId.getClrSysMmbId() != null
&& StringUtil.isNotEmpty(finInstnId.getClrSysMmbId().getMmbId())) {
field57BOption = "C";
field57B = "/" + finInstnId.getClrSysMmbId().getMmbId();
}
}
}
}
}
map.put("field57BOption", field57BOption);
map.put("field57B", field57B);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field57 error");
}
}
public CreditTransferTransactionInformation12 getUndrlygCstmrCdtTrf() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf();
} else {
return null;
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -30,64 +31,75 @@ public class FieldB59Generate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB59Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getNm() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC() != null) {
map.put("fieldB59Option", "");
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr().getAdrLine() != null){
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr().getAdrLine();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
String field59BOption = "";
String field59B = "";
if (undrlygCstmrCdtTrf != null) {
PartyIdentification32 cdtr = undrlygCstmrCdtTrf.getCdtr();
if (cdtr != null) {
if (StringUtil.isNotEmpty(cdtr.getNm())) {
field59BOption = "NOLETTER";
String nameAddr = "";
PostalAddress6 pstlAdr = cdtr.getPstlAdr();
if (pstlAdr != null) {
List<String> adrLineList = pstlAdr.getAdrLine();
if (adrLineList.size() > 0) {
for (int i=0; i<adrLineList.size(); i++) {
if (i == 4) {
break;
}
String adrLine = adrLineList.get(i);
if (adrLine.length() > 35) {
adrLine = adrLine.substring(0, 35);
}
if (i == 0) {
nameAddr += adrLine;
} else {
nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
}
}
}
map.put("fieldB59",adStr);
}
}else{
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId().getBICOrBEI() != null){
map.put("fieldB59Option", "A");
map.put("fieldB59A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId().getBICOrBEI());
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getCdtrAcct());
if (!StringUtil.isEmpty(account)) {
field59B = account + Mx2MtConstants.NEW_LINE + nameAddr;;
} else {
field59B = nameAddr;
}
}
}
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getIBAN() != null){
map.put("fieldB59Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getIBAN());
}else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getId() != null){
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getSchmeNm() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getSchmeNm().getCd() != null){
map.put("fieldB57Account","//CH"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getId());
}else {
map.put("fieldB57Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr().getId());
}
} else if (cdtr.getId() != null
&& cdtr.getId().getOrgId() != null
&& StringUtil.isNotEmpty(cdtr.getId().getOrgId().getBICOrBEI())) {
String bicCode = cdtr.getId().getOrgId().getBICOrBEI();
field59BOption = "A";
String account = getMtFormatAccount(undrlygCstmrCdtTrf.getCdtrAcct());
if (!StringUtil.isEmpty(account)) {
field59B = account + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field59B = bicCode;
}
}
}
}
map.put("field59BOption", field59BOption);
map.put("field59B", field59B);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field57 error");
throw new SwiftException("ERROR", "Convert MT202COV Field59 error");
}
}
public CreditTransferTransactionInformation12 getUndrlygCstmrCdtTrf() {
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return null;
}
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf.size() > 0) {
return cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf();
} else {
return null;
}
}
}
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
......@@ -21,12 +22,12 @@ public class FieldB70Generate extends AbstractMx2MtFieldsGenerate {
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("FieldB70Generate start.");
try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) {
return;
}
String field70B = "";
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
......@@ -37,12 +38,11 @@ public class FieldB70Generate extends AbstractMx2MtFieldsGenerate {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().size() >0
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0) != null){
String s = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0);
String enter = StringUtil.getStringByEnter(s, 35, 4);
map.put("field70",enter);
field70B = StringUtil.getStringByEnter(s, 35, 4);
}
}
map.put("field70B", field70B);
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field70 error");
}
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
public class FieldB72Generate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(FieldB72Generate.class);
@Override
public void fieldsGenerate() throws SwiftException {
map.put("filed72B", "");
}
}
......@@ -5,9 +5,12 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt900910.impl.*;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.brilliance.util.TemplateUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -21,8 +24,6 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator {
@Override
public List<Mx2MtFieldsGenerate> getFieldsGenerateList() {
List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new ReceiverBicFieldGenerate());
fieldsGenerateList.add(new SenderBicFieldGenerate());
fieldsGenerateList.add(new Field13DGenerate());
fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field21Generate());
......@@ -37,18 +38,7 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator {
@Override
public String generateMtMsg() {
MxCamt05400102 mxCamt05400102 = (MxCamt05400102)map.get(Mx2MtConstants.MX_OBJECT);
if (mxCamt05400102 != null
&& mxCamt05400102.getBkToCstmrDbtCdtNtfctn() != null
&& mxCamt05400102.getBkToCstmrDbtCdtNtfctn().getGrpHdr() != null) {
generateCommonField(mxCamt05400102.getBkToCstmrDbtCdtNtfctn().getGrpHdr());
}
validate();
map.forEach((key,value)->{
if (!Mx2MtConstants.MX_OBJECT.equals(key)) {
logger.info(key + "-" + value);
}
});
String outPutFilePath = (String)map.get(Mx2MtConstants.OUT_PUT_FILE_PATH);
return TemplateUtil.makeFileByTemplate("swift_mt_900_910.vm", map, outPutFilePath, "utf-8");
}
......@@ -63,4 +53,34 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator {
}
}
}
@Override
protected String getMtType() {
try {
String mtType = "";
MxCamt05400102 mxCamt05400102 = (MxCamt05400102)map.get(Mx2MtConstants.MX_OBJECT);
if (mxCamt05400102 == null || mxCamt05400102.getBkToCstmrDbtCdtNtfctn() == null) {
return mtType;
}
BankToCustomerDebitCreditNotificationV02 bkToCstmrDbtCdtNtfctn = mxCamt05400102.getBkToCstmrDbtCdtNtfctn();
List<AccountNotification2> ntfctnList = bkToCstmrDbtCdtNtfctn.getNtfctn();
if (ntfctnList != null && ntfctnList.size() > 0) {
AccountNotification2 ntfctn = ntfctnList.get(0);
List<ReportEntry2> ntryList = ntfctn.getNtry();
if (ntryList != null && ntryList.size() > 0) {
ReportEntry2 ntry = ntryList.get(0);
//judge 900 or 910
if (CreditDebitCode.DBIT.equals(ntry.getCdtDbtInd())) {
mtType = Mx2MtConstants.MT_TYPE_900;
} else if (CreditDebitCode.CRDT.equals(ntry.getCdtDbtInd())) {
mtType = Mx2MtConstants.MT_TYPE_910;
}
}
}
return mtType;
} catch (Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "getMtType error.");
}
}
}
......@@ -60,9 +60,9 @@ public class Field50aGenerate extends AbstractMx2MtFieldsGenerate {
}
}
if (!StringUtil.isEmpty(iban)) {
field50a = "/"+iban + "\r\n" + bicCode;
field50a = "/"+iban + Mx2MtConstants.NEW_LINE + bicCode;
} else if (!StringUtil.isEmpty(otherId)) {
field50a = "//CH"+otherId + "\r\n" + bicCode;
field50a = "//CH"+otherId + Mx2MtConstants.NEW_LINE + bicCode;
} else {
field50a = bicCode;
}
......
package com.prowidesoftware.brilliance.mx2mt.mt900910.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.AccountNotification2;
import com.prowidesoftware.swift.model.mx.dic.BankToCustomerDebitCreditNotificationV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
public class ReceiverBicFieldGenerate extends AbstractMx2MtFieldsGenerate{
private static final Logger logger = LoggerFactory.getLogger(ReceiverBicFieldGenerate.class);
/**
* <Stmt><Acct><Svcr><FinInstnId><BICFI>
* @throws SwiftException
*/
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("ReceiverBicFieldGenerate start.");
try {
MxCamt05400102 mxCamt05400102 = (MxCamt05400102)map.get(Mx2MtConstants.MX_OBJECT);
if (mxCamt05400102 == null || mxCamt05400102.getBkToCstmrDbtCdtNtfctn() == null) {
return;
}
BankToCustomerDebitCreditNotificationV02 bkToCstmrDbtCdtNtfctn = mxCamt05400102.getBkToCstmrDbtCdtNtfctn();
List<AccountNotification2> ntfctnList = bkToCstmrDbtCdtNtfctn.getNtfctn();
if (ntfctnList != null && ntfctnList.size() > 0) {
AccountNotification2 ntfctn = ntfctnList.get(0);
if (ntfctn != null
&& ntfctn.getAcct() != null
&& ntfctn.getAcct().getSvcr() != null
&& ntfctn.getAcct().getSvcr().getFinInstnId() != null) {
String receiverBic = ntfctn.getAcct().getSvcr().getFinInstnId().getBIC();
String mtReceiverBic = processBicCode(receiverBic);
if (!StringUtil.isEmpty(mtReceiverBic)) {
map.put("receiverBic", mtReceiverBic);
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT900/910 ReceiverBic error.");
}
}
}
package com.prowidesoftware.brilliance.mx2mt.mt900910.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.AccountNotification2;
import com.prowidesoftware.swift.model.mx.dic.BankToCustomerDebitCreditNotificationV02;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
public class SenderBicFieldGenerate extends AbstractMx2MtFieldsGenerate {
private static final Logger logger = LoggerFactory.getLogger(SenderBicFieldGenerate.class);
/**
* <Stmt><Acct><Ownr><Id><OrgId><AnyBIC> BICOrBEI
* @throws SwiftException
*/
@Override
public void fieldsGenerate() throws SwiftException {
logger.info("SenderBicFieldGenerate start.");
try {
MxCamt05400102 mxCamt05400102 = (MxCamt05400102)map.get(Mx2MtConstants.MX_OBJECT);
if (mxCamt05400102 == null || mxCamt05400102.getBkToCstmrDbtCdtNtfctn() == null) {
return;
}
BankToCustomerDebitCreditNotificationV02 bkToCstmrDbtCdtNtfctn = mxCamt05400102.getBkToCstmrDbtCdtNtfctn();
List<AccountNotification2> ntfctnList = bkToCstmrDbtCdtNtfctn.getNtfctn();
if (ntfctnList != null && ntfctnList.size() > 0) {
AccountNotification2 ntfctn = ntfctnList.get(0);
if (ntfctn != null
&& ntfctn.getAcct() != null
&& ntfctn.getAcct().getOwnr() != null
&& ntfctn.getAcct().getOwnr().getId() != null
&& ntfctn.getAcct().getOwnr().getId().getOrgId() != null) {
String senderBic = ntfctn.getAcct().getOwnr().getId().getOrgId().getBICOrBEI();
String mtSenderBic = processBicCode(senderBic);
if (!StringUtil.isEmpty(mtSenderBic)) {
map.put("senderBic", mtSenderBic);
}
}
}
} catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT900/910 SenderBic error");
}
}
}
......@@ -125,4 +125,13 @@ public class Mx2Mt950Creator extends AbstractMx2MtCreator {
}
return false;
}
@Override
protected String getMtType() {
if (getMtMsg()) {
return Mx2MtConstants.MT_TYPE_940;
} else {
return Mx2MtConstants.MT_TYPE_950;
}
}
}
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