Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
task-kolon
Project
Project
Details
Activity
Releases
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
piplus-v3
task-kolon
Commits
4ba74664
Commit
4ba74664
authored
Jun 15, 2016
by
刘文胜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kolon sftp
parent
d06ee7e4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
553 additions
and
129 deletions
+553
-129
KolonMemberServiceImpl.java
...java/com/hdp/pi/service/kolon/KolonMemberServiceImpl.java
+55
-63
FtpMemberUtil.java
src/main/java/com/hdp/pi/utils/kolon/FtpMemberUtil.java
+47
-26
FtpProductUtil.java
src/main/java/com/hdp/pi/utils/kolon/FtpProductUtil.java
+179
-0
FtpSaleUtil.java
src/main/java/com/hdp/pi/utils/kolon/FtpSaleUtil.java
+179
-0
kolon.dev.properties
src/main/resources/kolon.dev.properties
+32
-1
kolon.prod.properties
src/main/resources/kolon.prod.properties
+30
-0
kolon.properties
src/main/resources/kolon.properties
+0
-39
kolon.sandbox.properties
src/main/resources/kolon.sandbox.properties
+31
-0
No files found.
src/main/java/com/hdp/pi/service/kolon/KolonMemberServiceImpl.java
View file @
4ba74664
...
...
@@ -9,9 +9,7 @@ import java.util.Date;
import
java.util.List
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.net.ftp.FTPClient
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.transaction.annotation.Propagation
;
import
org.springframework.transaction.annotation.Transactional
;
...
...
@@ -25,7 +23,9 @@ import com.hdp.pi.repository.kolon.KolonMemberPreassignSnRepository;
import
com.hdp.pi.repository.kolon.KolonMemberRepository
;
import
com.hdp.pi.repository.kolon.ProductRepository
;
import
com.hdp.pi.repository.kolon.SaleRepository
;
import
com.hdp.pi.utils.kolon.FtpUtil
;
import
com.hdp.pi.utils.kolon.FtpMemberUtil
;
import
com.hdp.pi.utils.kolon.FtpProductUtil
;
import
com.hdp.pi.utils.kolon.FtpSaleUtil
;
import
com.hdp.pi.utils.kolon.Util
;
/**
...
...
@@ -35,22 +35,13 @@ import com.hdp.pi.utils.kolon.Util;
public
class
KolonMemberServiceImpl
implements
KolonMemberService
{
@Autowired
private
Ftp
Util
ftp
Util
;
private
Ftp
MemberUtil
ftpMember
Util
;
@Value
(
"${kolon.property.ftp.getFileName}"
)
private
String
memberFileName
;
@Value
(
"${kolon.property.ftp.saleFileName}"
)
private
String
saleFileName
;
@Value
(
"${kolon.property.ftp.productFileName}"
)
private
String
productFileName
;
@Autowired
private
FtpProductUtil
ftpProductUtil
;
/**
* FTP获取文件目录
*/
@Value
(
"${kolon.property.ftp.getFileDir}"
)
private
String
getFileDir
;
@Autowired
private
FtpSaleUtil
ftpSaleUtil
;
@Autowired
private
KolonMemberRepository
kolonMemberRepository
;
...
...
@@ -159,28 +150,23 @@ public class KolonMemberServiceImpl implements KolonMemberService {
@Override
public
void
syncMemberData
()
{
FTPClient
ftpClient
=
ftpUtil
.
getFTPClient
();
try
{
String
[]
listNames
=
ftpClient
.
listNames
(
getFileDir
);
for
(
String
name
:
listNames
){
String
sortName
=
name
.
substring
(
name
.
lastIndexOf
(
"/"
)
+
1
,
name
.
length
());
if
(
sortName
.
contains
(
memberFileName
)){
List
<
String
[]>
list
=
ftpUtil
.
readCSVFile
(
sortName
);
if
(
list
!=
null
)
{
boolean
firstRow
=
true
;
for
(
String
[]
row
:
list
)
{
if
(
firstRow
)
{
firstRow
=
false
;
}
else
{
this
.
matchData
(
row
);
}
String
[]
listNames
=
ftpMemberUtil
.
listNames
();
for
(
String
name
:
listNames
){
String
sortName
=
name
.
substring
(
name
.
lastIndexOf
(
"/"
)
+
1
,
name
.
length
());
if
(
ftpMemberUtil
.
contains
(
sortName
)){
List
<
String
[]>
list
=
ftpMemberUtil
.
readCSVFile
(
sortName
);
if
(
list
!=
null
)
{
boolean
firstRow
=
true
;
for
(
String
[]
row
:
list
)
{
if
(
firstRow
)
{
firstRow
=
false
;
}
else
{
this
.
matchData
(
row
);
}
}
ftpUtil
.
moveFile
(
sortName
);
}
ftpMemberUtil
.
moveFile
(
sortName
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
...
...
@@ -258,42 +244,53 @@ public class KolonMemberServiceImpl implements KolonMemberService {
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
rollbackFor
=
Exception
.
class
)
public
void
syncProductData
()
{
List
<
String
[]>
list
=
ftpUtil
.
readCSVFile
(
productFileName
);
if
(
list
!=
null
)
{
boolean
firstRow
=
true
;
for
(
String
[]
row
:
list
)
{
if
(
firstRow
)
{
firstRow
=
false
;
}
else
{
saveProductAbsentIf
(
newProduct
(
row
));
public
void
syncProductData
(){
String
[]
listNames
=
ftpProductUtil
.
listNames
();
for
(
String
name
:
listNames
){
String
sortName
=
name
.
substring
(
name
.
lastIndexOf
(
"/"
)
+
1
,
name
.
length
());
if
(
ftpProductUtil
.
contains
(
sortName
)){
List
<
String
[]>
list
=
ftpProductUtil
.
readCSVFile
(
sortName
);
if
(
list
!=
null
)
{
boolean
firstRow
=
true
;
for
(
String
[]
row
:
list
)
{
if
(
firstRow
)
{
firstRow
=
false
;
}
else
{
saveProductAbsentIf
(
newProduct
(
row
));
}
}
}
ftpProductUtil
.
moveFile
(
sortName
);
}
}
ftpUtil
.
moveFile
(
productFileName
);
}
@Override
@Transactional
(
propagation
=
Propagation
.
REQUIRED
,
rollbackFor
=
Exception
.
class
)
public
void
syncSaleData
()
{
List
<
String
[]>
list
=
ftpUtil
.
readCSVFile
(
saleFileName
);
if
(
list
!=
null
)
{
boolean
firstRow
=
true
;
for
(
String
[]
row
:
list
)
{
if
(
firstRow
)
{
firstRow
=
false
;
}
else
{
saveSale
(
newSale
(
row
));
String
[]
listNames
=
ftpSaleUtil
.
listNames
();
for
(
String
name
:
listNames
){
String
sortName
=
name
.
substring
(
name
.
lastIndexOf
(
"/"
)
+
1
,
name
.
length
());
if
(
ftpSaleUtil
.
contains
(
sortName
)){
List
<
String
[]>
list
=
ftpSaleUtil
.
readCSVFile
(
sortName
);
if
(
list
!=
null
)
{
boolean
firstRow
=
true
;
for
(
String
[]
row
:
list
)
{
if
(
firstRow
)
{
firstRow
=
false
;
}
else
{
saveSale
(
newSale
(
row
));
}
}
}
ftpSaleUtil
.
moveFile
(
sortName
);
}
}
ftpUtil
.
moveFile
(
saleFileName
);
}
@Override
public
Date
sendData
(
Date
time
)
{
Date
lastSendDate
=
time
;
//获取记录
List
<
KolonMember
>
kolonMembers
=
kolonMemberRepository
.
findByJoinTimeGreaterThanOrUpdateTimeGreaterThan
(
time
,
time
);
...
...
@@ -313,13 +310,12 @@ public class KolonMemberServiceImpl implements KolonMemberService {
}
}
CSVWriter
addWriter
=
ftpUtil
.
getCSVWriter
(
1
);
CSVWriter
addWriter
=
ftp
Member
Util
.
getCSVWriter
(
1
);
writeDataToFile
(
addWriter
,
addData
);
CSVWriter
updateWriter
=
ftpUtil
.
getCSVWriter
(
2
);
CSVWriter
updateWriter
=
ftp
Member
Util
.
getCSVWriter
(
2
);
writeDataToFile
(
updateWriter
,
updateData
);
//上传文件
uploadFile
();
ftpMemberUtil
.
uploadFile
();
return
lastSendDate
;
}
...
...
@@ -338,9 +334,5 @@ public class KolonMemberServiceImpl implements KolonMemberService {
e
.
printStackTrace
();
}
}
public
void
uploadFile
(){
ftpUtil
.
uploadFile
();
}
}
src/main/java/com/hdp/pi/utils/kolon/FtpUtil.java
→
src/main/java/com/hdp/pi/utils/kolon/Ftp
Member
Util.java
View file @
4ba74664
...
...
@@ -2,12 +2,10 @@ package com.hdp.pi.utils.kolon;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileNotFoundException
;
import
java.io.FileWriter
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.net.SocketException
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
...
...
@@ -25,68 +23,71 @@ import org.springframework.beans.factory.annotation.Value;
import
au.com.bytecode.opencsv.CSVReader
;
import
au.com.bytecode.opencsv.CSVWriter
;
public
class
FtpUtil
{
public
class
Ftp
Member
Util
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FtpUtil
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
Ftp
Member
Util
.
class
);
@Value
(
"${kolon.property.ftp.server}"
)
@Value
(
"${kolon.property.
member.
ftp.server}"
)
private
String
ftpServer
;
@Value
(
"${kolon.property.ftp.port}"
)
@Value
(
"${kolon.property.
member.
ftp.port}"
)
private
Integer
ftpPort
;
@Value
(
"${kolon.property.ftp.userName}"
)
@Value
(
"${kolon.property.
member.
ftp.userName}"
)
private
String
ftpUserName
;
@Value
(
"${kolon.property.ftp.password}"
)
@Value
(
"${kolon.property.
member.
ftp.password}"
)
private
String
ftpPassword
;
/**
* FTP获取文件目录
*/
@Value
(
"${kolon.property.ftp.getFileDir}"
)
@Value
(
"${kolon.property.
member.
ftp.getFileDir}"
)
private
String
getFileDir
;
@Value
(
"${kolon.property.member.ftp.getFileName}"
)
private
String
fileNameFormat
;
/**
* FTP获取存放历史文件目录
*/
@Value
(
"${kolon.property.ftp.getFileHistoryDir}"
)
@Value
(
"${kolon.property.
member.
ftp.getFileHistoryDir}"
)
private
String
getFileHistoryDir
;
/**
* 临时路径
*/
@Value
(
"${kolon.property.ftp.tempFileDir}"
)
@Value
(
"${kolon.property.
member.
ftp.tempFileDir}"
)
private
String
tempFileDir
;
/**
* 临时存放生成的新注册用户文件路径
*/
@Value
(
"${kolon.property.ftp.tempAddFileName}"
)
@Value
(
"${kolon.property.
member.
ftp.tempAddFileName}"
)
private
String
tempAddFileName
;
/**
* 临时存放生成的更新用户文件路径
*/
@Value
(
"${kolon.property.ftp.tempUpdateFileName}"
)
@Value
(
"${kolon.property.
member.
ftp.tempUpdateFileName}"
)
private
String
tempUpdateFileName
;
/**
* FTP上传文件目录
*/
@Value
(
"${kolon.property.ftp.putFileDir}"
)
@Value
(
"${kolon.property.
member.
ftp.putFileDir}"
)
private
String
putFileDir
;
/**
* FTP上传新注册用户的文件名称
*/
@Value
(
"${kolon.property.ftp.putAddFileName}"
)
@Value
(
"${kolon.property.
member.
ftp.putAddFileName}"
)
private
String
putAddFileName
;
/**
* FTP上传更新用户的文件名称
*/
@Value
(
"${kolon.property.ftp.putUpdateFileName}"
)
@Value
(
"${kolon.property.
member.
ftp.putUpdateFileName}"
)
private
String
putUpdateFileName
;
/**
...
...
@@ -106,15 +107,14 @@ public class FtpUtil {
if
(!
FTPReply
.
isPositiveCompletion
(
reply
))
{
logger
.
error
(
"FTP server refused connection."
);
System
.
err
.
println
(
"FTP server refused connection."
);
System
.
exit
(
1
);
throw
new
RuntimeException
(
"FTP server refused connection."
);
}
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
();
logger
.
error
(
e
.
toString
());
throw
new
RuntimeException
(
e
);
}
return
ftpClient
;
}
/**
* 读取文件数据
*/
...
...
@@ -136,7 +136,7 @@ public class FtpUtil {
list
=
csvReader
.
readAll
();
csvReader
.
close
();
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
(
);
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
...
...
@@ -156,7 +156,6 @@ public class FtpUtil {
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
// 新的文件名
String
suffix
=
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
));
String
name
=
fileName
...
...
@@ -166,7 +165,7 @@ public class FtpUtil {
ftpClient
.
rename
(
getFileDir
+
fileName
,
getFileHistoryDir
+
newFileName
);
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
(
);
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
...
...
@@ -197,7 +196,7 @@ public class FtpUtil {
}
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
(
);
throw
new
RuntimeException
(
e
);
}
return
writer
;
}
...
...
@@ -219,8 +218,7 @@ public class FtpUtil {
ftpClient
.
storeFile
(
putAddFileName
.
replace
(
"YYYY-MM-dd"
,
sdf
.
format
(
new
Date
())),
addInputStream
);
ftpClient
.
storeFile
(
putUpdateFileName
.
replace
(
"YYYY-MM-dd"
,
sdf
.
format
(
new
Date
())),
updateInputStream
);
}
catch
(
Throwable
e
)
{
e
.
printStackTrace
();
logger
.
error
(
e
.
toString
());
throw
new
RuntimeException
(
e
);
}
}
...
...
@@ -239,4 +237,27 @@ public class FtpUtil {
}
}
public
String
[]
listNames
(){
String
[]
list
=
new
String
[
0
];
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
list
=
ftpClient
.
listNames
(
getFileDir
);
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
ftpClient
.
disconnect
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
list
;
}
public
boolean
contains
(
String
name
){
return
name
.
contains
(
fileNameFormat
);
}
}
src/main/java/com/hdp/pi/utils/kolon/FtpProductUtil.java
0 → 100644
View file @
4ba74664
package
com
.
hdp
.
pi
.
utils
.
kolon
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.apache.commons.net.ftp.FTP
;
import
org.apache.commons.net.ftp.FTPClient
;
import
org.apache.commons.net.ftp.FTPReply
;
import
org.apache.commons.net.ftp.FTPSClient
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
au.com.bytecode.opencsv.CSVReader
;
public
class
FtpProductUtil
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FtpProductUtil
.
class
);
@Value
(
"${kolon.property.product.ftp.server}"
)
private
String
ftpServer
;
@Value
(
"${kolon.property.product.ftp.port}"
)
private
Integer
ftpPort
;
@Value
(
"${kolon.property.product.ftp.userName}"
)
private
String
ftpUserName
;
@Value
(
"${kolon.property.product.ftp.password}"
)
private
String
ftpPassword
;
/**
* FTP获取文件目录
*/
@Value
(
"${kolon.property.product.ftp.getFileDir}"
)
private
String
getFileDir
;
@Value
(
"${kolon.property.product.ftp.fileName}"
)
private
String
fileNameFormat
;
/**
* FTP获取存放历史文件目录
*/
@Value
(
"${kolon.property.product.ftp.getFileHistoryDir}"
)
private
String
getFileHistoryDir
;
/**
* 获取ftp链接
*
* @return ftpClient
* */
public
FTPClient
getFTPClient
()
{
FTPSClient
ftpClient
=
null
;
try
{
ftpClient
=
new
FTPSClient
();
ftpClient
.
connect
(
ftpServer
,
ftpPort
);
ftpClient
.
enterLocalPassiveMode
();
ftpClient
.
login
(
ftpUserName
,
ftpPassword
);
ftpClient
.
setFileType
(
FTP
.
BINARY_FILE_TYPE
);
int
reply
=
ftpClient
.
getReplyCode
();
if
(!
FTPReply
.
isPositiveCompletion
(
reply
))
{
logger
.
error
(
"FTP server refused connection."
);
System
.
err
.
println
(
"FTP server refused connection."
);
throw
new
RuntimeException
(
"FTP server refused connection."
);
}
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
return
ftpClient
;
}
/**
* 读取文件数据
*/
public
List
<
String
[]>
readCSVFile
(
String
fileName
)
{
List
<
String
[]>
list
=
new
ArrayList
<
String
[]>();
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
InputStream
csv
=
ftpClient
.
retrieveFileStream
(
getFileDir
+
fileName
);
if
(
csv
==
null
)
{
logger
.
warn
(
"kolon数据同步失败,没有找到【"
+
getFileDir
+
fileName
+
"】数据文件"
);
return
null
;
}
InputStreamReader
inputStreamReader
=
new
InputStreamReader
(
csv
,
"UTF-8"
);
CSVReader
csvReader
=
new
CSVReader
(
inputStreamReader
);
list
=
csvReader
.
readAll
();
csvReader
.
close
();
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
ftpClient
.
disconnect
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
list
;
}
/**
* 移动文件
*/
public
void
moveFile
(
String
fileName
)
{
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
// 新的文件名
String
suffix
=
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
));
String
name
=
fileName
.
substring
(
0
,
fileName
.
lastIndexOf
(
"."
));
String
newFileName
=
name
+
"_"
+
getTime
()
+
suffix
;
ftpClient
.
rename
(
getFileDir
+
fileName
,
getFileHistoryDir
+
newFileName
);
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
ftpClient
.
disconnect
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
private
String
getTime
()
{
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd_HHmmss"
);
LocalDateTime
dateTime
=
LocalDateTime
.
now
();
String
formattedDateTime
=
dateTime
.
format
(
formatter
);
return
formattedDateTime
;
}
public
void
createdDirIfNotExist
(
String
path
)
{
File
file
=
new
File
(
path
);
if
(!
file
.
exists
()
&&
!
file
.
isDirectory
())
{
file
.
mkdir
();
}
}
public
String
[]
listNames
(){
String
[]
list
=
new
String
[
0
];
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
list
=
ftpClient
.
listNames
(
getFileDir
);
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
ftpClient
.
disconnect
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
list
;
}
public
boolean
contains
(
String
name
){
return
name
.
contains
(
fileNameFormat
);
}
}
src/main/java/com/hdp/pi/utils/kolon/FtpSaleUtil.java
0 → 100644
View file @
4ba74664
package
com
.
hdp
.
pi
.
utils
.
kolon
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
import
org.apache.commons.net.ftp.FTP
;
import
org.apache.commons.net.ftp.FTPClient
;
import
org.apache.commons.net.ftp.FTPReply
;
import
org.apache.commons.net.ftp.FTPSClient
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
au.com.bytecode.opencsv.CSVReader
;
public
class
FtpSaleUtil
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
FtpSaleUtil
.
class
);
@Value
(
"${kolon.property.sale.ftp.server}"
)
private
String
ftpServer
;
@Value
(
"${kolon.property.sale.ftp.port}"
)
private
Integer
ftpPort
;
@Value
(
"${kolon.property.sale.ftp.userName}"
)
private
String
ftpUserName
;
@Value
(
"${kolon.property.sale.ftp.password}"
)
private
String
ftpPassword
;
/**
* FTP获取文件目录
*/
@Value
(
"${kolon.property.sale.ftp.getFileDir}"
)
private
String
getFileDir
;
@Value
(
"${kolon.property.sale.ftp.fileName}"
)
private
String
fileNameFormat
;
/**
* FTP获取存放历史文件目录
*/
@Value
(
"${kolon.property.sale.ftp.getFileHistoryDir}"
)
private
String
getFileHistoryDir
;
/**
* 获取ftp链接
*
* @return ftpClient
* */
public
FTPClient
getFTPClient
()
{
FTPSClient
ftpClient
=
null
;
try
{
ftpClient
=
new
FTPSClient
();
ftpClient
.
connect
(
ftpServer
,
ftpPort
);
ftpClient
.
enterLocalPassiveMode
();
ftpClient
.
login
(
ftpUserName
,
ftpPassword
);
ftpClient
.
setFileType
(
FTP
.
BINARY_FILE_TYPE
);
int
reply
=
ftpClient
.
getReplyCode
();
if
(!
FTPReply
.
isPositiveCompletion
(
reply
))
{
logger
.
error
(
"FTP server refused connection."
);
System
.
err
.
println
(
"FTP server refused connection."
);
throw
new
RuntimeException
(
"FTP server refused connection."
);
}
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
return
ftpClient
;
}
/**
* 读取文件数据
*/
public
List
<
String
[]>
readCSVFile
(
String
fileName
)
{
List
<
String
[]>
list
=
new
ArrayList
<
String
[]>();
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
InputStream
csv
=
ftpClient
.
retrieveFileStream
(
getFileDir
+
fileName
);
if
(
csv
==
null
)
{
logger
.
warn
(
"kolon数据同步失败,没有找到【"
+
getFileDir
+
fileName
+
"】数据文件"
);
return
null
;
}
InputStreamReader
inputStreamReader
=
new
InputStreamReader
(
csv
,
"UTF-8"
);
CSVReader
csvReader
=
new
CSVReader
(
inputStreamReader
);
list
=
csvReader
.
readAll
();
csvReader
.
close
();
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
ftpClient
.
disconnect
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
list
;
}
/**
* 移动文件
*/
public
void
moveFile
(
String
fileName
)
{
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
// 新的文件名
String
suffix
=
fileName
.
substring
(
fileName
.
lastIndexOf
(
"."
));
String
name
=
fileName
.
substring
(
0
,
fileName
.
lastIndexOf
(
"."
));
String
newFileName
=
name
+
"_"
+
getTime
()
+
suffix
;
ftpClient
.
rename
(
getFileDir
+
fileName
,
getFileHistoryDir
+
newFileName
);
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
ftpClient
.
disconnect
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
private
String
getTime
()
{
DateTimeFormatter
formatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd_HHmmss"
);
LocalDateTime
dateTime
=
LocalDateTime
.
now
();
String
formattedDateTime
=
dateTime
.
format
(
formatter
);
return
formattedDateTime
;
}
public
void
createdDirIfNotExist
(
String
path
)
{
File
file
=
new
File
(
path
);
if
(!
file
.
exists
()
&&
!
file
.
isDirectory
())
{
file
.
mkdir
();
}
}
public
String
[]
listNames
(){
String
[]
list
=
new
String
[
0
];
FTPClient
ftpClient
=
null
;
try
{
ftpClient
=
this
.
getFTPClient
();
list
=
ftpClient
.
listNames
(
getFileDir
);
}
catch
(
Throwable
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
if
(
ftpClient
!=
null
){
try
{
ftpClient
.
disconnect
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
return
list
;
}
public
boolean
contains
(
String
name
){
return
name
.
contains
(
fileNameFormat
);
}
}
src/main/resources/kolon.dev.properties
View file @
4ba74664
...
...
@@ -11,4 +11,35 @@ spring.jpa.show-sql=true
dubbo.register
=
172.18.5.201:3181
kolon.property.businessCode
=
100001
\ No newline at end of file
kolon.property.businessCode
=
100001
kolon.property.member.ftp.server
=
112.124.57.138
kolon.property.member.ftp.port
=
21
kolon.property.member.ftp.userName
=
mark
kolon.property.member.ftp.password
=
yang19821123
kolon.property.member.ftp.getFileDir
=
/SCRM/export/
kolon.property.member.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.member.ftp.getFileName
=
Wechat_export
kolon.property.member.ftp.tempFileDir
=
/temp
kolon.property.member.ftp.tempAddFileName
=
/temp/tempAddContact.csv
kolon.property.member.ftp.tempUpdateFileName
=
/temp/tempUpdateContact.csv
kolon.property.member.ftp.putFileDir
=
/SCRM/
kolon.property.member.ftp.putAddFileName
=
newContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
updateContact_YYYY-MM-dd.csv
kolon.property.product.ftp.server
=
112.124.57.138
kolon.property.product.ftp.port
=
21
kolon.property.product.ftp.userName
=
mark
kolon.property.product.ftp.password
=
yang19821123
kolon.property.product.ftp.getFileDir
=
/SCRM/export/
kolon.property.product.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.product.ftp.getFileName
=
products
kolon.property.sale.ftp.server
=
112.124.57.138
kolon.property.sale.ftp.port
=
21
kolon.property.sale.ftp.userName
=
mark
kolon.property.sale.ftp.password
=
yang19821123
kolon.property.sale.ftp.getFileDir
=
/SCRM/export/
kolon.property.sale.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.sale.ftp.getFileName
=
sales
\ No newline at end of file
src/main/resources/kolon.prod.properties
View file @
4ba74664
...
...
@@ -12,3 +12,33 @@ spring.jpa.show-sql=false
dubbo.register
=
10.173.227.160:2181,10.173.224.92:2181,10.173.226.96:2181
kolon.property.businessCode
=
100073
kolon.property.member.ftp.server
=
112.124.57.138
kolon.property.member.ftp.port
=
21
kolon.property.member.ftp.userName
=
mark
kolon.property.member.ftp.password
=
yang19821123
kolon.property.member.ftp.getFileDir
=
/SCRM/export/
kolon.property.member.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.member.ftp.getFileName
=
Wechat_export
kolon.property.member.ftp.tempFileDir
=
/temp
kolon.property.member.ftp.tempAddFileName
=
/temp/tempAddContact.csv
kolon.property.member.ftp.tempUpdateFileName
=
/temp/tempUpdateContact.csv
kolon.property.member.ftp.putFileDir
=
/SCRM/
kolon.property.member.ftp.putAddFileName
=
newContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
updateContact_YYYY-MM-dd.csv
kolon.property.product.ftp.server
=
112.124.57.138
kolon.property.product.ftp.port
=
21
kolon.property.product.ftp.userName
=
mark
kolon.property.product.ftp.password
=
yang19821123
kolon.property.product.ftp.getFileDir
=
/SCRM/export/
kolon.property.product.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.product.ftp.getFileName
=
products
kolon.property.sale.ftp.server
=
112.124.57.138
kolon.property.sale.ftp.port
=
21
kolon.property.sale.ftp.userName
=
mark
kolon.property.sale.ftp.password
=
yang19821123
kolon.property.sale.ftp.getFileDir
=
/SCRM/export/
kolon.property.sale.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.sale.ftp.getFileName
=
sales
src/main/resources/kolon.properties
View file @
4ba74664
...
...
@@ -18,42 +18,3 @@ kolon.dubbo.port=21896
kolon.property.variableTypeName
=
KOLON_PROPERTY
kolon.property.variableCode
=
LAST_SEND_TIME
#kolon.property.ftp.server = kolon-report.emarsyshk.com
#kolon.property.ftp.port = 21
#kolon.property.ftp.userName = wechat@kolon-report.emarsyshk.com
#kolon.property.ftp.password = p&}e^MLPcNBI
kolon.property.ftp.server
=
112.124.57.138
kolon.property.ftp.port
=
21
kolon.property.ftp.userName
=
mark
kolon.property.ftp.password
=
yang19821123
kolon.property.ftp.getFileDir
=
/SCRM/export/
kolon.property.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.ftp.getFileName
=
Wechat_export
kolon.property.ftp.saleFileName
=
sales.csv
kolon.property.ftp.productFileName
=
products.csv
kolon.property.ftp.tempFileDir
=
/temp
kolon.property.ftp.tempAddFileName
=
/temp/tempAddContact.csv
kolon.property.ftp.tempUpdateFileName
=
/temp/tempUpdateContact.csv
kolon.property.ftp.putFileDir
=
/SCRM/
kolon.property.ftp.putAddFileName
=
newContact_YYYY-MM-dd.csv
kolon.property.ftp.putUpdateFileName
=
updateContact_YYYY-MM-dd.csv
#test dev
#kolon.property.ftp.server = 172.18.8.202
#kolon.property.ftp.port = 21
#kolon.property.ftp.userName = ftpuser
#kolon.property.ftp.password = 1234
#kolon.property.ftp.tempAddFileName = E:/FTP/SCRM/temp/tempAddContact.csv
#kolon.property.ftp.tempUpdateFileName = E:/FTP/SCRM/temp/tempUpdateContact.csv
src/main/resources/kolon.sandbox.properties
View file @
4ba74664
...
...
@@ -12,3 +12,34 @@ spring.jpa.show-sql=false
dubbo.register
=
115.29.165.17:2181
kolon.property.businessCode
=
100051
kolon.property.member.ftp.server
=
112.124.57.138
kolon.property.member.ftp.port
=
21
kolon.property.member.ftp.userName
=
mark
kolon.property.member.ftp.password
=
yang19821123
kolon.property.member.ftp.getFileDir
=
/SCRM/export/
kolon.property.member.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.member.ftp.getFileName
=
Wechat_export
kolon.property.member.ftp.tempFileDir
=
/temp
kolon.property.member.ftp.tempAddFileName
=
/temp/tempAddContact.csv
kolon.property.member.ftp.tempUpdateFileName
=
/temp/tempUpdateContact.csv
kolon.property.member.ftp.putFileDir
=
/SCRM/
kolon.property.member.ftp.putAddFileName
=
newContact_YYYY-MM-dd.csv
kolon.property.member.ftp.putUpdateFileName
=
updateContact_YYYY-MM-dd.csv
kolon.property.product.ftp.server
=
112.124.57.138
kolon.property.product.ftp.port
=
21
kolon.property.product.ftp.userName
=
mark
kolon.property.product.ftp.password
=
yang19821123
kolon.property.product.ftp.getFileDir
=
/SCRM/export/
kolon.property.product.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.product.ftp.getFileName
=
products
kolon.property.sale.ftp.server
=
112.124.57.138
kolon.property.sale.ftp.port
=
21
kolon.property.sale.ftp.userName
=
mark
kolon.property.sale.ftp.password
=
yang19821123
kolon.property.sale.ftp.getFileDir
=
/SCRM/export/
kolon.property.sale.ftp.getFileHistoryDir
=
/SCRM/history/
kolon.property.sale.ftp.getFileName
=
sales
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