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
5d9cb8a3
Commit
5d9cb8a3
authored
Mar 25, 2020
by
Xuxiaodong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
梳理流程
parent
f3313744
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
167 additions
and
28 deletions
+167
-28
PostGISMannager.java
src/main/java/com/jianju/di/Manager/PostGISMannager.java
+74
-10
Di.java
src/main/java/com/jianju/di/entity/Di.java
+47
-3
PullFileTask.java
src/main/java/com/jianju/di/task/PullFileTask.java
+46
-15
No files found.
src/main/java/com/jianju/di/Manager/PostGISMannager.java
View file @
5d9cb8a3
package
com
.
jianju
.
di
.
Manager
;
package
com
.
jianju
.
di
.
Manager
;
import
DataBaseManager.GribManager
;
import
DataBaseManager.ICEandSST
;
import
DataBaseManager.MongodbManager
;
import
visad.browser.Convert
;
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.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
public
class
PostGISMannager
{
public
class
PostGISMannager
{
private
Connection
c
;
private
Connection
c
;
...
@@ -19,6 +23,23 @@ public class PostGISMannager {
...
@@ -19,6 +23,23 @@ public class PostGISMannager {
stmt
=
c
.
createStatement
();
stmt
=
c
.
createStatement
();
m_tablename
=
tablename
;
m_tablename
=
tablename
;
}
}
public
void
createOisstv2Mon
(
String
tableName
)
throws
SQLException
{
String
sql
=
"create table if not exists public."
+
tableName
+
"(byteData bytea,"
+
"name char(100),"
+
"time integer,"
+
"minlon numeric,"
+
"maxlon numeric,"
+
"maxlat numeric,"
+
"minlat numeric,"
+
"type char(50),"
+
"dataCode char(50),"
+
"geom geometry);"
;
stmt
.
executeUpdate
(
sql
);
}
public
void
createOlrDay
(
String
tableName
)
throws
SQLException
public
void
createOlrDay
(
String
tableName
)
throws
SQLException
{
{
String
sql
=
"create table if not exists public."
+
tableName
+
String
sql
=
"create table if not exists public."
+
tableName
+
...
@@ -35,6 +56,8 @@ public class PostGISMannager {
...
@@ -35,6 +56,8 @@ public class PostGISMannager {
stmt
.
executeUpdate
(
sql
);
stmt
.
executeUpdate
(
sql
);
}
}
public
void
createTableGDAS
(
String
tableName
)
throws
SQLException
{
public
void
createTableGDAS
(
String
tableName
)
throws
SQLException
{
String
sql
=
"create table if not exists public."
+
tableName
+
String
sql
=
"create table if not exists public."
+
tableName
+
"(byteData bytea,"
+
"(byteData bytea,"
+
...
@@ -50,14 +73,60 @@ public class PostGISMannager {
...
@@ -50,14 +73,60 @@ public class PostGISMannager {
stmt
.
executeUpdate
(
sql
);
stmt
.
executeUpdate
(
sql
);
}
}
public
int
insertGodasToPG
(
String
tableName
,
String
gdasName
)
throws
IOException
,
SQLException
,
ParseException
{
public
int
insertOisstv2MonToPG
(
String
tableName
,
String
dataPath
,
boolean
ice
)
throws
ParseException
,
IOException
{
int
status
=
0
;
String
geom
;
String
type
=
"oisst"
;
String
datacode
=
"REAN_NOAA_OISST_ORIGINAL"
;
String
time
;
float
minLat
,
maxLat
,
minLon
,
maxLon
;
ICEandSST
readICESST
=
new
ICEandSST
();
float
[]
iceData
=
readICESST
.
readIceTxtData
(
dataPath
,
ice
);
minLon
=
readICESST
.
getMinlon
();
maxLat
=
readICESST
.
getMaxlat
();
maxLon
=
readICESST
.
getMaxlon
();
minLat
=
readICESST
.
getMinlat
();
minLat
=-
minLat
;
ArrayList
<
Integer
>
arrayListTimeInt
=
readICESST
.
getArrayListTimeInt
();
int
Time
=
arrayListTimeInt
.
get
(
0
);
geom
=
"POLYGON(("
+
minLon
+
" "
+
maxLat
+
","
+
maxLon
+
" "
+
maxLat
+
","
+
maxLon
+
" "
+
minLat
+
","
+
minLon
+
" "
+
minLat
+
","
+
minLon
+
" "
+
maxLat
+
"))"
;
String
[]
arrName
=
dataPath
.
split
(
"\\\\"
);
String
name
=
arrName
[
arrName
.
length
-
1
];
PreparedStatement
ps
=
null
;
ResultSet
st
=
null
;
try
{
System
.
out
.
println
(
"success connect"
);
String
sql
=
"insert into "
+
tableName
+
"(bytedata,name,time,minlon,maxlon,maxlat,minlat,type,dataCode,geom)"
+
" values(?,?,?,?,?,?,?,?,?,"
+
"'"
+
geom
+
"'"
+
")"
;
try
{
ps
=
c
.
prepareStatement
(
sql
);
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
byte
[]
byteData
=
floatArrayToByteArray
(
iceData
);
ps
.
setBytes
(
1
,
byteData
);
ps
.
setString
(
2
,
name
);
ps
.
setInt
(
3
,
Time
);
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
7
,
minLat
);
ps
.
setString
(
8
,
type
);
ps
.
setString
(
9
,
datacode
);
status
=
ps
.
executeUpdate
();
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
(
System
.
out
);
}
return
status
;
}
public
int
insertGodasToPG
(
String
tableName
,
String
gdasName
)
throws
IOException
,
SQLException
,
ParseException
{
String
name
=
""
;
String
name
=
""
;
int
lines
=
0
;
int
lines
=
0
;
String
geom
;
String
geom
;
String
type
=
"u"
;
String
type
=
"u"
;
...
@@ -75,14 +144,11 @@ public class PostGISMannager {
...
@@ -75,14 +144,11 @@ public class PostGISMannager {
minLon
=
1
;
minLon
=
1
;
maxLon
=(
float
)
360
;
maxLon
=(
float
)
360
;
int
hou
=
1
;
int
hou
=
1
;
//String []s=str.split(",");
name
=
gdasName
;
name
=
gdasName
;
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
]);
// intYear=intYear*100;
// intYear=intYear+hou;
if
(
name
.
endsWith
(
".grb"
))
{
if
(
name
.
endsWith
(
".grb"
))
{
hou
++;
hou
++;
...
@@ -194,8 +260,6 @@ public class PostGISMannager {
...
@@ -194,8 +260,6 @@ public class PostGISMannager {
public
int
insertOlrToPG
(
String
tableName
,
String
dataPath
)
throws
IOException
,
SQLException
,
ParseException
{
public
int
insertOlrToPG
(
String
tableName
,
String
dataPath
)
throws
IOException
,
SQLException
,
ParseException
{
int
lines
=
0
;
int
lines
=
0
;
String
geom
;
String
geom
;
String
type
=
"orl"
;
String
type
=
"orl"
;
...
@@ -243,7 +307,7 @@ public class PostGISMannager {
...
@@ -243,7 +307,7 @@ public class PostGISMannager {
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
7
,
m
ax
Lat
);
ps
.
setFloat
(
7
,
m
in
Lat
);
ps
.
setString
(
8
,
type
);
ps
.
setString
(
8
,
type
);
ps
.
setString
(
9
,
datacode
);
ps
.
setString
(
9
,
datacode
);
status
=
ps
.
executeUpdate
();
status
=
ps
.
executeUpdate
();
...
...
src/main/java/com/jianju/di/entity/Di.java
View file @
5d9cb8a3
package
com
.
jianju
.
di
.
entity
;
package
com
.
jianju
.
di
.
entity
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
com.alibaba.fastjson.util.TypeUtils
;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author D
*/
@Data
@Data
public
class
Di
{
public
class
Di
{
private
String
type
;
private
String
type
;
...
@@ -19,18 +27,22 @@ public class Di {
...
@@ -19,18 +27,22 @@ public class Di {
String
DATA_TYPE_1
;
String
DATA_TYPE_1
;
String
RECEIVE
;
String
RECEIVE
;
String
SEND
;
String
SEND
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
TRAN_TIME
;
Date
TRAN_TIME
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
DATA_TIME
;
Date
DATA_TIME
;
String
DATA_FLOW
;
String
DATA_FLOW
;
String
SYSTEM
;
String
SYSTEM
;
String
PROCESS_LINK
;
String
PROCESS_LINK
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
PROCESS_START_TIME
;
Date
PROCESS_START_TIME
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
PROCESS_END_TIME
;
Date
PROCESS_END_TIME
;
String
FILE_NAME_O
;
String
FILE_NAME_O
;
String
FILE_NAME_N
;
String
FILE_NAME_N
;
double
FILE_SIZE
;
String
FILE_SIZE
;
int
PROCESS_STATE
;
String
PROCESS_STATE
;
int
BUSINESS_STATE
;
String
BUSINESS_STATE
;
Date
RECORD_TIME
;
Date
RECORD_TIME
;
}
}
...
@@ -38,5 +50,37 @@ public class Di {
...
@@ -38,5 +50,37 @@ public class Di {
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
List
a
=
new
ArrayList
();
Di
di
=
new
Di
();
Di
.
Fields
fields
=
di
.
new
Fields
();
di
.
setName
(
"OLR数据入库"
);
di
.
setOccur_time
(
System
.
currentTimeMillis
());
di
.
setMessage
(
"文件级"
);
di
.
setType
(
"RT.CTS.STATION.DI"
);
fields
.
setDATA_TYPE
(
"OLR"
);
fields
.
setDATA_TYPE_1
(
"OLR"
);
fields
.
setRECEIVE
(
"CTS"
);
fields
.
setSEND
(
"userid001"
);
fields
.
setTRAN_TIME
(
new
Date
());
fields
.
setDATA_TIME
(
new
Date
());
//文件名时间
fields
.
setDATA_FLOW
(
"BDMAIN"
);
fields
.
setSYSTEM
(
"SDO"
);
fields
.
setPROCESS_LINK
(
"1"
);
fields
.
setPROCESS_START_TIME
(
new
Date
());
//下载数据之前记录的时间
fields
.
setPROCESS_END_TIME
(
new
Date
());
//入库完成时间 或者失败的时间
fields
.
setFILE_NAME_O
(
"#20200321"
);
fields
.
setFILE_NAME_N
(
"#20200321"
);
fields
.
setFILE_SIZE
(
"43"
);
//单位B
fields
.
setPROCESS_STATE
(
"0"
);
// 1 正常 0 失败
fields
.
setBUSINESS_STATE
(
"1"
);
// 1 正常 0 失败
fields
.
setRECORD_TIME
(
new
Date
());
di
.
setFields
(
fields
);
a
.
add
(
di
);
TypeUtils
.
compatibleWithJavaBean
=
true
;
String
s
=
JSONObject
.
toJSONString
(
a
);
}
}
}
}
src/main/java/com/jianju/di/task/PullFileTask.java
View file @
5d9cb8a3
...
@@ -2,6 +2,7 @@ package com.jianju.di.task;
...
@@ -2,6 +2,7 @@ package com.jianju.di.task;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.util.TypeUtils
;
import
com.fasterxml.jackson.databind.util.JSONPObject
;
import
com.fasterxml.jackson.databind.util.JSONPObject
;
import
com.jianju.di.Manager.PostGISMannager
;
import
com.jianju.di.Manager.PostGISMannager
;
import
com.jianju.di.entity.Di
;
import
com.jianju.di.entity.Di
;
...
@@ -14,9 +15,12 @@ import org.springframework.stereotype.Component;
...
@@ -14,9 +15,12 @@ import org.springframework.stereotype.Component;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* @author D
* @author D
...
@@ -57,7 +61,7 @@ public class PullFileTask {
...
@@ -57,7 +61,7 @@ public class PullFileTask {
@Value
(
"${postgis.tbname}"
)
@Value
(
"${postgis.tbname}"
)
private
String
tbName
;
private
String
tbName
;
private
static
final
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"
YYYY
MMdd"
);
private
static
final
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"
yyyy
MMdd"
);
...
@@ -71,9 +75,11 @@ public class PullFileTask {
...
@@ -71,9 +75,11 @@ public class PullFileTask {
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
();
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
remotePath
,
fileName
,
localPath
,
fileName
);
boolean
download
=
FtpUtil
.
download
(
ftpConfig
,
remotePath
,
fileName
,
localPath
,
fileName
);
if
(
download
)
long
afterDown
=
System
.
currentTimeMillis
();
if
(
download
)
{
{
log
.
info
(
"下载成功"
);
log
.
info
(
"下载成功"
);
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
...
@@ -81,16 +87,14 @@ public class PullFileTask {
...
@@ -81,16 +87,14 @@ public class PullFileTask {
postGIS
.
createOlrDay
(
tbName
);
postGIS
.
createOlrDay
(
tbName
);
if
(
postGIS
.
insertOlrToPG
(
tbName
,
localPath
+
fileName
)>
0
){
if
(
postGIS
.
insertOlrToPG
(
tbName
,
localPath
+
fileName
)>
0
){
//发送Di
//发送Di
Di
di
=
new
Di
();
// di.setType();
afterDown
=
System
.
currentTimeMillis
();
// di.setName();
Date
start
=
new
Date
(
beforeDown
);
// di.setMessage();
// di.setOccur_time();
String
diJson
=
sendDi
(
c
.
getTime
(),
new
Date
(
beforeDown
),
new
Date
(
afterDown
),
fileName
,
"1"
);
Di
.
Fields
fields
=
di
.
new
Fields
();
di
.
setFields
(
fields
);
OkHttpClient
httpClient
=
new
OkHttpClient
();
OkHttpClient
httpClient
=
new
OkHttpClient
();
RequestBody
requestBody
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json; charset=utf-8"
),
JSONObject
.
toJSONString
(
di
));
RequestBody
requestBody
=
RequestBody
.
create
(
MediaType
.
parse
(
"application/json; charset=utf-8"
),
JSONObject
.
toJSONString
(
di
Json
));
Request
request
=
new
Request
.
Builder
()
Request
request
=
new
Request
.
Builder
()
.
url
(
"127.0.0.1:29999/transfer"
)
.
url
(
"127.0.0.1:29999/transfer"
)
.
post
(
requestBody
)
.
post
(
requestBody
)
...
@@ -107,11 +111,7 @@ public class PullFileTask {
...
@@ -107,11 +111,7 @@ public class PullFileTask {
}
catch
(
IOException
e
)
{
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
}
}
}
}
}
else
else
{
{
...
@@ -119,6 +119,37 @@ public class PullFileTask {
...
@@ -119,6 +119,37 @@ public class PullFileTask {
}
}
}
}
private
String
sendDi
(
Date
DATA_TIME
,
Date
PROCESS_START_TIME
,
Date
PROCESS_END_TIME
,
String
FILE_NAME
,
String
PROCESS_STATE
)
{
List
a
=
new
ArrayList
();
Di
di
=
new
Di
();
Di
.
Fields
fields
=
di
.
new
Fields
();
di
.
setName
(
"OLR数据入库"
);
di
.
setOccur_time
(
System
.
currentTimeMillis
());
di
.
setMessage
(
"文件级"
);
di
.
setType
(
"RT.CTS.STATION.DI"
);
fields
.
setDATA_TYPE
(
"OLR"
);
fields
.
setDATA_TYPE_1
(
"OLR"
);
fields
.
setRECEIVE
(
"CTS"
);
fields
.
setSEND
(
"userid001"
);
fields
.
setTRAN_TIME
(
new
Date
());
fields
.
setDATA_TIME
(
DATA_TIME
);
//文件名时间
fields
.
setDATA_FLOW
(
"BDMAIN"
);
fields
.
setSYSTEM
(
"SDO"
);
fields
.
setPROCESS_LINK
(
"1"
);
fields
.
setPROCESS_START_TIME
(
PROCESS_START_TIME
);
//下载数据之前记录的时间
fields
.
setPROCESS_END_TIME
(
PROCESS_END_TIME
);
//入库完成时间 或者失败的时间
fields
.
setFILE_NAME_O
(
FILE_NAME
);
fields
.
setFILE_NAME_N
(
FILE_NAME
);
fields
.
setFILE_SIZE
(
"44032"
);
//单位B
fields
.
setPROCESS_STATE
(
PROCESS_STATE
);
// 1 正常 0 失败
fields
.
setBUSINESS_STATE
(
PROCESS_STATE
);
// 1 正常 0 失败
fields
.
setRECORD_TIME
(
new
Date
());
di
.
setFields
(
fields
);
a
.
add
(
di
);
TypeUtils
.
compatibleWithJavaBean
=
true
;
return
JSONObject
.
toJSONString
(
a
);
}
...
...
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