Commit e687a878 by chengzhuoshen

1.修复pacs008001转103,70域,endtoendid转换问题

2.增加方法去掉50F/59F的Name Address前缀,保证新核心系统拿到了是原始值
parent 6f82518a
...@@ -8,7 +8,14 @@ import com.brilliance.swift.mx2map.Mx2MapCreatorManager; ...@@ -8,7 +8,14 @@ import com.brilliance.swift.mx2map.Mx2MapCreatorManager;
import com.brilliance.swift.mx2mt.Mx2MtCreatorManager; import com.brilliance.swift.mx2mt.Mx2MtCreatorManager;
import com.brilliance.swift.util.*; import com.brilliance.swift.util.*;
import com.brilliance.swift.vo.SwiftTranslationReport; import com.brilliance.swift.vo.SwiftTranslationReport;
import com.prowidesoftware.swift.io.ConversionService;
import com.prowidesoftware.swift.io.IConversionService;
import com.prowidesoftware.swift.model.MxId; import com.prowidesoftware.swift.model.MxId;
import com.prowidesoftware.swift.model.SwiftBlock4;
import com.prowidesoftware.swift.model.Tag;
import com.prowidesoftware.swift.model.field.Field50F;
import com.prowidesoftware.swift.model.field.Field59F;
import com.prowidesoftware.swift.model.mt.AbstractMT;
import com.prowidesoftware.swift.model.mx.AbstractMX; import com.prowidesoftware.swift.model.mx.AbstractMX;
import com.prowidesoftware.swift.model.mx.NamespaceReader; import com.prowidesoftware.swift.model.mx.NamespaceReader;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
...@@ -416,4 +423,81 @@ public class SwiftTransfer { ...@@ -416,4 +423,81 @@ public class SwiftTransfer {
return fetchFinFromMixMessage(mixFilePath); return fetchFinFromMixMessage(mixFilePath);
} }
} }
/**
* 特殊处理mt报文
* 50F 去掉 1/ 2/ 3/
* 59F 去掉 1/ 2/ 3/
* 保证给新核心系统的报文要素名称地址的正确性
*/
public static String clearFin5059FPrefix(String mtMsg) {
try {
AbstractMT abstractMT = AbstractMT.parse(mtMsg);
if (abstractMT == null
|| abstractMT.getSwiftMessage() == null
|| abstractMT.getSwiftMessage().getBlock4() == null) {
return mtMsg;
}
SwiftBlock4 swiftBlock4 = abstractMT.getSwiftMessage().getBlock4();
Tag tag = swiftBlock4.getTagByName("50F");
if (tag != null) {
Field50F field50F = (Field50F) tag.asField();
String value = field50F.getPartyIdentifier();
if (StringUtil.isNotEmpty(field50F.getNameAndAddress1())) {
value += Mx2MtConstants.NEW_LINE + field50F.getNameAndAddress1();
}
if (StringUtil.isNotEmpty(field50F.getNameAndAddress2())) {
value += Mx2MtConstants.NEW_LINE + field50F.getNameAndAddress2();
}
if (StringUtil.isNotEmpty(field50F.getNameAndAddress3())) {
value += Mx2MtConstants.NEW_LINE + field50F.getNameAndAddress3();
}
if (StringUtil.isNotEmpty(field50F.getNameAndAddress4())) {
value += Mx2MtConstants.NEW_LINE + field50F.getNameAndAddress4();
}
tag.setValue(value);
}
tag = swiftBlock4.getTagByName("59F");
if (tag != null) {
Field59F field59F = (Field59F) tag.asField();
String value = "";
if (StringUtil.isNotEmpty(field59F.getComponent1())) {
value += "/" + field59F.getComponent1();
}
if (StringUtil.isNotEmpty(field59F.getNameAndAddress1())) {
if (StringUtil.isEmpty(value)) {
value += field59F.getNameAndAddress1();
} else {
value += Mx2MtConstants.NEW_LINE + field59F.getNameAndAddress1();
}
}
if (StringUtil.isNotEmpty(field59F.getNameAndAddress2())) {
if (StringUtil.isEmpty(value)) {
value += field59F.getNameAndAddress2();
} else {
value += Mx2MtConstants.NEW_LINE + field59F.getNameAndAddress2();
}
}
if (StringUtil.isNotEmpty(field59F.getNameAndAddress3())) {
if (StringUtil.isEmpty(value)) {
value += field59F.getNameAndAddress3();
} else {
value += Mx2MtConstants.NEW_LINE + field59F.getNameAndAddress3();
}
}
if (StringUtil.isNotEmpty(field59F.getNameAndAddress4())) {
if (StringUtil.isEmpty(value)) {
value += field59F.getNameAndAddress4();
} else {
value += Mx2MtConstants.NEW_LINE + field59F.getNameAndAddress4();
}
}
tag.setValue(value);
}
IConversionService srv = new ConversionService();
return srv.getFIN(abstractMT.getSwiftMessage());
} catch (Exception e) {
throw new SwiftException(e.getMessage());
}
}
} }
package com.brilliance.swift.mx2mt.mt103.impl; package com.brilliance.swift.mx2mt.mt103.impl;
import com.brilliance.swift.constants.Mx2MtConstants;
import com.brilliance.swift.exception.SwiftException; import com.brilliance.swift.exception.SwiftException;
import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate; import com.brilliance.swift.mx2mt.AbstractMx2MtTagsGenerate;
import com.brilliance.swift.util.StringUtil; import com.brilliance.swift.util.StringUtil;
...@@ -117,7 +118,7 @@ public class Field70Generate extends AbstractMx2MtTagsGenerate { ...@@ -117,7 +118,7 @@ public class Field70Generate extends AbstractMx2MtTagsGenerate {
} }
} }
String endToEndIdentification = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtId.EndToEndId"); String endToEndIdentification = getXmlNodeValue(bodyHdrParentElementName, document, "CdtTrfTxInf.PmtId.EndToEndId");
if (StringUtil.isNotEmpty(endToEndIdentification)) { if (StringUtil.isNotEmpty(endToEndIdentification) && !Mx2MtConstants.MX_TO_MT_DEFAULT_VALUE.equals(endToEndIdentification)) {
if (StringUtil.isEmpty(mt70FullString)) { if (StringUtil.isEmpty(mt70FullString)) {
int remainLength = 140 - mt70FullString.length() - 5; int remainLength = 140 - mt70FullString.length() - 5;
if (remainLength > 0) { if (remainLength > 0) {
......
...@@ -3,18 +3,17 @@ ...@@ -3,18 +3,17 @@
:23B:CRED :23B:CRED
:32A:220906USD1000, :32A:220906USD1000,
:33B:USD1000, :33B:USD1000,
:50K:/36921469 :50F:/36921469
10 1/10
beijingshifengtaiqu 2/beijingshifengtaiqu
beijingshikunlunzhongxin 3/CN/beijingshikunlunzhongxin
beijingshi
:52A:CITIUS33XXX :52A:CITIUS33XXX
:57A:PSBCCNBJXXX :57A:PSBCCNBJXXX
:59:/FTT883320000031295 :59F:/FTT883320000031295
zhangxinyao 1/zhangxinyao
beijingshifengtaiqu 2/beijingshifengtaiqu
beijingshikunlunzhongxin 3/beijingshikunlunzhongxin
beijingshi 3/beijingshi
:70:/ROC/NOTPROVIDED///URI/.BUYING GOOD :70:/ROC/NOTPROVIDED///URI/.BUYING GOOD
S ADDL REMITTER INFO:CR 355255 S ADDL REMITTER INFO:CR 355255
:71A:SHA :71A:SHA
......
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