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
;
import
DataBaseManager.GribManager
;
import
DataBaseManager.ICEandSST
;
import
DataBaseManager.MongodbManager
;
import
visad.browser.Convert
;
import
java.io.*
;
import
java.sql.*
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
public
class
PostGISMannager
{
private
Connection
c
;
...
...
@@ -19,6 +23,23 @@ public class PostGISMannager {
stmt
=
c
.
createStatement
();
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
{
String
sql
=
"create table if not exists public."
+
tableName
+
...
...
@@ -35,6 +56,8 @@ public class PostGISMannager {
stmt
.
executeUpdate
(
sql
);
}
public
void
createTableGDAS
(
String
tableName
)
throws
SQLException
{
String
sql
=
"create table if not exists public."
+
tableName
+
"(byteData bytea,"
+
...
...
@@ -50,14 +73,60 @@ public class PostGISMannager {
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
=
""
;
int
lines
=
0
;
String
geom
;
String
type
=
"u"
;
...
...
@@ -75,14 +144,11 @@ public class PostGISMannager {
minLon
=
1
;
maxLon
=(
float
)
360
;
int
hou
=
1
;
//String []s=str.split(",");
name
=
gdasName
;
String
[]
temp
=
name
.
split
(
"\\\\"
);
String
filename
=
temp
[
temp
.
length
-
1
];
String
[]
strDate
=
filename
.
split
(
"\\."
);
int
intYear
=
Convert
.
getInt
(
strDate
[
2
]);
// intYear=intYear*100;
// intYear=intYear+hou;
if
(
name
.
endsWith
(
".grb"
))
{
hou
++;
...
...
@@ -194,8 +260,6 @@ public class PostGISMannager {
public
int
insertOlrToPG
(
String
tableName
,
String
dataPath
)
throws
IOException
,
SQLException
,
ParseException
{
int
lines
=
0
;
String
geom
;
String
type
=
"orl"
;
...
...
@@ -243,7 +307,7 @@ public class PostGISMannager {
ps
.
setFloat
(
4
,
minLon
);
ps
.
setFloat
(
5
,
maxLon
);
ps
.
setFloat
(
6
,
maxLat
);
ps
.
setFloat
(
7
,
m
ax
Lat
);
ps
.
setFloat
(
7
,
m
in
Lat
);
ps
.
setString
(
8
,
type
);
ps
.
setString
(
9
,
datacode
);
status
=
ps
.
executeUpdate
();
...
...
src/main/java/com/jianju/di/entity/Di.java
View file @
5d9cb8a3
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
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author D
*/
@Data
public
class
Di
{
private
String
type
;
...
...
@@ -19,18 +27,22 @@ public class Di {
String
DATA_TYPE_1
;
String
RECEIVE
;
String
SEND
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
TRAN_TIME
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
DATA_TIME
;
String
DATA_FLOW
;
String
SYSTEM
;
String
PROCESS_LINK
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
PROCESS_START_TIME
;
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
Date
PROCESS_END_TIME
;
String
FILE_NAME_O
;
String
FILE_NAME_N
;
double
FILE_SIZE
;
int
PROCESS_STATE
;
int
BUSINESS_STATE
;
String
FILE_SIZE
;
String
PROCESS_STATE
;
String
BUSINESS_STATE
;
Date
RECORD_TIME
;
}
...
...
@@ -38,5 +50,37 @@ public class Di {
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;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.util.TypeUtils
;
import
com.fasterxml.jackson.databind.util.JSONPObject
;
import
com.jianju.di.Manager.PostGISMannager
;
import
com.jianju.di.entity.Di
;
...
...
@@ -14,9 +15,12 @@ import org.springframework.stereotype.Component;
import
java.io.IOException
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
/**
* @author D
...
...
@@ -57,7 +61,7 @@ public class PullFileTask {
@Value
(
"${postgis.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 {
c
.
add
(
Calendar
.
DATE
,
-
2
);
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
);
if
(
download
)
long
afterDown
=
System
.
currentTimeMillis
();
if
(
download
)
{
log
.
info
(
"下载成功"
);
PostGISMannager
postGIS
=
new
PostGISMannager
(
dbHost
,
dbPort
,
...
...
@@ -81,16 +87,14 @@ public class PullFileTask {
postGIS
.
createOlrDay
(
tbName
);
if
(
postGIS
.
insertOlrToPG
(
tbName
,
localPath
+
fileName
)>
0
){
//发送Di
Di
di
=
new
Di
();
// di.setType();
// di.setName();
// di.setMessage();
// di.setOccur_time();
Di
.
Fields
fields
=
di
.
new
Fields
();
di
.
setFields
(
fields
);
afterDown
=
System
.
currentTimeMillis
();
Date
start
=
new
Date
(
beforeDown
);
String
diJson
=
sendDi
(
c
.
getTime
(),
new
Date
(
beforeDown
),
new
Date
(
afterDown
),
fileName
,
"1"
);
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
()
.
url
(
"127.0.0.1:29999/transfer"
)
.
post
(
requestBody
)
...
...
@@ -107,11 +111,7 @@ public class PullFileTask {
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
else
{
...
...
@@ -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