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
0e6abdbd
Commit
0e6abdbd
authored
Apr 15, 2022
by
zhanghou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改了部分910和900的类,完成了部分940,950报文实现类的编写
parent
7f1ddaab
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
183 additions
and
305 deletions
+183
-305
AbstractMx2MtFieldsGenerate.java
...oftware/brilliance/mx2mt/AbstractMx2MtFieldsGenerate.java
+0
-28
Mx2Mt900910Creator.java
...oftware/brilliance/mx2mt/mt900910/Mx2Mt900910Creator.java
+7
-5
Field20Generate.java
...tware/brilliance/mx2mt/mt900910/impl/Field20Generate.java
+1
-4
Field21Generate.java
...tware/brilliance/mx2mt/mt900910/impl/Field21Generate.java
+1
-5
Field25aGenerate.java
...ware/brilliance/mx2mt/mt900910/impl/Field25aGenerate.java
+7
-11
Field32AGenerate.java
...ware/brilliance/mx2mt/mt900910/impl/Field32AGenerate.java
+1
-4
Field52aGenerate.java
...ware/brilliance/mx2mt/mt900910/impl/Field52aGenerate.java
+4
-2
Field56aGenerate.java
...ware/brilliance/mx2mt/mt900910/impl/Field56aGenerate.java
+4
-2
Field72Generate.java
...tware/brilliance/mx2mt/mt900910/impl/Field72Generate.java
+4
-8
Mx2Mt940950Creator.java
...oftware/brilliance/mx2mt/mt940950/Mx2Mt940950Creator.java
+23
-37
Field20Generate.java
...tware/brilliance/mx2mt/mt940950/impl/Field20Generate.java
+8
-11
Field25aGenerate.java
...ware/brilliance/mx2mt/mt940950/impl/Field25aGenerate.java
+8
-26
Field28CGenerate.java
...ware/brilliance/mx2mt/mt940950/impl/Field28CGenerate.java
+11
-25
Field60Generate.java
...tware/brilliance/mx2mt/mt940950/impl/Field60Generate.java
+39
-49
Field61ListGenerate.java
...e/brilliance/mx2mt/mt940950/impl/Field61ListGenerate.java
+64
-87
Mx2Mt940.java
src/test/java/com/brilliance/mt940/Mx2Mt940.java
+1
-1
No files found.
src/main/java/com/prowidesoftware/brilliance/mx2mt/AbstractMx2MtFieldsGenerate.java
View file @
0e6abdbd
...
...
@@ -34,34 +34,6 @@ public abstract class AbstractMx2MtFieldsGenerate implements Mx2MtFieldsGenerate
return
XmlUtil
.
getChildrenCount
(
document
,
path
,
null
);
}
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
;
}
protected
String
getBicCode
(
String
type
,
Document
document
,
String
path
)
{
//AnyBIC BICFI BICOrBEI BIC
String
bicCode
=
getXmlNodeValue
(
type
,
document
,
path
+
".AnyBIC"
);
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/Mx2Mt900910Creator.java
View file @
0e6abdbd
package
com
.
prowidesoftware
.
brilliance
.
mx2mt
.
mt900910
;
import
com.prowidesoftware.brilliance.constants.Mx2MtConstants
;
import
com.prowidesoftware.brilliance.exception.SwiftException
;
import
com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator
;
import
com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.mx2mt.mt900910.impl.*
;
import
com.prowidesoftware.brilliance.exception.SwiftException
;
import
com.prowidesoftware.brilliance.util.*
;
import
com.prowidesoftware.swift.model.mx.MxCamt05400102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.brilliance.util.XmlUtil
;
import
com.prowidesoftware.swift.model.mx.dic.CreditDebitCode
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.*
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
public
class
Mx2Mt900910Creator
extends
AbstractMx2MtCreator
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/impl/Field20Generate.java
View file @
0e6abdbd
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.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05400102
;
import
com.prowidesoftware.swift.model.mx.dic.BankToCustomerDebitCreditNotificationV02
;
import
com.prowidesoftware.swift.model.mx.dic.GroupHeader42
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/impl/Field21Generate.java
View file @
0e6abdbd
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.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05400102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* <Ntfctn><Ntry><NtryDtls><TxDtls><Refs><EndToEndId>
*/
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/impl/Field25aGenerate.java
View file @
0e6abdbd
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.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05400102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* <Ntfctn><Acct><Id><IBAN>
* <Ntfctn><Acct><Id><<Othr><Id>
...
...
@@ -25,14 +21,14 @@ public class Field25aGenerate extends AbstractMx2MtFieldsGenerate {
try
{
String
iban
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
BAN
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Acct.Id.IBAN"
);
if
(
StringUtil
.
isNotEmpty
(
BAN
))
{
iban
=
BAN
;
String
ban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Acct.Id.IBAN"
);
if
(
StringUtil
.
isNotEmpty
(
ban
))
{
iban
=
ban
;
map
.
put
(
"field25a"
,
iban
);
}
else
{
String
I
d
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Acct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
I
d
))
{
iban
=
I
d
;
String
i
d
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Acct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
i
d
))
{
iban
=
i
d
;
map
.
put
(
"field25a"
,
iban
);
}
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/impl/Field32AGenerate.java
View file @
0e6abdbd
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.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.DateUtil
;
import
com.prowidesoftware.brilliance.util.NumberUtil
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05400102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -15,7 +13,6 @@ import org.slf4j.LoggerFactory;
import
javax.xml.datatype.DatatypeFactory
;
import
javax.xml.datatype.XMLGregorianCalendar
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* <Ntfctn><Ntry><ValDt><Dt>
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/impl/Field52aGenerate.java
View file @
0e6abdbd
...
...
@@ -21,17 +21,19 @@ public class Field52aGenerate extends AbstractMx2MtFieldsGenerate {
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId"
);
String
memberId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.ClrSysMmbId.MmbId"
);
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.Nm"
);
memberId
=
"/"
+
memberId
;
if
(
memberId
.
length
()>
35
)
memberId
=
memberId
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field52aOption
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
memberId
))
{
field52a
=
"/"
+
memberId
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
field52a
=
memberId
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field52a
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field52aOption
=
"D"
;
if
(
StringUtil
.
isNotEmpty
(
memberId
))
{
field52a
=
"/"
+
memberId
+
Mx2MtConstants
.
NEW_LINE
+
name
;
field52a
=
memberId
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
int
adrLineCount
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.DbtrAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
adrLineCount
>
0
){
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/impl/Field56aGenerate.java
View file @
0e6abdbd
...
...
@@ -25,17 +25,19 @@ public class Field56aGenerate extends AbstractMx2MtFieldsGenerate {
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId"
);
String
memberId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.ClrSysMmbId.MmbId"
);
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.Nm"
);
memberId
=
"/"
+
memberId
;
if
(
memberId
.
length
()>
35
)
memberId
=
memberId
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field56aOption
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
memberId
))
{
field56a
=
"/"
+
memberId
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
field56a
=
memberId
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field56a
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field56aOption
=
"D"
;
if
(
StringUtil
.
isNotEmpty
(
memberId
))
{
field56a
=
"/"
+
memberId
+
Mx2MtConstants
.
NEW_LINE
+
name
;;
field56a
=
memberId
+
Mx2MtConstants
.
NEW_LINE
+
name
;;
}
int
adrLineCount
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.RltdAgts.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine"
);
if
(
adrLineCount
>
0
){
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt900910/impl/Field72Generate.java
View file @
0e6abdbd
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.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05400102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
public
class
Field72Generate
extends
AbstractMx2MtFieldsGenerate
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Field72Generate
.
class
);
...
...
@@ -21,9 +17,9 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate {
try
{
String
field72
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
A
ddtlTxInf
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.AddtlTxInf"
);
if
(
StringUtil
.
isNotEmpty
(
A
ddtlTxInf
)){
field72
=
StringUtil
.
getStringByEnter
(
A
ddtlTxInf
,
35
,
6
);
String
a
ddtlTxInf
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Ntfctn.Ntry.NtryDtls.TxDtls.AddtlTxInf"
);
if
(
StringUtil
.
isNotEmpty
(
a
ddtlTxInf
)){
field72
=
StringUtil
.
getStringByEnter
(
a
ddtlTxInf
,
35
,
6
);
}
map
.
put
(
"field72"
,
field72
);
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt940950/Mx2Mt940950Creator.java
View file @
0e6abdbd
...
...
@@ -6,14 +6,17 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtCreator;
import
com.prowidesoftware.brilliance.mx2mt.Mx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.mx2mt.mt940950.impl.*
;
import
com.prowidesoftware.brilliance.util.TemplateUtil
;
import
com.prowidesoftware.brilliance.util.XmlUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05300102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.apache.commons.lang.StringUtils
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
public
class
Mx2Mt940950Creator
extends
AbstractMx2MtCreator
{
...
...
@@ -36,6 +39,14 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator {
* field64
*/
@Override
public
void
preProcess
()
{
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
Map
<
String
,
String
>
parentElementMaps
=
XmlUtil
.
getParentElementMaps
(
document
);
map
.
put
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
parentElementMaps
.
get
(
"GrpHdr"
));
map
.
put
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
parentElementMaps
.
get
(
"Stmt"
));
map
.
put
(
Mx2MtConstants
.
MT_TEMPLATE_NAME
,
"swift_mt_940_950.vm"
);
}
@Override
public
List
<
Mx2MtFieldsGenerate
>
getFieldsGenerateList
()
{
List
<
Mx2MtFieldsGenerate
>
fieldsGenerateList
=
new
ArrayList
<>();
...
...
@@ -56,14 +67,6 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator {
return
fieldsGenerateList
;
}
@Override
public
String
generateMtMsg
()
{
postProcess
();
String
outPutFilePath
=
(
String
)
map
.
get
(
Mx2MtConstants
.
OUT_PUT_FILE_PATH
);
return
TemplateUtil
.
makeFileByTemplate
(
"swift_mt_940_950.vm"
,
map
,
outPutFilePath
,
"utf-8"
);
}
/**
* 符合以下其中一个条件,则为940,否则为950报文
* (1)<Stmt><Ntry>[j]数组中,节点<AddtlNtryInf>有值
...
...
@@ -73,42 +76,25 @@ public class Mx2Mt940950Creator extends AbstractMx2MtCreator {
*/
public
boolean
getMtMsg
()
{
try
{
MxCamt05300102
mxCamt05300102
=
(
MxCamt05300102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
mxCamt05300102
==
null
||
mxCamt05300102
.
getBkToCstmrStmt
()
==
null
)
{
return
false
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
addtlNtryInf
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.AddtlNtryInf"
);
if
(
StringUtils
.
isNotEmpty
(
addtlNtryInf
)){
return
true
;
}
BankToCustomerStatementV02
bkToCstmrStmt
=
mxCamt05300102
.
getBkToCstmrStmt
();
List
<
AccountStatement2
>
stmtList
=
bkToCstmrStmt
.
getStmt
();
if
(
stmtList
!=
null
&&
stmtList
.
size
()
>
0
)
{
AccountStatement2
stmt
=
stmtList
.
get
(
0
);
List
<
ReportEntry2
>
ntryList
=
stmt
.
getNtry
();
if
(
ntryList
.
size
()
>
0
&&
StringUtils
.
isNotEmpty
(
ntryList
.
get
(
0
).
getAddtlNtryInf
()))
return
true
;
List
<
CashBalance3
>
balList
=
stmt
.
getBal
();
if
(
balList
!=
null
&&
balList
.
size
()
>
0
)
{
for
(
CashBalance3
tmpBal
:
balList
)
{
if
(
tmpBal
!=
null
&&
tmpBal
.
getTp
()
!=
null
&&
tmpBal
.
getTp
().
getCdOrPrtry
()
!=
null
&&
BalanceType12Code
.
FWAV
.
equals
(
tmpBal
.
getTp
().
getCdOrPrtry
().
getCd
()))
{
return
true
;
}
}
}
if
(
StringUtils
.
isNotEmpty
(
stmt
.
getAddtlStmtInf
()))
return
true
;
return
false
;
String
cd
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.Bal.Tp.CdOrPrtry.Cd"
);
if
(
StringUtils
.
isNotEmpty
(
cd
)){
return
true
;
}
String
addtlStmtInf
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"stmt.AddtlStmtInf"
);
if
(
StringUtils
.
isNotEmpty
(
addtlStmtInf
)){
return
true
;
}
return
false
;
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
throw
new
SwiftException
(
"ERROR"
,
"Mx2Mt950Creator.getMtMsg() error"
);
}
return
false
;
}
@Override
protected
String
getMtType
()
{
if
(
getMtMsg
())
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt940950/impl/Field20Generate.java
View file @
0e6abdbd
...
...
@@ -3,9 +3,8 @@ package com.prowidesoftware.brilliance.mx2mt.mt940950.impl;
import
com.prowidesoftware.brilliance.constants.Mx2MtConstants
;
import
com.prowidesoftware.brilliance.exception.SwiftException
;
import
com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.swift.model.mx.MxCamt05300102
;
import
com.prowidesoftware.swift.model.mx.dic.BankToCustomerStatementV02
;
import
com.prowidesoftware.swift.model.mx.dic.GroupHeader42
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -15,17 +14,15 @@ import org.slf4j.LoggerFactory;
public
class
Field20Generate
extends
AbstractMx2MtFieldsGenerate
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Field20Generate
.
class
);
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxCamt05300102
mxCamt05300102
=
(
MxCamt05300102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
mxCamt05300102
==
null
||
mxCamt05300102
.
getBkToCstmrStmt
()
==
null
)
{
return
;
String
msgId
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
id
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.MsgId"
);
if
(
StringUtil
.
isNotEmpty
(
id
))
{
msgId
=
id
;
map
.
put
(
"field20"
,
msgId
);
}
BankToCustomerStatementV02
bkToCstmrStmt
=
mxCamt05300102
.
getBkToCstmrStmt
();
GroupHeader42
grpHdr
=
bkToCstmrStmt
.
getGrpHdr
();
map
.
put
(
"field20"
,
grpHdr
.
getMsgId
());
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt940950/impl/Field25aGenerate.java
View file @
0e6abdbd
...
...
@@ -4,16 +4,10 @@ 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.MxCamt05300102
;
import
com.prowidesoftware.swift.model.mx.dic.AccountIdentification4Choice
;
import
com.prowidesoftware.swift.model.mx.dic.AccountStatement2
;
import
com.prowidesoftware.swift.model.mx.dic.BankToCustomerStatementV02
;
import
com.prowidesoftware.swift.model.mx.dic.GenericAccountIdentification1
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* <Stmt><Acct><Id><IBAN>
* <Stmt><Acct><Id><Othr><Id>
...
...
@@ -25,26 +19,14 @@ public class Field25aGenerate extends AbstractMx2MtFieldsGenerate{
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxCamt05300102
mxCamt05300102
=
(
MxCamt05300102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
mxCamt05300102
==
null
||
mxCamt05300102
.
getBkToCstmrStmt
()
==
null
)
{
return
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Acct.Id.IBAN"
);
if
(
StringUtil
.
isNotEmpty
(
iban
)){
map
.
put
(
"field25a"
,
iban
);
}
BankToCustomerStatementV02
bkToCstmrStmt
=
mxCamt05300102
.
getBkToCstmrStmt
();
List
<
AccountStatement2
>
stmtList
=
bkToCstmrStmt
.
getStmt
();
if
(
stmtList
!=
null
&&
stmtList
.
size
()
>
0
)
{
AccountStatement2
accountStatement2
=
stmtList
.
get
(
0
);
if
(
accountStatement2
.
getAcct
()
!=
null
&&
accountStatement2
.
getAcct
().
getId
()
!=
null
)
{
AccountIdentification4Choice
id
=
accountStatement2
.
getAcct
().
getId
();
if
(!
StringUtil
.
isEmpty
(
id
.
getIBAN
()))
{
map
.
put
(
"field25a"
,
id
.
getIBAN
());
}
else
{
GenericAccountIdentification1
othr
=
id
.
getOthr
();
if
(
othr
!=
null
)
{
map
.
put
(
"field25a"
,
othr
.
getId
());
}
}
}
String
id
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Acct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
id
)){
map
.
put
(
"field25a"
,
id
);
}
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt940950/impl/Field28CGenerate.java
View file @
0e6abdbd
...
...
@@ -8,6 +8,7 @@ import com.prowidesoftware.swift.model.mx.MxCamt05300102;
import
com.prowidesoftware.swift.model.mx.dic.AccountStatement2
;
import
com.prowidesoftware.swift.model.mx.dic.BankToCustomerStatementV02
;
import
com.prowidesoftware.swift.model.mx.dic.GroupHeader42
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -25,33 +26,18 @@ public class Field28CGenerate extends AbstractMx2MtFieldsGenerate{
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxCamt05300102
mxCamt05300102
=
(
MxCamt05300102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
mxCamt05300102
==
null
||
mxCamt05300102
.
getBkToCstmrStmt
()
==
null
)
{
return
;
}
BankToCustomerStatementV02
bkToCstmrStmt
=
mxCamt05300102
.
getBkToCstmrStmt
();
BigDecimal
seqNb
=
null
;
List
<
AccountStatement2
>
stmtList
=
bkToCstmrStmt
.
getStmt
();
if
(
stmtList
!=
null
&&
stmtList
.
size
()
>
0
)
{
AccountStatement2
accountStatement2
=
stmtList
.
get
(
0
);
if
(
accountStatement2
!=
null
)
{
seqNb
=
accountStatement2
.
getElctrncSeqNb
();
}
}
String
pgNb
=
""
;
GroupHeader42
grpHdr
=
bkToCstmrStmt
.
getGrpHdr
();
if
(
grpHdr
!=
null
&&
grpHdr
.
getMsgPgntn
()
!=
null
)
{
pgNb
=
grpHdr
.
getMsgPgntn
().
getPgNb
();
}
if
(
seqNb
==
null
&&
StringUtil
.
isEmpty
(
pgNb
))
{
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
elctrncSeqNb
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.ElctrncSeqNb"
);
String
pgNb
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.MsgPgntn.PgNb"
);
if
(
StringUtil
.
isEmpty
(
elctrncSeqNb
)&&
StringUtil
.
isEmpty
(
pgNb
)){
throw
new
SwiftException
(
"ERROR"
,
"Convert MT950 field28C is required!"
);
}
else
{
if
(
seqNb
==
null
)
{
//only <Stmt><ElctrncSeqNb>
}
else
{
if
(
StringUtil
.
isEmpty
(
elctrncSeqNb
)){
map
.
put
(
"field28C"
,
pgNb
);
}
else
if
(
StringUtil
.
isEmpty
(
pgNb
))
{
//only <GrpHdr><MsgPgntn><PgNb>
map
.
put
(
"field28C"
,
seqNb
.
toString
()
);
}
else
{
//<Stmt><ElctrncSeqNb> + "/" + GrpHdr><MsgPgntn><PgNb>
map
.
put
(
"field28C"
,
seqNb
.
toString
()
+
"/"
+
pgNb
);
}
else
if
(
StringUtil
.
isEmpty
(
pgNb
)){
map
.
put
(
"field28C"
,
elctrncSeqNb
);
}
else
{
map
.
put
(
"field28C"
,
elctrncSeqNb
+
"/"
+
pgNb
);
}
}
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt940950/impl/Field60Generate.java
View file @
0e6abdbd
...
...
@@ -5,13 +5,16 @@ import com.prowidesoftware.brilliance.exception.SwiftException;
import
com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.DateUtil
;
import
com.prowidesoftware.brilliance.util.NumberUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05300102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.dic.BalanceType12Code
;
import
com.prowidesoftware.swift.model.mx.dic.CreditDebitCode
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.xml.datatype.DatatypeFactory
;
import
javax.xml.datatype.XMLGregorianCalendar
;
import
java.math.BigDecimal
;
import
java.util.List
;
/**
* <Stmt><Bal>[i]<Tp><CdOrPrtry><Cd>
...
...
@@ -27,54 +30,41 @@ public class Field60Generate extends AbstractMx2MtFieldsGenerate{
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxCamt05300102
mxCamt05300102
=
(
MxCamt05300102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
mxCamt05300102
==
null
||
mxCamt05300102
.
getBkToCstmrStmt
()
==
null
)
{
return
;
String
filed60Option
=
""
;
String
crdr
=
""
;
String
dt
=
""
;
String
ccy
=
""
;
String
amt
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
cd
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Bal.Tp.CdOrPrtry.Cd"
);
if
(
BalanceType12Code
.
PRCD
.
equals
(
BalanceType12Code
.
valueOf
(
cd
)))
{
filed60Option
=
"F"
;
}
else
if
(
BalanceType12Code
.
ITBD
.
equals
(
BalanceType12Code
.
valueOf
(
cd
)))
{
filed60Option
=
"M"
;
}
else
{
throw
new
SwiftException
(
"ERROR"
,
"cannot find filed60Option."
);
}
BankToCustomerStatementV02
bkToCstmrStmt
=
mxCamt05300102
.
getBkToCstmrStmt
();
List
<
AccountStatement2
>
stmtList
=
bkToCstmrStmt
.
getStmt
();
if
(
stmtList
!=
null
&&
stmtList
.
size
()
>
0
)
{
AccountStatement2
stmt
=
stmtList
.
get
(
0
);
List
<
CashBalance3
>
balList
=
stmt
.
getBal
();
if
(
balList
!=
null
&&
balList
.
size
()
>
0
)
{
CashBalance3
bal
=
balList
.
get
(
0
);
String
filed60Option
=
""
;
if
(
bal
!=
null
&&
bal
.
getTp
()
!=
null
&&
bal
.
getTp
().
getCdOrPrtry
()
!=
null
)
{
if
(
BalanceType12Code
.
PRCD
.
equals
(
bal
.
getTp
().
getCdOrPrtry
().
getCd
()))
{
filed60Option
=
"F"
;
}
else
if
(
BalanceType12Code
.
ITBD
.
equals
(
bal
.
getTp
().
getCdOrPrtry
().
getCd
()))
{
filed60Option
=
"M"
;
}
else
{
throw
new
SwiftException
(
"ERROR"
,
"cannot find filed60Option."
);
}
map
.
put
(
"field60Option"
,
filed60Option
);
}
if
(
bal
!=
null
)
{
String
crdr
=
""
;
if
(
CreditDebitCode
.
CRDT
.
equals
(
bal
.
getCdtDbtInd
()))
{
crdr
=
Mx2MtConstants
.
DRCRMARK_C
;
}
else
if
(
CreditDebitCode
.
DBIT
.
equals
(
bal
.
getCdtDbtInd
()))
{
crdr
=
Mx2MtConstants
.
DRCRMARK_D
;
}
else
{
throw
new
SwiftException
(
"ERROR"
,
"cannot find filed60 D/C Mark."
);
}
String
dateStr
=
""
;
if
(
bal
.
getDt
()
!=
null
)
{
dateStr
=
DateUtil
.
format
(
bal
.
getDt
().
getDt
(),
"yyMMdd"
);
}
String
ccy
=
""
;
String
amtStr
=
""
;
ActiveOrHistoricCurrencyAndAmount
ccyAndAmt
=
bal
.
getAmt
();
if
(
ccyAndAmt
!=
null
)
{
ccy
=
ccyAndAmt
.
getCcy
();
BigDecimal
amt
=
ccyAndAmt
.
getValue
();
amtStr
=
NumberUtil
.
formatAmt
(
amt
,
ccy
);
}
map
.
put
(
"field60"
,
crdr
+
dateStr
+
ccy
+
amtStr
);
}
}
map
.
put
(
"field60Option"
,
filed60Option
);
String
cdtDbtInd
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Bal.CdtDbtInd"
);
if
(
CreditDebitCode
.
CRDT
.
equals
(
CreditDebitCode
.
valueOf
(
cdtDbtInd
)))
{
crdr
=
Mx2MtConstants
.
DRCRMARK_C
;
}
else
if
(
CreditDebitCode
.
DBIT
.
equals
(
CreditDebitCode
.
valueOf
(
cdtDbtInd
)))
{
crdr
=
Mx2MtConstants
.
DRCRMARK_D
;
}
else
{
throw
new
SwiftException
(
"ERROR"
,
"cannot find filed60 D/C Mark."
);
}
String
dateStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Bal.Dt.Dt"
);
if
(
StringUtil
.
isNotEmpty
(
dateStr
)){
XMLGregorianCalendar
XmlDt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dateStr
);
dt
=
DateUtil
.
format
(
XmlDt
,
"yyMMdd"
);
}
String
amtStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Bal.Amt"
);
String
ccyStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Bal.Amt@Ccy"
);
if
(
StringUtil
.
isNotEmpty
(
amtStr
)
&&
StringUtil
.
isNotEmpty
(
ccyStr
))
{
amt
=
NumberUtil
.
formatAmt
(
new
BigDecimal
(
amtStr
),
ccyStr
);
ccy
=
ccyStr
;
}
map
.
put
(
"field60"
,
crdr
+
dt
+
ccy
+
amt
);
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt940950/impl/Field61ListGenerate.java
View file @
0e6abdbd
...
...
@@ -6,12 +6,14 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.DateUtil
;
import
com.prowidesoftware.brilliance.util.NumberUtil
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxCamt05300102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.apache.commons.lang.StringUtils
;
import
com.prowidesoftware.swift.model.mx.dic.CreditDebitCode
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.xml.datatype.DatatypeFactory
;
import
javax.xml.datatype.XMLGregorianCalendar
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -34,92 +36,67 @@ public class Field61ListGenerate extends AbstractMx2MtFieldsGenerate{
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxCamt05300102
mxCamt05300102
=
(
MxCamt05300102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
mxCamt05300102
==
null
||
mxCamt05300102
.
getBkToCstmrStmt
()
==
null
)
{
return
;
String
valueDateStr
=
""
;
String
entryDateStr
=
""
;
String
drCrMark
=
""
;
String
amt
=
""
;
String
ccy
=
""
;
List
<
String
>
filed61List
=
new
ArrayList
<>();
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
dt
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.ValDt.Dt"
);
String
dt2
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.BookgDt.Dt"
);
if
(
StringUtil
.
isNotEmpty
(
dt
)){
XMLGregorianCalendar
valueDateDt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dt
);
valueDateStr
=
DateUtil
.
format
(
valueDateDt
,
"yyMMdd"
);
}
BankToCustomerStatementV02
bkToCstmrStmt
=
mxCamt05300102
.
getBkToCstmrStmt
();
List
<
AccountStatement2
>
stmtList
=
bkToCstmrStmt
.
getStmt
();
if
(
stmtList
!=
null
&&
stmtList
.
size
()
>
0
)
{
AccountStatement2
stmt
=
stmtList
.
get
(
0
);
List
<
ReportEntry2
>
ntryList
=
stmt
.
getNtry
();
if
(
ntryList
.
size
()
>
0
)
{
List
<
String
>
filed61List
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
ntryList
.
size
();
i
++)
{
ReportEntry2
ntry
=
ntryList
.
get
(
i
);
String
valueDateStr
=
DateUtil
.
format
(
ntry
.
getValDt
().
getDt
(),
"yyMMdd"
);
String
entryDateStr
=
DateUtil
.
format
(
ntry
.
getBookgDt
().
getDt
(),
"yyMMdd"
);
String
drCrMark
=
""
;
if
(
CreditDebitCode
.
CRDT
.
equals
(
ntry
.
getCdtDbtInd
()))
{
if
(
Boolean
.
TRUE
.
equals
(
ntry
.
isRvslInd
()))
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_RD
;
}
else
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_C
;
}
}
else
if
(
CreditDebitCode
.
DBIT
.
equals
(
ntry
.
getCdtDbtInd
()))
{
if
(
Boolean
.
TRUE
.
equals
(
ntry
.
isRvslInd
()))
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_RC
;
}
else
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_D
;
}
}
else
{
throw
new
SwiftException
(
"ERROR"
,
"cannot find filed61 D/C Mark."
);
}
String
ccy
=
""
;
String
amtStr
=
""
;
ActiveOrHistoricCurrencyAndAmount
ccyAndAmt
=
ntry
.
getAmt
();
if
(
ccyAndAmt
!=
null
)
{
ccy
=
ccyAndAmt
.
getCcy
();
amtStr
=
NumberUtil
.
formatAmt
(
ccyAndAmt
.
getValue
(),
ccy
);
}
//TODO
String
txnTypeAndIdentification
=
""
;
BankTransactionCodeStructure4
bkTxCd
=
ntry
.
getBkTxCd
();
if
(
bkTxCd
!=
null
)
{
ProprietaryBankTransactionCodeStructure1
prtry
=
bkTxCd
.
getPrtry
();
if
(
prtry
!=
null
)
{
txnTypeAndIdentification
=
prtry
.
getCd
();
}
}
String
referenceForTheAccountOwner
=
""
;
String
supplementDetails
=
""
;
List
<
EntryDetails1
>
ntryDtlsList
=
ntry
.
getNtryDtls
();
if
(
ntryDtlsList
.
size
()
>
0
)
{
EntryDetails1
ntryDtls
=
ntryDtlsList
.
get
(
0
);
List
<
EntryTransaction2
>
txDtlsList
=
ntryDtls
.
getTxDtls
();
if
(
txDtlsList
.
size
()
>
0
)
{
EntryTransaction2
txDtls
=
txDtlsList
.
get
(
0
);
if
(
txDtls
.
getRefs
()
!=
null
)
{
referenceForTheAccountOwner
=
txDtls
.
getRefs
().
getEndToEndId
();
}
supplementDetails
=
txDtls
.
getAddtlTxInf
();
}
}
String
referenceForTheAccountServInst
=
ntry
.
getAcctSvcrRef
();
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
valueDateStr
)
.
append
(
entryDateStr
)
.
append
(
drCrMark
)
.
append
(
ccy
)
.
append
(
amtStr
)
.
append
(
txnTypeAndIdentification
)
.
append
(
referenceForTheAccountOwner
);
if
(!
StringUtil
.
isEmpty
(
referenceForTheAccountServInst
))
{
sb
.
append
(
"//"
+
referenceForTheAccountServInst
);
}
if
(!
StringUtil
.
isEmpty
(
supplementDetails
))
{
sb
.
append
(
Mx2MtConstants
.
NEW_LINE
+
supplementDetails
);
}
if
(
StringUtils
.
isNotEmpty
(
ntry
.
getAddtlNtryInf
()))
sb
.
append
(
Mx2MtConstants
.
NEW_LINE
).
append
(
":86:"
).
append
(
StringUtil
.
getStringByEnter
(
ntry
.
getAddtlNtryInf
(),
35
,
6
));
filed61List
.
add
(
sb
.
toString
());
}
if
(
filed61List
.
size
()
>
0
)
{
map
.
put
(
"field61List"
,
filed61List
);
}
if
(
StringUtil
.
isNotEmpty
(
dt2
)){
XMLGregorianCalendar
entryDateDt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dt
);
entryDateStr
=
DateUtil
.
format
(
entryDateDt
,
"yyMMdd"
);
}
String
cdtDbtInd
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.CdtDbtInd"
);
String
rvslInd
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.RvslInd"
);
if
(
CreditDebitCode
.
CRDT
.
equals
(
CreditDebitCode
.
valueOf
(
cdtDbtInd
)))
{
if
(
Boolean
.
TRUE
.
equals
(
Boolean
.
getBoolean
(
rvslInd
)))
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_RD
;
}
else
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_C
;
}
}
else
if
(
CreditDebitCode
.
DBIT
.
equals
(
CreditDebitCode
.
valueOf
(
cdtDbtInd
)))
{
if
(
Boolean
.
TRUE
.
equals
(
Boolean
.
getBoolean
(
rvslInd
)))
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_RC
;
}
else
{
drCrMark
=
Mx2MtConstants
.
DRCRMARK_D
;
}
}
else
{
throw
new
SwiftException
(
"ERROR"
,
"cannot find filed61 D/C Mark."
);
}
String
amtStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.Amt"
);
String
ccyStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.Amt@Ccy"
);
if
(
StringUtil
.
isNotEmpty
(
amtStr
)
&&
StringUtil
.
isNotEmpty
(
ccyStr
))
{
amt
=
NumberUtil
.
formatAmt
(
new
BigDecimal
(
amtStr
),
ccyStr
);
ccy
=
ccyStr
;
}
String
cd
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.BkTxCd.Prtry.Cd"
);
String
endToEndId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.NtryDtls.TxDtls.Refs.EndToEndId"
);
String
addtlTxInf
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.NtryDtls.TxDtls.AddtlTxInf"
);
String
acctSvcrRef
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"Stmt.Ntry.AcctSvcrRef"
);
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
valueDateStr
)
.
append
(
entryDateStr
)
.
append
(
drCrMark
)
.
append
(
ccy
)
.
append
(
amt
)
.
append
(
cd
)
.
append
(
endToEndId
);
if
(
StringUtil
.
isNotEmpty
(
acctSvcrRef
))
{
sb
.
append
(
"//"
+
acctSvcrRef
);
}
if
(
StringUtil
.
isNotEmpty
(
addtlTxInf
))
{
sb
.
append
(
Mx2MtConstants
.
NEW_LINE
+
addtlTxInf
);
}
filed61List
.
add
(
sb
.
toString
());
if
(
filed61List
.
size
()
>
0
)
{
map
.
put
(
"field61List"
,
filed61List
);
}
}
catch
(
Exception
e
)
{
logger
.
error
(
e
.
getMessage
());
...
...
src/test/java/com/brilliance/mt940/Mx2Mt940.java
View file @
0e6abdbd
...
...
@@ -12,7 +12,7 @@ public class Mx2Mt940 {
String
s
=
null
;
try
{
URL
resource
=
Mx2Mt940
.
class
.
getClassLoader
().
getResource
(
"swiftXml/"
);
s
=
new
Mx2MtCreateManager
().
mx2mt
(
new
File
(
resource
.
getPath
()+
"MxCamt05300102_940.xml"
));
s
=
new
Mx2MtCreateManager
().
mx2mt
(
new
File
(
resource
.
getPath
()+
"MxCamt05300102_940.xml"
)
,
"D:/test/MT940.txt"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
...
...
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