Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
di
Project
Project
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
续晓东
di
Commits
e1f9dbba
Commit
e1f9dbba
authored
Apr 03, 2020
by
Xuxiaodong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加月数据入库代码
parent
5fa436dc
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
384 additions
and
108 deletions
+384
-108
DiApplication.java
src/main/java/com/jianju/di/DiApplication.java
+1
-0
PostGISMannager.java
src/main/java/com/jianju/di/Manager/PostGISMannager.java
+275
-2
PullFileTask.java
src/main/java/com/jianju/di/task/PullFileTask.java
+103
-105
application.yml
src/main/resources/application.yml
+5
-1
No files found.
src/main/java/com/jianju/di/DiApplication.java
View file @
e1f9dbba
...
@@ -9,6 +9,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
...
@@ -9,6 +9,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
import
java.io.*
;
import
java.io.*
;
@SpringBootApplication
@SpringBootApplication
@EnableScheduling
@EnableScheduling
public
class
DiApplication
{
public
class
DiApplication
{
...
...
src/main/java/com/jianju/di/Manager/PostGISMannager.java
View file @
e1f9dbba
...
@@ -6,8 +6,10 @@ import visad.browser.Convert;
...
@@ -6,8 +6,10 @@ import visad.browser.Convert;
import
java.io.*
;
import
java.io.*
;
import
java.sql.*
;
import
java.sql.*
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.ParsePosition
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
public
class
PostGISMannager
{
public
class
PostGISMannager
{
private
Connection
c
;
private
Connection
c
;
...
@@ -22,6 +24,36 @@ public class PostGISMannager {
...
@@ -22,6 +24,36 @@ public class PostGISMannager {
m_tablename
=
tablename
;
m_tablename
=
tablename
;
}
}
public
void
createLandPrecip
(
String
tableName
)
throws
SQLException
{
String
sql
=
"create table if not exists public."
+
tableName
+
"(byteData bytea,"
+
"time date,"
+
"minlon numeric,"
+
"maxlon numeric,"
+
"maxlat numeric,"
+
"minlat numeric,"
+
"type char(50),"
+
"dataCode char(50),"
+
"geom geometry);"
;
stmt
.
executeUpdate
(
sql
);
}
public
void
createCMAP
(
String
tableName
)
throws
SQLException
{
String
sql
=
"create table if not exists public."
+
tableName
+
"(byteData bytea,"
+
"time date,"
+
"minlon numeric,"
+
"maxlon numeric,"
+
"maxlat numeric,"
+
"minlat numeric,"
+
"type char(50),"
+
"dataCode char(50),"
+
"geom geometry);"
;
stmt
.
executeUpdate
(
sql
);
}
public
void
createOisstv2Mon
(
String
tableName
)
throws
SQLException
public
void
createOisstv2Mon
(
String
tableName
)
throws
SQLException
{
{
String
sql
=
"create table if not exists public."
+
tableName
+
String
sql
=
"create table if not exists public."
+
tableName
+
...
@@ -70,12 +102,125 @@ public class PostGISMannager {
...
@@ -70,12 +102,125 @@ public class PostGISMannager {
"geom geometry);"
;
"geom geometry);"
;
stmt
.
executeUpdate
(
sql
);
stmt
.
executeUpdate
(
sql
);
}
}
// public int insertLandPrecipToPG(String tableName,String dataPath) throws ParseException, IOException {
// int status=0;
// String geom;
// String type="precip";
// String datacode="REAN_NOAA_PRECIP_ORIGINAL";
// float minLat,maxLat,minLon,maxLon;
//
// Precip readCMAP=new Precip();
// float[][][] priecipData=readCMAP.readPrecip(dataPath);
// minLon=readCMAP.getMinlon();
// maxLat=readCMAP.getMaxlat();
// maxLon=readCMAP.getMaxlon();
// minLat=readCMAP.getMinlat();
// ArrayList<Date> arrayListsqlDate=readCMAP.getArrayListsqlDate();
// ArrayList<byte[]> arrayListbyte=readCMAP.getArrayListbyte();
// geom="POLYGON(("+minLon+" "+maxLat+","+maxLon+" "+maxLat+","+maxLon+" "+minLat+","+minLon+" "+minLat+","+minLon+" "+maxLat+"))";
//
//
// for(int i=0;i<arrayListsqlDate.size();i++)
// {
// PreparedStatement ps = null;
// ResultSet st = null;
// try
// {
// Date sqlDate= arrayListsqlDate.get(i);
// System.out.println("success connect");
// String sql ="insert into "+tableName+"(bytedata,time,minlon,maxlon,maxlat,minlat,type,dataCode,geom)" +
// " values(?,?,?,?,?,?,?,?,"+"'"+geom+"'"+")";
// try {
// ps = c.prepareStatement(sql);
// } catch (SQLException e) {
// e.printStackTrace();
// }
// float[][] tempData=priecipData[i];
// byte[] byteData= arrayListbyte.get(i);
// ps.setBytes(1, byteData);
// ps.setDate(2, sqlDate);
// ps.setFloat(3,minLon);
// ps.setFloat(4,maxLon);
// ps.setFloat(5,maxLat);
// ps.setFloat(6,minLat);
// ps.setString(7,type);
// ps.setString(8,datacode);
// status=ps.executeUpdate();
//
// }
// catch (Exception ex)
// {
// ex.printStackTrace(System.out);
// }
// }
//
// return status;
// }
// public int insertCMAPToPG(String tableName,String dataPath) throws ParseException, IOException {
// int status=0;
// String geom;
// String type="precip";
// String datacode="REAN_NOAA_PRECIP_ORIGINAL";
// float minLat,maxLat,minLon,maxLon;
//
// CMAP readCMAP=new CMAP();
// float[][][] priecipData=readCMAP.readCMAPData(dataPath);
// minLon=readCMAP.getMinlon();
// maxLat=readCMAP.getMaxlat();
// maxLon=readCMAP.getMaxlon();
// minLat=readCMAP.getMinlat();
// ArrayList<Date> arrayListsqlDate=readCMAP.getArrayListsqlDate();
// ArrayList<byte[]> arrayListbyte=readCMAP.getArrayListbyte();
// geom="POLYGON(("+minLon+" "+maxLat+","+maxLon+" "+maxLat+","+maxLon+" "+minLat+","+minLon+" "+minLat+","+minLon+" "+maxLat+"))";
//
//
// for(int i=0;i<arrayListsqlDate.size();i++)
// {
// PreparedStatement ps = null;
// ResultSet st = null;
// try
// {
// Date sqlDate= arrayListsqlDate.get(i);
// System.out.println("success connect");
// String sql ="insert into "+tableName+"(bytedata,time,minlon,maxlon,maxlat,minlat,type,dataCode,geom)" +
// " values(?,?,?,?,?,?,?,?,"+"'"+geom+"'"+")";
// try {
// ps = c.prepareStatement(sql);
// } catch (SQLException e) {
// e.printStackTrace();
// }
// float[][] tempData=priecipData[i];
// byte[] byteData= arrayListbyte.get(i);
// ps.setBytes(1, byteData);
// ps.setDate(2, sqlDate);
// ps.setFloat(3,minLon);
// ps.setFloat(4,maxLon);
// ps.setFloat(5,maxLat);
// ps.setFloat(6,minLat);
// ps.setString(7,type);
// ps.setString(8,datacode);
// status=ps.executeUpdate();
//
// }
// catch (Exception ex)
// {
// ex.printStackTrace(System.out);
// }
// }
//
// return status;
// }
// public int insertOisstv2MonToPG(String tableName,String dataPath,boolean ice) throws ParseException, IOException {
// public int insertOisstv2MonToPG(String tableName,String dataPath,boolean ice) throws ParseException, IOException {
// int status=0;
// int status=0;
// String geom;
// String geom;
// String type="oisst";
// String type="oisst";
// String datacode="REAN_NOAA_OISST_ORIGINAL";
// String datacode="REAN_NOAA_OISST_ORIGINAL";
// if(ice) {
// type="ice";
// datacode="REAN_NOAA_ICE_ORIGINAL";
// }
//
// String time;
// String time;
// float minLat,maxLat,minLon,maxLon;
// float minLat,maxLat,minLon,maxLon;
// ICEandSST readICESST=new ICEandSST();
// ICEandSST readICESST=new ICEandSST();
...
@@ -84,7 +229,6 @@ public class PostGISMannager {
...
@@ -84,7 +229,6 @@ public class PostGISMannager {
// maxLat=readICESST.getMaxlat();
// maxLat=readICESST.getMaxlat();
// maxLon=readICESST.getMaxlon();
// maxLon=readICESST.getMaxlon();
// minLat=readICESST.getMinlat();
// minLat=readICESST.getMinlat();
// minLat=-minLat;
// ArrayList<Integer> arrayListTimeInt =readICESST.getArrayListTimeInt();
// ArrayList<Integer> arrayListTimeInt =readICESST.getArrayListTimeInt();
// int Time= arrayListTimeInt.get(0);
// int Time= arrayListTimeInt.get(0);
// geom="POLYGON(("+minLon+" "+maxLat+","+maxLon+" "+maxLat+","+maxLon+" "+minLat+","+minLon+" "+minLat+","+minLon+" "+maxLat+"))";
// geom="POLYGON(("+minLon+" "+maxLat+","+maxLon+" "+maxLat+","+maxLon+" "+minLat+","+minLon+" "+minLat+","+minLon+" "+maxLat+"))";
...
@@ -122,6 +266,123 @@ public class PostGISMannager {
...
@@ -122,6 +266,123 @@ public class PostGISMannager {
// }
// }
// return status;
// return status;
// }
// }
public
int
insertGodasToPGMonth
(
String
tableName
,
String
gdasName
)
throws
IOException
,
SQLException
,
ParseException
{
String
name
=
""
;
int
lines
=
0
;
String
geom
;
String
type
=
"u"
;
String
type1
=
"v"
;
String
type2
=
"sst"
;
String
type3
=
"u_flx"
;
String
datacode
=
"REAN_GODAS_MUL_PEN"
;
String
time
;
float
minLat
,
maxLat
,
minLon
,
maxLon
;
String
mongoID
=
null
;
int
status
=
0
;
maxLat
=
(
float
)
64.499
;
minLat
=-
74
;
minLon
=
1
;
maxLon
=(
float
)
360
;
int
hou
=
1
;
name
=
gdasName
;
String
[]
temp
=
name
.
split
(
"\\\\"
);
String
filename
=
temp
[
temp
.
length
-
1
];
String
[]
strDate
=
filename
.
split
(
"\\."
);
int
intYear
=
Convert
.
getInt
(
strDate
[
2
]);
if
(
name
.
endsWith
(
".grb"
))
{
hou
++;
GribManager
data
=
new
GribManager
(
name
);
float
[]
depath
=
data
.
getDepth
();
float
[][]
sst
;
float
[][]
v
;
float
[][]
u
;
float
[][]
u_flx
;
byte
[]
bytessst
;
byte
[]
bytesv
;
byte
[]
bytesu
;
byte
[]
bytesu_flx
;
int
lat
=
data
.
getLat
();
int
lon
=
data
.
getLon
();
System
.
out
.
println
(
"插入第"
+
intYear
+
"条数据"
+
name
);
//datacode=s[7];
geom
=
"POLYGON(("
+
minLon
+
" "
+
maxLat
+
","
+
maxLon
+
" "
+
maxLat
+
","
+
maxLon
+
" "
+
minLat
+
","
+
minLon
+
" "
+
minLat
+
","
+
minLon
+
" "
+
maxLat
+
"))"
;
for
(
int
j
=
0
;
j
<
depath
.
length
;
j
++)
{
sst
=
data
.
getSST
(
j
);
v
=
data
.
getSST
(
j
);
u
=
data
.
getSST
(
j
);
u_flx
=
data
.
getU_flx
();
bytessst
=
floatArray2DToByteArray
(
sst
,
lat
,
lon
);
bytesv
=
floatArray2DToByteArray
(
v
,
lat
,
lon
);
bytesu
=
floatArray2DToByteArray
(
u
,
lat
,
lon
);
bytesu_flx
=
floatArray2DToByteArray
(
u_flx
,
lat
,
lon
);
PreparedStatement
ps
=
null
;
ResultSet
st
=
null
;
try
{
String
sql
=
"insert into "
+
tableName
+
"(bytedata,depth,time,minlon,maxlon,maxlat,minlat,type,dataCode,geom)"
+
" values(?,?,?,?,?,?,?,?,?,"
+
"'"
+
geom
+
"'"
+
")"
;
try
{
ps
=
c
.
prepareStatement
(
sql
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
ps
.
setBytes
(
1
,
bytessst
);
ps
.
setInt
(
2
,
(
int
)
depath
[
j
]);
ps
.
setInt
(
3
,
intYear
);
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
7
,
minLat
);
ps
.
setString
(
8
,
"sst"
);
ps
.
setString
(
9
,
datacode
);
ps
.
executeUpdate
();
ps
.
setBytes
(
1
,
bytesv
);
ps
.
setInt
(
2
,
(
int
)
depath
[
j
]);
ps
.
setInt
(
3
,
intYear
);
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
7
,
minLat
);
ps
.
setString
(
8
,
"v"
);
ps
.
setString
(
9
,
datacode
);
ps
.
executeUpdate
();
ps
.
setBytes
(
1
,
bytesu
);
ps
.
setInt
(
2
,
(
int
)
depath
[
j
]);
ps
.
setInt
(
3
,
intYear
);
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
7
,
minLat
);
ps
.
setString
(
8
,
"u"
);
ps
.
setString
(
9
,
datacode
);
ps
.
executeUpdate
();
if
(
j
==
0
)
{
ps
.
setBytes
(
1
,
bytesu_flx
);
ps
.
setInt
(
2
,
(
int
)
depath
[
j
]);
ps
.
setInt
(
3
,
intYear
);
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
7
,
minLat
);
ps
.
setString
(
8
,
"u_flx"
);
ps
.
setString
(
9
,
datacode
);
status
=
ps
.
executeUpdate
();
}
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
(
System
.
out
);
}
}
lines
++;
}
return
status
;
}
public
int
insertGodasToPG
(
String
tableName
,
String
gdasName
)
throws
IOException
,
SQLException
,
ParseException
{
public
int
insertGodasToPG
(
String
tableName
,
String
gdasName
)
throws
IOException
,
SQLException
,
ParseException
{
String
name
=
""
;
String
name
=
""
;
...
@@ -146,8 +407,19 @@ public class PostGISMannager {
...
@@ -146,8 +407,19 @@ public class PostGISMannager {
String
[]
temp
=
name
.
split
(
"\\\\"
);
String
[]
temp
=
name
.
split
(
"\\\\"
);
String
filename
=
temp
[
temp
.
length
-
1
];
String
filename
=
temp
[
temp
.
length
-
1
];
String
[]
strDate
=
filename
.
split
(
"\\."
);
String
[]
strDate
=
filename
.
split
(
"\\."
);
int
intYear
=
Convert
.
getInt
(
strDate
[
2
]);
int
intYear
=
Convert
.
getInt
(
strDate
[
2
].
substring
(
0
,
5
));
//int monthAndH=Convert.getInt(strDate[2].substring(6,8));
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
// 日期格式
java
.
util
.
Date
date
=
dateFormat
.
parse
(
strDate
[
2
]);
// 指定日期
Calendar
ca
=
Calendar
.
getInstance
();
//创建一个日期实例
ca
.
setTime
(
date
);
//实例化一个日期
int
H
=
ca
.
get
(
Calendar
.
DAY_OF_YEAR
)/
5
;
//获取是第多少天
intYear
=
intYear
*
10
+
H
;
if
(
name
.
endsWith
(
".grb"
))
{
if
(
name
.
endsWith
(
".grb"
))
{
hou
++;
hou
++;
GribManager
data
=
new
GribManager
(
name
);
GribManager
data
=
new
GribManager
(
name
);
...
@@ -418,4 +690,5 @@ public class PostGISMannager {
...
@@ -418,4 +690,5 @@ public class PostGISMannager {
}
}
return
out
.
toByteArray
();
return
out
.
toByteArray
();
}
}
}
}
src/main/java/com/jianju/di/task/PullFileTask.java
View file @
e1f9dbba
...
@@ -28,6 +28,11 @@ import java.util.List;
...
@@ -28,6 +28,11 @@ import java.util.List;
@Slf4j
@Slf4j
public
class
PullFileTask
{
public
class
PullFileTask
{
/**
*
*/
@Value
(
"${di.url}"
)
private
String
diUrl
;
/**
/**
* Ftp注入参数
* Ftp注入参数
*/
*/
...
@@ -61,154 +66,149 @@ public class PullFileTask {
...
@@ -61,154 +66,149 @@ public class PullFileTask {
@Value
(
"${postgis.dbname}"
)
@Value
(
"${postgis.dbname}"
)
private
String
dbName
;
private
String
dbName
;
//olr数据入库表名称
@Value
(
"${postgis.olrtbname}"
)
@Value
(
"${postgis.olrtbname}"
)
private
String
olrTbName
;
private
String
olrTbName
;
@Value
(
"${postgis.godastbname}"
)
//godasPentad数据入库表名称
private
String
godasTbName
;
@Value
(
"${postgis.godas.pentadtbname}"
)
private
String
godasPentadTbName
;
//godasMonthly数据入库表名称
@Value
(
"${postgis.godas.monthlytbname}"
)
private
String
godasMonthlyTbName
;
private
static
final
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
private
static
final
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyyMMdd"
);
private
static
final
SimpleDateFormat
yearDateFormat
=
new
SimpleDateFormat
(
"yyyy"
);
private
static
final
SimpleDateFormat
yearDateFormat
=
new
SimpleDateFormat
(
"yyyy"
);
private
final
FtpUtil
.
FtpConfig
ftpConfig
=
new
FtpUtil
.
FtpConfig
().
setHost
(
host
).
setPort
(
port
).
setUserName
(
userName
).
setPassword
(
password
);
private
final
FtpUtil
.
FtpConfig
ftpConfig
=
new
FtpUtil
.
FtpConfig
().
setHost
(
host
).
setPort
(
port
).
setUserName
(
userName
).
setPassword
(
password
);
//每隔五天执行一次;
@Scheduled
(
cron
=
"0 0 0 0/5 * ?"
)
/**
public
void
pullGodasFileAndSendDi
()
throws
Exception
{
*
* @throws Exception
*/
@Scheduled
(
cron
=
"0 0 20 * * ?"
)
public
void
pullPentadGodasFileAndSendDi
()
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
new
Date
());
c
.
setTime
(
new
Date
());
// -2 为ftp上传文件延迟的时间
// -2 为ftp上传文件延迟的时间
c
.
add
(
Calendar
.
DATE
,
-
2
);
c
.
add
(
Calendar
.
DATE
,
-
2
);
String
year
;
String
year
;
String
fileName
=
null
;
String
fileName
;
long
beforeDown
=
0
;
long
beforeDown
,
afterDown
;
long
afterDown
=
0
;
boolean
download
;
boolean
download
=
false
;
fileName
=
"godas.P."
+
dateFormat
.
format
(
c
.
getTime
())
+
".grb"
;
for
(
int
i
=
0
;
i
<=
5
;
i
++)
{
fileName
=
"godas.P."
+
dateFormat
.
format
(
c
.
getTime
())+
".grb"
;
year
=
yearDateFormat
.
format
(
c
.
getTime
());
year
=
yearDateFormat
.
format
(
c
.
getTime
());
beforeDown
=
System
.
currentTimeMillis
();
beforeDown
=
System
.
currentTimeMillis
();
download
=
FtpUtil
.
download
(
ftpConfig
,
godasRemotePath
+
year
+
"/"
,
fileName
,
localPath
,
fileName
);
download
=
FtpUtil
.
download
(
ftpConfig
,
godasRemotePath
+
year
+
"/"
,
fileName
,
localPath
,
fileName
);
if
(
download
)
{
if
(
download
)
{
log
.
info
(
"下载成功"
+
fileName
);
break
;
}
c
.
add
(
Calendar
.
DATE
,
-
1
);
}
if
(
download
)
{
log
.
info
(
"下载成功"
+
fileName
);
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
dbName
,
godasTbName
,
dbUserName
,
dbPassword
);
dbName
,
godasPentadTbName
,
dbUserName
,
dbPassword
);
postGIS
.
createTableGDAS
(
godasTbName
);
postGIS
.
createTableGDAS
(
godasPentadTbName
);
if
(
postGIS
.
insertGodasToPG
(
godasPentadTbName
,
localPath
+
fileName
)
>
0
)
{
log
.
info
(
"入库成功"
+
fileName
);
if
(
postGIS
.
insertGodasToPG
(
godasTbName
,
localPath
+
fileName
)>
0
){
// 发送Di -----------暂时修改到了这里 2020年4月2日19点02分
afterDown
=
System
.
currentTimeMillis
();
afterDown
=
System
.
currentTimeMillis
();
Date
start
=
new
Date
(
beforeDown
);
Date
start
=
new
Date
(
beforeDown
);
String
diJson
=
sendDi
(
c
.
getTime
(),
new
Date
(
beforeDown
),
new
Date
(
afterDown
),
fileName
,
"1"
);
String
diJson
=
sendDi
(
"godas数据入库"
,
"K.0436.0001.6666"
,
c
.
getTime
(),
new
Date
(
beforeDown
),
new
Date
(
afterDown
),
fileName
,
"1"
);
OkHttpClient
httpClient
=
new
OkHttpClient
();
OkHttpClient
httpClient
=
new
OkHttpClient
();
RequestBody
requestBody
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json; charset=utf-8"
),
diJson
);
RequestBody
requestBody
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json; charset=utf-8"
),
diJson
);
Request
request
=
new
Request
.
Builder
()
Request
request
=
new
Request
.
Builder
()
.
url
(
"http://127.0.0.1:29999/transfer"
)
.
url
(
diUrl
)
.
post
(
requestBody
)
.
post
(
requestBody
)
.
build
();
.
build
();
//发送请求获取响应
//发送请求获取响应
try
{
try
{
Response
response
=
httpClient
.
newCall
(
request
).
execute
();
Response
response
=
httpClient
.
newCall
(
request
).
execute
();
//判断请求是否成功
//判断请求是否成功
if
(
response
.
isSuccessful
())
{
if
(
response
.
isSuccessful
())
{
//打印服务端返回结果
//打印服务端返回结果
log
.
info
(
"请求代理返回结果==========:"
+
response
.
body
().
string
());
log
.
info
(
"请求代理返回结果==========:"
+
response
.
body
().
string
());
log
.
info
(
"请求di的Json========="
+
diJson
);
log
.
info
(
"请求di的Json========="
+
diJson
);
}
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
}
else
{
log
.
info
(
"下载失败"
+
fileName
);
}
}
else
{
log
.
info
(
"下载失败"
+
fileName
);
}
}
}
//每日20:10执行;
//每日20:10执行;
@Scheduled
(
cron
=
"0 10 20 * * ?"
)
@Scheduled
(
cron
=
"0 10 20 * * ?"
)
//@Scheduled(fixedRate = 10000)
//@Scheduled(fixedRate = 10000)
//@PostConstruct
//@PostConstruct
public
void
pullOlrFileAndSendDi
()
throws
Exception
{
public
void
pullOlrFileAndSendDi
()
throws
Exception
{
Calendar
c
=
Calendar
.
getInstance
();
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
new
Date
());
c
.
setTime
(
new
Date
());
c
.
add
(
Calendar
.
DATE
,
-
2
);
c
.
add
(
Calendar
.
DATE
,
-
2
);
String
fileName
=
"#"
+
dateFormat
.
format
(
c
.
getTime
());
String
fileName
=
"#"
+
dateFormat
.
format
(
c
.
getTime
());
log
.
info
(
"开始下载----"
+
fileName
);
log
.
info
(
"开始下载----"
+
fileName
);
long
beforeDown
=
System
.
currentTimeMillis
();
long
beforeDown
=
System
.
currentTimeMillis
();
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
olrRemotePath
,
fileName
,
localPath
,
fileName
);
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
olrRemotePath
,
fileName
,
localPath
,
fileName
);
long
afterDown
;
long
afterDown
;
if
(
download
)
if
(
download
)
{
{
log
.
info
(
"下载成功"
+
fileName
);
log
.
info
(
"下载成功"
+
fileName
);
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
dbName
,
olrTbName
,
dbUserName
,
dbPassword
);
dbName
,
olrTbName
,
dbUserName
,
dbPassword
);
postGIS
.
createOlrDay
(
olrTbName
);
postGIS
.
createOlrDay
(
olrTbName
);
if
(
postGIS
.
insertOlrToPG
(
olrTbName
,
localPath
+
fileName
)>
0
)
{
if
(
postGIS
.
insertOlrToPG
(
olrTbName
,
localPath
+
fileName
)
>
0
)
{
// 发送Di
// 发送Di
afterDown
=
System
.
currentTimeMillis
();
afterDown
=
System
.
currentTimeMillis
();
Date
start
=
new
Date
(
beforeDown
);
Date
start
=
new
Date
(
beforeDown
);
String
diJson
=
sendDi
(
c
.
getTime
(),
new
Date
(
beforeDown
),
new
Date
(
afterDown
),
fileName
,
"1"
);
String
diJson
=
sendDi
(
"olr数据入库"
,
"K.0502.0001.0001"
,
c
.
getTime
(),
new
Date
(
beforeDown
),
new
Date
(
afterDown
),
fileName
,
"1"
);
OkHttpClient
httpClient
=
new
OkHttpClient
();
OkHttpClient
httpClient
=
new
OkHttpClient
();
RequestBody
requestBody
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json; charset=utf-8"
),
diJson
);
RequestBody
requestBody
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json; charset=utf-8"
),
diJson
);
Request
request
=
new
Request
.
Builder
()
Request
request
=
new
Request
.
Builder
()
.
url
(
"http://127.0.0.1:29999/transfer"
)
.
url
(
diUrl
)
.
post
(
requestBody
)
.
post
(
requestBody
)
.
build
();
.
build
();
//发送请求获取响应
//发送请求获取响应
try
{
try
{
Response
response
=
httpClient
.
newCall
(
request
).
execute
();
Response
response
=
httpClient
.
newCall
(
request
).
execute
();
//判断请求是否成功
//判断请求是否成功
if
(
response
.
isSuccessful
())
{
if
(
response
.
isSuccessful
())
{
//打印服务端返回结果
//打印服务端返回结果
log
.
info
(
"请求代理返回结果==========:"
+
response
.
body
().
string
());
log
.
info
(
"请求代理返回结果==========:"
+
response
.
body
().
string
());
log
.
info
(
"请求di的Json========="
+
diJson
);
log
.
info
(
"请求di的Json========="
+
diJson
);
}
}
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
}
}
else
{
else
log
.
info
(
"下载失败"
+
fileName
);
{
log
.
info
(
"下载失败"
+
fileName
);
}
}
}
}
private
String
sendDi
(
Date
DATA_TIME
,
Date
PROCESS_START_TIME
,
Date
PROCESS_END_TIME
,
String
FILE_NAME
,
String
PROCESS_STATE
)
{
private
String
sendDi
(
String
Name
,
String
DATA_TYPE
,
Date
DATA_TIME
,
Date
PROCESS_START_TIME
,
Date
PROCESS_END_TIME
,
String
FILE_NAME
,
String
PROCESS_STATE
)
{
List
a
=
new
ArrayList
();
List
a
=
new
ArrayList
();
Di
di
=
new
Di
();
Di
di
=
new
Di
();
Di
.
Fields
fields
=
di
.
new
Fields
();
Di
.
Fields
fields
=
di
.
new
Fields
();
di
.
setName
(
"OLR数据入库"
);
di
.
setName
(
Name
);
di
.
setOccur_time
(
System
.
currentTimeMillis
());
di
.
setOccur_time
(
System
.
currentTimeMillis
());
di
.
setMessage
(
"文件级"
);
di
.
setMessage
(
"文件级"
);
di
.
setType
(
"RT.DPC.STATION.DI"
);
di
.
setType
(
"RT.DPC.STATION.DI"
);
fields
.
setDATA_TYPE
(
"K.0436.0001.9999"
);
fields
.
setDATA_TYPE
(
DATA_TYPE
);
fields
.
setDATA_TYPE_1
(
"K.0436.0001.9999"
);
fields
.
setDATA_TYPE_1
(
DATA_TYPE
);
fields
.
setRECEIVE
(
"CTS"
);
fields
.
setRECEIVE
(
"CTS"
);
fields
.
setSEND
(
"STDB"
);
fields
.
setSEND
(
"STDB"
);
fields
.
setTRAN_TIME
(
new
Date
());
fields
.
setTRAN_TIME
(
new
Date
());
...
@@ -226,13 +226,14 @@ public class PullFileTask {
...
@@ -226,13 +226,14 @@ public class PullFileTask {
fields
.
setRECORD_TIME
(
new
Date
());
fields
.
setRECORD_TIME
(
new
Date
());
di
.
setFields
(
fields
);
di
.
setFields
(
fields
);
a
.
add
(
di
);
a
.
add
(
di
);
TypeUtils
.
compatibleWithJavaBean
=
true
;
TypeUtils
.
compatibleWithJavaBean
=
true
;
return
JSONObject
.
toJSONString
(
a
);
return
JSONObject
.
toJSONString
(
a
);
}
}
/**
/**
* 对定时任务之前缺失的数据入库,但不发送di
* 对定时任务之前缺失的数据入库,但不发送di
*
* @throws Exception
* @throws Exception
*/
*/
// @PostConstruct
// @PostConstruct
...
@@ -243,33 +244,32 @@ public class PullFileTask {
...
@@ -243,33 +244,32 @@ public class PullFileTask {
Calendar
c
=
Calendar
.
getInstance
();
Calendar
c
=
Calendar
.
getInstance
();
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
dbName
,
olrTbName
,
dbUserName
,
dbPassword
);
dbName
,
olrTbName
,
dbUserName
,
dbPassword
);
while
(
dateStart
.
compareTo
(
dateEnd
)
<=
0
)
{
while
(
dateStart
.
compareTo
(
dateEnd
)
<=
0
)
{
String
fileName
=
"#"
+
dateFormat
.
format
(
dateStart
.
getTime
());
String
fileName
=
"#"
+
dateFormat
.
format
(
dateStart
.
getTime
());
log
.
info
(
"开始下载----"
+
fileName
);
log
.
info
(
"开始下载----"
+
fileName
);
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
olrRemotePath
,
fileName
,
localPath
,
fileName
);
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
olrRemotePath
,
fileName
,
localPath
,
fileName
);
if
(
download
)
{
if
(
download
)
{
log
.
info
(
"下载成功-----"
+
fileName
);
log
.
info
(
"下载成功-----"
+
fileName
);
postGIS
.
createOlrDay
(
olrTbName
);
postGIS
.
createOlrDay
(
olrTbName
);
if
(
postGIS
.
insertOlrToPG
(
olrTbName
,
localPath
+
fileName
)
>
0
)
{
if
(
postGIS
.
insertOlrToPG
(
olrTbName
,
localPath
+
fileName
)
>
0
)
{
log
.
info
(
fileName
+
"=======入库成功"
);
log
.
info
(
fileName
+
"=======入库成功"
);
c
.
setTime
(
dateStart
);
c
.
setTime
(
dateStart
);
c
.
add
(
c
.
DATE
,
1
);
//把dateBegin加上1天然后重新赋值给date1
c
.
add
(
c
.
DATE
,
1
);
//把dateBegin加上1天然后重新赋值给date1
dateStart
=
c
.
getTime
();
dateStart
=
c
.
getTime
();
}
else
{
log
.
info
(
fileName
+
"========入库失败"
);
}
}
else
{
log
.
info
(
fileName
+
"========入库失败"
);
}
}
}
{
{
log
.
info
(
fileName
+
"========下载失败"
);
log
.
info
(
fileName
+
"========下载失败"
);
break
;
break
;
}
}
}
}
}
}
// @PostConstruct
// @PostConstruct
public
void
testDownload
()
public
void
testDownload
()
{
{
FtpUtil
.
FtpConfig
ftpConfig
=
new
FtpUtil
.
FtpConfig
().
setHost
(
host
).
setPort
(
port
).
setUserName
(
userName
).
setPassword
(
password
);
FtpUtil
.
FtpConfig
ftpConfig
=
new
FtpUtil
.
FtpConfig
().
setHost
(
host
).
setPort
(
port
).
setUserName
(
userName
).
setPassword
(
password
);
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
olrRemotePath
,
"#20200324"
,
localPath
,
"#20200324"
);
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
olrRemotePath
,
"#20200324"
,
localPath
,
"#20200324"
);
...
@@ -281,6 +281,4 @@ public class PullFileTask {
...
@@ -281,6 +281,4 @@ public class PullFileTask {
}
}
}
}
src/main/resources/application.yml
View file @
e1f9dbba
...
@@ -17,7 +17,11 @@ postgis:
...
@@ -17,7 +17,11 @@ postgis:
password
:
jianju@123@pg
password
:
jianju@123@pg
dbname
:
test
dbname
:
test
olrtbname
:
noaadata
olrtbname
:
noaadata
godastbname
:
待定
godast
:
pentadtbname
:
待定
monthlytbname
:
待定
di
:
url
:
http://127.0.0.1:29999/transfer
logging
:
logging
:
file
:
file
:
path
:
/home/jianju/di/logs
path
:
/home/jianju/di/logs
...
...
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