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
182bca3f
Commit
182bca3f
authored
Apr 15, 2022
by
chengzhuoshen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.refactoring mx2mt 202/202Cov
2.采用xmlFilter的方式解析报文,转换成mt格式文本
parent
9cc67259
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
865 additions
and
904 deletions
+865
-904
AbstractMx2MtFieldsGenerate.java
...oftware/brilliance/mx2mt/AbstractMx2MtFieldsGenerate.java
+15
-0
Field13CGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field13CGenerate.java
+5
-5
Field50AGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field50AGenerate.java
+2
-2
Field52AGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field52AGenerate.java
+2
-2
Field53AGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field53AGenerate.java
+1
-1
Field54AGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field54AGenerate.java
+1
-1
Field55AGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field55AGenerate.java
+1
-1
Field56AGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field56AGenerate.java
+4
-3
Field57AGenerate.java
...oftware/brilliance/mx2mt/mt103/impl/Field57AGenerate.java
+4
-3
Field59Generate.java
...software/brilliance/mx2mt/mt103/impl/Field59Generate.java
+1
-1
Field72Generate.java
...software/brilliance/mx2mt/mt103/impl/Field72Generate.java
+7
-10
Mx2Mt202Creator.java
...oftware/brilliance/mx2mt/mt202cov202/Mx2Mt202Creator.java
+39
-48
Field13CGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field13CGenerate.java
+21
-25
Field20Generate.java
...re/brilliance/mx2mt/mt202cov202/impl/Field20Generate.java
+5
-7
Field21Generate.java
...re/brilliance/mx2mt/mt202cov202/impl/Field21Generate.java
+7
-14
Field32AGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field32AGenerate.java
+18
-31
Field52AGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field52AGenerate.java
+49
-61
Field53AGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field53AGenerate.java
+71
-72
Field54AGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field54AGenerate.java
+49
-60
Field56AGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field56AGenerate.java
+49
-60
Field57AGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field57AGenerate.java
+49
-61
Field58AGenerate.java
...e/brilliance/mx2mt/mt202cov202/impl/Field58AGenerate.java
+49
-61
Field72Generate.java
...re/brilliance/mx2mt/mt202cov202/impl/Field72Generate.java
+65
-0
Field50AGenerate.java
...illiance/mx2mt/mt202cov202/impl/cov/Field50AGenerate.java
+47
-59
FieldB33BGenerate.java
...lliance/mx2mt/mt202cov202/impl/cov/FieldB33BGenerate.java
+9
-16
FieldB52AGenerate.java
...lliance/mx2mt/mt202cov202/impl/cov/FieldB52AGenerate.java
+46
-63
FieldB56Generate.java
...illiance/mx2mt/mt202cov202/impl/cov/FieldB56Generate.java
+63
-68
FieldB57Generate.java
...illiance/mx2mt/mt202cov202/impl/cov/FieldB57Generate.java
+63
-68
FieldB59Generate.java
...illiance/mx2mt/mt202cov202/impl/cov/FieldB59Generate.java
+47
-61
FieldB70Generate.java
...illiance/mx2mt/mt202cov202/impl/cov/FieldB70Generate.java
+7
-23
XmlUtil.java
...ain/java/com/prowidesoftware/brilliance/util/XmlUtil.java
+18
-5
MxPacs00900102.xml
src/main/resources/swiftXml/MxPacs00900102.xml
+5
-2
MxPacs00900102_COV.xml
src/main/resources/swiftXml/MxPacs00900102_COV.xml
+40
-6
swift_mt_202cov.vm
src/main/resources/template/swift_mt_202cov.vm
+6
-4
No files found.
src/main/java/com/prowidesoftware/brilliance/mx2mt/AbstractMx2MtFieldsGenerate.java
View file @
182bca3f
...
...
@@ -61,4 +61,19 @@ public abstract class AbstractMx2MtFieldsGenerate implements Mx2MtFieldsGenerate
}
return
account
;
}
protected
String
getBicCode
(
String
type
,
Document
document
,
String
path
)
{
//AnyBIC BICFI BICOrBEI BIC
String
bicCode
=
getXmlNodeValue
(
type
,
document
,
path
+
".AnyBIC"
);
if
(
StringUtil
.
isEmpty
(
bicCode
))
{
bicCode
=
getXmlNodeValue
(
type
,
document
,
path
+
".BICFI"
);
}
if
(
StringUtil
.
isEmpty
(
bicCode
))
{
bicCode
=
getXmlNodeValue
(
type
,
document
,
path
+
".BICOrBEI"
);
}
if
(
StringUtil
.
isEmpty
(
bicCode
))
{
bicCode
=
getXmlNodeValue
(
type
,
document
,
path
+
".BIC"
);
}
return
bicCode
;
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field13CGenerate.java
View file @
182bca3f
...
...
@@ -21,26 +21,26 @@ public class Field13CGenerate extends AbstractMx2MtFieldsGenerate {
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
List
<
String
>
filed13
c
List
=
new
ArrayList
<>();
List
<
String
>
filed13
C
List
=
new
ArrayList
<>();
String
dbtDtTmStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.SttlmTmIndctn.DbtDtTm"
);
if
(
StringUtil
.
isNotEmpty
(
dbtDtTmStr
))
{
XMLGregorianCalendar
dbtDtTm
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dbtDtTmStr
);
String
hourTime
=
DateUtil
.
format
(
dbtDtTm
,
"HHmm"
);
filed13
c
List
.
add
(
"/SNDTIME/"
+
hourTime
+
"+0800"
);
filed13
C
List
.
add
(
"/SNDTIME/"
+
hourTime
+
"+0800"
);
}
String
cdtDtTmStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.SttlmTmIndctn.CdtDtTm"
);
if
(
StringUtil
.
isNotEmpty
(
cdtDtTmStr
))
{
XMLGregorianCalendar
cdtDtTm
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
cdtDtTmStr
);
String
hourTime
=
DateUtil
.
format
(
cdtDtTm
,
"HHmm"
);
filed13
c
List
.
add
(
"/RNCTIME/"
+
hourTime
+
"+0800"
);
filed13
C
List
.
add
(
"/RNCTIME/"
+
hourTime
+
"+0800"
);
}
String
clsDtTmStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.SttlmTmReq.CLSTm"
);
if
(
StringUtil
.
isNotEmpty
(
clsDtTmStr
))
{
XMLGregorianCalendar
clsDtTm
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
clsDtTmStr
);
String
hourTime
=
DateUtil
.
format
(
clsDtTm
,
"HHmm"
);
filed13
c
List
.
add
(
"/CLSTIME/"
+
hourTime
+
"+0800"
);
filed13
C
List
.
add
(
"/CLSTIME/"
+
hourTime
+
"+0800"
);
}
map
.
put
(
"field13CList"
,
filed13
c
List
);
map
.
put
(
"field13CList"
,
filed13
C
List
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field50AGenerate.java
View file @
182bca3f
...
...
@@ -31,7 +31,7 @@ public class Field50AGenerate extends AbstractMx2MtFieldsGenerate {
String
field50Option
=
""
;
String
field50
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Dbtr.Id.OrgId.AnyBIC
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Dbtr.Id.OrgId
"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Dbtr.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
...
...
@@ -70,7 +70,7 @@ public class Field50AGenerate extends AbstractMx2MtFieldsGenerate {
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAcct.IBAN"
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAcct.I
d.I
BAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAcct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field52AGenerate.java
View file @
182bca3f
...
...
@@ -29,7 +29,7 @@ public class Field52AGenerate extends AbstractMx2MtFieldsGenerate {
String
field52Option
=
""
;
String
field52
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAgt.FinInstnId.BICFI
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAgt.FinInstnId
"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAgt.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
...
...
@@ -68,7 +68,7 @@ public class Field52AGenerate extends AbstractMx2MtFieldsGenerate {
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAgtAcct.IBAN"
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAgtAcct.I
d.I
BAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAgtAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field53AGenerate.java
View file @
182bca3f
...
...
@@ -35,7 +35,7 @@ public class Field53AGenerate extends AbstractMx2MtFieldsGenerate {
String
field53Option
=
""
;
String
field53
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.BICFI
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId
"
);
String
account
=
getAccount
();
String
sttlmAccount
=
getSttlmAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.Nm"
);
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field54AGenerate.java
View file @
182bca3f
...
...
@@ -28,7 +28,7 @@ public class Field54AGenerate extends AbstractMx2MtFieldsGenerate {
String
field54Option
=
""
;
String
field54
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId.BICFI
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId
"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field55AGenerate.java
View file @
182bca3f
...
...
@@ -28,7 +28,7 @@ public class Field55AGenerate extends AbstractMx2MtFieldsGenerate {
String
field55Option
=
""
;
String
field55
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.ThrdRmbrsmntAgt.FinInstnId.BICFI
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.ThrdRmbrsmntAgt.FinInstnId
"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.ThrdRmbrsmntAgt.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field56AGenerate.java
View file @
182bca3f
...
...
@@ -36,7 +36,7 @@ public class Field56AGenerate extends AbstractMx2MtFieldsGenerate {
String
field56Option
=
""
;
String
field56
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1.FinInstnId.BICFI
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1.FinInstnId
"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
...
...
@@ -76,9 +76,10 @@ public class Field56AGenerate extends AbstractMx2MtFieldsGenerate {
}
else
{
account
=
"/"
+
iban
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
field56
=
account
.
substring
(
0
,
35
);
if
(
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
field56
=
account
;
}
map
.
put
(
"field56Option"
,
field56Option
);
map
.
put
(
"field56"
,
field56
);
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field57AGenerate.java
View file @
182bca3f
...
...
@@ -36,7 +36,7 @@ public class Field57AGenerate extends AbstractMx2MtFieldsGenerate {
String
field57Option
=
""
;
String
field57
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgt.FinInstnId.BICFI
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgt.FinInstnId
"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgt.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
...
...
@@ -76,9 +76,10 @@ public class Field57AGenerate extends AbstractMx2MtFieldsGenerate {
}
else
{
account
=
"/"
+
iban
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
field57
=
account
.
substring
(
0
,
35
);
if
(
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
field57
=
account
;
}
map
.
put
(
"field57Option"
,
field57Option
);
map
.
put
(
"field57"
,
field57
);
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field59Generate.java
View file @
182bca3f
...
...
@@ -30,7 +30,7 @@ public class Field59Generate extends AbstractMx2MtFieldsGenerate {
String
field59Option
=
""
;
String
field59
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Cdtr.Id.OrgId.AnyBIC
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Cdtr.Id.OrgId
"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Cdtr.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
name
)){
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt103/impl/Field72Generate.java
View file @
182bca3f
...
...
@@ -28,9 +28,8 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate {
try
{
List
<
String
>
field72List
=
new
ArrayList
<>();
List
<
String
>
field72TmpList
=
new
ArrayList
<>();
String
field72
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
get
XmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PrvsInstgAgt1.FinInstnId.BICFI
"
);
String
bicCode
=
get
BicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PrvsInstgAgt1.FinInstnId
"
);
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PrvsInstgAgt1.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
bicCode
=
Mx2MtConstants
.
INS
+
bicCode
;
...
...
@@ -49,14 +48,12 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate {
nxtAgtInstrInf
=
Mx2MtConstants
.
REC
+
nxtAgtInstrInf
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
nxtAgtInstrInf
,
35
,
"//"
));
}
int
maxSize
=
field72TmpList
.
size
()
>
6
?
6
:
field72TmpList
.
size
();
if
(
maxSize
>
0
)
{
for
(
int
i
=
0
;
i
<
maxSize
;
i
++)
{
if
(
i
==
0
)
{
field72List
.
add
(
":72:"
+
field72TmpList
.
get
(
i
));
}
else
{
field72List
.
add
(
field72TmpList
.
get
(
i
));
}
for
(
int
i
=
0
;
i
<
field72TmpList
.
size
();
i
++)
{
if
(
i
==
6
)
break
;
if
(
i
==
0
)
{
field72List
.
add
(
":72:"
+
field72TmpList
.
get
(
i
));
}
else
{
field72List
.
add
(
field72TmpList
.
get
(
i
));
}
}
map
.
put
(
"field72List"
,
field72List
);
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/Mx2Mt202Creator.java
View file @
182bca3f
...
...
@@ -8,19 +8,55 @@ import com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.*;
import
com.prowidesoftware.brilliance.mx2mt.mt202cov202.impl.cov.*
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.brilliance.util.TemplateUtil
;
import
com.prowidesoftware.brilliance.util.XmlUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13
;
import
com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.*
;
public
class
Mx2Mt202Creator
extends
AbstractMx2MtCreator
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Mx2Mt202Creator
.
class
);
@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
(
"CdtTrfTxInf"
));
map
.
put
(
Mx2MtConstants
.
MT_TEMPLATE_NAME
,
"swift_mt_202cov.vm"
);
}
@Override
public
void
generateHead3
()
{
String
head3
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
uetr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PmtId.UETR"
);
if
(
StringUtil
.
isNotEmpty
(
uetr
))
{
head3
+=
"{121:"
+
uetr
+
"}"
;
}
boolean
mt202CoverFlag
=
false
;
Map
<
String
,
String
>
maps
=
XmlUtil
.
getParentElementMaps
(
document
);
Iterator
<
String
>
keys
=
maps
.
keySet
().
iterator
();
for
(;
keys
.
hasNext
();
)
{
String
key
=
keys
.
next
();
String
value
=
maps
.
get
(
key
);
String
fullPath
=
value
+
"."
+
key
;
if
(
fullPath
.
indexOf
(
"UndrlygCstmrCdtTrf"
)
>
-
1
&&
StringUtil
.
isNotEmpty
(
XmlUtil
.
getXmlNodeValue
(
document
,
fullPath
))){
mt202CoverFlag
=
true
;
break
;
}
}
if
(
mt202CoverFlag
)
{
head3
+=
Mx2MtConstants
.
HEAD3_MT202_COVER
;
}
map
.
put
(
"head3"
,
head3
);
}
@Override
public
List
<
Mx2MtFieldsGenerate
>
getFieldsGenerateList
()
{
List
<
Mx2MtFieldsGenerate
>
fieldsGenerateList
=
new
ArrayList
<>();
fieldsGenerateList
.
add
(
new
Field20Generate
());
...
...
@@ -46,44 +82,8 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
}
@Override
public
String
generateMtMsg
()
{
String
outPutFilePath
=
(
String
)
map
.
get
(
Mx2MtConstants
.
OUT_PUT_FILE_PATH
);
String
msg
=
TemplateUtil
.
makeFileByTemplate
(
"swift_mt_202cov.vm"
,
map
,
outPutFilePath
,
"utf-8"
);
return
msg
;
}
public
void
postProcess
()
{
/**
* 判断使用202模板或者202cov模板
* 依据202cov必有值项50有值的话则使用202cov的模板
* @return true:202cov,false:202
*/
public
boolean
getMtCov
(){
Boolean
msg
=
false
;
try
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
msg
=
false
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getDbtr
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getDbtr
().
getId
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getDbtr
().
getId
().
getOrgId
()
!=
null
&&
StringUtil
.
isNotEmpty
(
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getDbtr
().
getId
().
getOrgId
().
getBICOrBEI
())){
msg
=
true
;
}
if
(
cdtTrfTxInf
.
size
()
>
0
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getDbtr
()
!=
null
&&
StringUtil
.
isNotEmpty
(
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getDbtr
().
getNm
())){
msg
=
true
;
}
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
"Judge 202 or 202Cov error"
);
}
return
msg
;
}
@Override
...
...
@@ -91,12 +91,4 @@ public class Mx2Mt202Creator extends AbstractMx2MtCreator {
return
Mx2MtConstants
.
MT_TYPE_202
;
}
@Override
public
void
generateHead3
()
{
String
head3
=
""
;
if
(
getMtCov
())
{
head3
=
Mx2MtConstants
.
HEAD3_MT202_COVER
;
}
map
.
put
(
"head3"
,
head3
);
}
}
\ No newline at end of file
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field13CGenerate.java
View file @
182bca3f
...
...
@@ -4,11 +4,12 @@ import com.prowidesoftware.brilliance.constants.Mx2MtConstants;
import
com.prowidesoftware.brilliance.exception.SwiftException
;
import
com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.DateUtil
;
import
com.prowidesoftware.
swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13
;
import
com.prowidesoftware.
brilliance.util.StringUtil
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.xml.datatype.DatatypeFactory
;
import
javax.xml.datatype.XMLGregorianCalendar
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -27,35 +28,30 @@ public class Field13CGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
List
<
String
>
filed13CList
=
new
ArrayList
<>();
String
dbtDtTmStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.SttlmTmIndctn.DbtDtTm"
);
if
(
StringUtil
.
isNotEmpty
(
dbtDtTmStr
))
{
XMLGregorianCalendar
dbtDtTm
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
dbtDtTmStr
);
String
hourTime
=
DateUtil
.
format
(
dbtDtTm
,
"HHmm"
);
filed13CList
.
add
(
"/SNDTIME/"
+
hourTime
+
"+0800"
);
}
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
obj
.
getFinInstnCdtTrf
().
getCdtTrfTxInf
();
List
<
String
>
field13cList
=
new
ArrayList
<>();
if
(
obj
.
getFinInstnCdtTrf
().
getCdtTrfTxInf
().
get
(
0
).
getSttlmTmIndctn
().
getDbtDtTm
()
!=
null
){
XMLGregorianCalendar
dbtDtTm
=
cdtTrfTxInf
.
get
(
0
).
getSttlmTmIndctn
().
getDbtDtTm
();
String
hmm
=
DateUtil
.
format
(
dbtDtTm
,
"HHmm"
);
field13cList
.
add
(
"/SNDTIME/"
+
hmm
+
"+0800"
);
String
cdtDtTmStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.SttlmTmIndctn.CdtDtTm"
);
if
(
StringUtil
.
isNotEmpty
(
cdtDtTmStr
))
{
XMLGregorianCalendar
cdtDtTm
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
cdtDtTmStr
);
String
hourTime
=
DateUtil
.
format
(
cdtDtTm
,
"HHmm"
);
filed13CList
.
add
(
"/RNCTIME/"
+
hourTime
+
"+0800"
);
}
if
(
obj
.
getFinInstnCdtTrf
().
getCdtTrfTxInf
().
get
(
0
).
getSttlmTmIndctn
().
getCdtDtTm
()
!=
null
){
XMLGregorianCalendar
dbtDtTm
=
cdtTrfTxInf
.
get
(
0
).
getSttlmTmIndctn
().
getCdtDtTm
();
String
hmm
=
DateUtil
.
format
(
dbtDtTm
,
"HHmm"
);
field13cList
.
add
(
"/RNCTIME/"
+
hmm
+
"+0800"
);
}
if
(
obj
.
getFinInstnCdtTrf
().
getCdtTrfTxInf
().
get
(
0
).
getSttlmTmReq
()
!=
null
&&
obj
.
getFinInstnCdtTrf
().
getCdtTrfTxInf
().
get
(
0
).
getSttlmTmReq
().
getCLSTm
()
!=
null
){
XMLGregorianCalendar
dbtDtTm
=
cdtTrfTxInf
.
get
(
0
).
getSttlmTmReq
().
getCLSTm
();
String
hmm
=
DateUtil
.
format
(
dbtDtTm
,
"HHmm"
);
field13cList
.
add
(
"/CLSTIME/"
+
hmm
+
"+0800"
);
}
if
(
field13cList
.
size
()
>
0
)
{
map
.
put
(
"field13cList"
,
field13cList
);
String
clsDtTmStr
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.SttlmTmReq.CLSTm"
);
if
(
StringUtil
.
isNotEmpty
(
clsDtTmStr
))
{
XMLGregorianCalendar
clsDtTm
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
clsDtTmStr
);
String
hourTime
=
DateUtil
.
format
(
clsDtTm
,
"HHmm"
);
filed13CList
.
add
(
"/CLSTIME/"
+
hourTime
+
"+0800"
);
}
map
.
put
(
"field13CList"
,
filed13CList
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field20Generate.java
View file @
182bca3f
...
...
@@ -6,6 +6,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02
;
import
com.prowidesoftware.swift.model.mx.dic.GroupHeader35
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -18,13 +19,10 @@ public class Field20Generate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
GroupHeader35
grpHdr
=
finInstnCdtTrf
.
getGrpHdr
();
map
.
put
(
"field20"
,
grpHdr
.
getMsgId
());
String
field20
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
field20
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.MsgId"
);
map
.
put
(
"field20"
,
field20
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field21Generate.java
View file @
182bca3f
package
com
.
prowidesoftware
.
brilliance
.
mx2mt
.
mt202cov202
.
impl
;
import
com.prowidesoftware.brilliance.constants.Mx2MtConstants
;
import
com.prowidesoftware.brilliance.exception.SwiftException
;
import
com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.
swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02
;
import
com.prowidesoftware.
brilliance.util.StringUtil
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -16,18 +17,10 @@ public class Field21Generate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
String
field21
=
"NONREF"
;
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
"mxObj"
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
if
(
finInstnCdtTrf
.
getCdtTrfTxInf
()
!=
null
&&
finInstnCdtTrf
.
getCdtTrfTxInf
().
size
()
>
0
)
{
if
(
finInstnCdtTrf
.
getCdtTrfTxInf
().
get
(
0
)
!=
null
&&
finInstnCdtTrf
.
getCdtTrfTxInf
().
get
(
0
).
getPmtId
()
!=
null
&&
finInstnCdtTrf
.
getCdtTrfTxInf
().
get
(
0
).
getPmtId
().
getEndToEndId
()
!=
null
){
field21
=
finInstnCdtTrf
.
getCdtTrfTxInf
().
get
(
0
).
getPmtId
().
getEndToEndId
();
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
field21
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PmtId.EndToEndId"
);
if
(
StringUtil
.
isEmpty
(
field21
))
{
field21
=
"NONREF"
;
}
map
.
put
(
"field21"
,
field21
);
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field32AGenerate.java
View file @
182bca3f
...
...
@@ -5,16 +5,14 @@ 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.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.ActiveCurrencyAndAmount
;
import
com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13
;
import
com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
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
;
/**
* 直接取<IntrBkSttlmDt>节点作为32A的value date,Amt和Ccy看另一个节点,XXX是货币
...
...
@@ -28,34 +26,23 @@ public class Field32AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
;
String
intrBkSttlmDtStr
=
""
;
String
intrBkSttlmAmt
=
""
;
String
intrBkSttlmccy
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
intrBkSttlmDtValue
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrBkSttlmDt"
);
if
(
StringUtil
.
isNotEmpty
(
intrBkSttlmDtValue
))
{
XMLGregorianCalendar
intrBkSttlmDt
=
DatatypeFactory
.
newInstance
().
newXMLGregorianCalendar
(
intrBkSttlmDtValue
);
intrBkSttlmDtStr
=
DateUtil
.
format
(
intrBkSttlmDt
,
"yyMMdd"
);
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
!=
null
&&
cdtTrfTxInf
.
size
()
>
0
){
if
(
cdtTrfTxInf
.
get
(
0
)
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getIntrBkSttlmAmt
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getIntrBkSttlmAmt
().
getCcy
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getIntrBkSttlmAmt
().
getValue
()
!=
null
){
String
yyMMdd
=
""
;
if
(
cdtTrfTxInf
.
get
(
0
).
getIntrBkSttlmDt
()
!=
null
){
XMLGregorianCalendar
dt
=
cdtTrfTxInf
.
get
(
0
).
getIntrBkSttlmDt
();
yyMMdd
=
DateUtil
.
format
(
dt
,
"yyMMdd"
);
}
ActiveCurrencyAndAmount
intrBkSttlmAmt
=
cdtTrfTxInf
.
get
(
0
).
getIntrBkSttlmAmt
();
String
ccy
=
""
;
String
amtStr
=
""
;
if
(
intrBkSttlmAmt
!=
null
)
{
ccy
=
intrBkSttlmAmt
.
getCcy
();
BigDecimal
amt
=
intrBkSttlmAmt
.
getValue
();
amtStr
=
NumberUtil
.
formatAmt
(
amt
,
ccy
);
}
map
.
put
(
"field32A"
,
yyMMdd
+
ccy
+
amtStr
);
}
String
amt
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrBkSttlmAmt"
);
String
ccy
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrBkSttlmAmt@Ccy"
);
if
(
StringUtil
.
isNotEmpty
(
amt
)
&&
StringUtil
.
isNotEmpty
(
ccy
))
{
intrBkSttlmAmt
=
NumberUtil
.
formatAmt
(
new
BigDecimal
(
amt
),
ccy
);
intrBkSttlmccy
=
ccy
;
}
}
catch
(
Exception
e
)
{
map
.
put
(
"field32A"
,
intrBkSttlmDtStr
+
intrBkSttlmccy
+
intrBkSttlmAmt
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field52AGenerate.java
View file @
182bca3f
...
...
@@ -7,6 +7,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -28,75 +29,62 @@ public class Field52AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation13
cdtTrfTxInf
=
getCreditTransferTransactionInformation13
();
String
field52Option
=
""
;
String
field52A
=
""
;
if
(
cdtTrfTxInf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
dbtr
=
cdtTrfTxInf
.
getDbtr
();
if
(
dbtr
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
dbtr
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field52Option
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getDbtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field52A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field52A
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field52Option
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getDbtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field52A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field52A
=
nameAddr
;
}
}
String
field52
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Dbtr.FinInstnId"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Dbtr.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field52Option
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field52
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field52
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field52Option
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field52
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field52
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Dbtr.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Dbtr.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field52
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field52Option"
,
field52Option
);
map
.
put
(
"field52A"
,
field52
A
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
map
.
put
(
"field52A"
,
field52
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation13
getCreditTransferTransactionInformation13
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
);
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.DbtrAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field53AGenerate.java
View file @
182bca3f
...
...
@@ -7,6 +7,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -37,90 +38,88 @@ public class Field53AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
SettlementInformation13
sttlmInf
=
getSttlmInf
();
String
field53Option
=
""
;
String
field53A
=
""
;
if
(
sttlmInf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
instgRmbrsmntAgt
=
sttlmInf
.
getInstgRmbrsmntAgt
();
if
(
instgRmbrsmntAgt
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
instgRmbrsmntAgt
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field53Option
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
sttlmInf
.
getInstgRmbrsmntAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field53A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field53A
=
bicCode
;
}
}
}
String
field53
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId"
);
String
account
=
getAccount
();
String
sttlmAccount
=
getSttlmAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field53Option
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field53
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field53
=
bicCode
;
}
if
(
StringUtil
.
isEmpty
(
field53Option
))
{
String
account
=
getMtFormatAccount
(
sttlmInf
.
getSttlmAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field53Option
=
"B"
;
field53A
=
account
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
sttlmAccount
)){
field53Option
=
"B"
;
field53
=
sttlmAccount
;
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field53Option
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field53
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field53
=
name
;
}
if
(
StringUtil
.
isEmpty
(
field53Option
))
{
if
(
instgRmbrsmntAgt
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
instgRmbrsmntAgt
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field53Option
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
sttlmInf
.
getInstgRmbrsmntAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field53A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field53A
=
nameAddr
;
}
}
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgt.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field53
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field53Option"
,
field53Option
);
map
.
put
(
"field53A"
,
field53
A
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
map
.
put
(
"field53A"
,
field53
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
SettlementInformation13
getSttlmInf
()
{
SettlementInformation13
sttlmInf
=
null
;
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgtAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstgRmbrsmntAgtAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
if
(
finInstnCdtTrf
.
getGrpHdr
()
!=
null
)
{
sttlmInf
=
finInstnCdtTrf
.
getGrpHdr
().
getSttlmInf
();
}
private
String
getSttlmAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.SttlmAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.SttlmAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
return
sttlmInf
;
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field54AGenerate.java
View file @
182bca3f
...
...
@@ -6,6 +6,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -32,74 +33,62 @@ public class Field54AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
SettlementInformation13
sttlmInf
=
getSttlmInf
();
String
field54Option
=
""
;
String
field54A
=
""
;
if
(
sttlmInf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
instdRmbrsmntAgt
=
sttlmInf
.
getInstdRmbrsmntAgt
();
if
(
instdRmbrsmntAgt
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
instdRmbrsmntAgt
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field54Option
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
sttlmInf
.
getInstdRmbrsmntAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field54A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field54A
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field54Option
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
sttlmInf
.
getInstdRmbrsmntAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field54A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field54A
=
nameAddr
;
}
}
String
field54
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field54Option
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field54
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field54
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field54Option
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field54
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field54
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgt.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field54
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field54Option"
,
field54Option
);
map
.
put
(
"field54A"
,
field54
A
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
map
.
put
(
"field54A"
,
field54
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
SettlementInformation13
getSttlmInf
()
{
SettlementInformation13
sttlmInf
=
null
;
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
if
(
finInstnCdtTrf
.
getGrpHdr
()
!=
null
)
{
sttlmInf
=
finInstnCdtTrf
.
getGrpHdr
().
getSttlmInf
();
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgtAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
GRPHDR_PARENT_ELEMENT_NAME
,
document
,
"GrpHdr.SttlmInf.InstdRmbrsmntAgtAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
return
sttlmInf
;
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field56AGenerate.java
View file @
182bca3f
...
...
@@ -6,6 +6,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -31,74 +32,62 @@ public class Field56AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation13
cdtTrfTxInf
=
getCreditTransferTransactionInformation13
();
String
field56Option
=
""
;
String
field56A
=
""
;
if
(
cdtTrfTxInf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
dbtr
=
cdtTrfTxInf
.
getIntrmyAgt1
();
if
(
dbtr
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
dbtr
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field56Option
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getIntrmyAgt1Acct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field56A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field56A
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field56Option
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getIntrmyAgt1Acct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field56A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field56A
=
nameAddr
;
}
}
String
field56
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1.FinInstnId"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field56Option
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field56
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field56
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field56Option
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field56
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field56
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field56
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field56Option"
,
field56Option
);
map
.
put
(
"field56A"
,
field56
A
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
map
.
put
(
"field56A"
,
field56
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation13
getCreditTransferTransactionInformation13
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
);
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1Acct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.IntrmyAgt1Acct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field57AGenerate.java
View file @
182bca3f
...
...
@@ -6,6 +6,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -31,75 +32,62 @@ public class Field57AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation13
cdtTrfTxInf
=
getCreditTransferTransactionInformation13
();
String
field57Option
=
""
;
String
field57A
=
""
;
if
(
cdtTrfTxInf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
dbtr
=
cdtTrfTxInf
.
getCdtrAgt
();
if
(
dbtr
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
dbtr
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field57Option
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getCdtrAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field57A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field57A
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field57Option
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getCdtrAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field57A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field57A
=
nameAddr
;
}
}
String
field57
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgt.FinInstnId"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgt.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field57Option
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field57
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field57
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field57Option
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field57
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field57
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgt.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field57
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field57Option"
,
field57Option
);
map
.
put
(
"field57A"
,
field57
A
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
map
.
put
(
"field57A"
,
field57
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation13
getCreditTransferTransactionInformation13
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
);
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgtAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAgtAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field58AGenerate.java
View file @
182bca3f
...
...
@@ -6,6 +6,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -31,75 +32,62 @@ public class Field58AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation13
cdtTrfTxInf
=
getCreditTransferTransactionInformation13
();
String
field58Option
=
""
;
String
field58A
=
""
;
if
(
cdtTrfTxInf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
dbtr
=
cdtTrfTxInf
.
getCdtr
();
if
(
dbtr
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
dbtr
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field58Option
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getCdtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field58A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field58A
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field58Option
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
cdtTrfTxInf
.
getCdtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field58A
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field58A
=
nameAddr
;
}
}
String
field58
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Cdtr.FinInstnId"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Cdtr.FinInstnId.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field58Option
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field58
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field58
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
)){
field58Option
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field58
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field58
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Cdtr.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.Cdtr.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field58
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field58Option"
,
field58Option
);
map
.
put
(
"field58A"
,
field58
A
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
map
.
put
(
"field58A"
,
field58
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation13
getCreditTransferTransactionInformation13
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
);
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.CdtrAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/Field72Generate.java
View file @
182bca3f
...
...
@@ -6,6 +6,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -37,6 +38,70 @@ public class Field72Generate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
List
<
String
>
field72List
=
new
ArrayList
<>();
List
<
String
>
field72TmpList
=
new
ArrayList
<>();
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PrvsInstgAgt1.FinInstnId"
);
if
(
StringUtil
.
isEmpty
(
bicCode
))
{
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PrvsInstgAgt.FinInstnId"
);
}
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PrvsInstgAgt1.FinInstnId.Nm"
);
if
(
StringUtil
.
isEmpty
(
name
))
{
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.PrvsInstgAgt.FinInstnId.Nm"
);
}
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
bicCode
=
Mx2MtConstants
.
INS
+
bicCode
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
bicCode
,
35
,
"//"
));
}
else
if
(
StringUtil
.
isNotEmpty
(
name
))
{
name
=
Mx2MtConstants
.
INS
+
name
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
name
,
35
,
"//"
));
}
String
instrForCdtrAgtCard
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.InstrForCdtrAgt.Cd"
);
String
instrForCdtrAgtInstrInf
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.InstrForCdtrAgt.InstrInf"
);
if
(
instrForCdtrAgtCard
==
null
&&
StringUtil
.
isNotEmpty
(
instrForCdtrAgtInstrInf
))
{
String
cdtrAgtCode
=
Mx2MtConstants
.
ACC
+
instrForCdtrAgtInstrInf
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
cdtrAgtCode
,
35
,
"//"
));
}
else
if
(
Instruction5Code
.
PHOB
.
equals
(
Instruction5Code
.
valueOf
(
instrForCdtrAgtCard
))
&&
StringUtil
.
isNotEmpty
(
instrForCdtrAgtInstrInf
))
{
String
cdtrAgtCode
=
Mx2MtConstants
.
PHONBEN
+
instrForCdtrAgtInstrInf
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
cdtrAgtCode
,
35
,
"//"
));
}
else
if
(
Instruction5Code
.
TELB
.
equals
(
Instruction5Code
.
valueOf
(
instrForCdtrAgtCard
))
&&
StringUtil
.
isNotEmpty
(
instrForCdtrAgtInstrInf
))
{
String
cdtrAgtCode
=
Mx2MtConstants
.
PHONBEN
+
instrForCdtrAgtInstrInf
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
cdtrAgtCode
,
35
,
"//"
));
}
String
instrForNxtAgtCard
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.InstrForNxtAgt.Cd"
);
String
instrForNxtAgtInstrInf
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.InstrForNxtAgt.InstrInf"
);
if
(
StringUtil
.
isEmpty
(
instrForNxtAgtCard
)
&&
StringUtil
.
isNotEmpty
(
instrForNxtAgtInstrInf
))
{
String
nextAgentCode
=
Mx2MtConstants
.
REC
+
instrForNxtAgtInstrInf
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
nextAgentCode
,
35
,
"//"
));
}
else
if
(
Instruction4Code
.
TELA
.
equals
(
Instruction4Code
.
valueOf
(
instrForNxtAgtCard
))
&&
StringUtil
.
isNotEmpty
(
instrForNxtAgtInstrInf
))
{
String
nextAgentCode
=
Mx2MtConstants
.
TELE
+
instrForNxtAgtInstrInf
;
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
nextAgentCode
,
35
,
"//"
));
}
else
if
(
Instruction4Code
.
PHOA
.
equals
(
Instruction4Code
.
valueOf
(
instrForNxtAgtCard
))
&&
StringUtil
.
isNotEmpty
(
instrForNxtAgtInstrInf
))
{
String
field56Option
=
(
String
)
map
.
get
(
"field56Option"
);
String
nextAgentCode
=
""
;
if
(
StringUtil
.
isEmpty
(
field56Option
))
{
nextAgentCode
=
Mx2MtConstants
.
PHON
+
instrForNxtAgtInstrInf
;
}
else
{
nextAgentCode
=
Mx2MtConstants
.
PHONIBK
+
instrForNxtAgtInstrInf
;
}
field72TmpList
.
addAll
(
StringUtil
.
outStringList
(
nextAgentCode
,
35
,
"//"
));
}
for
(
int
i
=
0
;
i
<
field72TmpList
.
size
();
i
++)
{
if
(
i
==
6
)
break
;
if
(
i
==
0
)
{
field72List
.
add
(
":72:"
+
field72TmpList
.
get
(
i
));
}
else
{
field72List
.
add
(
field72TmpList
.
get
(
i
));
}
}
map
.
put
(
"field72List"
,
field72List
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
try
{
CreditTransferTransactionInformation13
cdtTrfTxInf
=
getCreditTransferTransactionInformation13
();
StringBuilder
sb
=
new
StringBuilder
();
String
field72
=
""
;
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/cov/Field50AGenerate.java
View file @
182bca3f
...
...
@@ -6,6 +6,7 @@ import com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -34,74 +35,61 @@ public class Field50AGenerate extends AbstractMx2MtFieldsGenerate {
public
void
fieldsGenerate
()
throws
SwiftException
{
// TODO 50F取值待补充
try
{
CreditTransferTransactionInformation12
undrlygCstmrCdtTrf
=
getUndrlygCstmrCdtTrf
();
String
field50BOption
=
""
;
String
field50B
=
""
;
if
(
undrlygCstmrCdtTrf
!=
null
)
{
PartyIdentification32
dbtr
=
undrlygCstmrCdtTrf
.
getDbtr
();
if
(
dbtr
!=
null
)
{
Party6Choice
id
=
dbtr
.
getId
();
if
(
dbtr
.
getId
()
!=
null
&&
dbtr
.
getId
().
getOrgId
()
!=
null
&&
StringUtil
.
isNotEmpty
(
dbtr
.
getId
().
getOrgId
().
getBICOrBEI
()))
{
String
bicCode
=
dbtr
.
getId
().
getOrgId
().
getBICOrBEI
();
field50BOption
=
"A"
;
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getDbtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field50B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field50B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
dbtr
.
getNm
()))
{
field50BOption
=
"K"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
dbtr
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getDbtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field50B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field50B
=
nameAddr
;
}
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr.Id.OrgId"
);
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr.Nm"
);
String
account
=
getAccount
();
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field50BOption
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field50B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field50B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
))
{
field50BOption
=
"K"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field50B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field50B
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Dbtr.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field50B
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field50BOption"
,
field50BOption
);
map
.
put
(
"field50B"
,
field50B
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation12
getUndrlygCstmrCdtTrf
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
();
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAcct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/cov/FieldB33BGenerate.java
View file @
182bca3f
package
com
.
prowidesoftware
.
brilliance
.
mx2mt
.
mt202cov202
.
impl
.
cov
;
import
com.prowidesoftware.brilliance.constants.Mx2MtConstants
;
import
com.prowidesoftware.brilliance.exception.SwiftException
;
import
com.prowidesoftware.brilliance.mx2mt.AbstractMx2MtFieldsGenerate
;
import
com.prowidesoftware.brilliance.util.NumberUtil
;
import
com.prowidesoftware.brilliance.util.StringUtil
;
import
com.prowidesoftware.swift.model.mx.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13
;
import
com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -23,23 +26,13 @@ public class FieldB33BGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
"mxObj"
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
;
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
filed33B
=
""
;
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
!=
null
&&
cdtTrfTxInf
.
size
()
>
0
&&
cdtTrfTxInf
.
get
(
0
)
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
()
!=
null
){
if
(
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getInstdAmt
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getInstdAmt
().
getCcy
()
!=
null
){
String
ccy
=
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getInstdAmt
().
getCcy
();
BigDecimal
amt
=
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getInstdAmt
().
getValue
();
String
amtStr
=
NumberUtil
.
formatAmt
(
amt
,
ccy
);
filed33B
=
ccy
+
amtStr
;
}
String
ccy
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.InstdAmt@Ccy"
);
String
amt
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.InstdAmt"
);
if
(
StringUtil
.
isNotEmpty
(
ccy
)
&&
StringUtil
.
isNotEmpty
(
amt
))
{
String
amtStr
=
NumberUtil
.
formatAmt
(
new
BigDecimal
(
amt
),
ccy
);
filed33B
=
ccy
+
amtStr
;
}
map
.
put
(
"field33B"
,
filed33B
);
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/cov/FieldB52AGenerate.java
View file @
182bca3f
...
...
@@ -4,13 +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.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* 1,若<BICFI>节点有值,则取为B\52A,且BIC取此值
* 2,若节点<IBAN>有值,则在此节点值前面加上“/”后,作为52A的账号;
...
...
@@ -31,75 +28,61 @@ public class FieldB52AGenerate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation12
undrlygCstmrCdtTrf
=
getUndrlygCstmrCdtTrf
();
String
field52BOption
=
""
;
String
field52B
=
""
;
if
(
undrlygCstmrCdtTrf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
dbtr
=
undrlygCstmrCdtTrf
.
getDbtrAgt
();
if
(
dbtr
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
dbtr
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field52BOption
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getDbtrAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field52B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field52B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field52BOption
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getDbtrAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field52B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field52B
=
nameAddr
;
}
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId"
);
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId.Nm"
);
String
account
=
getAccount
();
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field52BOption
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field52B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field52B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
))
{
field52BOption
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field52B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field52B
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgt.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field52B
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
map
.
put
(
"field52BOption"
,
field52BOption
);
map
.
put
(
"field52B"
,
field52B
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation12
getUndrlygCstmrCdtTrf
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
();
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgtAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.DbtrAgtAcct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/cov/FieldB56Generate.java
View file @
182bca3f
...
...
@@ -4,13 +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.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* 1,若节点<BICFI>有值,则设置B\56 option为“A”,同时BIC取此栏位;
* 2,若节点<IBAN>有值,则作为56A的账号;
...
...
@@ -38,80 +35,78 @@ public class FieldB56Generate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation12
undrlygCstmrCdtTrf
=
getUndrlygCstmrCdtTrf
();
String
field56BOption
=
""
;
String
field56B
=
""
;
if
(
undrlygCstmrCdtTrf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
intrmyAgt1
=
undrlygCstmrCdtTrf
.
getIntrmyAgt1
();
if
(
intrmyAgt1
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
intrmyAgt1
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field56BOption
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getIntrmyAgt1Acct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field56B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field56B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field56BOption
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getIntrmyAgt1Acct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field56B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;
}
else
{
field56B
=
nameAddr
;
}
}
else
{
if
(
finInstnId
.
getClrSysMmbId
()
!=
null
&&
StringUtil
.
isNotEmpty
(
finInstnId
.
getClrSysMmbId
().
getMmbId
()))
{
field56BOption
=
"C"
;
field56B
=
"/"
+
finInstnId
.
getClrSysMmbId
().
getMmbId
();
}
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId"
);
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId.Nm"
);
String
account
=
getAccount
();
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field56BOption
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field56B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field56B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
))
{
field56BOption
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field56B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field56B
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field56B
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
else
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field56BOption
=
"C"
;
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1Acct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1Acct.Id.Othr.Id"
);
String
mmbId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1.FinInstnId.ClrSysMmbId.MmbId"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
else
if
(
StringUtil
.
isNotEmpty
(
mmbId
))
{
account
=
"/"
+
mmbId
;
}
else
{
account
=
"/"
+
iban
;
}
if
(
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
field56B
=
account
;
}
map
.
put
(
"field56BOption"
,
field56BOption
);
map
.
put
(
"field56B"
,
field56B
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation12
getUndrlygCstmrCdtTrf
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
();
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1Acct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.IntrmyAgt1Acct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/cov/FieldB57Generate.java
View file @
182bca3f
...
...
@@ -4,13 +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.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* 57A
* 1,若节点<BICFI>有值,则设置B\57 option为“A”,同时BIC取此栏位;
...
...
@@ -36,80 +33,78 @@ public class FieldB57Generate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation12
undrlygCstmrCdtTrf
=
getUndrlygCstmrCdtTrf
();
String
field57BOption
=
""
;
String
field57B
=
""
;
if
(
undrlygCstmrCdtTrf
!=
null
)
{
BranchAndFinancialInstitutionIdentification4
cdtrAgt
=
undrlygCstmrCdtTrf
.
getCdtrAgt
();
if
(
cdtrAgt
!=
null
)
{
FinancialInstitutionIdentification7
finInstnId
=
cdtrAgt
.
getFinInstnId
();
if
(
finInstnId
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getBIC
()))
{
field57BOption
=
"A"
;
String
bicCode
=
finInstnId
.
getBIC
();
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getCdtrAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field57B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field57B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
finInstnId
.
getNm
()))
{
field57BOption
=
"D"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
finInstnId
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getCdtrAgtAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field57B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;
}
else
{
field57B
=
nameAddr
;
}
}
else
{
if
(
finInstnId
.
getClrSysMmbId
()
!=
null
&&
StringUtil
.
isNotEmpty
(
finInstnId
.
getClrSysMmbId
().
getMmbId
()))
{
field57BOption
=
"C"
;
field57B
=
"/"
+
finInstnId
.
getClrSysMmbId
().
getMmbId
();
}
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId"
);
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId.Nm"
);
String
account
=
getAccount
();
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field57BOption
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field57B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field57B
=
bicCode
;
}
}
else
if
(
StringUtil
.
isNotEmpty
(
name
))
{
field57BOption
=
"D"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field57B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field57B
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field57B
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
else
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field57BOption
=
"C"
;
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgtAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgtAcct.Id.Othr.Id"
);
String
mmbId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgt.FinInstnId.ClrSysMmbId.MmbId"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
else
if
(
StringUtil
.
isNotEmpty
(
mmbId
))
{
account
=
"/"
+
mmbId
;
}
else
{
account
=
"/"
+
iban
;
}
if
(
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
field57B
=
account
;
}
map
.
put
(
"field57BOption"
,
field57BOption
);
map
.
put
(
"field57B"
,
field57B
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation12
getUndrlygCstmrCdtTrf
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
();
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgtAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAgtAcct.Id.Othr.Id"
);
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/cov/FieldB59Generate.java
View file @
182bca3f
...
...
@@ -4,13 +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.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.*
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* 1,若节点<Nm>有值,则设置B\59 option为“”,且名称取自此节点,而地址需要合并截取???
* 2,若节点<IBAN>有值,则在此节点的值前面加上“/”后,作为B\59账号的值;
...
...
@@ -32,73 +29,62 @@ public class FieldB59Generate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
CreditTransferTransactionInformation12
undrlygCstmrCdtTrf
=
getUndrlygCstmrCdtTrf
();
String
field59BOption
=
""
;
String
field59B
=
""
;
if
(
undrlygCstmrCdtTrf
!=
null
)
{
PartyIdentification32
cdtr
=
undrlygCstmrCdtTrf
.
getCdtr
();
if
(
cdtr
!=
null
)
{
if
(
StringUtil
.
isNotEmpty
(
cdtr
.
getNm
()))
{
field59BOption
=
"NOLETTER"
;
String
nameAddr
=
""
;
PostalAddress6
pstlAdr
=
cdtr
.
getPstlAdr
();
if
(
pstlAdr
!=
null
)
{
List
<
String
>
adrLineList
=
pstlAdr
.
getAdrLine
();
if
(
adrLineList
.
size
()
>
0
)
{
for
(
int
i
=
0
;
i
<
adrLineList
.
size
();
i
++)
{
if
(
i
==
4
)
{
break
;
}
String
adrLine
=
adrLineList
.
get
(
i
);
if
(
adrLine
.
length
()
>
35
)
{
adrLine
=
adrLine
.
substring
(
0
,
35
);
}
if
(
i
==
0
)
{
nameAddr
+=
adrLine
;
}
else
{
nameAddr
+=
Mx2MtConstants
.
NEW_LINE
+
adrLine
;
}
}
}
}
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getCdtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field59B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
nameAddr
;;
}
else
{
field59B
=
nameAddr
;
}
}
else
if
(
cdtr
.
getId
()
!=
null
&&
cdtr
.
getId
().
getOrgId
()
!=
null
&&
StringUtil
.
isNotEmpty
(
cdtr
.
getId
().
getOrgId
().
getBICOrBEI
()))
{
String
bicCode
=
cdtr
.
getId
().
getOrgId
().
getBICOrBEI
();
field59BOption
=
"A"
;
String
account
=
getMtFormatAccount
(
undrlygCstmrCdtTrf
.
getCdtrAcct
());
if
(!
StringUtil
.
isEmpty
(
account
))
{
field59B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field59B
=
bicCode
;
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
bicCode
=
getBicCode
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr.Id.OrgId"
);
String
account
=
getAccount
();
String
name
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr.Nm"
);
if
(
StringUtil
.
isNotEmpty
(
name
)){
field59BOption
=
"NOLETTER"
;
if
(
name
.
length
()
>
35
)
name
=
name
.
substring
(
0
,
35
);
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field59B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
name
;
}
else
{
field59B
=
name
;
}
int
addressCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr.PstlAdr.AdrLine"
);
if
(
addressCounts
>
0
)
{
for
(
int
i
=
0
;
i
<
addressCounts
;
i
++)
{
if
(
i
==
3
)
break
;
String
address
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.Cdtr.PstlAdr.AdrLine("
+
i
+
")"
);
if
(
address
.
length
()
>
35
)
address
=
address
.
substring
(
0
,
35
);
field59B
+=
Mx2MtConstants
.
NEW_LINE
+
address
;
}
}
}
else
if
(
StringUtil
.
isNotEmpty
(
bicCode
))
{
field59BOption
=
"A"
;
if
(
StringUtil
.
isNotEmpty
(
account
))
{
field59B
=
account
+
Mx2MtConstants
.
NEW_LINE
+
bicCode
;
}
else
{
field59B
=
bicCode
;
}
}
map
.
put
(
"field59BOption"
,
field59BOption
);
map
.
put
(
"field59B"
,
field59B
);
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
public
CreditTransferTransactionInformation12
getUndrlygCstmrCdtTrf
()
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
null
;
}
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
.
size
()
>
0
)
{
return
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
();
}
else
{
return
null
;
private
String
getAccount
()
{
try
{
String
account
=
""
;
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
String
iban
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAcct.Id.IBAN"
);
String
otherId
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.CdtrAcct.Id.Othr.Id"
);
//String schmeNameCd = getXmlNodeValue(Mx2MtConstants.MAINBODY_PARENT_ELEMENT_NAME, document, "CdtTrfTxInf.DbtrAgtAcct.Id.SchmeNm.Cd");
if
(
StringUtil
.
isNotEmpty
(
iban
))
{
account
=
"/"
+
iban
;
}
else
if
(
StringUtil
.
isNotEmpty
(
otherId
))
{
account
=
"//CH"
+
otherId
;
}
if
(
StringUtil
.
isNotEmpty
(
account
)
&&
account
.
length
()
>
35
)
{
account
=
account
.
substring
(
0
,
35
);
}
return
account
;
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
e
.
getMessage
());
}
}
}
...
...
src/main/java/com/prowidesoftware/brilliance/mx2mt/mt202cov202/impl/cov/FieldB70Generate.java
View file @
182bca3f
...
...
@@ -4,14 +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.MxPacs00900102
;
import
com.prowidesoftware.swift.model.mx.dic.CreditTransferTransactionInformation13
;
import
com.prowidesoftware.swift.model.mx.dic.FinancialInstitutionCreditTransferV02
;
import
org.dom4j.Document
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.List
;
/**
* 取此节点按4*35的格式拆分,放入70栏位中(最多4行每行最多35个字符)
* <CdtTrfTxInf>[1]<UndrlygCstmrCdtTrf><RmtInf><Ustrd>[1]
...
...
@@ -23,28 +19,16 @@ public class FieldB70Generate extends AbstractMx2MtFieldsGenerate {
@Override
public
void
fieldsGenerate
()
throws
SwiftException
{
try
{
MxPacs00900102
obj
=
(
MxPacs00900102
)
map
.
get
(
Mx2MtConstants
.
MX_OBJECT
);
if
(
obj
==
null
||
obj
.
getFinInstnCdtTrf
()
==
null
)
{
return
;
}
String
field70B
=
""
;
FinancialInstitutionCreditTransferV02
finInstnCdtTrf
=
obj
.
getFinInstnCdtTrf
();
List
<
CreditTransferTransactionInformation13
>
cdtTrfTxInf
=
finInstnCdtTrf
.
getCdtTrfTxInf
();
if
(
cdtTrfTxInf
!=
null
&&
cdtTrfTxInf
.
size
()
>
0
&&
cdtTrfTxInf
.
get
(
0
)
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
()
!=
null
){
if
(
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getRmtInf
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getRmtInf
().
getUstrd
()
!=
null
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getRmtInf
().
getUstrd
().
size
()
>
0
&&
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getRmtInf
().
getUstrd
().
get
(
0
)
!=
null
){
String
s
=
cdtTrfTxInf
.
get
(
0
).
getUndrlygCstmrCdtTrf
().
getRmtInf
().
getUstrd
().
get
(
0
);
field70B
=
StringUtil
.
getStringByEnter
(
s
,
35
,
4
);
}
Document
document
=
(
Document
)
map
.
get
(
Mx2MtConstants
.
MX_XML_DOCUMENT
);
int
ustrdCounts
=
getXmlNodeCounts
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.RmtInf.Ustrd"
);
if
(
ustrdCounts
>
0
)
{
String
ustrd
=
getXmlNodeValue
(
Mx2MtConstants
.
MAINBODY_PARENT_ELEMENT_NAME
,
document
,
"CdtTrfTxInf.UndrlygCstmrCdtTrf.RmtInf.Ustrd(0)"
);
field70B
=
StringUtil
.
getStringByEnter
(
ustrd
,
35
,
4
);
}
map
.
put
(
"field70B"
,
field70B
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
SwiftException
(
"ERROR"
,
e
.
getMessage
());
}
}
}
src/main/java/com/prowidesoftware/brilliance/util/XmlUtil.java
View file @
182bca3f
...
...
@@ -192,16 +192,29 @@ public class XmlUtil {
String value = getXmlNodeValue(document, "Document.BkToCstmrStmt.GrpHdr.MsgId");
System.out.println(value);*/
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\swiftXml\\MxPacs00800102.xml"
);
/*
File file = new File(System.getProperty("user.dir") + "\\src\\main\\resources\\swiftXml\\MxPacs00800102.xml");
String xmlStr = FileUtils.readFileToString(file);
Document document = DocumentHelper.parseText(xmlStr);
String value = getXmlNodeValue(document, "Document.FIToFICstmrCdtTrf.CdtTrfTxInf.SttlmTmIndctn.DbtDtTm");
System
.
out
.
println
(
value
);
System.out.println(value);
*/
/*File file = new File(System.getProperty("user.dir") + "\\src\\main\\resources\\swiftXml\\MxPacs008
00102.xml");
File
file
=
new
File
(
System
.
getProperty
(
"user.dir"
)
+
"\\src\\main\\resources\\swiftXml\\MxPacs009
00102.xml"
);
String
xmlStr
=
FileUtils
.
readFileToString
(
file
);
Document
document
=
DocumentHelper
.
parseText
(
xmlStr
);
Map maps = getParentElementMaps(document);
maps.forEach((k,v) -> System.out.println(k + "=" + v));*/
Map
<
String
,
String
>
maps
=
getParentElementMaps
(
document
);
Set
<
String
>
sets
=
maps
.
keySet
();
Iterator
<
String
>
keys
=
sets
.
iterator
();
boolean
flag
=
false
;
for
(;
keys
.
hasNext
();
)
{
String
key
=
keys
.
next
();
String
value
=
maps
.
get
(
key
);
String
fullPath
=
value
+
"."
+
key
;
if
(
fullPath
.
indexOf
(
"UndrlygCstmrCdtTrf"
)
>
-
1
&&
StringUtil
.
isNotEmpty
(
getXmlNodeValue
(
document
,
fullPath
))){
flag
=
true
;
break
;
}
}
System
.
out
.
println
(
flag
);
}
}
src/main/resources/swiftXml/MxPacs00900102.xml
View file @
182bca3f
...
...
@@ -135,14 +135,17 @@
<Nm>
uiopp
</Nm>
</FinInstnId>
</CdtrAgt>
<PmtId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</PmtId>
<IntrBkSttlmAmt
Ccy=
"USD"
>
120274.34
</IntrBkSttlmAmt>
<IntrBkSttlmDt>
2022-04-02+08:00
</IntrBkSttlmDt>
<SttlmTmIndctn>
<DbtDtTm>
2022-04-02T1
3
:35:04.807+01:00
</DbtDtTm>
<DbtDtTm>
2022-04-02T1
2
:35:04.807+01:00
</DbtDtTm>
<CdtDtTm>
2022-04-02T13:35:04.807+01:00
</CdtDtTm>
</SttlmTmIndctn>
<SttlmTmReq>
<CLSTm>
1
3
:35:04.807+01:00
</CLSTm>
<CLSTm>
1
4
:35:04.807+01:00
</CLSTm>
</SttlmTmReq>
<IntrmyAgt1>
<FinInstnId>
...
...
src/main/resources/swiftXml/MxPacs00900102_COV.xml
View file @
182bca3f
...
...
@@ -85,10 +85,21 @@
</PstlAdr>
<Id>
<OrgId>
<AnyBIC>
anybic
01
</AnyBIC>
<AnyBIC>
ANYBIC
01
</AnyBIC>
</OrgId>
</Id>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>
S15612345678012345
</IBAN>
<Othr>
<Id>
789465123132165
</Id>
<SchmeNm>
<Cd>
741852
</Cd>
</SchmeNm>
</Othr>
</Id>
</DbtrAcct>
<DbtrAgt>
<FinInstnId>
<BIC>
QWERTYUI
</BIC>
...
...
@@ -98,9 +109,20 @@
<Nm>
nm333333
</Nm>
</FinInstnId>
</DbtrAgt>
<DbtrAgtAcct>
<Id>
<IBAN>
S123
</IBAN>
<Othr>
<Id>
789465123132165
</Id>
<SchmeNm>
<Cd>
741852
</Cd>
</SchmeNm>
</Othr>
</Id>
</DbtrAgtAcct>
<IntrmyAgt1>
<FinInstnId>
<
BIC>
ZXCVBNMK
</BIC
>
<
!--<BIC>ZXCVBNMK</BIC>--
>
<PstlAdr>
<AdrLine>
11
</AdrLine>
<AdrLine>
22
</AdrLine>
...
...
@@ -108,7 +130,7 @@
<AdrLine>
44
</AdrLine>
<AdrLine>
55
</AdrLine>
</PstlAdr>
<
Nm>
nm333333
</Nm
>
<
!--<Nm>nm333333</Nm>--
>
<ClrSysMmbId>
<MmbId>
mmbid01
</MmbId>
<ClrSysId>
...
...
@@ -118,6 +140,17 @@
</ClrSysMmbId>
</FinInstnId>
</IntrmyAgt1>
<IntrmyAgt1Acct>
<Id>
<IBAN>
S123456
</IBAN>
<Othr>
<Id>
789465123132165
</Id>
<SchmeNm>
<Cd>
741852
</Cd>
</SchmeNm>
</Othr>
</Id>
</IntrmyAgt1Acct>
<CdtrAgtAcct>
<Id>
<IBAN>
S15612345678012345
</IBAN>
...
...
@@ -217,15 +250,16 @@
</CdtrAgt>
<PmtId>
<EndToEndId>
end456
</EndToEndId>
<UETR>
8a562c67-ca16-48ba-b074-65581be6f001
</UETR>
</PmtId>
<IntrBkSttlmAmt
Ccy=
"USD"
>
120274.34
</IntrBkSttlmAmt>
<IntrBkSttlmDt>
2022-04-02+08:00
</IntrBkSttlmDt>
<SttlmTmIndctn>
<DbtDtTm>
2022-04-02T13:35:04.807+0
8
:00
</DbtDtTm>
<CdtDtTm>
2022-04-02T1
3:35:04.807+08
:00
</CdtDtTm>
<DbtDtTm>
2022-04-02T13:35:04.807+0
9
:00
</DbtDtTm>
<CdtDtTm>
2022-04-02T1
4:35:04.807+09
:00
</CdtDtTm>
</SttlmTmIndctn>
<SttlmTmReq>
<CLSTm>
1
3:35:04.807+08
:00
</CLSTm>
<CLSTm>
1
5:35:04.807+09
:00
</CLSTm>
</SttlmTmReq>
<IntrmyAgt1>
<FinInstnId>
...
...
src/main/resources/template/swift_mt_202cov.vm
View file @
182bca3f
{1:$vm.head1}{2:$vm.head2}#if(!$null.isNull($vm.head3) && $vm.head3.length()>0){3:$vm.head3}#end{4:
:20:$vm.field20
:21:$vm.field21
#if(!$null.isNull($vm.field13
cList) && $vm.field13c
List.size()!=0)
#foreach($field13C in $vm.field13
c
List)
#if(!$null.isNull($vm.field13
CList) && $vm.field13C
List.size()!=0)
#foreach($field13C in $vm.field13
C
List)
:13C:$field13C
#end
#end
...
...
@@ -39,8 +39,10 @@
#elseif($vm.field58Option=='D')
:58D:$vm.field58A
#end
#if(!$null.isNull($vm.field72) && $vm.field72.length() > 0)
:72:$vm.field72
#if(!$null.isNull($vm.field72List) && $vm.field72List.size()!=0)
#foreach($field72 in $vm.field72List)
$field72
#end
#end
#if($vm.field50BOption=='A')
:50A:$vm.field50B
...
...
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