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 { ...@@ -37,6 +37,36 @@ public class Mx2MtConstants {
public static final String MT_TYPE = "mtType"; 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 INS = "/INS/";
public static final String ACC = "/ACC/"; public static final String ACC = "/ACC/";
public static final String PHONBEN = "/PHONBEN/"; public static final String PHONBEN = "/PHONBEN/";
...@@ -44,4 +74,6 @@ public class Mx2MtConstants { ...@@ -44,4 +74,6 @@ public class Mx2MtConstants {
public static final String TELE = "/TELE/"; public static final String TELE = "/TELE/";
public static final String REC = "/REC/"; public static final String REC = "/REC/";
public static final String PHONIBK = "/PHONIBK/"; public static final String PHONIBK = "/PHONIBK/";
public static final String HEAD3_MT202_COVER = "{119:COV}";
} }
package com.prowidesoftware.brilliance.mx2mt; package com.prowidesoftware.brilliance.mx2mt;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.util.DateUtil; import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.StringUtil; 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.GroupHeader42;
import com.prowidesoftware.swift.model.mx.dic.Priority2Code;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Random;
public abstract class AbstractMx2MtCreator implements Mx2MtCreator { public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
...@@ -18,6 +22,7 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator { ...@@ -18,6 +22,7 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
protected AbstractMx2MtCreator withObj(Object obj) { protected AbstractMx2MtCreator withObj(Object obj) {
map.put(Mx2MtConstants.MX_OBJECT, obj); map.put(Mx2MtConstants.MX_OBJECT, obj);
map.put(Mx2MtConstants.MT_IO_TYPE, Mx2MtConstants.MT_IO_TYPE_OUTPUT);
return this; return this;
} }
...@@ -39,6 +44,14 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator { ...@@ -39,6 +44,14 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
return this; return this;
} }
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
protected void generateCommonField(GroupHeader42 grpHdr) { protected void generateCommonField(GroupHeader42 grpHdr) {
if (grpHdr != null) { if (grpHdr != null) {
String createDateStr = DateUtil.format(grpHdr.getCreDtTm(), "YYMMdd"); String createDateStr = DateUtil.format(grpHdr.getCreDtTm(), "YYMMdd");
...@@ -52,11 +65,133 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator { ...@@ -52,11 +65,133 @@ public abstract class AbstractMx2MtCreator implements Mx2MtCreator {
} }
} }
public Map<String, Object> getMap() { //TODO
return map; 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) { protected String getPriority(AppHdr appHdr) {
this.map = map; 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; ...@@ -3,6 +3,8 @@ package com.prowidesoftware.brilliance.mx2mt;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants; import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.util.StringUtil; 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; import java.util.Map;
...@@ -33,4 +35,32 @@ public abstract class AbstractMx2MtFieldsGenerate implements Mx2MtFieldsGenerate ...@@ -33,4 +35,32 @@ public abstract class AbstractMx2MtFieldsGenerate implements Mx2MtFieldsGenerate
} }
return processedBicCode; 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; ...@@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
import java.io.File; import java.io.File;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Random;
public class Mx2MtCreateManager { public class Mx2MtCreateManager {
...@@ -85,12 +86,16 @@ public class Mx2MtCreateManager { ...@@ -85,12 +86,16 @@ public class Mx2MtCreateManager {
public String convert(String outPutFilePath, Map<String, Object> extraMap) throws SwiftException { public String convert(String outPutFilePath, Map<String, Object> extraMap) throws SwiftException {
AbstractMx2MtCreator creator = getMx2MtCreator(msgType); AbstractMx2MtCreator creator = getMx2MtCreator(msgType);
creator.withObj(mxObj).withOutPutFilePath(outPutFilePath).withExtraMap(extraMap); creator.withObj(mxObj).withOutPutFilePath(outPutFilePath).withExtraMap(extraMap);
creator.generateHead1();
creator.generateHead2();
creator.generateHead3();
List<Mx2MtFieldsGenerate> generateList = creator.getFieldsGenerateList(); List<Mx2MtFieldsGenerate> generateList = creator.getFieldsGenerateList();
for (int i=0; i<generateList.size(); i++) { for (int i=0; i<generateList.size(); i++) {
AbstractMx2MtFieldsGenerate fieldsGenerate = (AbstractMx2MtFieldsGenerate) generateList.get(i); AbstractMx2MtFieldsGenerate fieldsGenerate = (AbstractMx2MtFieldsGenerate) generateList.get(i);
fieldsGenerate.withMap(creator.getMap()); fieldsGenerate.withMap(creator.getMap());
fieldsGenerate.fieldsGenerate(); fieldsGenerate.fieldsGenerate();
} }
creator.generateHead5();
return creator.generateMtMsg(); return creator.generateMtMsg();
} }
......
...@@ -3,8 +3,30 @@ package com.prowidesoftware.brilliance.mx2mt; ...@@ -3,8 +3,30 @@ package com.prowidesoftware.brilliance.mx2mt;
import java.util.List; import java.util.List;
public interface Mx2MtCreator { 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(); public List<Mx2MtFieldsGenerate> getFieldsGenerateList();
/**
* generate {5:}
*/
public void generateHead5();
public String generateMtMsg(); public String generateMtMsg();
} }
...@@ -94,4 +94,9 @@ public class Mx2Mt103Creator extends AbstractMx2MtCreator { ...@@ -94,4 +94,9 @@ public class Mx2Mt103Creator extends AbstractMx2MtCreator {
String msg = TemplateUtil.makeFileByTemplate("swift_mt_103.vm", map, outPutFilePath, "utf-8"); String msg = TemplateUtil.makeFileByTemplate("swift_mt_103.vm", map, outPutFilePath, "utf-8");
return msg; return msg;
} }
@Override
protected String getMtType() {
return Mx2MtConstants.MT_TYPE_103;
}
} }
package com.prowidesoftware.brilliance.mx2mt.mt202cov202; 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.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.*; import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.*;
import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov.*; import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov.*;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.brilliance.util.TemplateUtil; import com.prowidesoftware.brilliance.util.TemplateUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13;
...@@ -20,9 +23,6 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator { ...@@ -20,9 +23,6 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
@Override @Override
public List<Mx2MtFieldsGenerate> getFieldsGenerateList() { public List<Mx2MtFieldsGenerate> getFieldsGenerateList() {
List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>(); List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new CommonFieldFor202Generate());
fieldsGenerateList.add(new ReceiverBicFieldGenerate());
fieldsGenerateList.add(new SenderBicFieldGenerate());
fieldsGenerateList.add(new Field20Generate()); fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field21Generate()); fieldsGenerateList.add(new Field21Generate());
fieldsGenerateList.add(new Field13CGenerate()); fieldsGenerateList.add(new Field13CGenerate());
...@@ -40,22 +40,14 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator { ...@@ -40,22 +40,14 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
fieldsGenerateList.add(new FieldB57Generate()); fieldsGenerateList.add(new FieldB57Generate());
fieldsGenerateList.add(new FieldB59Generate()); fieldsGenerateList.add(new FieldB59Generate());
fieldsGenerateList.add(new FieldB70Generate()); fieldsGenerateList.add(new FieldB70Generate());
fieldsGenerateList.add(new FieldB72Generate());
fieldsGenerateList.add(new FieldB33BGenerate()); fieldsGenerateList.add(new FieldB33BGenerate());
return fieldsGenerateList; return fieldsGenerateList;
} }
@Override @Override
public String generateMtMsg() { public String generateMtMsg() {
map.forEach((key,value)->{ String outPutFilePath = (String)map.get(Mx2MtConstants.OUT_PUT_FILE_PATH);
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 msg = TemplateUtil.makeFileByTemplate("swift_mt_202cov.vm", map, outPutFilePath, "utf-8"); String msg = TemplateUtil.makeFileByTemplate("swift_mt_202cov.vm", map, outPutFilePath, "utf-8");
return msg; return msg;
} }
...@@ -68,36 +60,43 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator { ...@@ -68,36 +60,43 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
public boolean getMtCov(){ public boolean getMtCov(){
Boolean msg = false; Boolean msg = false;
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) { if (obj == null || obj.getFinInstnCdtTrf() == null) {
msg = false; msg = false;
} }
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
String bicOrBEI = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI(); if (cdtTrfTxInf.size() > 0
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null && cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null && cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != 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
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null && cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != 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; msg = true;
} }
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 if (cdtTrfTxInf.size() > 0
&& cdtTrfTxInf.get(0) != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null && 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; msg = true;
} }
return msg;
} catch(Exception e) { } catch(Exception e) {
msg = false; throw new SwiftException("ERROR", "Judge 202 or 202Cov error");
return msg;
} }
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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil; import com.prowidesoftware.brilliance.util.DateUtil;
...@@ -25,37 +26,33 @@ public class Field13CGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -25,37 +26,33 @@ public class Field13CGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field13CGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) { if (obj == null || obj.getFinInstnCdtTrf() == null) {
return; return;
} }
List<CreditTransferTransactionInformation13> cdtTrfTxInf = obj.getFinInstnCdtTrf().getCdtTrfTxInf(); 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){ if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmIndctn().getDbtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getDbtDtTm(); XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getDbtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm"); 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){ if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmIndctn().getCdtDtTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getCdtDtTm(); XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmIndctn().getCdtDtTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm"); String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/RNCTIME/"+hmm+"+0800"); field13cList.add("/RNCTIME/"+hmm+"+0800");
} }
if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq() != null if (obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq() != null
&& obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq().getCLSTm() != null){ && obj.getFinInstnCdtTrf().getCdtTrfTxInf().get(0).getSttlmTmReq().getCLSTm() != null){
XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmReq().getCLSTm(); XMLGregorianCalendar dbtDtTm = cdtTrfTxInf.get(0).getSttlmTmReq().getCLSTm();
String hmm = DateUtil.format(dbtDtTm, "HHmm"); String hmm = DateUtil.format(dbtDtTm, "HHmm");
filed13cList.add("/CLSTIME/"+hmm+"+0800"); field13cList.add("/CLSTIME/"+hmm+"+0800");
} }
if (filed13cList.size() > 0) { if (field13cList.size() > 0) {
filed13cList.forEach(field61 -> logger.info(":61:"+field61)); map.put("field13CList", field13cList);
map.put("filed13CList", filed13cList);
} }
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field13C error"); throw new SwiftException("ERROR", "Convert MT202 Field13C error");
} }
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
...@@ -16,10 +17,8 @@ public class Field20Generate extends AbstractMx2MtFieldsGenerate { ...@@ -16,10 +17,8 @@ public class Field20Generate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field20Generate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) { if (obj == null || obj.getFinInstnCdtTrf() == null) {
return; return;
} }
...@@ -27,7 +26,6 @@ public class Field20Generate extends AbstractMx2MtFieldsGenerate { ...@@ -27,7 +26,6 @@ public class Field20Generate extends AbstractMx2MtFieldsGenerate {
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr(); GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr();
map.put("field20", grpHdr.getMsgId()); map.put("field20", grpHdr.getMsgId());
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field20 error"); throw new SwiftException("ERROR", "Convert MT202 Field20 error");
} }
......
...@@ -15,9 +15,8 @@ public class Field21Generate extends AbstractMx2MtFieldsGenerate { ...@@ -15,9 +15,8 @@ public class Field21Generate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field21Generate start.");
try { try {
String field21 = "NONREF";
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) { if (obj == null || obj.getFinInstnCdtTrf() == null) {
return; return;
...@@ -27,12 +26,11 @@ public class Field21Generate extends AbstractMx2MtFieldsGenerate { ...@@ -27,12 +26,11 @@ public class Field21Generate extends AbstractMx2MtFieldsGenerate {
if (finInstnCdtTrf.getCdtTrfTxInf().get(0) != null if (finInstnCdtTrf.getCdtTrfTxInf().get(0) != null
&& finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId() != null && finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId() != null
&& finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId() != null){ && finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId() != null){
String endToEndId = finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId(); field21 = finInstnCdtTrf.getCdtTrfTxInf().get(0).getPmtId().getEndToEndId();
map.put("field21", endToEndId);
} }
} }
map.put("field21", field21);
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field21 error"); throw new SwiftException("ERROR", "Convert MT202 Field21 error");
} }
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.DateUtil; import com.prowidesoftware.brilliance.util.DateUtil;
import com.prowidesoftware.brilliance.util.NumberUtil; import com.prowidesoftware.brilliance.util.NumberUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; 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.CreditTransferTransactionInformation13;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02; import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -25,9 +27,8 @@ public class Field32AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -25,9 +27,8 @@ public class Field32AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field32AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) { if (obj == null || obj.getFinInstnCdtTrf() == null) {
return; return;
} }
...@@ -38,19 +39,23 @@ public class Field32AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -38,19 +39,23 @@ public class Field32AGenerate extends AbstractMx2MtFieldsGenerate {
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt() != null && cdtTrfTxInf.get(0).getIntrBkSttlmAmt() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy() != null && cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy() != null
&& cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue() != null){ && cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue() != null){
String yymMdd = ""; String yyMMdd = "";
if (cdtTrfTxInf.get(0).getIntrBkSttlmDt() != null){ if (cdtTrfTxInf.get(0).getIntrBkSttlmDt() != null){
XMLGregorianCalendar dt = cdtTrfTxInf.get(0).getIntrBkSttlmDt(); XMLGregorianCalendar dt = cdtTrfTxInf.get(0).getIntrBkSttlmDt();
yymMdd = DateUtil.format(dt, "YYMMdd"); yyMMdd = DateUtil.format(dt, "yyMMdd");
} }
String ccy = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getCcy(); ActiveCurrencyAndAmount intrBkSttlmAmt = cdtTrfTxInf.get(0).getIntrBkSttlmAmt();
BigDecimal amt = cdtTrfTxInf.get(0).getIntrBkSttlmAmt().getValue(); String ccy = "";
String amtStr = NumberUtil.formatAmt(amt, ccy); String amtStr = "";
map.put("field32A",yymMdd+ccy+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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field32A error"); throw new SwiftException("ERROR", "Convert MT202 Field32A error");
} }
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -26,56 +27,76 @@ public class Field52AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -26,56 +27,76 @@ public class Field52AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field52AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field52Option = "";
return; String field52A = "";
} if (cdtTrfTxInf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getDbtr();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (dbtr != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){ FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (cdtTrfTxInf.get(0) != null if (finInstnId != null) {
&& cdtTrfTxInf.get(0).getDbtr() != null if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId() != null field52Option = "A";
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getBIC() != null){ String bicCode = finInstnId.getBIC();
map.put("field52Key","A"); String account = getMtFormatAccount(cdtTrfTxInf.getDbtrAcct());
map.put("field52A",cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getBIC()); if (!StringUtil.isEmpty(account)) {
}else if (cdtTrfTxInf.get(0) != null field52A = account + Mx2MtConstants.NEW_LINE + bicCode;
&& cdtTrfTxInf.get(0).getDbtr() != null } else {
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId() != null field52A = bicCode;
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getNm() != null){ }
map.put("field52Key","D"); } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
if (cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr() != null field52Option = "D";
&& cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr().getAdrLine() != null){ String nameAddr = "";
List<String> adrList = cdtTrfTxInf.get(0).getDbtr().getFinInstnId().getPstlAdr().getAdrLine(); PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
String adStr = ""; if (pstlAdr != null) {
for (int i = 0; i<adrList.size(); i++){ List<String> adrLineList = pstlAdr.getAdrLine();
adStr = adStr + adrList.get(i); if (adrLineList.size() > 0) {
} for (int i=0; i<adrLineList.size(); i++) {
map.put("field52DAdr",adStr); if (i == 4) {
} break;
} }
if (cdtTrfTxInf.get(0) != null String adrLine = adrLineList.get(i);
&& cdtTrfTxInf.get(0).getDbtrAcct() != null if (adrLine.length() > 35) {
&& cdtTrfTxInf.get(0).getDbtrAcct().getId() != null){ adrLine = adrLine.substring(0, 35);
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN() != null){ }
map.put("field52Account",cdtTrfTxInf.get(0).getDbtrAcct().getId().getIBAN()); if (i == 0) {
}else if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr() != null nameAddr += adrLine;
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm() != null } else {
&& cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){ nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
if (cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId() != null){ }
map.put("field52Account","//CH" + cdtTrfTxInf.get(0).getDbtrAcct().getId().getOthr().getId()); }
}
}
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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field52A error"); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -35,72 +36,91 @@ public class Field53AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -35,72 +36,91 @@ public class Field53AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field53AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); SettlementInformation13 sttlmInf = getSttlmInf();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field53Option = "";
return; String field53A = "";
} if (sttlmInf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 instgRmbrsmntAgt = sttlmInf.getInstgRmbrsmntAgt();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr(); if (instgRmbrsmntAgt != null) {
if (grpHdr != null && grpHdr.getSttlmInf() != null){ FinancialInstitutionIdentification7 finInstnId = instgRmbrsmntAgt.getFinInstnId();
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null if (finInstnId != null) {
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){ field53Option = "A";
map.put("field53AKey","A"); String bicCode = finInstnId.getBIC();
map.put("field53A",grpHdr.getSttlmInf().getInstgRmbrsmntAgt().getFinInstnId().getBIC()); String account = getMtFormatAccount(sttlmInf.getInstgRmbrsmntAgtAcct());
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct() != null if (!StringUtil.isEmpty(account)) {
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId() != null){ field53A = account + Mx2MtConstants.NEW_LINE + bicCode;
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN() != null){ } else {
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN()); field53A = bicCode;
}else if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr() != null }
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId() != null){
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId());
} }
} }
}else if (grpHdr.getSttlmInf().getSttlmAcct() != null }
&& grpHdr.getSttlmInf().getSttlmAcct().getId() != null){ if (StringUtil.isEmpty(field53Option)) {
if (grpHdr.getSttlmInf().getSttlmAcct().getId().getIBAN() != null String account = getMtFormatAccount(sttlmInf.getSttlmAcct());
|| (grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr() != null if (!StringUtil.isEmpty(account)) {
&& grpHdr.getSttlmInf().getSttlmAcct().getId().getOthr().getId() != null)){ field53Option = "B";
map.put("field53BKey","B"); field53A = account;
}
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 (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct() != null }
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId() != null){ if (StringUtil.isEmpty(field53Option)) {
if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN() != null){ if (instgRmbrsmntAgt != null) {
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getIBAN()); FinancialInstitutionIdentification7 finInstnId = instgRmbrsmntAgt.getFinInstnId();
}else if (grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr() != null if (finInstnId != null) {
&& grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId() != null){ if (StringUtil.isNotEmpty(finInstnId.getNm())) {
map.put("field53Account",grpHdr.getSttlmInf().getInstgRmbrsmntAgtAcct().getId().getOthr().getId()); 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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field53A error"); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.GroupHeader35;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -30,48 +31,75 @@ public class Field54AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -30,48 +31,75 @@ public class Field54AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field54AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); SettlementInformation13 sttlmInf = getSttlmInf();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field54Option = "";
return; String field54A = "";
} if (sttlmInf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 instdRmbrsmntAgt = sttlmInf.getInstdRmbrsmntAgt();
GroupHeader35 grpHdr = finInstnCdtTrf.getGrpHdr(); if (instdRmbrsmntAgt != null) {
if (grpHdr != null && grpHdr.getSttlmInf() != null){ FinancialInstitutionIdentification7 finInstnId = instdRmbrsmntAgt.getFinInstnId();
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null if (finInstnId != null) {
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC() != null){ field54Option = "A";
map.put("field54AKey","A"); String bicCode = finInstnId.getBIC();
map.put("field54A",grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getBIC()); String account = getMtFormatAccount(sttlmInf.getInstdRmbrsmntAgtAcct());
}else if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt() != null if (!StringUtil.isEmpty(account)) {
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId() != null field54A = account + Mx2MtConstants.NEW_LINE + bicCode;
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getNm() != null){ } else {
map.put("field54DKey","D"); field54A = bicCode;
if (grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr() != null }
&& grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){ } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
List<String> adrList = grpHdr.getSttlmInf().getInstdRmbrsmntAgt().getFinInstnId().getPstlAdr().getAdrLine(); field54Option = "D";
String adStr = ""; String nameAddr = "";
for (int i = 0; i<adrList.size(); i++){ PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
adStr = adStr + adrList.get(i); 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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field54A error"); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -29,51 +30,75 @@ public class Field56AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -29,51 +30,75 @@ public class Field56AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field56AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field56Option = "";
return; String field56A = "";
} if (cdtTrfTxInf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getIntrmyAgt1();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (dbtr != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){ FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (cdtTrfTxInf.get(0) != null if (finInstnId != null) {
&& cdtTrfTxInf.get(0).getIntrmyAgt1() != null if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null field56Option = "A";
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC() != null){ String bicCode = finInstnId.getBIC();
map.put("field56AKey","A"); String account = getMtFormatAccount(cdtTrfTxInf.getIntrmyAgt1Acct());
map.put("field56A",cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getBIC()); if (!StringUtil.isEmpty(account)) {
} field56A = account + Mx2MtConstants.NEW_LINE + bicCode;
}else if (cdtTrfTxInf.get(0) != null } else {
&& cdtTrfTxInf.get(0).getIntrmyAgt1() != null field56A = bicCode;
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId() != null }
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getNm() != null){ } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
map.put("field56DKey","D"); field56Option = "D";
if (cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr() != null String nameAddr = "";
&& cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine() != null){ PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
List<String> adrList = cdtTrfTxInf.get(0).getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine(); if (pstlAdr != null) {
String adStr = ""; List<String> adrLineList = pstlAdr.getAdrLine();
for (int i = 0; i<adrList.size(); i++){ if (adrLineList.size() > 0) {
adStr = adStr + adrList.get(i); 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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field56A error"); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -29,51 +30,76 @@ public class Field57AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -29,51 +30,76 @@ public class Field57AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field57AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field57Option = "";
return; String field57A = "";
} if (cdtTrfTxInf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getCdtrAgt();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (dbtr != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){ FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (cdtTrfTxInf.get(0) != null if (finInstnId != null) {
&& cdtTrfTxInf.get(0).getCdtrAgt() != null if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null field57Option = "A";
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC() != null){ String bicCode = finInstnId.getBIC();
map.put("field57AKey","A"); String account = getMtFormatAccount(cdtTrfTxInf.getCdtrAgtAcct());
map.put("field57A",cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getBIC()); if (!StringUtil.isEmpty(account)) {
}else if (cdtTrfTxInf.get(0) != null field57A = account + Mx2MtConstants.NEW_LINE + bicCode;
&& cdtTrfTxInf.get(0).getCdtrAgt() != null } else {
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId() != null field57A = bicCode;
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getNm() != null){ }
map.put("field57DKey","D"); } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
if (cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr() != null field57Option = "D";
&& cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null){ String nameAddr = "";
List<String> adrList = cdtTrfTxInf.get(0).getCdtrAgt().getFinInstnId().getPstlAdr().getAdrLine(); PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
String adStr = ""; if (pstlAdr != null) {
for (int i = 0; i<adrList.size(); i++){ List<String> adrLineList = pstlAdr.getAdrLine();
adStr = adStr + adrList.get(i); 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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field57A error"); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -29,52 +30,77 @@ public class Field58AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -29,52 +30,77 @@ public class Field58AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field58AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field58Option = "";
return; String field58A = "";
} if (cdtTrfTxInf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 dbtr = cdtTrfTxInf.getCdtr();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (dbtr != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0){ FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
if (cdtTrfTxInf.get(0) != null if (finInstnId != null) {
&& cdtTrfTxInf.get(0).getCdtr() != null if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId() != null field58Option = "A";
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC() != null){ String bicCode = finInstnId.getBIC();
map.put("field58AKey","A"); String account = getMtFormatAccount(cdtTrfTxInf.getCdtrAcct());
map.put("field58A",cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getBIC()); if (!StringUtil.isEmpty(account)) {
}else if (cdtTrfTxInf.get(0) != null field58A = account + Mx2MtConstants.NEW_LINE + bicCode;
&& cdtTrfTxInf.get(0).getCdtr() != null } else {
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId() != null field58A = bicCode;
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getNm() != null){ }
map.put("field58DKey","D"); } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
if (cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr() != null field58Option = "D";
&& cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr().getAdrLine() != null){ String nameAddr = "";
List<String> adrList = cdtTrfTxInf.get(0).getCdtr().getFinInstnId().getPstlAdr().getAdrLine(); PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
String adStr = ""; if (pstlAdr != null) {
for (int i = 0; i<adrList.size(); i++){ List<String> adrLineList = pstlAdr.getAdrLine();
adStr = adStr + adrList.get(i); 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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202 Field58A error"); 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; ...@@ -5,13 +5,11 @@ import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
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 org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -38,75 +36,101 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate { ...@@ -38,75 +36,101 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("Field72Generate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation13 cdtTrfTxInf = getCreditTransferTransactionInformation13();
if (obj == null || obj.getFinInstnCdtTrf() == null) { StringBuilder sb = new StringBuilder();
return; String field72 = "";
} if (cdtTrfTxInf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 prvsInstgAgt = cdtTrfTxInf.getPrvsInstgAgt();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (prvsInstgAgt != null && prvsInstgAgt.getFinInstnId() != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 && cdtTrfTxInf.get(0) != null){ String bicCode = prvsInstgAgt.getFinInstnId().getBIC();
String bic = ""; if (StringUtil.isEmpty(bicCode)) {
String nm = ""; bicCode = prvsInstgAgt.getFinInstnId().getNm();
String acc = ""; }
String phob = ""; if (StringUtil.isNotEmpty(bicCode)) {
String telb = ""; bicCode = Mx2MtConstants.INS + bicCode;
String phoa = ""; if (bicCode.length() > 35) {
String tela = ""; bicCode = bicCode.substring(0, 35);
String rec = ""; }
if (cdtTrfTxInf.get(0).getPrvsInstgAgt() != null if (sb.length() == 0) {
&& cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId() != null){ sb.append(bicCode);
if (cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC() != null){ } else {
bic = cdtTrfTxInf.get(0).getPrvsInstgAgt().getFinInstnId().getBIC(); 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){ if (StringUtil.isNotEmpty(cdtrAgtCode)) {
List<InstructionForCreditorAgent2> ifcList = cdtTrfTxInf.get(0).getInstrForCdtrAgt(); if (cdtrAgtCode.length() > 35) {
for (int i=0; i<ifcList.size(); i++){ cdtrAgtCode = cdtrAgtCode.substring(0, 35);
InstructionForCreditorAgent2 ifca2 = ifcList.get(i); }
if (ifca2.getCd() == null && ifca2.getInstrInf() != null){ if (sb.length() == 0) {
acc = acc + Mx2MtConstants.ACC + ifca2.getInstrInf(); sb.append(cdtrAgtCode);
} } else {
if (ifca2.getCd() != null && "PHOB".equals(ifca2.getCd())){ sb.append(Mx2MtConstants.NEW_LINE).append(cdtrAgtCode);
phob = phob + Mx2MtConstants.PHONBEN + ifca2.getInstrInf();
}
if (ifca2.getCd() != null && "TELB".equals(ifca2.getCd())){
telb = telb + Mx2MtConstants.PHONBEN + ifca2.getInstrInf();
}
} }
} }
if (cdtTrfTxInf.get(0).getInstrForNxtAgt() != null && cdtTrfTxInf.get(0).getInstrForNxtAgt().size() > 0){ }
List<InstructionForNextAgent1> ifn = cdtTrfTxInf.get(0).getInstrForNxtAgt(); List<InstructionForNextAgent1> instrForNxtAgtList = cdtTrfTxInf.getInstrForNxtAgt();
for (int i=0; i<ifn.size(); i++){ if (instrForNxtAgtList.size() > 0) {
InstructionForNextAgent1 ifna = ifn.get(i); String nextAgentCode = "";
if (ifna.getCd() != null && "PHOA".equals(ifna.getCd())){ InstructionForNextAgent1 instrForNxtAgt = instrForNxtAgtList.get(0);
if (map.get("field56A") == null){ if (instrForNxtAgt.getCd() == null && StringUtil.isNotEmpty(instrForNxtAgt.getInstrInf())) {
phoa = phoa + Mx2MtConstants.PHON + ifna.getInstrInf(); nextAgentCode = Mx2MtConstants.REC + instrForNxtAgt.getInstrInf();
}else{ } else if (Instruction4Code.TELA.equals(instrForNxtAgt.getCd()) && StringUtil.isNotEmpty(instrForNxtAgt.getInstrInf())) {
phoa = phoa + Mx2MtConstants.PHONIBK + ifna.getInstrInf(); nextAgentCode = Mx2MtConstants.TELE + instrForNxtAgt.getInstrInf();
} } else if (Instruction4Code.PHOA.equals(instrForNxtAgt.getCd()) && StringUtil.isNotEmpty(instrForNxtAgt.getInstrInf())) {
} String field56Option = (String)map.get("field56Option");
if (ifna.getCd() != null && "TELA".equals(ifna.getCd())){ if (StringUtil.isEmpty(field56Option)) {
tela = tela + Mx2MtConstants.TELE + ifna.getInstrInf(); nextAgentCode = Mx2MtConstants.PHON + instrForNxtAgt.getInstrInf();
} } else {
if (ifna.getCd() == null && ifna.getInstrInf() != null){ nextAgentCode = Mx2MtConstants.PHONIBK + instrForNxtAgt.getInstrInf();
rec = rec + Mx2MtConstants.REC + ifna.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) { } catch(Exception e) {
logger.error(e.getMessage()); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -32,58 +33,76 @@ public class Field50AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -32,58 +33,76 @@ public class Field50AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
// TODO 50F取值待补充 // TODO 50F取值待补充
logger.info("Field50AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field50BOption = "";
return; String field50B = "";
} if (undrlygCstmrCdtTrf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); PartyIdentification32 dbtr = undrlygCstmrCdtTrf.getDbtr();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (dbtr != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 Party6Choice id = dbtr.getId();
&& cdtTrfTxInf.get(0) != null if (dbtr.getId() != null
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){ && dbtr.getId().getOrgId() != null
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null && StringUtil.isNotEmpty(dbtr.getId().getOrgId().getBICOrBEI())) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId() != null String bicCode = dbtr.getId().getOrgId().getBICOrBEI();
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId() != null field50BOption = "A";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI() != null){ String account = getMtFormatAccount(undrlygCstmrCdtTrf.getDbtrAcct());
map.put("fieldB50Option","A"); if (!StringUtil.isEmpty(account)) {
map.put("fieldB50A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getId().getOrgId().getBICOrBEI()); field50B = account + Mx2MtConstants.NEW_LINE + bicCode;
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr() != null } else {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getNm() != null){ field50B = bicCode;
map.put("fieldB50Option","K"); }
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr() != null } else if (StringUtil.isNotEmpty(dbtr.getNm())) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr().getAdrLine() != null){ field50BOption = "K";
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtr().getPstlAdr().getAdrLine(); String nameAddr = "";
String adStr = ""; PostalAddress6 pstlAdr = dbtr.getPstlAdr();
for (int i = 0; i<adrList.size(); i++){ if (pstlAdr != null) {
adStr = adStr + adrList.get(i); List<String> adrLineList = pstlAdr.getAdrLine();
} if (adrLineList.size() > 0) {
map.put("fieldB50K",adStr); for (int i=0; i<adrLineList.size(); i++) {
} if (i == 4) {
} break;
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct() != null }
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId() != null){ String adrLine = adrLineList.get(i);
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN() != null){ if (adrLine.length() > 35) {
map.put("fieldB50Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getIBAN()); adrLine = adrLine.substring(0, 35);
}else { }
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr() != null if (i == 0) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm() != null nameAddr += adrLine;
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getSchmeNm().getCd() != null){ } else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId() != null) { nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
map.put("fieldB50Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAcct().getId().getOthr().getId()); }
}
}
}
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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field50A error"); 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 { ...@@ -22,12 +22,12 @@ public class FieldB33BGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("FieldB33BGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj");
if (obj == null || obj.getFinInstnCdtTrf() == null) { if (obj == null || obj.getFinInstnCdtTrf() == null) {
return; return;
} }
String filed33B = "";
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
...@@ -38,11 +38,11 @@ public class FieldB33BGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -38,11 +38,11 @@ public class FieldB33BGenerate extends AbstractMx2MtFieldsGenerate {
String ccy = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getCcy(); String ccy = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getCcy();
BigDecimal amt = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getValue(); BigDecimal amt = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getInstdAmt().getValue();
String amtStr = NumberUtil.formatAmt(amt, ccy); String amtStr = NumberUtil.formatAmt(amt, ccy);
map.put("field33B",ccy+amtStr); filed33B = ccy+amtStr;
} }
} }
map.put("field33B", filed33B);
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field33B error"); throw new SwiftException("ERROR", "Convert MT202COV Field33B error");
} }
} }
......
package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -29,55 +30,76 @@ public class FieldB52AGenerate extends AbstractMx2MtFieldsGenerate { ...@@ -29,55 +30,76 @@ public class FieldB52AGenerate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("FieldB52AGenerate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field52BOption = "";
return; String field52B = "";
} if (undrlygCstmrCdtTrf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 dbtr = undrlygCstmrCdtTrf.getDbtrAgt();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (dbtr != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 FinancialInstitutionIdentification7 finInstnId = dbtr.getFinInstnId();
&& cdtTrfTxInf.get(0) != null if (finInstnId != null) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){ if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt() != null field52BOption = "A";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId() != null String bicCode = finInstnId.getBIC();
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getBIC() != null){ String account = getMtFormatAccount(undrlygCstmrCdtTrf.getDbtrAgtAcct());
map.put("fieldB52Option","A"); if (!StringUtil.isEmpty(account)) {
map.put("fieldB52A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getBIC()); field52B = account + Mx2MtConstants.NEW_LINE + bicCode;
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt() != null } else {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId() != null field52B = bicCode;
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getNm() != null){ }
map.put("fieldB52Option","D"); } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr() != null field52BOption = "D";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr().getAdrLine() != null) { String nameAddr = "";
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgt().getFinInstnId().getPstlAdr().getAdrLine(); PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
String adStr = ""; if (pstlAdr != null) {
for (int i = 0; i < adrList.size(); i++) { List<String> adrLineList = pstlAdr.getAdrLine();
adStr = adStr + adrList.get(i); if (adrLineList.size() > 0) {
} for (int i=0; i<adrLineList.size(); i++) {
map.put("fieldB52D", adStr); if (i == 4) {
} break;
} }
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct() != null String adrLine = adrLineList.get(i);
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId() != null){ if (adrLine.length() > 35) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getIBAN() != null){ adrLine = adrLine.substring(0, 35);
map.put("fieldB52Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getIBAN()); }
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr() != null if (i == 0) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm() != null nameAddr += adrLine;
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getSchmeNm().getCd() != null){ } else {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId() != null) { nameAddr += Mx2MtConstants.NEW_LINE+adrLine;
map.put("fieldB52Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getDbtrAgtAcct().getId().getOthr().getId()); }
}
}
}
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) { } catch(Exception e) {
logger.error(e.getMessage()); throw new SwiftException("ERROR", "Convert MT202COV Field52 error");
throw new SwiftException("ERROR", "Convert MT202COV Field52A 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -36,87 +37,81 @@ public class FieldB56Generate extends AbstractMx2MtFieldsGenerate { ...@@ -36,87 +37,81 @@ public class FieldB56Generate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("FieldB56Generate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field56BOption = "";
return; String field56B = "";
} if (undrlygCstmrCdtTrf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 intrmyAgt1 = undrlygCstmrCdtTrf.getIntrmyAgt1();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (intrmyAgt1 != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 FinancialInstitutionIdentification7 finInstnId = intrmyAgt1.getFinInstnId();
&& cdtTrfTxInf.get(0) != null if (finInstnId != null) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){ if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1() != null field56BOption = "A";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId() != null){ String bicCode = finInstnId.getBIC();
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC() != null){ String account = getMtFormatAccount(undrlygCstmrCdtTrf.getIntrmyAgt1Acct());
map.put("fieldB56Option","A"); if (!StringUtil.isEmpty(account)) {
map.put("fieldB56A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getBIC()); field56B = account + Mx2MtConstants.NEW_LINE + bicCode;
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct() != null } else {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null){ field56B = bicCode;
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null){ }
map.put("fieldB56Account",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN()); } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null field56BOption = "D";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm() != null String nameAddr = "";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getSchmeNm().getCd() != null){ PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId() != null) { if (pstlAdr != null) {
map.put("fieldB56Account", "//CH" + cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr().getId()); 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 String account = getMtFormatAccount(undrlygCstmrCdtTrf.getIntrmyAgt1Acct());
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getNm() == null if (!StringUtil.isEmpty(account)) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId() != null field56B = account + Mx2MtConstants.NEW_LINE + nameAddr;
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getIBAN() != null } else {
|| (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1Acct().getId().getOthr() != null field56B = nameAddr;
&& 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());
}
} }
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getNm() != null){ } else {
map.put("fieldB56Option","D"); if (finInstnId.getClrSysMmbId() != null
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr() != null && StringUtil.isNotEmpty(finInstnId.getClrSysMmbId().getMmbId())) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine() != null){ field56BOption = "C";
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getIntrmyAgt1().getFinInstnId().getPstlAdr().getAdrLine(); field56B = "/" + finInstnId.getClrSysMmbId().getMmbId();
String adStr = "";
for (int i = 0; i<adrList.size(); i++){
adStr = adStr + adrList.get(i);
} }
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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field56 error"); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -34,89 +35,82 @@ public class FieldB57Generate extends AbstractMx2MtFieldsGenerate { ...@@ -34,89 +35,82 @@ public class FieldB57Generate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("FieldB57Generate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field57BOption = "";
return; String field57B = "";
} if (undrlygCstmrCdtTrf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); BranchAndFinancialInstitutionIdentification4 cdtrAgt = undrlygCstmrCdtTrf.getCdtrAgt();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (cdtrAgt != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 FinancialInstitutionIdentification7 finInstnId = cdtrAgt.getFinInstnId();
&& cdtTrfTxInf.get(0) != null if (finInstnId != null) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){ if (StringUtil.isNotEmpty(finInstnId.getBIC())) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt() != null field57BOption = "A";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null){ String bicCode = finInstnId.getBIC();
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC() != null) { String account = getMtFormatAccount(undrlygCstmrCdtTrf.getCdtrAgtAcct());
map.put("fieldB57Option", "A"); if (!StringUtil.isEmpty(account)) {
map.put("fieldB57",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC()); field57B = account + Mx2MtConstants.NEW_LINE + bicCode;
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null } else {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null){ field57B = bicCode;
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());
}
} }
} } else if (StringUtil.isNotEmpty(finInstnId.getNm())) {
}else if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId() != null field57BOption = "D";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getNm() == null String nameAddr = "";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct() != null PostalAddress6 pstlAdr = finInstnId.getPstlAdr();
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId() != null if (pstlAdr != null) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getIBAN() != null List<String> adrLineList = pstlAdr.getAdrLine();
|| (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr() != null if (adrLineList.size() > 0) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null)){ for (int i = 0; i < adrLineList.size(); i++) {
map.put("fieldB57Option","C"); if (i == 4) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null){ break;
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 { String adrLine = adrLineList.get(i);
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId() != null) { if (adrLine.length() > 35) {
map.put("fieldB57Account", cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgtAcct().getId().getOthr().getId()); 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) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field57 error"); 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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil;
import com.prowidesoftware.swift.model.mx.MxPacs00900102; import com.prowidesoftware.swift.model.mx.MxPacs00900102;
import com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13; import com.prowidesoftware.swift.model.mx.dic.*;
import com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -30,64 +31,75 @@ public class FieldB59Generate extends AbstractMx2MtFieldsGenerate { ...@@ -30,64 +31,75 @@ public class FieldB59Generate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("FieldB59Generate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); CreditTransferTransactionInformation12 undrlygCstmrCdtTrf = getUndrlygCstmrCdtTrf();
if (obj == null || obj.getFinInstnCdtTrf() == null) { String field59BOption = "";
return; String field59B = "";
} if (undrlygCstmrCdtTrf != null) {
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); PartyIdentification32 cdtr = undrlygCstmrCdtTrf.getCdtr();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); if (cdtr != null) {
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 if (StringUtil.isNotEmpty(cdtr.getNm())) {
&& cdtTrfTxInf.get(0) != null field59BOption = "NOLETTER";
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf() != null){ String nameAddr = "";
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr() != null PostalAddress6 pstlAdr = cdtr.getPstlAdr();
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getNm() != null){ if (pstlAdr != null) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAgt().getFinInstnId().getBIC() != null) { List<String> adrLineList = pstlAdr.getAdrLine();
map.put("fieldB59Option", ""); if (adrLineList.size() > 0) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr() != null for (int i=0; i<adrLineList.size(); i++) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr().getAdrLine() != null){ if (i == 4) {
List<String> adrList = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getPstlAdr().getAdrLine(); break;
String adStr = ""; }
for (int i = 0; i<adrList.size(); i++){ String adrLine = adrLineList.get(i);
adStr = adStr + adrList.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{ String account = getMtFormatAccount(undrlygCstmrCdtTrf.getCdtrAcct());
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr() != null if (!StringUtil.isEmpty(account)) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId() != null field59B = account + Mx2MtConstants.NEW_LINE + nameAddr;;
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId() != null } else {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId().getBICOrBEI() != null){ field59B = nameAddr;
map.put("fieldB59Option", "A");
map.put("fieldB59A",cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtr().getId().getOrgId().getBICOrBEI());
} }
} } else if (cdtr.getId() != null
} && cdtr.getId().getOrgId() != null
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct() != null && StringUtil.isNotEmpty(cdtr.getId().getOrgId().getBICOrBEI())) {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId() != null){ String bicCode = cdtr.getId().getOrgId().getBICOrBEI();
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getIBAN() != null){ field59BOption = "A";
map.put("fieldB59Account","/"+cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getIBAN()); String account = getMtFormatAccount(undrlygCstmrCdtTrf.getCdtrAcct());
}else { if (!StringUtil.isEmpty(account)) {
if (cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct() != null field59B = account + Mx2MtConstants.NEW_LINE + bicCode;
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId() != null } else {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getCdtrAcct().getId().getOthr() != null field59B = bicCode;
&& 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());
}
} }
} }
} }
} }
map.put("field59BOption", field59BOption);
map.put("field59B", field59B);
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage()); throw new SwiftException("ERROR", "Convert MT202COV Field59 error");
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; package com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov;
import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.exception.SwiftException;
import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.util.StringUtil; import com.prowidesoftware.brilliance.util.StringUtil;
...@@ -21,12 +22,12 @@ public class FieldB70Generate extends AbstractMx2MtFieldsGenerate { ...@@ -21,12 +22,12 @@ public class FieldB70Generate extends AbstractMx2MtFieldsGenerate {
@Override @Override
public void fieldsGenerate() throws SwiftException { public void fieldsGenerate() throws SwiftException {
logger.info("FieldB70Generate start.");
try { try {
MxPacs00900102 obj = (MxPacs00900102)map.get("mxObj"); MxPacs00900102 obj = (MxPacs00900102)map.get(Mx2MtConstants.MX_OBJECT);
if (obj == null || obj.getFinInstnCdtTrf() == null) { if (obj == null || obj.getFinInstnCdtTrf() == null) {
return; return;
} }
String field70B = "";
FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf(); FinancialInstitutionCreditTransferV02 finInstnCdtTrf = obj.getFinInstnCdtTrf();
List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf(); List<CreditTransferTransactionInformation13> cdtTrfTxInf = finInstnCdtTrf.getCdtTrfTxInf();
if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0 if (cdtTrfTxInf != null && cdtTrfTxInf.size() > 0
...@@ -37,12 +38,11 @@ public class FieldB70Generate extends AbstractMx2MtFieldsGenerate { ...@@ -37,12 +38,11 @@ public class FieldB70Generate extends AbstractMx2MtFieldsGenerate {
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().size() >0 && cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().size() >0
&& cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0) != null){ && cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0) != null){
String s = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0); String s = cdtTrfTxInf.get(0).getUndrlygCstmrCdtTrf().getRmtInf().getUstrd().get(0);
String enter = StringUtil.getStringByEnter(s, 35, 4); field70B = StringUtil.getStringByEnter(s, 35, 4);
map.put("field70",enter);
} }
} }
map.put("field70B", field70B);
} catch(Exception e) { } catch(Exception e) {
logger.error(e.getMessage());
throw new SwiftException("ERROR", "Convert MT202COV Field70 error"); 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; ...@@ -5,9 +5,12 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate; import com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate;
import com.prowidesoftware.brilliance.mx2mt.mt900910.impl.*; import com.prowidesoftware.brilliance.mx2mt.mt900910.impl.*;
import com.prowidesoftware.brilliance.exception.SwiftException; import com.prowidesoftware.brilliance.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.StringUtil;
import com.prowidesoftware.brilliance.util.TemplateUtil; import com.prowidesoftware.brilliance.util.TemplateUtil;
import com.prowidesoftware.swift.model.mx.MxCamt05400102; import com.prowidesoftware.swift.model.mx.MxCamt05400102;
import com.prowidesoftware.swift.model.mx.dic.*;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -21,8 +24,6 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator { ...@@ -21,8 +24,6 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator {
@Override @Override
public List<Mx2MtFieldsGenerate> getFieldsGenerateList() { public List<Mx2MtFieldsGenerate> getFieldsGenerateList() {
List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>(); List<Mx2MtFieldsGenerate> fieldsGenerateList = new ArrayList<>();
fieldsGenerateList.add(new ReceiverBicFieldGenerate());
fieldsGenerateList.add(new SenderBicFieldGenerate());
fieldsGenerateList.add(new Field13DGenerate()); fieldsGenerateList.add(new Field13DGenerate());
fieldsGenerateList.add(new Field20Generate()); fieldsGenerateList.add(new Field20Generate());
fieldsGenerateList.add(new Field21Generate()); fieldsGenerateList.add(new Field21Generate());
...@@ -37,18 +38,7 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator { ...@@ -37,18 +38,7 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator {
@Override @Override
public String generateMtMsg() { 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(); 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); String outPutFilePath = (String)map.get(Mx2MtConstants.OUT_PUT_FILE_PATH);
return TemplateUtil.makeFileByTemplate("swift_mt_900_910.vm", map, outPutFilePath, "utf-8"); return TemplateUtil.makeFileByTemplate("swift_mt_900_910.vm", map, outPutFilePath, "utf-8");
} }
...@@ -63,4 +53,34 @@ public class Mx2Mt900910Creator extends AbstractMx2MtCreator { ...@@ -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 { ...@@ -60,9 +60,9 @@ public class Field50aGenerate extends AbstractMx2MtFieldsGenerate {
} }
} }
if (!StringUtil.isEmpty(iban)) { if (!StringUtil.isEmpty(iban)) {
field50a = "/"+iban + "\r\n" + bicCode; field50a = "/"+iban + Mx2MtConstants.NEW_LINE + bicCode;
} else if (!StringUtil.isEmpty(otherId)) { } else if (!StringUtil.isEmpty(otherId)) {
field50a = "//CH"+otherId + "\r\n" + bicCode; field50a = "//CH"+otherId + Mx2MtConstants.NEW_LINE + bicCode;
} else { } else {
field50a = bicCode; 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 { ...@@ -125,4 +125,13 @@ public class Mx2Mt950Creator extends AbstractMx2MtCreator {
} }
return false; 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