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
046bbaac
Commit
046bbaac
authored
May 05, 2022
by
zhanghou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
940和950mx,mx和swift之间的转换基本完成
parent
e5c256e3
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
985 additions
and
130 deletions
+985
-130
Camt053001Parse61Field.java
...t/mt2SwiftDto/camt053001/impl/Camt053001Parse61Field.java
+2
-3
Camt053001Parse65Field.java
...t/mt2SwiftDto/camt053001/impl/Camt053001Parse65Field.java
+1
-1
Mx2SwiftDtoCreatorManager.java
...illiance/swift/mx2swiftdto/Mx2SwiftDtoCreatorManager.java
+3
-0
Mx2SwiftDtoBTCDCNCreator.java
...ift/mx2swiftdto/bankcdbcdnf/Mx2SwiftDtoBTCDCNCreator.java
+37
-36
Mx2SwiftDtoBTCSCreator.java
...e/swift/mx2swiftdto/bankcusta/Mx2SwiftDtoBTCSCreator.java
+255
-0
SwiftDto2MxCreatorManager.java
...illiance/swift/swiftdto2mx/SwiftDto2MxCreatorManager.java
+3
-0
SwiftDto2MxCamt053001Creator.java
...ftdto2mx/camt053001/v08/SwiftDto2MxCamt053001Creator.java
+279
-0
SwiftDto2MxCamt054001Creator.java
...ftdto2mx/camt054001/v08/SwiftDto2MxCamt054001Creator.java
+4
-5
BankToCustomerStatement.java
...java/com/brilliance/swift/vo/BankToCustomerStatement.java
+3
-4
statementBreakdown.java
...va/com/brilliance/swift/vo/common/statementBreakdown.java
+1
-1
BankToCustomerCreditNotification.json
...resources/swiftJson/BankToCustomerCreditNotification.json
+2
-13
BankToCustomerDebitNotification.json
.../resources/swiftJson/BankToCustomerDebitNotification.json
+11
-6
BankToCustomerStatement.json
...src/main/resources/swiftJson/BankToCustomerStatement.json
+2
-1
BankToStatement.json
swiftCore/src/main/resources/swiftJson/BankToStatement.json
+3
-3
MT900.txt
swiftCore/src/main/resources/swiftTxt/MT900.txt
+6
-5
MT910.txt
swiftCore/src/main/resources/swiftTxt/MT910.txt
+1
-6
MT940.txt
swiftCore/src/main/resources/swiftTxt/MT940.txt
+10
-9
MT950.txt
swiftCore/src/main/resources/swiftTxt/MT950.txt
+8
-7
MxCamt05300108_940.xml
swiftCore/src/main/resources/swiftXml/MxCamt05300108_940.xml
+149
-0
MxCamt05300108_950.xml
swiftCore/src/main/resources/swiftXml/MxCamt05300108_950.xml
+123
-0
MxCamt05400108_CREDIT.xml
...ore/src/main/resources/swiftXml/MxCamt05400108_CREDIT.xml
+1
-20
MxCamt05400108_DEBIT.xml
...Core/src/main/resources/swiftXml/MxCamt05400108_DEBIT.xml
+11
-4
Test940Camt053001.java
.../brilliance/mt2swiftdto/camt053001/Test940Camt053001.java
+1
-1
Test950Camt053001.java
.../brilliance/mt2swiftdto/camt053001/Test950Camt053001.java
+1
-1
Test940.java
...st/java/com/brilliance/mx2swiftdto/bankcusta/Test940.java
+14
-0
Test950.java
...st/java/com/brilliance/mx2swiftdto/bankcusta/Test950.java
+14
-0
Test.java
.../src/test/java/com/brilliance/swiftdto2mt/mt900/Test.java
+2
-1
Test.java
.../src/test/java/com/brilliance/swiftdto2mt/mt910/Test.java
+2
-1
Test.java
.../src/test/java/com/brilliance/swiftdto2mt/mt940/Test.java
+1
-1
Test.java
.../src/test/java/com/brilliance/swiftdto2mt/mt950/Test.java
+1
-1
Text940camt053001.java
.../brilliance/swiftdto2mx/camt053001/Text940camt053001.java
+17
-0
Text950camt053001.java
.../brilliance/swiftdto2mx/camt053001/Text950camt053001.java
+17
-0
No files found.
swiftCore/src/main/java/com/brilliance/swift/mt2SwiftDto/camt053001/impl/Camt053001Parse61Field.java
View file @
046bbaac
...
...
@@ -7,7 +7,6 @@ import com.brilliance.swift.vo.BankToCustomerStatement;
import
com.brilliance.swift.vo.common.statementBreakdown
;
import
com.prowidesoftware.swift.model.Tag
;
import
com.prowidesoftware.swift.model.field.Field61
;
import
com.prowidesoftware.swift.model.field.Field86
;
import
com.prowidesoftware.swift.model.mt.AbstractMT
;
import
com.prowidesoftware.swift.model.mt9xx.MT940
;
import
com.prowidesoftware.swift.model.mt9xx.MT950
;
...
...
@@ -61,7 +60,7 @@ public class Camt053001Parse61Field extends AbstractMt2SwiftDtoParseFields {
if
(!
Message86List
.
get
(
i
).
equals
(
"no"
)){
statementBreakdown
.
setAddtlNtryInf
(
Message86List
.
get
(
i
));
}
bankToCustomerStatement
.
add
NtryDto
(
statementBreakdown
);
bankToCustomerStatement
.
add
StatementLine
(
statementBreakdown
);
}
}
}
else
{
...
...
@@ -87,7 +86,7 @@ public class Camt053001Parse61Field extends AbstractMt2SwiftDtoParseFields {
statementBreakdown
.
setEndToEndId
(
field61List
.
get
(
i
).
getReferenceForTheAccountOwner
());
statementBreakdown
.
setAcctSvcrRef
(
field61List
.
get
(
i
).
getReferenceOfTheAccountServicingInstitution
());
statementBreakdown
.
setAddtlTxInf
(
field61List
.
get
(
i
).
getSupplementaryDetails
());
bankToCustomerStatement
.
add
NtryDto
(
statementBreakdown
);
bankToCustomerStatement
.
add
StatementLine
(
statementBreakdown
);
}
}
}
...
...
swiftCore/src/main/java/com/brilliance/swift/mt2SwiftDto/camt053001/impl/Camt053001Parse65Field.java
View file @
046bbaac
...
...
@@ -38,7 +38,7 @@ public class Camt053001Parse65Field extends AbstractMt2SwiftDtoParseFields {
balDto
.
setDate
(
DateUtil
.
parseDate
(
"20"
+
field65List
.
get
(
i
).
getDate
(),
"yyyyMMdd"
));
balDto
.
setCcy
(
field65List
.
get
(
i
).
getCurrency
());
balDto
.
setAmt
(
field65List
.
get
(
i
).
amount
());
bankToCustomerStatement
.
add
BalDtoSixFiv
e
(
balDto
);
bankToCustomerStatement
.
add
ForwardAvailableBalanc
e
(
balDto
);
}
}
}
...
...
swiftCore/src/main/java/com/brilliance/swift/mx2swiftdto/Mx2SwiftDtoCreatorManager.java
View file @
046bbaac
...
...
@@ -2,6 +2,7 @@ package com.brilliance.swift.mx2swiftdto;
import
com.brilliance.swift.exception.SwiftException
;
import
com.brilliance.swift.mx2swiftdto.bankcdbcdnf.Mx2SwiftDtoBTCDCNCreator
;
import
com.brilliance.swift.mx2swiftdto.bankcusta.Mx2SwiftDtoBTCSCreator
;
import
com.brilliance.swift.mx2swiftdto.custcdttsf.Mx2SwiftDtoCCTCreator
;
import
com.brilliance.swift.mx2swiftdto.fininstcdttsf.Mx2SwiftDtoFICTCreator
;
import
com.brilliance.swift.vo.SwiftDto
;
...
...
@@ -61,6 +62,8 @@ public class Mx2SwiftDtoCreatorManager {
return
new
Mx2SwiftDtoFICTCreator
();
}
else
if
(
"camt054001"
.
equals
(
msgType
)){
return
new
Mx2SwiftDtoBTCDCNCreator
();
}
else
if
(
"camt053001"
.
equals
(
msgType
)){
return
new
Mx2SwiftDtoBTCSCreator
();
}
else
{
throw
new
SwiftException
(
"Invalid message type"
);
}
...
...
swiftCore/src/main/java/com/brilliance/swift/mx2swiftdto/bankcdbcdnf/Mx2SwiftDtoBTCDCNCreator.java
View file @
046bbaac
...
...
@@ -138,51 +138,52 @@ public class Mx2SwiftDtoBTCDCNCreator extends AbstractMx2SwiftDtoCreator {
partyDto1
.
addAddress
(
adrLine
);
}
}
if
(
id2
!=
null
||
iban
!=
null
){
if
(
id2
!=
null
||
iban
2
!=
null
){
PartyAccount
partyAccount1
=
new
PartyAccount
();
partyAccount1
.
setAccount
(
id2
);
partyAccount1
.
setIbanAcct
(
iban2
);
partyDto1
.
setPartyAcct
(
partyAccount1
);
}
bankToCustomerDebitCreditNotification
.
setDebitParty
(
partyDto1
);
}
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Pty><Id><OrgId><AnyBIC>
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Pty><Nm>
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Pty><PstlAdr><AdrLine>
String
bicfi2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.BICFI"
);
String
name2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.Nm"
);
String
mmbId2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.ClrSysMmbId.MmbId"
);
String
cd2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.ClrSysMmbId.ClrSysId.Cd"
);
PartyDto
partyDto
=
new
PartyDto
();
if
(
bicfi2
!=
null
){
partyDto
.
setPartyBic
(
bicfi2
);
if
(
mmbId2
!=
null
){
ClearingSystemMember
clrSysMmb2
=
new
ClearingSystemMember
();
clrSysMmb2
.
setId
(
mmbId2
);
clrSysMmb2
.
setCode
(
cd2
);
partyDto
.
setClrSysMmb
(
clrSysMmb2
);
}
bankToCustomerDebitCreditNotification
.
setDebitAgtParty
(
partyDto
);
}
else
if
(
name2
!=
null
){
partyDto
.
setPartyName
(
name2
);
int
adrLineCount
=
getXmlNodeCounts
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
adrLineCount
>
0
){
for
(
int
i
=
0
;
i
<
adrLineCount
;
i
++)
{
if
(
i
==
3
)
{
break
;
}
else
{
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Pty><Id><OrgId><AnyBIC>
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Pty><Nm>
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdPties><Dbtr><Pty><PstlAdr><AdrLine>
String
bicfi2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.BICFI"
);
String
name2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.Nm"
);
String
mmbId2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.ClrSysMmbId.MmbId"
);
String
cd2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.ClrSysMmbId.ClrSysId.Cd"
);
PartyDto
partyDto
=
new
PartyDto
();
if
(
bicfi2
!=
null
){
partyDto
.
setPartyBic
(
bicfi2
);
if
(
mmbId2
!=
null
){
ClearingSystemMember
clrSysMmb2
=
new
ClearingSystemMember
();
clrSysMmb2
.
setId
(
mmbId2
);
clrSysMmb2
.
setCode
(
cd2
);
partyDto
.
setClrSysMmb
(
clrSysMmb2
);
}
bankToCustomerDebitCreditNotification
.
setDebitAgtParty
(
partyDto
);
}
else
if
(
name2
!=
null
){
partyDto
.
setPartyName
(
name2
);
int
adrLineCount
=
getXmlNodeCounts
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
adrLineCount
>
0
){
for
(
int
i
=
0
;
i
<
adrLineCount
;
i
++)
{
if
(
i
==
3
)
{
break
;
}
String
adrLine
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
adrLine
.
length
()
>
35
)
adrLine
=
adrLine
.
substring
(
0
,
35
);
partyDto
.
addAddress
(
adrLine
);
}
String
adrLine
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls("
+
1
+
").RltdAgts.DbtrAgt.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
adrLine
.
length
()
>
35
)
adrLine
=
adrLine
.
substring
(
0
,
35
);
partyDto
.
addAddress
(
adrLine
);
}
if
(
mmbId2
!=
null
){
ClearingSystemMember
clrSysMmb2
=
new
ClearingSystemMember
();
clrSysMmb2
.
setId
(
mmbId2
);
clrSysMmb2
.
setCode
(
cd2
);
partyDto
.
setClrSysMmb
(
clrSysMmb2
);
}
bankToCustomerDebitCreditNotification
.
setDebitAgtParty
(
partyDto
);
}
if
(
mmbId2
!=
null
){
ClearingSystemMember
clrSysMmb2
=
new
ClearingSystemMember
();
clrSysMmb2
.
setId
(
mmbId2
);
clrSysMmb2
.
setCode
(
cd2
);
partyDto
.
setClrSysMmb
(
clrSysMmb2
);
}
bankToCustomerDebitCreditNotification
.
setDebitAgtParty
(
partyDto
);
}
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdAgts><IntrmyAgt1><FinInstnId><BICFI>
//<Ntfctn><Ntry><NtryDtls><TxDtls><RltdAgts><IntrmyAgt1><FinInstnId><ClrSysMmbId><ClrSysId><Cd>
...
...
swiftCore/src/main/java/com/brilliance/swift/mx2swiftdto/bankcusta/Mx2SwiftDtoBTCSCreator.java
0 → 100644
View file @
046bbaac
package
com
.
brilliance
.
swift
.
mx2swiftdto
.
bankcusta
;
import
com.brilliance.swift.exception.SwiftException
;
import
com.brilliance.swift.mx2swiftdto.AbstractMx2SwiftDtoCreator
;
import
com.brilliance.swift.mx2swiftdto.Mx2SwiftDtoContextIdentifier
;
import
com.brilliance.swift.util.DateUtil
;
import
com.brilliance.swift.util.StringUtil
;
import
com.brilliance.swift.util.XmlUtil
;
import
com.brilliance.swift.vo.BankToCustomerDebitCreditNotification
;
import
com.brilliance.swift.vo.BankToCustomerStatement
;
import
com.brilliance.swift.vo.common.*
;
import
com.prowidesoftware.swift.model.mx.dic.Value
;
import
org.dom4j.Document
;
import
javax.xml.datatype.DatatypeConfigurationException
;
import
javax.xml.datatype.DatatypeFactory
;
import
javax.xml.datatype.XMLGregorianCalendar
;
import
java.io.File
;
import
java.math.BigDecimal
;
import
java.text.ParseException
;
import
java.util.Date
;
import
java.util.Map
;
public
class
Mx2SwiftDtoBTCSCreator
extends
AbstractMx2SwiftDtoCreator
{
private
BankToCustomerStatement
bankToCustomerStatement
=
null
;
private
String
defaultFormate
=
"yyyy-MM-dd HH:mm:ss,SSS"
;
@Override
public
void
preProcess
()
throws
SwiftException
{
document
=
(
Document
)
context
.
get
(
Mx2SwiftDtoContextIdentifier
.
MX_XMl_DOCUMENT
,
true
);
Map
<
String
,
String
>
parentElementMaps
=
XmlUtil
.
getParentElementMaps
(
document
);
appHdrParentElementName
=
parentElementMaps
.
get
(
"AppHdr"
);
grpHdrParentElementName
=
parentElementMaps
.
get
(
"GrpHdr"
);
bodyHdrParentElementName
=
parentElementMaps
.
get
(
"Stmt"
);
bankToCustomerStatement
=
new
BankToCustomerStatement
();
bankToCustomerStatement
.
setMessageType
(
"camt.053.001"
);
}
@Override
public
void
appHeader
()
throws
SwiftException
{
try
{
String
sendBicCode
=
getBicCode
(
appHdrParentElementName
,
document
,
"AppHdr.Fr.FIId.FinInstnId"
);
String
receiverBicCode
=
getBicCode
(
appHdrParentElementName
,
document
,
"AppHdr.To.FIId.FinInstnId"
);
String
createDateStr
=
getXmlNodeValue
(
appHdrParentElementName
,
document
,
"AppHdr.CreDt"
);
if
(
StringUtil
.
isNotEmpty
(
createDateStr
))
{
XMLGregorianCalendar
createDt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
createDateStr
);
Date
createDate
=
DateUtil
.
formatAndParseDate
(
createDt
.
toGregorianCalendar
().
getTime
(),
defaultFormate
);
bankToCustomerStatement
.
setCreateDate
(
createDate
);
}
String
messageId
=
getXmlNodeValue
(
appHdrParentElementName
,
document
,
"AppHdr.BizMsgIdr"
);
String
priority
=
getXmlNodeValue
(
appHdrParentElementName
,
document
,
"AppHdr.Prty"
);
if
(
StringUtil
.
isNotEmpty
(
priority
))
{
bankToCustomerStatement
.
setMessagePriority
(
MessagePriority
.
fromValue
(
priority
));
}
bankToCustomerStatement
.
setMessageId
(
messageId
);
bankToCustomerStatement
.
setSenderBic
(
sendBicCode
);
bankToCustomerStatement
.
setReceiverBic
(
receiverBicCode
);
}
catch
(
DatatypeConfigurationException
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
catch
(
ParseException
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
}
@Override
public
void
groupHeader
()
throws
SwiftException
{
}
@Override
public
void
messageBody
()
throws
SwiftException
{
try
{
//UETR
String
uetr
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry.NtryDtls.TxDtls.Refs.UETR"
);
if
(
StringUtil
.
isNotEmpty
(
uetr
))
{
bankToCustomerStatement
.
setUetr
(
uetr
);
}
bankToCustomerStatement
.
setCd
(
""
);
//<Stmt><Acct><Id><IBAN>
//<Stmt><Acct><Id><Othr><Id>
String
iban
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Acct.Id.IBAN"
);
String
id
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Acct.Id.Othr.Id"
);
PartyAccount
partyAccount
=
new
PartyAccount
();
if
(
StringUtil
.
isNotEmpty
(
iban
)){
partyAccount
.
setIbanAcct
(
iban
);
}
else
{
partyAccount
.
setAccount
(
id
);
}
bankToCustomerStatement
.
setAccount
(
partyAccount
);
//<GrpHdr><MsgPgntn><PgNb>
//<Stmt><ElctrncSeqNb>
String
pgNb
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"GrpHdr.MsgPgntn.PgNb"
);
String
elctrncSeqNb
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.ElctrncSeqNb"
);
if
(
StringUtil
.
isNotEmpty
(
pgNb
)&&
StringUtil
.
isNotEmpty
(
elctrncSeqNb
)){
bankToCustomerStatement
.
setPgNb
(
pgNb
);
bankToCustomerStatement
.
setElctrncSeqNb
(
elctrncSeqNb
);
}
//<Stmt><Bal>[i]<Tp><CdOrPrtry><Cd>
//<Stmt><Bal>[i]<CdtDbtInd>
//<Stmt><Bal>[i]<Dt><Dt>
//<Stmt><Bal>[i]<Amt Ccy=“XXX”>
String
cd1
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
1
+
").Tp.CdOrPrtry.Cd"
);
if
(
"PRCD"
.
equals
(
cd1
)||
"ITBD"
.
equals
(
cd1
)){
BalDto
openBalance
=
new
BalDto
();
openBalance
.
setCd
(
cd1
);
String
cdtDbtInd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
1
+
").CdtDbtInd"
);
openBalance
.
setCdtDbtInd
(
cdtDbtInd
);
String
dateStr
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
1
+
").Dt.Dt"
);
if
(
StringUtil
.
isNotEmpty
(
dateStr
))
{
XMLGregorianCalendar
dt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dateStr
);
Date
date
=
DateUtil
.
formatAndParseDate
(
dt
.
toGregorianCalendar
().
getTime
(),
defaultFormate
);
openBalance
.
setDate
(
date
);
}
String
amt
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
1
+
").Amt"
);
String
ccy
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
1
+
").Amt@Ccy"
);
openBalance
.
setCcy
(
ccy
);
openBalance
.
setAmt
(
new
BigDecimal
(
amt
));
bankToCustomerStatement
.
setOpenBalance
(
openBalance
);
}
//<Stmt><Ntry>[j]<ValDt><Dt>
//<Stmt><Ntry>[j]<BookgDt><Dt>
//<Stmt><Ntry>[j]<CdtDbtInd>
//<Stmt><Ntry>[j]<RvslInd>
//<Stmt><Ntry>[j]<Sts>
//<Stmt><Ntry>[j]<Amt Ccy=“XXX”>
//<Stmt><Ntry>[j]<BkTxCd><Prtry><Cd>
//<Stmt><Ntry>[j]<NtryDtls><TxDtls><Refs><EndToEndId>
//<Stmt><Ntry>[j]<AcctSvcrRef>
//<Stmt><Ntry>[j]<NtryDtls><TxDtls><AddtlTxInf>
//<Stmt><Ntry>[j]<AddtlNtryInf>
int
ntryCount
=
getXmlNodeCounts
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry"
);
if
(
ntryCount
>
1
){
for
(
int
i
=
1
;
i
<
ntryCount
;
i
++)
{
statementBreakdown
statementBreakdown
=
new
statementBreakdown
();
String
dateStr1
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").ValDt.Dt"
);
String
dateStr2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").BookgDt.Dt"
);
if
(
StringUtil
.
isNotEmpty
(
dateStr1
))
{
XMLGregorianCalendar
dt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dateStr1
);
Date
date
=
DateUtil
.
formatAndParseDate
(
dt
.
toGregorianCalendar
().
getTime
(),
defaultFormate
);
statementBreakdown
.
setValueDate
(
date
);
}
if
(
StringUtil
.
isNotEmpty
(
dateStr2
))
{
XMLGregorianCalendar
dt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dateStr2
);
Date
date
=
DateUtil
.
formatAndParseDate
(
dt
.
toGregorianCalendar
().
getTime
(),
defaultFormate
);
statementBreakdown
.
setBookDate
(
date
);
}
String
cdtDbtInd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").CdtDbtInd"
);
statementBreakdown
.
setCdtDbtInd
(
cdtDbtInd
);
String
rvslInd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").RvslInd"
);
statementBreakdown
.
setRvslInd
(
rvslInd
);
String
amt
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").Amt"
);
String
ccy
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").Amt@Ccy"
);
statementBreakdown
.
setAmt
(
new
BigDecimal
(
amt
));
statementBreakdown
.
setCcy
(
ccy
);
String
cd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").BkTxCd.Prtry.Cd"
);
statementBreakdown
.
setTransactionType
(
cd
.
substring
(
0
,
1
));
statementBreakdown
.
setIdentificationCode
(
cd
.
substring
(
1
));
String
endToEndId
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").NtryDtls.TxDtls.Refs.EndToEndId"
);
statementBreakdown
.
setEndToEndId
(
endToEndId
);
String
acctSvcrRef
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").AcctSvcrRef"
);
statementBreakdown
.
setAcctSvcrRef
(
acctSvcrRef
);
String
addtlTxInf
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").NtryDtls.TxDtls.AddtlTxInf"
);
statementBreakdown
.
setAddtlTxInf
(
addtlTxInf
);
String
addtlNtryInf
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Ntry("
+
i
+
").AddtlNtryInf"
);
statementBreakdown
.
setAddtlNtryInf
(
addtlNtryInf
);
bankToCustomerStatement
.
addStatementLine
(
statementBreakdown
);
}
}
//<Stmt><Bal>[i]<Tp><CdOrPrtry><Cd>
//<Stmt><Bal>[i]<CdtDbtInd>
//<Stmt><Bal>[i]<Dt><Dt>
//<Stmt><Bal>[i]<Amt Ccy=“XXX”>
String
cd2
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
2
+
").Tp.CdOrPrtry.Cd"
);
if
(
"CLBD"
.
equals
(
cd2
)||
"ITBD"
.
equals
(
cd2
)){
BalDto
closingBalance
=
new
BalDto
();
closingBalance
.
setCd
(
cd2
);
String
cdtDbtInd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
2
+
").CdtDbtInd"
);
closingBalance
.
setCdtDbtInd
(
cdtDbtInd
);
String
dateStr
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
2
+
").Dt.Dt"
);
if
(
StringUtil
.
isNotEmpty
(
dateStr
))
{
XMLGregorianCalendar
dt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dateStr
);
Date
date
=
DateUtil
.
formatAndParseDate
(
dt
.
toGregorianCalendar
().
getTime
(),
defaultFormate
);
closingBalance
.
setDate
(
date
);
}
String
amt
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
2
+
").Amt"
);
String
ccy
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
2
+
").Amt@Ccy"
);
closingBalance
.
setCcy
(
ccy
);
closingBalance
.
setAmt
(
new
BigDecimal
(
amt
));
bankToCustomerStatement
.
setClosingBalance
(
closingBalance
);
}
int
balCount
=
getXmlNodeCounts
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal"
);
if
(
balCount
>
0
){
for
(
int
i
=
0
;
i
<
balCount
;
i
++)
{
String
cd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").Tp.CdOrPrtry.Cd"
);
if
(
"CLAV"
.
equals
(
cd
)){
BalDto
closingAvailableBalance
=
new
BalDto
();
closingAvailableBalance
.
setCd
(
cd
);
String
cdtDbtInd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").CdtDbtInd"
);
closingAvailableBalance
.
setCdtDbtInd
(
cdtDbtInd
);
String
dateStr
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").Dt.Dt"
);
if
(
StringUtil
.
isNotEmpty
(
dateStr
))
{
XMLGregorianCalendar
dt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dateStr
);
Date
date
=
DateUtil
.
formatAndParseDate
(
dt
.
toGregorianCalendar
().
getTime
(),
defaultFormate
);
closingAvailableBalance
.
setDate
(
date
);
}
String
amt
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").Amt"
);
String
ccy
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").Amt@Ccy"
);
closingAvailableBalance
.
setCcy
(
ccy
);
closingAvailableBalance
.
setAmt
(
new
BigDecimal
(
amt
));
bankToCustomerStatement
.
setClosingAvailableBalance
(
closingAvailableBalance
);
}
else
if
(
"FWAV"
.
equals
(
cd
)){
bankToCustomerStatement
.
setCd
(
"FWAV"
);
BalDto
forwardAvailableBalance
=
new
BalDto
();
forwardAvailableBalance
.
setCd
(
cd
);
String
cdtDbtInd
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").CdtDbtInd"
);
forwardAvailableBalance
.
setCdtDbtInd
(
cdtDbtInd
);
String
dateStr
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").Dt.Dt"
);
if
(
StringUtil
.
isNotEmpty
(
dateStr
))
{
XMLGregorianCalendar
dt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dateStr
);
Date
date
=
DateUtil
.
formatAndParseDate
(
dt
.
toGregorianCalendar
().
getTime
(),
defaultFormate
);
forwardAvailableBalance
.
setDate
(
date
);
}
String
amt
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").Amt"
);
String
ccy
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.Bal("
+
i
+
").Amt@Ccy"
);
forwardAvailableBalance
.
setAmt
(
new
BigDecimal
(
amt
));
forwardAvailableBalance
.
setCcy
(
ccy
);
bankToCustomerStatement
.
addForwardAvailableBalance
(
forwardAvailableBalance
);
}
}
}
//<Stmt><AddtlStmtInf>
String
addtlStmtInf
=
getXmlNodeValue
(
bodyHdrParentElementName
,
document
,
"Stmt.AddtlStmtInf"
);
bankToCustomerStatement
.
addAddtlStmtInf
(
addtlStmtInf
);
}
catch
(
Exception
e
){
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
}
@Override
public
void
postProcess
()
throws
SwiftException
{
try
{
context
.
set
(
Mx2SwiftDtoContextIdentifier
.
MX_TO_SWIFTDTO_OBJ
,
bankToCustomerStatement
);
String
outputFilePath
=
(
String
)
context
.
get
(
Mx2SwiftDtoContextIdentifier
.
MX_TO_SWIFTDTO_OUTPUT_FILE_PATH
,
true
);
if
(
StringUtil
.
isNotEmpty
(
outputFilePath
))
{
bankToCustomerStatement
.
write
(
new
File
(
outputFilePath
));
}
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
}
}
swiftCore/src/main/java/com/brilliance/swift/swiftdto2mx/SwiftDto2MxCreatorManager.java
View file @
046bbaac
package
com
.
brilliance
.
swift
.
swiftdto2mx
;
import
com.brilliance.swift.exception.SwiftException
;
import
com.brilliance.swift.swiftdto2mx.camt053001.v08.SwiftDto2MxCamt053001Creator
;
import
com.brilliance.swift.swiftdto2mx.camt054001.v08.SwiftDto2MxCamt054001Creator
;
import
com.brilliance.swift.swiftdto2mx.pacs008001.v09.SwiftDto2MxPacs008001Creator
;
import
com.brilliance.swift.swiftdto2mx.pacs009001.v09.SwiftDto2MxPacs009001Creator
;
...
...
@@ -25,6 +26,8 @@ public class SwiftDto2MxCreatorManager {
return
new
SwiftDto2MxPacs009001Creator
();
}
else
if
(
"camt.054.001"
.
equals
(
messageType
)){
return
new
SwiftDto2MxCamt054001Creator
();
}
else
if
(
"camt.053.001"
.
equals
(
messageType
)){
return
new
SwiftDto2MxCamt053001Creator
();
}
else
{
throw
new
SwiftException
(
"Invalid message type"
);
}
...
...
swiftCore/src/main/java/com/brilliance/swift/swiftdto2mx/camt053001/v08/SwiftDto2MxCamt053001Creator.java
0 → 100644
View file @
046bbaac
package
com
.
brilliance
.
swift
.
swiftdto2mx
.
camt053001
.
v08
;
import
com.brilliance.swift.exception.SwiftException
;
import
com.brilliance.swift.swiftdto2mx.AbstractSwiftDto2MxCreator
;
import
com.brilliance.swift.swiftdto2mx.SwiftDto2MxContextIdentifier
;
import
com.brilliance.swift.util.DateUtil
;
import
com.brilliance.swift.util.StringUtil
;
import
com.brilliance.swift.vo.BankToCustomerDebitCreditNotification
;
import
com.brilliance.swift.vo.BankToCustomerStatement
;
import
com.brilliance.swift.vo.common.*
;
import
com.prowidesoftware.swift.model.mx.BusinessAppHdrV02
;
import
com.prowidesoftware.swift.model.mx.MxCamt05300108
;
import
com.prowidesoftware.swift.model.mx.MxCamt05400108
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
javax.xml.datatype.XMLGregorianCalendar
;
import
java.io.File
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author zh
* @create 2022-04-26 11:44
*/
public
class
SwiftDto2MxCamt053001Creator
extends
AbstractSwiftDto2MxCreator
{
@Override
public
void
create
()
throws
SwiftException
{
try
{
BankToCustomerStatement
bankToCustomerStatement
=
(
BankToCustomerStatement
)
context
.
get
(
SwiftDto2MxContextIdentifier
.
SWIFT_DTO_OBJ
,
true
);
if
(
bankToCustomerStatement
==
null
)
{
return
;
}
MxCamt05300108
mxCamt05300108
=
new
MxCamt05300108
();
//set AppHdr
BusinessAppHdrV02
businessAppHdrV02
=
new
BusinessAppHdrV02
();
//fr
Party44Choice
fr
=
new
Party44Choice
();
BranchAndFinancialInstitutionIdentification6
fiId
=
new
BranchAndFinancialInstitutionIdentification6
();
FinancialInstitutionIdentification18
finInstnId
=
new
FinancialInstitutionIdentification18
();
finInstnId
.
setBICFI
(
bankToCustomerStatement
.
getSenderBic
());
fiId
.
setFinInstnId
(
finInstnId
);
fr
.
setFIId
(
fiId
);
businessAppHdrV02
.
setFr
(
fr
);
//to
Party44Choice
to
=
new
Party44Choice
();
BranchAndFinancialInstitutionIdentification6
toFiId
=
new
BranchAndFinancialInstitutionIdentification6
();
FinancialInstitutionIdentification18
toFinInstnId
=
new
FinancialInstitutionIdentification18
();
toFinInstnId
.
setBICFI
(
bankToCustomerStatement
.
getReceiverBic
());
toFiId
.
setFinInstnId
(
toFinInstnId
);
to
.
setFIId
(
toFiId
);
businessAppHdrV02
.
setTo
(
to
);
//
XMLGregorianCalendar
creDt
=
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getCreateDate
());
businessAppHdrV02
.
setCreDt
(
creDt
);
if
(
MessagePriority
.
NORM
.
equals
(
bankToCustomerStatement
.
getMessagePriority
()))
{
businessAppHdrV02
.
setPrty
(
Priority2Code
.
NORM
.
value
());
}
else
if
(
MessagePriority
.
HIGH
.
equals
(
bankToCustomerStatement
.
getMessagePriority
()))
{
businessAppHdrV02
.
setPrty
(
Priority2Code
.
HIGH
.
value
());
}
businessAppHdrV02
.
setMsgDefIdr
(
"camt.053.001.08"
);
businessAppHdrV02
.
setBizMsgIdr
(
bankToCustomerStatement
.
getMessageId
());
mxCamt05300108
.
setAppHdr
(
businessAppHdrV02
);
//grpHdr
BankToCustomerStatementV08
bkToCstmrStmt
=
new
BankToCustomerStatementV08
();
mxCamt05300108
.
setBkToCstmrStmt
(
bkToCstmrStmt
);
GroupHeader81
grpHdr
=
new
GroupHeader81
();
grpHdr
.
setMsgId
(
bankToCustomerStatement
.
getMessageId
());
grpHdr
.
setCreDtTm
(
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getCreateDate
()));
grpHdr
.
setAddtlInf
(
""
);
bkToCstmrStmt
.
setGrpHdr
(
grpHdr
);
AccountStatement9
stmt
=
new
AccountStatement9
();
bkToCstmrStmt
.
addStmt
(
stmt
);
String
uetr
=
bankToCustomerStatement
.
getUetr
();
String
account
=
bankToCustomerStatement
.
getAccount
().
getAccount
();
//25
String
ibanAcct
=
bankToCustomerStatement
.
getAccount
().
getIbanAcct
();
//25
String
pgNb
=
bankToCustomerStatement
.
getPgNb
();
//28C
String
elctrncSeqNb
=
bankToCustomerStatement
.
getElctrncSeqNb
();
//28C
BalDto
openingBalance
=
bankToCustomerStatement
.
getOpenBalance
();
//60
List
<
statementBreakdown
>
statementLine
=
bankToCustomerStatement
.
getStatementLine
();
//61
BalDto
closingBalance
=
bankToCustomerStatement
.
getClosingBalance
();
//62a
BalDto
closingAvailableBalance
=
bankToCustomerStatement
.
getClosingAvailableBalance
();
//64
List
<
BalDto
>
forwardAvailableBalance
=
bankToCustomerStatement
.
getForwardAvailableBalance
();
//65
List
<
String
>
addtlStmtInf
=
bankToCustomerStatement
.
getAddtlStmtInf
();
//86
//<Stmt><Acct><Id><IBAN>
//<Stmt><Acct><Id><Othr><Id>
if
(
account
!=
null
||
ibanAcct
!=
null
){
CashAccount39
acct
=
new
CashAccount39
();
stmt
.
setAcct
(
acct
);
AccountIdentification4Choice
id
=
new
AccountIdentification4Choice
();
if
(
ibanAcct
!=
null
){
id
.
setIBAN
(
account
);
}
else
{
GenericAccountIdentification1
othr
=
new
GenericAccountIdentification1
();
othr
.
setId
(
account
);
id
.
setOthr
(
othr
);
}
acct
.
setId
(
id
);
}
//<GrpHdr><MsgPgntn><PgNb>
//<Stmt><ElctrncSeqNb>
if
(
pgNb
!=
null
&&
elctrncSeqNb
!=
null
){
Pagination1
msgPgntn
=
new
Pagination1
();
grpHdr
.
setMsgPgntn
(
msgPgntn
);
msgPgntn
.
setPgNb
(
pgNb
);
stmt
.
setElctrncSeqNb
(
new
BigDecimal
(
elctrncSeqNb
));
}
//<Stmt><Bal>[i]<Tp><CdOrPrtry><Cd>
//<Stmt><Bal>[i]<CdtDbtInd>
//<Stmt><Bal>[i]<Dt><Dt>
//<Stmt><Bal>[i]<Amt Ccy=“XXX”>
CashBalance8
bal0
=
new
CashBalance8
();
stmt
.
addBal
(
bal0
);
if
(
openingBalance
!=
null
){
CashBalance8
bal1
=
new
CashBalance8
();
stmt
.
addBal
(
bal1
);
BalanceType13
tp
=
new
BalanceType13
();
bal1
.
setTp
(
tp
);
BalanceType10Choice
cdOrPrtry
=
new
BalanceType10Choice
();
tp
.
setCdOrPrtry
(
cdOrPrtry
);
cdOrPrtry
.
setCd
(
bankToCustomerStatement
.
getOpenBalance
().
getCd
());
if
(
CreditDebitCode
.
CRDT
.
value
().
equals
(
bankToCustomerStatement
.
getOpenBalance
().
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
CRDT
);
}
else
if
(
CreditDebitCode
.
DBIT
.
value
().
equals
(
bankToCustomerStatement
.
getOpenBalance
().
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
DBIT
);
}
DateAndDateTime2Choice
dt1
=
new
DateAndDateTime2Choice
();
bal1
.
setDt
(
dt1
);
XMLGregorianCalendar
dt2
=
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getOpenBalance
().
getDate
());
dt1
.
setDt
(
dt2
);
ActiveOrHistoricCurrencyAndAmount
amt
=
new
ActiveOrHistoricCurrencyAndAmount
();
bal1
.
setAmt
(
amt
);
amt
.
setValue
(
bankToCustomerStatement
.
getOpenBalance
().
getAmt
());
amt
.
setCcy
(
bankToCustomerStatement
.
getOpenBalance
().
getCcy
());
}
//<Stmt><Ntry>[j]<ValDt><Dt>
//<Stmt><Ntry>[j]<BookgDt><Dt>
//<Stmt><Ntry>[j]<CdtDbtInd>
//<Stmt><Ntry>[j]<RvslInd>
//<Stmt><Ntry>[j]<Sts>
//<Stmt><Ntry>[j]<Amt Ccy=“XXX”>
//<Stmt><Ntry>[j]<BkTxCd><Prtry><Cd>
//<Stmt><Ntry>[j]<NtryDtls><TxDtls><Refs><EndToEndId>
//<Stmt><Ntry>[j]<AcctSvcrRef>
//<Stmt><Ntry>[j]<NtryDtls><TxDtls><AddtlTxInf>
//<Stmt><Ntry>[j]<AddtlNtryInf>
ReportEntry10
ntry0
=
new
ReportEntry10
();
stmt
.
addNtry
(
ntry0
);
if
(
statementLine
.
size
()>
0
){
for
(
int
i
=
0
;
i
<
statementLine
.
size
();
i
++)
{
ReportEntry10
ntry
=
new
ReportEntry10
();
stmt
.
addNtry
(
ntry
);
DateAndDateTime2Choice
valDt
=
new
DateAndDateTime2Choice
();
ntry
.
setValDt
(
valDt
);
XMLGregorianCalendar
dt1
=
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getValueDate
());
valDt
.
setDt
(
dt1
);
DateAndDateTime2Choice
bookgDt
=
new
DateAndDateTime2Choice
();
ntry
.
setBookgDt
(
bookgDt
);
XMLGregorianCalendar
dt2
=
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getBookDate
());
bookgDt
.
setDt
(
dt2
);
if
(
CreditDebitCode
.
CRDT
.
value
().
equals
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getCdtDbtInd
())){
ntry
.
setCdtDbtInd
(
CreditDebitCode
.
CRDT
);
}
else
if
(
CreditDebitCode
.
DBIT
.
value
().
equals
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getCdtDbtInd
())){
ntry
.
setCdtDbtInd
(
CreditDebitCode
.
DBIT
);
}
if
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getRvslInd
().
equals
(
"true"
)){
ntry
.
setRvslInd
(
true
);
}
ActiveOrHistoricCurrencyAndAmount
amt
=
new
ActiveOrHistoricCurrencyAndAmount
();
ntry
.
setAmt
(
amt
);
amt
.
setValue
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getAmt
());
amt
.
setCcy
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getCcy
());
String
transactionType
=
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getTransactionType
();
String
identificationCode
=
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getIdentificationCode
();
String
cd
=
transactionType
+
identificationCode
;
BankTransactionCodeStructure4
bkTxCd
=
new
BankTransactionCodeStructure4
();
ntry
.
setBkTxCd
(
bkTxCd
);
ProprietaryBankTransactionCodeStructure1
prtry
=
new
ProprietaryBankTransactionCodeStructure1
();
bkTxCd
.
setPrtry
(
prtry
);
prtry
.
setCd
(
cd
);
EntryDetails9
ntryDtls
=
new
EntryDetails9
();
ntry
.
addNtryDtls
(
ntryDtls
);
EntryTransaction10
txDtls
=
new
EntryTransaction10
();
ntryDtls
.
addTxDtls
(
txDtls
);
TransactionReferences6
refs
=
new
TransactionReferences6
();
refs
.
setUETR
(
uetr
);
txDtls
.
setRefs
(
refs
);
refs
.
setEndToEndId
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getEndToEndId
());
ntry
.
setAcctSvcrRef
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getAcctSvcrRef
());
txDtls
.
setAddtlTxInf
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getAddtlTxInf
());
ntry
.
setAddtlNtryInf
(
bankToCustomerStatement
.
getStatementLine
().
get
(
i
).
getAddtlNtryInf
());
}
}
//<Stmt><Bal>[i]<Tp><CdOrPrtry><Cd>
//<Stmt><Bal>[i]<CdtDbtInd>
//<Stmt><Bal>[i]<Dt><Dt>
//<Stmt><Bal>[i]<Amt Ccy=“XXX”>
if
(
closingBalance
!=
null
){
CashBalance8
bal1
=
new
CashBalance8
();
stmt
.
addBal
(
bal1
);
BalanceType13
tp
=
new
BalanceType13
();
bal1
.
setTp
(
tp
);
BalanceType10Choice
cdOrPrtry
=
new
BalanceType10Choice
();
tp
.
setCdOrPrtry
(
cdOrPrtry
);
cdOrPrtry
.
setCd
(
bankToCustomerStatement
.
getClosingBalance
().
getCd
());
if
(
CreditDebitCode
.
CRDT
.
value
().
equals
(
bankToCustomerStatement
.
getClosingBalance
().
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
CRDT
);
}
else
if
(
CreditDebitCode
.
DBIT
.
value
().
equals
(
bankToCustomerStatement
.
getClosingBalance
().
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
DBIT
);
}
DateAndDateTime2Choice
dt1
=
new
DateAndDateTime2Choice
();
bal1
.
setDt
(
dt1
);
XMLGregorianCalendar
dt2
=
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getClosingBalance
().
getDate
());
dt1
.
setDt
(
dt2
);
ActiveOrHistoricCurrencyAndAmount
amt
=
new
ActiveOrHistoricCurrencyAndAmount
();
bal1
.
setAmt
(
amt
);
amt
.
setValue
(
bankToCustomerStatement
.
getClosingBalance
().
getAmt
());
amt
.
setCcy
(
bankToCustomerStatement
.
getClosingBalance
().
getCcy
());
}
if
(
closingAvailableBalance
!=
null
){
CashBalance8
bal1
=
new
CashBalance8
();
stmt
.
addBal
(
bal1
);
BalanceType13
tp
=
new
BalanceType13
();
bal1
.
setTp
(
tp
);
BalanceType10Choice
cdOrPrtry
=
new
BalanceType10Choice
();
tp
.
setCdOrPrtry
(
cdOrPrtry
);
cdOrPrtry
.
setCd
(
bankToCustomerStatement
.
getClosingAvailableBalance
().
getCd
());
if
(
CreditDebitCode
.
CRDT
.
value
().
equals
(
bankToCustomerStatement
.
getClosingAvailableBalance
().
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
CRDT
);
}
else
if
(
CreditDebitCode
.
DBIT
.
value
().
equals
(
bankToCustomerStatement
.
getClosingAvailableBalance
().
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
DBIT
);
}
DateAndDateTime2Choice
dt1
=
new
DateAndDateTime2Choice
();
bal1
.
setDt
(
dt1
);
XMLGregorianCalendar
dt2
=
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getClosingAvailableBalance
().
getDate
());
dt1
.
setDt
(
dt2
);
ActiveOrHistoricCurrencyAndAmount
amt
=
new
ActiveOrHistoricCurrencyAndAmount
();
bal1
.
setAmt
(
amt
);
amt
.
setValue
(
bankToCustomerStatement
.
getClosingAvailableBalance
().
getAmt
());
amt
.
setCcy
(
bankToCustomerStatement
.
getClosingAvailableBalance
().
getCcy
());
}
if
(
forwardAvailableBalance
.
size
()>
0
){
CashBalance8
bal1
=
new
CashBalance8
();
stmt
.
addBal
(
bal1
);
BalanceType13
tp
=
new
BalanceType13
();
bal1
.
setTp
(
tp
);
BalanceType10Choice
cdOrPrtry
=
new
BalanceType10Choice
();
tp
.
setCdOrPrtry
(
cdOrPrtry
);
cdOrPrtry
.
setCd
(
bankToCustomerStatement
.
getForwardAvailableBalance
().
get
(
0
).
getCd
());
if
(
CreditDebitCode
.
CRDT
.
value
().
equals
(
bankToCustomerStatement
.
getForwardAvailableBalance
().
get
(
0
).
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
CRDT
);
}
else
if
(
CreditDebitCode
.
DBIT
.
value
().
equals
(
bankToCustomerStatement
.
getForwardAvailableBalance
().
get
(
0
).
getCdtDbtInd
())){
bal1
.
setCdtDbtInd
(
CreditDebitCode
.
DBIT
);
}
DateAndDateTime2Choice
dt1
=
new
DateAndDateTime2Choice
();
bal1
.
setDt
(
dt1
);
XMLGregorianCalendar
dt2
=
DateUtil
.
parseXMLGregorianCalendar
(
bankToCustomerStatement
.
getForwardAvailableBalance
().
get
(
0
).
getDate
());
dt1
.
setDt
(
dt2
);
ActiveOrHistoricCurrencyAndAmount
amt
=
new
ActiveOrHistoricCurrencyAndAmount
();
bal1
.
setAmt
(
amt
);
amt
.
setValue
(
bankToCustomerStatement
.
getForwardAvailableBalance
().
get
(
0
).
getAmt
());
amt
.
setCcy
(
bankToCustomerStatement
.
getForwardAvailableBalance
().
get
(
0
).
getCcy
());
}
if
(
addtlStmtInf
.
size
()>
0
){
stmt
.
setAddtlStmtInf
(
bankToCustomerStatement
.
getAddtlStmtInf
().
get
(
0
));
}
String
xmlStr
=
mxCamt05300108
.
message
();
context
.
set
(
SwiftDto2MxContextIdentifier
.
MX_XML
,
xmlStr
);
String
outputFilePath
=
(
String
)
context
.
get
(
SwiftDto2MxContextIdentifier
.
MX_OUTPUT_FILE_PATH
,
true
);
if
(
StringUtil
.
isNotEmpty
(
outputFilePath
))
{
mxCamt05300108
.
write
(
new
File
(
outputFilePath
));
}
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
}
}
swiftCore/src/main/java/com/brilliance/swift/swiftdto2mx/camt054001/v08/SwiftDto2MxCamt054001Creator.java
View file @
046bbaac
...
...
@@ -101,11 +101,10 @@ public class SwiftDto2MxCamt054001Creator extends AbstractSwiftDto2MxCreator {
rltdPties
.
setDbtr
(
dbtr
);
PartyIdentification135
pty
=
new
PartyIdentification135
();
dbtr
.
setPty
(
pty
);
if
(
endToEndId
!=
null
){
TransactionReferences6
refs
=
new
TransactionReferences6
();
refs
.
setEndToEndId
(
endToEndId
);
txDtls
.
setRefs
(
refs
);
}
TransactionReferences6
refs
=
new
TransactionReferences6
();
refs
.
setEndToEndId
(
endToEndId
);
refs
.
setUETR
(
bankToCustomerDebitCreditNotification
.
getUetr
());
txDtls
.
setRefs
(
refs
);
//IBAN Othr/Id
if
(
account
!=
null
||
ibanAcct
!=
null
){
CashAccount39
acct
=
new
CashAccount39
();
...
...
swiftCore/src/main/java/com/brilliance/swift/vo/BankToCustomerStatement.java
View file @
046bbaac
...
...
@@ -88,8 +88,8 @@ public class BankToCustomerStatement extends SwiftDto{
return
forwardAvailableBalance
;
}
public
BankToCustomerStatement
add
BalDtoSixFive
(
BalDto
balDtoSixFiv
e
)
{
getForwardAvailableBalance
().
add
(
balDtoSixFiv
e
);
public
BankToCustomerStatement
add
ForwardAvailableBalance
(
BalDto
forwardAvailableBalanc
e
)
{
getForwardAvailableBalance
().
add
(
forwardAvailableBalanc
e
);
return
this
;
}
...
...
@@ -105,11 +105,10 @@ public class BankToCustomerStatement extends SwiftDto{
return
this
;
}
public
BankToCustomerStatement
add
NtryDto
(
statementBreakdown
statementBreakdown
){
public
BankToCustomerStatement
add
StatementLine
(
statementBreakdown
statementBreakdown
){
getStatementLine
().
add
(
statementBreakdown
);
return
this
;
}
public
List
<
statementBreakdown
>
getStatementLine
()
{
if
(
statementLine
==
null
){
statementLine
=
new
ArrayList
<>();
...
...
swiftCore/src/main/java/com/brilliance/swift/vo/common/statementBreakdown.java
View file @
046bbaac
...
...
@@ -15,7 +15,7 @@ public class statementBreakdown {
private
String
cdtDbtInd
;
private
String
rvslInd
=
"false"
;
private
String
rvslInd
;
private
String
ccy
;
...
...
swiftCore/src/main/resources/swiftJson/BankToCustomerCreditNotification.json
View file @
046bbaac
...
...
@@ -17,18 +17,6 @@
"TEST3"
]
},
"debitAgtParty"
:
{
"partyName"
:
"Creditor 2"
,
"addressList"
:
[
"TEST111"
,
"TEST222"
,
"TEST333"
],
"clrSysMmb"
:
{
"code"
:
"ATBLZ"
,
"id"
:
"FR7630588000010050000143176"
}
},
"intrmyAgtParty"
:
{
"partyName"
:
"81939316"
,
"addressList"
:
[
...
...
@@ -47,5 +35,6 @@
"receiverBic"
:
"DEUTNL2A"
,
"createDate"
:
"2022-04-29 16:06:51,839"
,
"messagePriority"
:
"NORM"
,
"messageId"
:
"FRDA000003421606"
"messageId"
:
"FRDA000003421606"
,
"uetr"
:
"8a562c67-ca16-48ba-b074-65581be6f001"
}
swiftCore/src/main/resources/swiftJson/BankToCustomerDebitNotification.json
View file @
046bbaac
...
...
@@ -10,12 +10,16 @@
"amt"
:
126
},
"debitAgtParty"
:
{
"partyName"
:
"Creditor
1
"
,
"partyName"
:
"Creditor
2
"
,
"addressList"
:
[
"TEST1"
,
"TEST2"
,
"TEST3"
]
"TEST111"
,
"TEST222"
,
"TEST333"
],
"clrSysMmb"
:
{
"code"
:
"ATBLZ"
,
"id"
:
"FR7630588000010050000143176"
}
},
"addtlTxInf"
:
"ENRICHED|TRUE SETT_METHOD|SEPA IAT_IND|FALSE DOMESTIC_IND|FALSE PRIORITY_IND|FALSEENRICHED|TRUE SETT_METHOD|SEPA IAT_ENRICHED|TRUE SETT_METHOD|SEPA IAT_ENRICHED|TRUE SETT_METHOD|SEPA IAT_ENRICHED|TRUE SETT_METH"
,
"messageType"
:
"camt.054.001"
,
...
...
@@ -23,5 +27,6 @@
"receiverBic"
:
"DEUTNL2A"
,
"createDate"
:
"2022-04-29 16:06:27,410"
,
"messagePriority"
:
"NORM"
,
"messageId"
:
"FRDA000003421606"
"messageId"
:
"FRDA000003421606"
,
"uetr"
:
"8a562c67-ca16-48ba-b074-65581be6f001"
}
swiftCore/src/main/resources/swiftJson/BankToCustomerStatement.json
View file @
046bbaac
...
...
@@ -72,5 +72,6 @@
"receiverBic"
:
"BJWHS12X"
,
"createDate"
:
"2022-04-28 10:23:46,048"
,
"messagePriority"
:
"NORM"
,
"messageId"
:
"00010013800002001234"
"messageId"
:
"00010013800002001234"
,
"uetr"
:
"8a562c67-ca16-48ba-b074-65581be6f001"
}
swiftCore/src/main/resources/swiftJson/BankToStatement.json
View file @
046bbaac
...
...
@@ -52,5 +52,6 @@
"receiverBic"
:
"BJWHS12X"
,
"createDate"
:
"2022-04-28 10:24:00,960"
,
"messagePriority"
:
"NORM"
,
"messageId"
:
"00010013800002001234"
}
\ No newline at end of file
"messageId"
:
"00010013800002001234"
,
"uetr"
:
"8a562c67-ca16-48ba-b074-65581be6f001"
}
swiftCore/src/main/resources/swiftTxt/MT900.txt
View file @
046bbaac
{1:F01DEUTNL2AAXXX
3540051324}{2:O9001606220429DEUTDEFFAXXX76313442662205041740N}{3:{108:2205041740590623
}}{4:
{1:F01DEUTNL2AAXXX
0815563368}{2:O9001606220429DEUTDEFFAXXX47850332752205051732N}{3:{108:2205051732400583}{121:8a562c67-ca16-48ba-b074-65581be6f001
}}{4:
:20:FRDA000003421606
:21:E2E1201
:25:S15612345678012345
:32A:220330EUR126,
:52D:Creditor 1
TEST1
TEST2
TEST3
:52D://ATFR7630588000010050000143176
Creditor 2
TEST111
TEST222
TEST333
:72:ENRICHED|TRUE SETT_METHOD|SEPA IAT_
IND|FALSE DOMESTIC_IND|FALSE PRIORI
TY_IND|FALSEENRICHED|TRUE SETT_METH
...
...
swiftCore/src/main/resources/swiftTxt/MT910.txt
View file @
046bbaac
{1:F01DEUTNL2AAXXX
0508466280}{2:O9101606220429DEUTDEFFAXXX58867078842205041741N}{3:{108:2205041741090259
}}{4:
{1:F01DEUTNL2AAXXX
1363068546}{2:O9101606220429DEUTDEFFAXXX41465024152205051732N}{3:{108:2205051732480335}{121:8a562c67-ca16-48ba-b074-65581be6f001
}}{4:
:20:FRDA000003421606
:21:E2E1201
:25:S15612345678012345
...
...
@@ -7,11 +7,6 @@
TEST1
TEST2
TEST3
:52D://ATFR7630588000010050000143176
Creditor 2
TEST111
TEST222
TEST333
:56D://ATFR7630588000010050000143176
81939316
ADDRESS 1
...
...
swiftCore/src/main/resources/swiftTxt/MT940.txt
View file @
046bbaac
{1:F01BJWHS12XAXXX
4217215823}{2:O9401010200908SHWHQWERA12385857271451725220418N
}{4:
{1:F01BJWHS12XAXXX
7583545445}{2:O9401023220428SHWHQWERA12348676666142205051522N}{3:{108:2205051522140540}{121:8a562c67-ca16-48ba-b074-65581be6f001}
}{4:
:20:00010013800002001234
:25:S15612345678012345
:28
C
:178/200
:60M:D220330USD120274
,
34
:61:220330220330DUSD393
,
17FCHKS100000189-735//1309170100000390154395
:28:178/200
:60M:D220330USD120274
.
34
:61:220330220330DUSD393
.
17FCHKS100000189-735//1309170100000390154395
PLACI LOVECNAMENSKIH WUHAN
:86:CHINESE BEIJING
:61:220330220330DUSD445
,
FCHKS100000189-735//1309170100000390154395
:61:220330220330DUSD445FCHKS100000189-735//1309170100000390154395
PLACI LOVECNAMENSKIH STORITEV
:62M:D220330USD123456
,
29
:64:D220330USD119609
,
29
:65:D220330USD120274
,
34
:62M:D220330USD123456
.
29
:64:D220330USD119609
.
29
:65:D220330USD120274
.
34
:86:HELLO WORLD
-}
-}
\ No newline at end of file
swiftCore/src/main/resources/swiftTxt/MT950.txt
View file @
046bbaac
{1:F01BJWHS12XAXXX
6654136341}{2:O9501010200908SHWHQWERA12378761733011729220418N
}{4:
{1:F01BJWHS12XAXXX
3202321018}{2:O9401024220428SHWHQWERA12308503578012205051522N}{3:{108:2205051522260719}{121:8a562c67-ca16-48ba-b074-65581be6f001}
}{4:
:20:00010013800002001234
:25:S15612345678012345
:28
C
:178/200
:60M:D220330USD120274
,
34
:61:220330220330DUSD393
,
17FCHKS100000189-735//1309170100000390154395
:28:178/200
:60M:D220330USD120274
.
34
:61:220330220330DUSD393
.
17FCHKS100000189-735//1309170100000390154395
PLACI LOVECNAMENSKIH WUHAN
:61:220330220330DUSD445
,
FCHKS100000189-735//1309170100000390154395
:61:220330220330DUSD445FCHKS100000189-735//1309170100000390154395
PLACI LOVECNAMENSKIH STORITEV
:62M:D220330USD123456
,
29
-}
:62M:D220330USD123456
.
29
-}
\ No newline at end of file
swiftCore/src/main/resources/swiftXml/MxCamt05300108_940.xml
0 → 100644
View file @
046bbaac
<?xml version="1.0" encoding="UTF-8" ?>
<RequestPayload>
<AppHdr
xmlns=
"urn:iso:std:iso:20022:tech:xsd:head.001.001.02"
>
<Fr>
<FIId>
<FinInstnId>
<BICFI>
SHWHQWER123
</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>
BJWHS12X
</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>
00010013800002001234
</BizMsgIdr>
<MsgDefIdr>
camt.053.001.08
</MsgDefIdr>
<CreDt>
2022-04-28T10:23:46.048+08:00
</CreDt>
<Prty>
NORM
</Prty>
</AppHdr>
<Document
xmlns=
"urn:iso:std:iso:20022:tech:xsd:camt.053.001.08"
>
<BkToCstmrStmt>
<GrpHdr>
<MsgId>
00010013800002001234
</MsgId>
<CreDtTm>
2022-04-28T10:23:46.048+08:00
</CreDtTm>
<MsgPgntn>
<PgNb>
178
</PgNb>
<LastPgInd>
false
</LastPgInd>
</MsgPgntn>
<AddtlInf></AddtlInf>
</GrpHdr>
<Stmt>
<ElctrncSeqNb>
200
</ElctrncSeqNb>
<Acct>
<Id>
<Othr>
<Id>
S15612345678012345
</Id>
</Othr>
</Id>
</Acct>
<Bal></Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>
ITBD
</Cd>
</CdOrPrtry>
</Tp>
<Amt
Ccy=
"USD"
>
120274.34
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<Dt>
<Dt>
2022-03-30+08:00
</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>
ITBD
</Cd>
</CdOrPrtry>
</Tp>
<Amt
Ccy=
"USD"
>
123456.29
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<Dt>
<Dt>
2022-03-30+08:00
</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>
CLAV
</Cd>
</CdOrPrtry>
</Tp>
<Amt
Ccy=
"USD"
>
119609.29
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<Dt>
<Dt>
2022-03-30+08:00
</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>
FWAV
</Cd>
</CdOrPrtry>
</Tp>
<Amt
Ccy=
"USD"
>
120274.34
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<Dt>
<Dt>
2022-03-30+08:00
</Dt>
</Dt>
</Bal>
<Ntry></Ntry>
<Ntry>
<Amt
Ccy=
"USD"
>
393.17
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<BookgDt>
<Dt>
2022-03-30+08:00
</Dt>
</BookgDt>
<ValDt>
<Dt>
2022-03-30+08:00
</Dt>
</ValDt>
<AcctSvcrRef>
1309170100000390154395
</AcctSvcrRef>
<BkTxCd>
<Prtry>
<Cd>
FCHK
</Cd>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>
S100000189-735
</EndToEndId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</Refs>
<AddtlTxInf>
PLACI LOVECNAMENSKIH WUHAN
</AddtlTxInf>
</TxDtls>
</NtryDtls>
<AddtlNtryInf>
CHINESE BEIJING
</AddtlNtryInf>
</Ntry>
<Ntry>
<Amt
Ccy=
"USD"
>
445
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<BookgDt>
<Dt>
2022-03-30+08:00
</Dt>
</BookgDt>
<ValDt>
<Dt>
2022-03-30+08:00
</Dt>
</ValDt>
<AcctSvcrRef>
1309170100000390154395
</AcctSvcrRef>
<BkTxCd>
<Prtry>
<Cd>
FCHK
</Cd>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>
S100000189-735
</EndToEndId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</Refs>
<AddtlTxInf>
PLACI LOVECNAMENSKIH STORITEV
</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
<AddtlStmtInf>
HELLO WORLD
</AddtlStmtInf>
</Stmt>
</BkToCstmrStmt>
</Document>
</RequestPayload>
\ No newline at end of file
swiftCore/src/main/resources/swiftXml/MxCamt05300108_950.xml
0 → 100644
View file @
046bbaac
<?xml version="1.0" encoding="UTF-8" ?>
<RequestPayload>
<AppHdr
xmlns=
"urn:iso:std:iso:20022:tech:xsd:head.001.001.02"
>
<Fr>
<FIId>
<FinInstnId>
<BICFI>
SHWHQWER123
</BICFI>
</FinInstnId>
</FIId>
</Fr>
<To>
<FIId>
<FinInstnId>
<BICFI>
BJWHS12X
</BICFI>
</FinInstnId>
</FIId>
</To>
<BizMsgIdr>
00010013800002001234
</BizMsgIdr>
<MsgDefIdr>
camt.053.001.08
</MsgDefIdr>
<CreDt>
2022-04-28T10:24:00.960+08:00
</CreDt>
<Prty>
NORM
</Prty>
</AppHdr>
<Document
xmlns=
"urn:iso:std:iso:20022:tech:xsd:camt.053.001.08"
>
<BkToCstmrStmt>
<GrpHdr>
<MsgId>
00010013800002001234
</MsgId>
<CreDtTm>
2022-04-28T10:24:00.960+08:00
</CreDtTm>
<MsgPgntn>
<PgNb>
178
</PgNb>
<LastPgInd>
false
</LastPgInd>
</MsgPgntn>
<AddtlInf></AddtlInf>
</GrpHdr>
<Stmt>
<ElctrncSeqNb>
200
</ElctrncSeqNb>
<Acct>
<Id>
<Othr>
<Id>
S15612345678012345
</Id>
</Othr>
</Id>
</Acct>
<Bal></Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>
ITBD
</Cd>
</CdOrPrtry>
</Tp>
<Amt
Ccy=
"USD"
>
120274.34
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<Dt>
<Dt>
2022-03-30+08:00
</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>
ITBD
</Cd>
</CdOrPrtry>
</Tp>
<Amt
Ccy=
"USD"
>
123456.29
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<Dt>
<Dt>
2022-03-30+08:00
</Dt>
</Dt>
</Bal>
<Ntry></Ntry>
<Ntry>
<Amt
Ccy=
"USD"
>
393.17
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<BookgDt>
<Dt>
2022-03-30+08:00
</Dt>
</BookgDt>
<ValDt>
<Dt>
2022-03-30+08:00
</Dt>
</ValDt>
<AcctSvcrRef>
1309170100000390154395
</AcctSvcrRef>
<BkTxCd>
<Prtry>
<Cd>
FCHK
</Cd>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>
S100000189-735
</EndToEndId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</Refs>
<AddtlTxInf>
PLACI LOVECNAMENSKIH WUHAN
</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
<Ntry>
<Amt
Ccy=
"USD"
>
445
</Amt>
<CdtDbtInd>
DBIT
</CdtDbtInd>
<BookgDt>
<Dt>
2022-03-30+08:00
</Dt>
</BookgDt>
<ValDt>
<Dt>
2022-03-30+08:00
</Dt>
</ValDt>
<AcctSvcrRef>
1309170100000390154395
</AcctSvcrRef>
<BkTxCd>
<Prtry>
<Cd>
FCHK
</Cd>
</Prtry>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>
S100000189-735
</EndToEndId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</Refs>
<AddtlTxInf>
PLACI LOVECNAMENSKIH STORITEV
</AddtlTxInf>
</TxDtls>
</NtryDtls>
</Ntry>
</Stmt>
</BkToCstmrStmt>
</Document>
</RequestPayload>
\ No newline at end of file
swiftCore/src/main/resources/swiftXml/MxCamt05400108_CREDIT.xml
View file @
046bbaac
...
...
@@ -45,6 +45,7 @@
<TxDtls>
<Refs>
<EndToEndId>
E2E1201
</EndToEndId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</Refs>
<RltdPties>
<Dbtr>
...
...
@@ -78,26 +79,6 @@
</RltdAgts>
<AddtlTxInf>
ENRICHED|TRUE SETT_METHOD|SEPA IAT_IND|FALSE DOMESTIC_IND|FALSE PRIORITY_IND|FALSE
</AddtlTxInf>
</TxDtls>
<TxDtls>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<ClrSysMmbId>
<ClrSysId>
<Cd>
ATBLZ
</Cd>
</ClrSysId>
<MmbId>
FR7630588000010050000143176
</MmbId>
</ClrSysMmbId>
<Nm>
Creditor 2
</Nm>
<PstlAdr>
<AdrLine>
TEST111
</AdrLine>
<AdrLine>
TEST222
</AdrLine>
<AdrLine>
TEST333
</AdrLine>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
</TxDtls>
</NtryDtls>
</Ntry>
</Ntfctn>
...
...
swiftCore/src/main/resources/swiftXml/MxCamt05400108_DEBIT.xml
View file @
046bbaac
...
...
@@ -45,6 +45,7 @@
<TxDtls>
<Refs>
<EndToEndId>
E2E1201
</EndToEndId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</Refs>
<RltdPties>
<Dbtr>
...
...
@@ -57,11 +58,17 @@
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<Nm>
Creditor 1
</Nm>
<ClrSysMmbId>
<ClrSysId>
<Cd>
ATBLZ
</Cd>
</ClrSysId>
<MmbId>
FR7630588000010050000143176
</MmbId>
</ClrSysMmbId>
<Nm>
Creditor 2
</Nm>
<PstlAdr>
<AdrLine>
TEST1
</AdrLine>
<AdrLine>
TEST2
</AdrLine>
<AdrLine>
TEST3
</AdrLine>
<AdrLine>
TEST1
11
</AdrLine>
<AdrLine>
TEST2
22
</AdrLine>
<AdrLine>
TEST3
33
</AdrLine>
</PstlAdr>
</FinInstnId>
</DbtrAgt>
...
...
swiftCore/src/test/java/com/brilliance/mt2swiftdto/camt053001/Test940Camt053001.java
View file @
046bbaac
...
...
@@ -9,7 +9,7 @@ public class Test940Camt053001 {
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftTxt\\MT940.txt"
);
SwiftDto
swiftDto
=
new
SwiftTransfer
().
mt2SwiftDto
(
file
,
"D:/
test1
/BankToCustomerStatement.json"
,
null
);
SwiftDto
swiftDto
=
new
SwiftTransfer
().
mt2SwiftDto
(
file
,
"D:/
MtToSwift
/BankToCustomerStatement.json"
,
null
);
System
.
out
.
println
(
swiftDto
.
toString
());
}
}
swiftCore/src/test/java/com/brilliance/mt2swiftdto/camt053001/Test950Camt053001.java
View file @
046bbaac
...
...
@@ -9,7 +9,7 @@ public class Test950Camt053001 {
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftTxt\\MT950.txt"
);
SwiftDto
swiftDto
=
new
SwiftTransfer
().
mt2SwiftDto
(
file
,
"D:/
test1
/BankToStatement.json"
,
null
);
SwiftDto
swiftDto
=
new
SwiftTransfer
().
mt2SwiftDto
(
file
,
"D:/
MtToSwift
/BankToStatement.json"
,
null
);
System
.
out
.
println
(
swiftDto
.
toString
());
}
}
swiftCore/src/test/java/com/brilliance/mx2swiftdto/bankcusta/Test940.java
0 → 100644
View file @
046bbaac
package
com
.
brilliance
.
mx2swiftdto
.
bankcusta
;
import
com.brilliance.swift.SwiftTransfer
;
import
com.brilliance.swift.vo.SwiftDto
;
import
java.io.File
;
public
class
Test940
{
public
static
void
main
(
String
[]
args
)
{
SwiftDto
swiftDto
=
SwiftTransfer
.
mx2SwiftDto
(
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftXml\\MxCamt05300108_940.xml"
),
"D:/MxToSwift/BankToCustomerStatement.json"
,
null
);
System
.
out
.
println
(
swiftDto
);
}
}
swiftCore/src/test/java/com/brilliance/mx2swiftdto/bankcusta/Test950.java
0 → 100644
View file @
046bbaac
package
com
.
brilliance
.
mx2swiftdto
.
bankcusta
;
import
com.brilliance.swift.SwiftTransfer
;
import
com.brilliance.swift.vo.SwiftDto
;
import
java.io.File
;
public
class
Test950
{
public
static
void
main
(
String
[]
args
)
{
SwiftDto
swiftDto
=
SwiftTransfer
.
mx2SwiftDto
(
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftXml\\MxCamt05300108_950.xml"
),
"D:/MxToSwift/BankToStatement.json"
,
null
);
System
.
out
.
println
(
swiftDto
);
}
}
swiftCore/src/test/java/com/brilliance/swiftdto2mt/mt900/Test.java
View file @
046bbaac
package
com
.
brilliance
.
swiftdto2mt
.
mt900
;
import
com.brilliance.swift.SwiftTransfer
;
import
com.brilliance.swift.swiftdto2mt.SwiftDto2MtCreatorManager
;
import
java.io.File
;
...
...
@@ -8,7 +9,7 @@ public class Test {
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftJson\\BankToCustomerDebitNotification.json"
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
test2
/MT900.txt"
,
null
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
SwiftToMt
/MT900.txt"
,
null
);
System
.
out
.
println
(
mtStr
);
}
}
swiftCore/src/test/java/com/brilliance/swiftdto2mt/mt910/Test.java
View file @
046bbaac
package
com
.
brilliance
.
swiftdto2mt
.
mt910
;
import
com.brilliance.swift.SwiftTransfer
;
import
com.brilliance.swift.swiftdto2mt.SwiftDto2MtCreatorManager
;
import
java.io.File
;
...
...
@@ -8,7 +9,7 @@ public class Test {
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftJson\\BankToCustomerCreditNotification.json"
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
test2
/MT910.txt"
,
null
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
SwiftToMt
/MT910.txt"
,
null
);
System
.
out
.
println
(
mtStr
);
}
}
swiftCore/src/test/java/com/brilliance/swiftdto2mt/mt940/Test.java
View file @
046bbaac
...
...
@@ -8,7 +8,7 @@ public class Test {
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftJson\\BankToCustomerStatement.json"
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
test2
/MT940.txt"
,
null
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
SwiftToMt
/MT940.txt"
,
null
);
System
.
out
.
println
(
mtStr
);
}
}
swiftCore/src/test/java/com/brilliance/swiftdto2mt/mt950/Test.java
View file @
046bbaac
...
...
@@ -8,7 +8,7 @@ public class Test {
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftJson\\BankToStatement.json"
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
test2
/MT950.txt"
,
null
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mt
(
file
,
"D:/
SwiftToMt
/MT950.txt"
,
null
);
System
.
out
.
println
(
mtStr
);
}
}
swiftCore/src/test/java/com/brilliance/swiftdto2mx/camt053001/Text940camt053001.java
0 → 100644
View file @
046bbaac
package
com
.
brilliance
.
swiftdto2mx
.
camt053001
;
import
com.brilliance.swift.SwiftTransfer
;
import
java.io.File
;
/**
* @author zh
* @create 2022-04-29 10:12
*/
public
class
Text940camt053001
{
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftJson\\BankToCustomerStatement.json"
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mx
(
file
,
"D:/SwiftToMx/MxCamt05300108_940.xml"
);
System
.
out
.
println
(
mtStr
);
}
}
swiftCore/src/test/java/com/brilliance/swiftdto2mx/camt053001/Text950camt053001.java
0 → 100644
View file @
046bbaac
package
com
.
brilliance
.
swiftdto2mx
.
camt053001
;
import
com.brilliance.swift.SwiftTransfer
;
import
java.io.File
;
/**
* @author zh
* @create 2022-04-29 10:12
*/
public
class
Text950camt053001
{
public
static
void
main
(
String
[]
args
)
{
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)+
"\\swiftCore\\src\\main\\resources\\swiftJson\\BankToStatement.json"
);
String
mtStr
=
SwiftTransfer
.
swiftDto2Mx
(
file
,
"D:/SwiftToMx/MxCamt05300108_950.xml"
);
System
.
out
.
println
(
mtStr
);
}
}
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