Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
swiftMtMx
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
isc-v3.1-tmp
swiftMtMx
Commits
f6ca4161
Commit
f6ca4161
authored
Dec 12, 2023
by
gechengyang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交业务要素转ISO的测试程序
parent
04e2731d
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
343 additions
and
23 deletions
+343
-23
pom.xml
swiftCore/pom.xml
+1
-0
DateUtil.java
...ore/src/main/java/com/brilliance/swift/util/DateUtil.java
+16
-0
Pacs00800108.xml
swiftCore/src/main/resources/swiftXml/Pacs00800108.xml
+1
-0
pacs008001.properties
swiftCore/src/main/resources/template/pacs008001.properties
+20
-3
pacs009001.properties
swiftCore/src/main/resources/template/pacs009001.properties
+2
-0
Element2MxTest.java
swiftCore/src/test/java/com/brilliance/Element2MxTest.java
+301
-19
Mx2ElementTest.java
swiftCore/src/test/java/com/brilliance/Mx2ElementTest.java
+2
-1
No files found.
swiftCore/pom.xml
View file @
f6ca4161
...
...
@@ -40,6 +40,7 @@
<exclude>
**/swiftJson/**
</exclude>
<exclude>
**/swiftTxt/**
</exclude>
<exclude>
**/swiftXml/**
</exclude>
<exclude>
**/mxjson/**
</exclude>
</excludes>
</configuration>
</plugin>
...
...
swiftCore/src/main/java/com/brilliance/swift/util/DateUtil.java
View file @
f6ca4161
...
...
@@ -13,6 +13,7 @@ import java.text.SimpleDateFormat;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.GregorianCalendar
;
import
java.util.TimeZone
;
public
class
DateUtil
{
...
...
@@ -198,6 +199,21 @@ public class DateUtil {
return
xgc
;
}
public
static
XMLGregorianCalendar
parseXMLGregorianCalendarOfUTC
(
Date
date
)
throws
ParseException
,
DatatypeConfigurationException
{
GregorianCalendar
gc
=
new
GregorianCalendar
();
// 获取当前默认时区
TimeZone
defaultTimezone
=
TimeZone
.
getDefault
();
System
.
out
.
println
(
"当前默认时区:"
+
defaultTimezone
);
// 将时区设置为零(UTC)
gc
.
setTimeZone
(
TimeZone
.
getTimeZone
(
"Etc/UTC"
));
gc
.
setTime
(
date
);
XMLGregorianCalendar
xgc
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
gc
);
return
xgc
;
}
/**
* 数据库Date类型转化为XML时间
*
...
...
swiftCore/src/main/resources/swiftXml/Pacs00800108.xml
View file @
f6ca4161
...
...
@@ -42,6 +42,7 @@ Change Log
<SttlmInf>
<SttlmMtd>
INDA
</SttlmMtd>
</SttlmInf>
</GrpHdr>
<CdtTrfTxInf>
<PmtId>
...
...
swiftCore/src/main/resources/template/pacs008001.properties
View file @
f6ca4161
...
...
@@ -7,14 +7,15 @@ bizSvc=appHdr.bizSvc
creDt
=
fiToFICstmrCdtTrf.grpHdr.creDtTm?appHdr.creDt
priority
=
appHdr.prty
#BODY
instrId
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtId.instrId
endToEndId
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtId.endToEndId
uetr
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtId.uetr
clrSysRef
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtId.clrSysRef
clrChanl
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.clrChanl
svcLvl
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.svcLvl
lclInstrm
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.lclInstrm.cd
lclInstrm
Cd
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.lclInstrm.cd
lclInstrmPrtry
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.lclInstrm.prtry
ctgyPurp
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.ctgyPurp.cd
ctgyPurp
Cd
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.ctgyPurp.cd
ctgyPurpPrtry
=
fiToFICstmrCdtTrf.cdtTrfTxInf.pmtTpInf.ctgyPurp.prtry
sttlmMtd
=
fiToFICstmrCdtTrf.grpHdr.sttlmInf.sttlmMtd
sttlmAcctIdIban
=
fiToFICstmrCdtTrf.grpHdr.sttlmInf.sttlmAcct.id.iban
...
...
@@ -429,6 +430,11 @@ prvsInstgAgt1BrnchPstlAdrCtrySubDvsn=fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt1
prvsInstgAgt1BrnchPstlAdrDstrctNm
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt1.brnchId.pstlAdr.dstrctNm
prvsInstgAgt1BrnchPstlAdrTwnLctnNm
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt1.brnchId.pstlAdr.twnLctnNm
prvsInstgAgt1BrnchAdrLines
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt1.brnchId.pstlAdr.adrLine
prvsInstgAgt1Acctiban
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt1Acct.id.iban
prvsInstgAgt1AcctTpCd
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt1Acct.tp.cd
prvsInstgAgt1AcctCcy
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt1Acct.ccy
prvsInstgAgt2Bicfi
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2.finInstnId.bicfi
prvsInstgAgt2ClrSysId
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2.finInstnId.clrSysMmbId.mmbId
prvsInstgAgt2ClrSysIdType
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2.finInstnId.clrSysMmbId.clrSysId.cd
...
...
@@ -473,6 +479,12 @@ prvsInstgAgt2BrnchPstlAdrCtrySubDvsn=fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2
prvsInstgAgt2BrnchPstlAdrDstrctNm
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2.brnchId.pstlAdr.dstrctNm
prvsInstgAgt2BrnchPstlAdrTwnLctnNm
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2.brnchId.pstlAdr.twnLctnNm
prvsInstgAgt2BrnchAdrLines
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2.brnchId.pstlAdr.adrLine
prvsInstgAgt2Acctiban
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2Acct.id.iban
prvsInstgAgt2AcctTpCd
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2Acct.tp.cd
prvsInstgAgt2AcctCcy
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt2Acct.ccy
prvsInstgAgt3Bicfi
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3.finInstnId.bicfi
prvsInstgAgt3ClrSysId
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3.finInstnId.clrSysMmbId.mmbId
prvsInstgAgt3ClrSysIdType
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3.finInstnId.clrSysMmbId.clrSysId.cd
...
...
@@ -517,6 +529,11 @@ prvsInstgAgt3BrnchPstlAdrCtrySubDvsn=fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3
prvsInstgAgt3BrnchPstlAdrDstrctNm
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3.brnchId.pstlAdr.dstrctNm
prvsInstgAgt3BrnchPstlAdrTwnLctnNm
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3.brnchId.pstlAdr.twnLctnNm
prvsInstgAgt3BrnchAdrLines
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3.brnchId.pstlAdr.adrLine
prvsInstgAgt3Acctiban
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3Acct.id.iban
prvsInstgAgt3AcctTpCd
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3Acct.tp.cd
prvsInstgAgt3AcctCcy
=
fiToFICstmrCdtTrf.cdtTrfTxInf.prvsInstgAgt3Acct.ccy
intrmyAgt1Bicfi
=
fiToFICstmrCdtTrf.cdtTrfTxInf.intrmyAgt1.finInstnId.bicfi
intrmyAgt1ClrSysId
=
fiToFICstmrCdtTrf.cdtTrfTxInf.intrmyAgt1.finInstnId.clrSysMmbId.mmbId
intrmyAgt1ClrSysIdType
=
fiToFICstmrCdtTrf.cdtTrfTxInf.intrmyAgt1.finInstnId.clrSysMmbId.clrSysId.cd
...
...
@@ -719,7 +736,7 @@ ultmtCdtrFaxNb=fiToFICstmrCdtTrf.cdtTrfTxInf.ultmtCdtr.ctctDtls.faxNb
ultmtCdtrEmailAdr
=
fiToFICstmrCdtTrf.cdtTrfTxInf.ultmtCdtr.ctctDtls.emailAdr
instrForCdtrAgt
=
fiToFICstmrCdtTrf.cdtTrfTxInf.instrForCdtrAgt
instrForNxtAgt
=
fiToFICstmrCdtTrf.cdtTrfTxInf.instrForNxtAgt
purp
=
fiToFICstmrCdtTrf.cdtTrfTxInf.purp.cd
purp
Cd
=
fiToFICstmrCdtTrf.cdtTrfTxInf.purp.cd
purpPrtry
=
fiToFICstmrCdtTrf.cdtTrfTxInf.purp.prtry
rgltryRptg
=
@buildRgltryRptg
rltdRmtInf
=
fiToFICstmrCdtTrf.cdtTrfTxInf.rltdRmtInf#rmtId
...
...
swiftCore/src/main/resources/template/pacs009001.properties
View file @
f6ca4161
...
...
@@ -7,6 +7,7 @@ bizSvc=appHdr.bizSvc
creDt
=
fiCdtTrf.grpHdr.creDtTm?appHdr.creDt
priority
=
appHdr.prty
#BODY
instrId
=
fiCdtTrf.cdtTrfTxInf.pmtId.instrId
endToEndId
=
fiCdtTrf.cdtTrfTxInf.pmtId.endToEndId
uetr
=
fiCdtTrf.cdtTrfTxInf.pmtId.uetr
clrSysRef
=
fiCdtTrf.cdtTrfTxInf.pmtId.clrSysRef
...
...
@@ -573,6 +574,7 @@ purpPrtry=fiCdtTrf.cdtTrfTxInf.purp.prtry
rmtInfUstrd
=
fiCdtTrf.cdtTrfTxInf.rmtInf.ustrd
instrForCdtrAgt
=
fiCdtTrf.cdtTrfTxInf.instrForCdtrAgt
instrForNxtAgt
=
fiCdtTrf.cdtTrfTxInf.instrForNxtAgt
#??202COV??
undrlygCstmrCdtTrf
=
fiCdtTrf.cdtTrfTxInf.undrlygCstmrCdtTrf#undrlygCstmrCdtTrf
dbtrAgtBicfi
=
fiCdtTrf.cdtTrfTxInf.dbtrAgt.finInstnId.bicfi
dbtrAgtClrSysId
=
fiCdtTrf.cdtTrfTxInf.dbtrAgt.finInstnId.clrSysMmbId.mmbId
...
...
swiftCore/src/test/java/com/brilliance/Element2MxTest.java
View file @
f6ca4161
package
com
.
brilliance
;
import
com.brilliance.swift.SwiftTransfer
;
import
com.brilliance.swift.element2mx.Element2MxCreatorManager
;
import
com.brilliance.swift.util.DateUtil
;
import
com.brilliance.swift.util.StringUtil
;
import
org.apache.commons.io.FileUtils
;
import
org.junit.Test
;
import
javax.xml.datatype.DatatypeConfigurationException
;
import
java.io.File
;
import
java.io.IOException
;
import
java.
util.ArrayList
;
import
java.
text.ParseException
;
import
java.util.HashMap
;
import
java.util.LinkedList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.regex.Matcher
;
...
...
@@ -18,7 +20,7 @@ import java.util.regex.Pattern;
public
class
Element2MxTest
{
@Test
public
void
test
()
throws
IO
Exception
{
public
void
test
Element2Pacs00800108
()
throws
IOException
,
ParseException
,
DatatypeConfiguration
Exception
{
//File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/MxCamt05300108_950.xml"));
// File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/MxPacs00800108.xml"));
//File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/Pacs00800108.xml"));
...
...
@@ -33,19 +35,300 @@ public class Element2MxTest {
MxId mxId = XmlUtil.getMxMessageType(xmlStr1);
AbstractMX abstractMX = AbstractMX.parse(file,mxId);
String json=abstractMX.toJson();*/
String
elementStr
=
SwiftTransfer
.
mx2Element
(
file
);
System
.
out
.
println
(
"elementStr="
+
elementStr
);
System
.
out
.
println
(
"*****************************"
);
Map
map
=
new
HashMap
();
map
.
put
(
"frBic"
,
"NYCBCNSHXXX"
);
map
.
put
(
"toBic"
,
"PSBCCNBJXXX"
);
map
.
put
(
"messageType"
,
"pacs00800108"
);
List
svcLvlList
=
new
ArrayList
();
Map
tmap
=
new
HashMap
();
tmap
.
put
(
"cd"
,
"G001"
);
svcLvlList
.
add
(
tmap
);
map
.
put
(
"svcLvl"
,
svcLvlList
);
String
xmlStr1
=
new
Element2MxCreatorManager
().
element2Mx
(
map
);
// String elementStr = SwiftTransfer.mx2Element(file);
// System.out.println("elementStr="+elementStr);
// System.out.println("*****************************");
Map
map
=
new
HashMap
();
map
.
put
(
"frBic"
,
"NYCBCNSHXXX"
);
map
.
put
(
"toBic"
,
"PSBCCNBJXXX"
);
map
.
put
(
"messageType"
,
"pacs00800108"
);
String
msgDefIdr
=
"pacs.008.001.08"
;
map
.
put
(
"messageType"
,
msgDefIdr
.
replace
(
"."
,
""
));
map
.
put
(
"msgDefIdr"
,
msgDefIdr
);
map
.
put
(
"bizMsgIdr"
,
"BizTest00001"
);
map
.
put
(
"mgDefIdr"
,
"BizTest00001"
);
map
.
put
(
"bizSvc"
,
"swift.cbprplus.02"
);
map
.
put
(
"msgId"
,
"MsgId00001"
);
/* String creDate = SwiftIsoUtil.dateTransfer("9999-12-31T00:00:00+00:00");
System.out.println("creDate="+creDate);
map.put("creDt", creDate);*/
//TODO 确定yyyyMMddhh:mm:ss 转yyyy-MM-ddThh:mm:ss.sss+/-hh:mm现成的函数
String
creDate
=
"2023-12-10 20:10:11"
;
//esb接口中传入该参数
map
.
put
(
"creDt"
,
DateUtil
.
parseXMLGregorianCalendar
(
DateUtil
.
parseDate
(
creDate
,
"yyyy-MM-dd HH:mm:ss"
)).
toXMLFormat
());
// map.put("creDt", SwiftIsoUtil.date2IsoDateTime("20231210201010"));
/* // 获取当前的日期和时间
LocalDateTime localDateTime = LocalDateTime.now();
// 将日期和时间转换为零时区
ZonedDateTime utcDateTime = localDateTime.atZone(ZoneId.of("UTC"));
System.out.println("当前日期和时间:" + localDateTime);
System.out.println("零时区日期和时间:" + utcDateTime);*/
//mt103 20栏位
map
.
put
(
"instrId"
,
"instrId00001"
);
//endToEndId
map
.
put
(
"endToEndId"
,
"endToEndId0001"
);
//UETR
map
.
put
(
"uetr"
,
"UETR000001"
);
//结算金额、币种、起息日
map
.
put
(
"intrBkSttlmAmt"
,
"12.56"
);
map
.
put
(
"intrBkSttlmCcy"
,
"CNY"
);
map
.
put
(
"intrBkSttlmDt"
,
"2023-12-11"
);
//手续费承担方式
map
.
put
(
"chrgBr"
,
"SHAR"
);
map
.
put
(
"purpCd"
,
"BKDF"
);
//50栏位 汇款人信息
map
.
put
(
"dbtrNm"
,
"zhangsan"
);
List
adr50List
=
new
LinkedList
();
adr50List
.
add
(
"Beijing"
);
adr50List
.
add
(
"HaiDian"
);
adr50List
.
add
(
"HuanBaoyuan"
);
map
.
put
(
"dbtrAdrLines"
,
adr50List
);
//59栏位
map
.
put
(
"cdtrNm"
,
"lisi"
);
List
adr59List
=
new
LinkedList
();
adr59List
.
add
(
"WuHan"
);
adr59List
.
add
(
"HongShan"
);
adr59List
.
add
(
"RongChuangZhiGu"
);
map
.
put
(
"cdtrAdrLines"
,
adr59List
);
//mt103 70汇款信息
List
rmtInfoUstrdList
=
new
LinkedList
();
rmtInfoUstrdList
.
add
(
"TestUstrd0001"
);
map
.
put
(
"rmtInfUstrd"
,
rmtInfoUstrdList
);
//mt103 72附言 ---Begin
/*
instrForCdtrAgt 付款指示
instrForNxtAgt 下一个代理行指令
svcLvl 交易所依据的服务
lclInstrm 交易所依据的本地服务
ctgyPurp 交易用途
prvsInstgAgt1 之前的发报行1
prvsInstgAgt1Acct 之前的发报行1账户
prvsInstgAgt2 之前的发报行2
prvsInstgAgt2Acct 之前的发报行2账户
prvsInstgAgt3 之前的发报行3
prvsInstgAgt3Acct 之前的发报行3账户
*/
//付款指示
List
instrForCdtrAgtList
=
new
LinkedList
();
Map
instrForCdtrAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"cd"
,
"HOLD"
);
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"InstrInf1"
);
instrForCdtrAgtList
.
add
(
instrForCdtrAgtMap
);
instrForCdtrAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"cd"
,
"TELB"
);
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"TELB111"
);
instrForCdtrAgtList
.
add
(
instrForCdtrAgtMap
);
map
.
put
(
"instrForCdtrAgt"
,
instrForCdtrAgtList
);
//下一个代理行指令
List
instrForNxtAgtList
=
new
LinkedList
();
Map
instrForNxtAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"instrInf1"
);
instrForNxtAgtList
.
add
(
instrForNxtAgtMap
);
instrForNxtAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"instrInf2"
);
instrForNxtAgtList
.
add
(
instrForNxtAgtMap
);
map
.
put
(
"instrForNxtAgt"
,
instrForNxtAgtList
);
//交易所依据的服务
List
svcLvlList
=
new
LinkedList
();
Map
svcLvlMap
=
new
HashMap
();
svcLvlMap
.
put
(
"cd"
,
"BKTR"
);
svcLvlList
.
add
(
svcLvlMap
);
svcLvlMap
=
new
HashMap
();
svcLvlMap
.
put
(
"cd"
,
"G001"
);
svcLvlList
.
add
(
svcLvlMap
);
map
.
put
(
"svcLvl"
,
svcLvlList
);
//交易所依据的本地服务
map
.
put
(
"lclInstrmCd"
,
"DDMC"
);
//交易用途
map
.
put
(
"ctgyPurpCd"
,
"BONU"
);
//之前的发报行1
map
.
put
(
"prvsInstgAgt1Bicfi"
,
"PSBCCNBJ001"
);
map
.
put
(
"prvsInstgAgt1ClrSysIdType"
,
"ATBLZ"
);
//之前发报行1的帐户信息
map
.
put
(
"prvsInstgAgt1Acctiban"
,
"IBAN00000001"
);
map
.
put
(
"prvsInstgAgt1AcctTpCd"
,
"CACC"
);
map
.
put
(
"prvsInstgAgt1AcctCcy"
,
"CNY"
);
//之前的发报行2
map
.
put
(
"prvsInstgAgt2Bicfi"
,
"PSBCCNBJ002"
);
map
.
put
(
"prvsInstgAgt2ClrSysIdType"
,
"ATBLZ"
);
//之前发报行2的帐户信息
map
.
put
(
"prvsInstgAgt2Acctiban"
,
"IBAN00000002"
);
map
.
put
(
"prvsInstgAgt2AcctTpCd"
,
"CACC"
);
map
.
put
(
"prvsInstgAgt2AcctCcy"
,
"CNY"
);
//之前的发报行3
map
.
put
(
"prvsInstgAgt3Bicfi"
,
"PSBCCNBJ003"
);
map
.
put
(
"prvsInstgAgt3ClrSysIdType"
,
"ATBLZ"
);
//之前发报行3的帐户信息
map
.
put
(
"prvsInstgAgt3Acctiban"
,
"IBAN00000003"
);
map
.
put
(
"prvsInstgAgt3AcctTpCd"
,
"CACC"
);
map
.
put
(
"prvsInstgAgt3AcctCcy"
,
"CNY"
);
//mt103 72附言 ---End
String
xmlStr1
=
new
Element2MxCreatorManager
().
element2Mx
(
map
);
System
.
out
.
println
(
xmlStr1
);
// String xmlStr = new Element2MxCreatorManager().element2Mx(elementStr);
// System.out.println("iso======"+xmlStr);
}
@Test
public
void
testElement2Pacs00900108
()
throws
IOException
,
ParseException
,
DatatypeConfigurationException
{
Map
map
=
new
HashMap
();
map
.
put
(
"frBic"
,
"NYCBCNSHXXX"
);
map
.
put
(
"toBic"
,
"PSBCCNBJXXX"
);
String
msgDefIdr
=
"pacs.009.001.08"
;
map
.
put
(
"messageType"
,
msgDefIdr
.
replace
(
"."
,
""
));
map
.
put
(
"msgDefIdr"
,
msgDefIdr
);
map
.
put
(
"bizMsgIdr"
,
"BizTest00001"
);
map
.
put
(
"mgDefIdr"
,
"BizTest00001"
);
map
.
put
(
"bizSvc"
,
"swift.cbprplus.02"
);
map
.
put
(
"msgId"
,
"MsgId00001"
);
//TODO 确定yyyyMMddhh:mm:ss 转yyyy-MM-ddThh:mm:ss.sss+/-hh:mm现成的函数
String
creDate
=
"2023-12-10 20:10:11"
;
//esb接口中传入该参数
map
.
put
(
"creDt"
,
DateUtil
.
parseXMLGregorianCalendar
(
DateUtil
.
parseDate
(
creDate
,
"yyyy-MM-dd HH:mm:ss"
)).
toXMLFormat
());
//mt202 20栏位
map
.
put
(
"instrId"
,
"instrId00001"
);
//mt202 21栏位 endToEndId
map
.
put
(
"endToEndId"
,
"endToEndId0001"
);
//UETR
map
.
put
(
"uetr"
,
"UETR000001"
);
//结算金额、币种、起息日
map
.
put
(
"intrBkSttlmAmt"
,
"12.56"
);
map
.
put
(
"intrBkSttlmCcy"
,
"CNY"
);
map
.
put
(
"intrBkSttlmDt"
,
"2023-12-11"
);
//手续费承担方式
map
.
put
(
"chrgBr"
,
"SHAR"
);
map
.
put
(
"purpCd"
,
"BKDF"
);
//50栏位 汇款人信息
map
.
put
(
"dbtrNm"
,
"zhangsan"
);
List
adr50List
=
new
LinkedList
();
adr50List
.
add
(
"Beijing"
);
adr50List
.
add
(
"HaiDian"
);
adr50List
.
add
(
"HuanBaoyuan"
);
map
.
put
(
"dbtrAdrLines"
,
adr50List
);
//59栏位
map
.
put
(
"cdtrNm"
,
"lisi"
);
List
adr59List
=
new
LinkedList
();
adr59List
.
add
(
"WuHan"
);
adr59List
.
add
(
"HongShan"
);
adr59List
.
add
(
"RongChuangZhiGu"
);
map
.
put
(
"cdtrAdrLines"
,
adr59List
);
//mt103 70汇款信息
List
rmtInfoUstrdList
=
new
LinkedList
();
rmtInfoUstrdList
.
add
(
"TestUstrd0001"
);
map
.
put
(
"rmtInfUstrd"
,
rmtInfoUstrdList
);
//mt103 72附言 ---Begin
/*
instrForCdtrAgt 付款指示
instrForNxtAgt 下一个代理行指令
svcLvl 交易所依据的服务
lclInstrm 交易所依据的本地服务
ctgyPurp 交易用途
prvsInstgAgt1 之前的发报行1
prvsInstgAgt1Acct 之前的发报行1账户
prvsInstgAgt2 之前的发报行2
prvsInstgAgt2Acct 之前的发报行2账户
prvsInstgAgt3 之前的发报行3
prvsInstgAgt3Acct 之前的发报行3账户
*/
//付款指示
List
instrForCdtrAgtList
=
new
LinkedList
();
Map
instrForCdtrAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"cd"
,
"HOLD"
);
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"InstrInf1"
);
instrForCdtrAgtList
.
add
(
instrForCdtrAgtMap
);
instrForCdtrAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"cd"
,
"TELB"
);
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"TELB111"
);
instrForCdtrAgtList
.
add
(
instrForCdtrAgtMap
);
map
.
put
(
"instrForCdtrAgt"
,
instrForCdtrAgtList
);
//下一个代理行指令
List
instrForNxtAgtList
=
new
LinkedList
();
Map
instrForNxtAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"instrInf1"
);
instrForNxtAgtList
.
add
(
instrForNxtAgtMap
);
instrForNxtAgtMap
=
new
HashMap
();
instrForCdtrAgtMap
.
put
(
"instrInf"
,
"instrInf2"
);
instrForNxtAgtList
.
add
(
instrForNxtAgtMap
);
map
.
put
(
"instrForNxtAgt"
,
instrForNxtAgtList
);
//交易所依据的服务
List
svcLvlList
=
new
LinkedList
();
Map
svcLvlMap
=
new
HashMap
();
svcLvlMap
.
put
(
"cd"
,
"BKTR"
);
svcLvlList
.
add
(
svcLvlMap
);
svcLvlMap
=
new
HashMap
();
svcLvlMap
.
put
(
"cd"
,
"G001"
);
svcLvlList
.
add
(
svcLvlMap
);
map
.
put
(
"svcLvl"
,
svcLvlList
);
//交易所依据的本地服务
map
.
put
(
"lclInstrmCd"
,
"DDMC"
);
//交易用途
map
.
put
(
"ctgyPurpCd"
,
"BONU"
);
//之前的发报行1
map
.
put
(
"prvsInstgAgt1Bicfi"
,
"PSBCCNBJ001"
);
map
.
put
(
"prvsInstgAgt1ClrSysIdType"
,
"ATBLZ"
);
//之前发报行1的帐户信息
map
.
put
(
"prvsInstgAgt1Acctiban"
,
"IBAN00000001"
);
map
.
put
(
"prvsInstgAgt1AcctTpCd"
,
"CACC"
);
map
.
put
(
"prvsInstgAgt1AcctCcy"
,
"CNY"
);
//之前的发报行2
map
.
put
(
"prvsInstgAgt2Bicfi"
,
"PSBCCNBJ002"
);
map
.
put
(
"prvsInstgAgt2ClrSysIdType"
,
"ATBLZ"
);
//之前发报行2的帐户信息
map
.
put
(
"prvsInstgAgt2Acctiban"
,
"IBAN00000002"
);
map
.
put
(
"prvsInstgAgt2AcctTpCd"
,
"CACC"
);
map
.
put
(
"prvsInstgAgt2AcctCcy"
,
"CNY"
);
//之前的发报行3
map
.
put
(
"prvsInstgAgt3Bicfi"
,
"PSBCCNBJ003"
);
map
.
put
(
"prvsInstgAgt3ClrSysIdType"
,
"ATBLZ"
);
//之前发报行3的帐户信息
map
.
put
(
"prvsInstgAgt3Acctiban"
,
"IBAN00000003"
);
map
.
put
(
"prvsInstgAgt3AcctTpCd"
,
"CACC"
);
map
.
put
(
"prvsInstgAgt3AcctCcy"
,
"CNY"
);
//mt103 72附言 ---End
String
xmlStr1
=
new
Element2MxCreatorManager
().
element2Mx
(
map
);
System
.
out
.
println
(
xmlStr1
);
// String xmlStr = new Element2MxCreatorManager().element2Mx(elementStr);
...
...
@@ -54,9 +337,8 @@ public class Element2MxTest {
}
@Test
public
void
testRefreshValue
()
{
String
value
=
"/INS/BOFAUS3N^&**!!!\r\n"
+
public
void
testRefreshValue
()
{
String
value
=
"/INS/BOFAUS3N^&**!!!\r\n"
+
"///CHPREF/0188423"
;
String
s
=
refreshValue
(
value
,
"//"
,
35
);
System
.
out
.
println
(
s
.
replace
(
"\r\n//"
,
""
));
...
...
swiftCore/src/test/java/com/brilliance/Mx2ElementTest.java
View file @
f6ca4161
...
...
@@ -18,8 +18,9 @@ public class Mx2ElementTest {
@Test
public
void
testMx2Map
()
throws
IOException
{
File
file
=
FileUtils
.
toFile
(
Mx2MtTest
.
class
.
getResource
(
"/swiftXml/Pacs00800108.xml"
));
// File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/MxPacs00800108.xml"));
File
file
=
FileUtils
.
toFile
(
Mx2MtTest
.
class
.
getResource
(
"/swiftXml/MxPacs00900108_COV.xml"
));
//
File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/MxPacs00900108_COV.xml"));
//File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/MxPacs00900108.xml"));
//File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/MxPacs00900108_COV.xml"));
//File file = FileUtils.toFile(Mx2MtTest.class.getResource("/swiftXml/MxCamt05300108_950.xml"));
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment