Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xzxt-control
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
常超
xzxt-control
Commits
9a94e60f
Commit
9a94e60f
authored
Mar 13, 2019
by
caojingji
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
20190313---wangling---添加Fmq比对功能模块
parent
8ed28d20
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
204 additions
and
80 deletions
+204
-80
src/main/java/com/cc/controller/BssjbdController.java
+12
-79
src/main/java/com/cc/service/SjjhService.java
+1
-0
src/main/java/com/cc/service/serviceimpl/SjjhServiceImpl.java
+190
-0
src/main/webapp/WEB-INF/view/sjsblog/bssjbd.jsp
+1
-1
No files found.
src/main/java/com/cc/controller/BssjbdController.java
View file @
9a94e60f
...
@@ -6,6 +6,7 @@ import com.cc.common.util.JdbcUtil;
...
@@ -6,6 +6,7 @@ import com.cc.common.util.JdbcUtil;
import
com.cc.service.SjjhService
;
import
com.cc.service.SjjhService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
...
@@ -49,7 +50,7 @@ public class BssjbdController {
...
@@ -49,7 +50,7 @@ public class BssjbdController {
fmqDataMap
.
put
(
"draw"
,
fmq
.
getRn
());
fmqDataMap
.
put
(
"draw"
,
fmq
.
getRn
());
return
fmqDataMap
;
return
fmqDataMap
;
}
}
//md5比对
//md5比对
(单条或者多条)
@RequestMapping
(
"/toBssjbd"
)
@RequestMapping
(
"/toBssjbd"
)
@ResponseBody
@ResponseBody
public
String
toBssjbd
(
@RequestParam
(
"xxzjbhs"
)
String
fmqString
)
{
public
String
toBssjbd
(
@RequestParam
(
"xxzjbhs"
)
String
fmqString
)
{
...
@@ -78,26 +79,6 @@ public class BssjbdController {
...
@@ -78,26 +79,6 @@ public class BssjbdController {
md5map
.
put
(
fmqString
.
split
(
"@"
)[
1
].
trim
(),
fmqString
.
split
(
"@"
)[
2
].
trim
());
md5map
.
put
(
fmqString
.
split
(
"@"
)[
1
].
trim
(),
fmqString
.
split
(
"@"
)[
2
].
trim
());
tblmap
.
put
(
fmqString
.
split
(
"@"
)[
0
].
trim
(),
md5map
);
tblmap
.
put
(
fmqString
.
split
(
"@"
)[
0
].
trim
(),
md5map
);
}
}
}
else
{
//整库比对,获取fmq表中的所有数据,存在tblmap中
String
fmqsqlStr
=
"SELECT * FROM FMQ"
;
List
fmqList
=
QueryByStr
(
fmqsqlStr
);
String
bjtablename
=
""
;
String
bjxxzjbh
=
""
;
String
bjmd5
=
""
;
for
(
int
i
=
0
;
i
<
fmqList
.
size
()
;
i
++)
{
bjtablename
=
((
Map
<
String
,
String
>)
fmqList
.
get
(
i
)).
get
(
"table_name"
);
bjxxzjbh
=
((
Map
<
String
,
String
>)
fmqList
.
get
(
i
)).
get
(
"xxzjbh"
);
bjmd5
=
((
Map
<
String
,
String
>)
fmqList
.
get
(
i
)).
get
(
"md5"
);
if
(
tblmap
.
containsKey
(
bjtablename
))
{
md5map
.
put
(
bjxxzjbh
,
bjmd5
);
}
else
{
md5map
=
new
HashMap
<
String
,
String
>();
md5map
.
put
(
bjxxzjbh
,
bjmd5
);
tblmap
.
put
(
bjtablename
,
md5map
);
}
}
tblmap
.
put
(
"zkbd"
,
null
);
}
}
String
bjmd5
=
""
;
String
bjmd5
=
""
;
String
bdzt
=
""
;
String
bdzt
=
""
;
...
@@ -114,63 +95,7 @@ public class BssjbdController {
...
@@ -114,63 +95,7 @@ public class BssjbdController {
String
stname
=
"VW_"
+
tblname
;
String
stname
=
"VW_"
+
tblname
;
fmq
.
setRn
(
stname
);
fmq
.
setRn
(
stname
);
fmq
.
setTableName
(
tblname
);
fmq
.
setTableName
(
tblname
);
vwsqlStr
=
"SELECT * FROM "
+
fmq
.
getRn
()
+
" WHERE TABLE_NAME = '"
+
fmq
.
getTableName
()
+
"'"
;
//vwsqlStr = "SELECT * FROM " + fmq.getRn() + " WHERE TABLE_NAME = '" + fmq.getTableName() + "'";
if
(
tblmap
.
containsKey
(
"zkbd"
))
{
//整库比对
vwList
=
QueryByStr
(
vwsqlStr
);
String
sjtablename
=
""
;
String
sjxxzjbh
=
""
;
String
sjmd5
=
""
;
Sjsblog
sjsblog
=
null
;
for
(
int
j
=
0
;
j
<
vwList
.
size
();
j
++)
{
sjtablename
=
((
Map
<
String
,
String
>)
vwList
.
get
(
j
)).
get
(
"table_name"
);
sjxxzjbh
=
((
Map
<
String
,
String
>)
vwList
.
get
(
j
)).
get
(
"xxzjbh"
);
sjmd5
=
((
Map
<
String
,
String
>)
vwList
.
get
(
j
)).
get
(
"md5"
);
//根据表名和主键值获取对应的部级的md5值
String
FMQsqlStr
=
"SELECT * FROM FMQ WHERE TABLE_NAME = '"
+
sjtablename
+
"' AND XXZJBH = '"
+
sjxxzjbh
+
"'"
;
List
FMQList
=
QueryByStr
(
FMQsqlStr
);
sjsblog
=
new
Sjsblog
();
if
(
FMQList
!=
null
&&
FMQList
.
size
()
>
0
)
{
for
(
int
m
=
0
;
m
<
FMQList
.
size
();
m
++)
{
String
fmqmd5
=
((
Map
<
String
,
String
>)
FMQList
.
get
(
m
)).
get
(
"md5"
);
if
(!
""
.
equals
(
fmqmd5
))
{
//已经上报过
if
(
sjmd5
.
equals
(
fmqmd5
))
{
bdzt
=
"0"
;
//相同
}
else
{
bdzt
=
"1"
;
//不相同
}
//更新本条数据的bdzt和bdsj
sjsblog
=
new
Sjsblog
();
sjsblog
.
setTblname
(
sjtablename
.
substring
(
3
,
sjtablename
.
length
()));
sjsblog
.
setKeyvalue
(
sjxxzjbh
);
sjsblog
.
setBdzt
(
bdzt
);
sjsbs
.
add
(
sjsblog
);
//在sys_log_sjsb表中更新数据的比对时间和比对状态
bool
=
sjjhService
.
updateSjsblog
(
sjsblog
);
if
(
bool
)
succNum
++;
}
}
}
else
{
//未上报过(将没有的数据插入到sys_log_sjsb表中,fwzt=2(未上报),bdzt=1)
//插入之前先查询sys_log_sjsb表中是否存在这条数据
sjsblog
.
setTblname
(
sjtablename
);
sjsblog
.
setKeyvalue
(
sjxxzjbh
);
Sjsblog
sjsbxxlog
=
sjjhService
.
getSjsbxq
(
sjsblog
);
sjsblog
.
setYwxxdm
(
sjtablename
.
substring
(
3
,
sjtablename
.
length
()));
sjsblog
.
setFwzt
(
"2"
);
sjsblog
.
setBdzt
(
"1"
);
sjsblog
.
setScbz
(
"0"
);
if
(
sjsbxxlog
!=
null
)
{
//存在,更新
bool
=
sjjhService
.
updateSjsblog
(
sjsblog
);
}
else
{
//不存在,插入
sjjhService
.
insertSjsblog
(
sjsblog
);
}
}
}
}
else
{
//非整库比对
//非整库比对
Map
<
String
,
String
>
zjmd5
=
tblmap
.
get
(
tblname
);
Map
<
String
,
String
>
zjmd5
=
tblmap
.
get
(
tblname
);
Sjsblog
sjsblog
=
null
;
Sjsblog
sjsblog
=
null
;
...
@@ -199,7 +124,6 @@ public class BssjbdController {
...
@@ -199,7 +124,6 @@ public class BssjbdController {
}
}
}
}
}
}
}
if
(
succNum
==
sjsbs
.
size
()){
if
(
succNum
==
sjsbs
.
size
()){
updateflag
=
"success"
;
updateflag
=
"success"
;
}
else
{
}
else
{
...
@@ -208,6 +132,15 @@ public class BssjbdController {
...
@@ -208,6 +132,15 @@ public class BssjbdController {
return
updateflag
;
return
updateflag
;
}
}
//md5比对(整库)
@RequestMapping
(
"/toBssjbdzk"
)
@ResponseBody
public
String
toBssjbdzk
(
@RequestParam
(
"xxzjbhs"
)
String
fmqString
)
{
String
updateflag
=
""
;
updateflag
=
sjjhService
.
getFmqBssjbd
();
return
updateflag
;
}
public
ArrayList
QueryByStr
(
String
sqlString
){
public
ArrayList
QueryByStr
(
String
sqlString
){
ArrayList
list
=
new
ArrayList
();
ArrayList
list
=
new
ArrayList
();
Connection
conn
=
null
;
Connection
conn
=
null
;
...
...
src/main/java/com/cc/service/SjjhService.java
View file @
9a94e60f
...
@@ -37,4 +37,5 @@ public interface SjjhService {
...
@@ -37,4 +37,5 @@ public interface SjjhService {
void
insertSjsblog
(
Sjsblog
sjsblog
);
void
insertSjsblog
(
Sjsblog
sjsblog
);
String
getFmqBssjbd
();
}
}
src/main/java/com/cc/service/serviceimpl/SjjhServiceImpl.java
View file @
9a94e60f
package
com
.
cc
.
service
.
serviceimpl
;
package
com
.
cc
.
service
.
serviceimpl
;
import
com.cc.bean.*
;
import
com.cc.bean.*
;
import
com.cc.common.util.JdbcUtil
;
import
com.cc.mapper.fmq.BssjbdDao
;
import
com.cc.mapper.fmq.BssjbdDao
;
import
com.cc.mapper.xzxt.SjjhtjDao
;
import
com.cc.mapper.xzxt.SjjhtjDao
;
import
com.cc.mapper.xzxt.SjjhyzDao
;
import
com.cc.mapper.xzxt.SjjhyzDao
;
import
com.cc.service.SjjhService
;
import
com.cc.service.SjjhService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.sql.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
@Service
@Service
@Component
public
class
SjjhServiceImpl
implements
SjjhService
{
public
class
SjjhServiceImpl
implements
SjjhService
{
@Autowired
@Autowired
...
@@ -22,6 +31,15 @@ public class SjjhServiceImpl implements SjjhService {
...
@@ -22,6 +31,15 @@ public class SjjhServiceImpl implements SjjhService {
@Autowired
@Autowired
BssjbdDao
bssjbdDao
;
BssjbdDao
bssjbdDao
;
@Autowired
JdbcUtil
jdbcUtil
;
@Value
(
"${fmqjdbc.url}"
)
private
String
url
;
@Value
(
"${fmqjdbc.username}"
)
private
String
username
;
@Value
(
"${fmqjdbc.password}"
)
private
String
password
;
@Override
@Override
public
List
<
Sjsblog
>
getSbsjList
(
Sjsblog
sjsblog
)
{
public
List
<
Sjsblog
>
getSbsjList
(
Sjsblog
sjsblog
)
{
...
@@ -113,4 +131,176 @@ public class SjjhServiceImpl implements SjjhService {
...
@@ -113,4 +131,176 @@ public class SjjhServiceImpl implements SjjhService {
sjjhtjDao
.
insertSjsblog
(
sjsblog
);
sjjhtjDao
.
insertSjsblog
(
sjsblog
);
}
}
//心跳机制,每天晚上10点触发
@Override
@Scheduled
(
cron
=
"0 0 22 * * ?"
)
public
String
getFmqBssjbd
()
{
System
.
out
.
print
(
"心跳开始------------------------------------"
);
//tblmap<表名,<主键值,md5值>>
Map
<
String
,
Map
<
String
,
String
>>
tblmap
=
new
HashMap
<
String
,
Map
<
String
,
String
>>();
Map
<
String
,
String
>
md5map
=
new
HashMap
<
String
,
String
>();
String
updateflag
=
""
;
//整库比对,获取fmq表中的所有数据,存在tblmap中
String
fmqsqlStr
=
"SELECT * FROM FMQ"
;
List
fmqList
=
QueryByStr
(
fmqsqlStr
);
String
bjtablename
=
""
;
String
bjxxzjbh
=
""
;
String
bjmd5
=
""
;
for
(
int
i
=
0
;
i
<
fmqList
.
size
()
;
i
++)
{
bjtablename
=
((
Map
<
String
,
String
>)
fmqList
.
get
(
i
)).
get
(
"table_name"
);
bjxxzjbh
=
((
Map
<
String
,
String
>)
fmqList
.
get
(
i
)).
get
(
"xxzjbh"
);
bjmd5
=
((
Map
<
String
,
String
>)
fmqList
.
get
(
i
)).
get
(
"md5"
);
if
(
tblmap
.
containsKey
(
bjtablename
))
{
md5map
.
put
(
bjxxzjbh
,
bjmd5
);
}
else
{
md5map
=
new
HashMap
<
String
,
String
>();
md5map
.
put
(
bjxxzjbh
,
bjmd5
);
tblmap
.
put
(
bjtablename
,
md5map
);
}
}
String
bdzt
=
""
;
Boolean
bool
=
false
;
int
succNum
=
0
;
List
<
Sjsblog
>
sjsbs
=
new
ArrayList
<
Sjsblog
>();
Fmq
fmq
=
null
;
//遍历map中的键
for
(
String
tblname
:
tblmap
.
keySet
())
{
String
vwsqlStr
=
""
;
List
vwList
=
new
ArrayList
();
//根据表名获取视图名
fmq
=
new
Fmq
();
String
stname
=
"VW_"
+
tblname
;
fmq
.
setRn
(
stname
);
fmq
.
setTableName
(
tblname
);
vwsqlStr
=
"SELECT * FROM "
+
fmq
.
getRn
()
+
" WHERE TABLE_NAME = '"
+
fmq
.
getTableName
()
+
"'"
;
//整库比对
vwList
=
QueryByStr
(
vwsqlStr
);
String
sjtablename
=
""
;
String
sjxxzjbh
=
""
;
String
sjmd5
=
""
;
Sjsblog
sjsblog
=
null
;
for
(
int
j
=
0
;
j
<
vwList
.
size
();
j
++)
{
sjtablename
=
((
Map
<
String
,
String
>)
vwList
.
get
(
j
)).
get
(
"table_name"
);
sjxxzjbh
=
((
Map
<
String
,
String
>)
vwList
.
get
(
j
)).
get
(
"xxzjbh"
);
sjmd5
=
((
Map
<
String
,
String
>)
vwList
.
get
(
j
)).
get
(
"md5"
);
//根据表名和主键值获取对应的部级的md5值
String
FMQsqlStr
=
"SELECT * FROM FMQ WHERE TABLE_NAME = '"
+
sjtablename
+
"' AND XXZJBH = '"
+
sjxxzjbh
+
"'"
;
List
FMQList
=
QueryByStr
(
FMQsqlStr
);
sjsblog
=
new
Sjsblog
();
if
(
FMQList
!=
null
&&
FMQList
.
size
()
>
0
)
{
for
(
int
m
=
0
;
m
<
FMQList
.
size
();
m
++)
{
String
fmqmd5
=
((
Map
<
String
,
String
>)
FMQList
.
get
(
m
)).
get
(
"md5"
);
if
(!
""
.
equals
(
fmqmd5
))
{
//已经上报过
if
(
sjmd5
.
equals
(
fmqmd5
))
{
bdzt
=
"0"
;
//相同
}
else
{
bdzt
=
"1"
;
//不相同
}
//更新本条数据的bdzt和bdsj
sjsblog
=
new
Sjsblog
();
sjsblog
.
setTblname
(
sjtablename
);
sjsblog
.
setKeyvalue
(
sjxxzjbh
);
sjsblog
.
setBdzt
(
bdzt
);
sjsbs
.
add
(
sjsblog
);
//在sys_log_sjsb表中更新数据的比对时间和比对状态
bool
=
sjjhtjDao
.
updateSjsblog
(
sjsblog
);
if
(
bool
)
succNum
++;
}
}
}
else
{
//未上报过(将没有的数据插入到sys_log_sjsb表中,fwzt=2(未上报),bdzt=1)
//插入之前先查询sys_log_sjsb表中是否存在这条数据
sjsblog
.
setTblname
(
sjtablename
);
sjsblog
.
setKeyvalue
(
sjxxzjbh
);
Sjsblog
sjsbxxlog
=
sjjhtjDao
.
querySjsbxq
(
sjsblog
);
sjsblog
.
setYwxxdm
(
sjtablename
.
substring
(
3
,
sjtablename
.
length
()));
sjsblog
.
setFwzt
(
"2"
);
sjsblog
.
setBdzt
(
"1"
);
sjsblog
.
setScbz
(
"0"
);
if
(
sjsbxxlog
!=
null
)
{
//存在,更新
bool
=
sjjhtjDao
.
updateSjsblog
(
sjsblog
);
}
else
{
//不存在,插入
sjjhtjDao
.
insertSjsblog
(
sjsblog
);
}
}
}
}
if
(
succNum
==
sjsbs
.
size
()){
updateflag
=
"success"
;
}
else
{
updateflag
=
"fail"
;
}
return
updateflag
;
}
public
ArrayList
QueryByStr
(
String
sqlString
){
ArrayList
list
=
new
ArrayList
();
Connection
conn
=
null
;
Statement
stat
=
null
;
ResultSet
rs
=
null
;
ResultSetMetaData
rsmd
=
null
;
try
{
//获取数据库链接
conn
=
jdbcUtil
.
getFmqConnetion
(
url
,
username
,
password
);
stat
=
conn
.
createStatement
();
rs
=
stat
.
executeQuery
(
sqlString
);
rsmd
=
rs
.
getMetaData
();
while
(
rs
.
next
())
{
Map
<
String
,
Object
>
ht
=
new
HashMap
<
String
,
Object
>();
for
(
int
i
=
1
;
i
<=
rsmd
.
getColumnCount
();
i
++)
{
Object
obj
=
rs
.
getObject
(
i
);
if
(
obj
!=
null
)
{
ht
.
put
(
rsmd
.
getColumnName
(
i
).
toLowerCase
(),
obj
);
}
else
{
ht
.
put
(
rsmd
.
getColumnName
(
i
).
toLowerCase
(),
null
);
}
}
list
.
add
(
ht
);
}
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
"查询数据失败!"
);
}
finally
{
freeAll
(
conn
,
stat
,
null
,
rs
);
}
return
list
;
}
public
static
void
freeAll
(
Connection
conn
,
Statement
stat
,
PreparedStatement
paste
,
ResultSet
rs
){
if
(
rs
!=
null
)
{
try
{
rs
.
close
();
}
catch
(
SQLException
e
)
{
// TODO: handle exception
System
.
out
.
println
(
"关闭结果集失败!"
);
}
}
if
(
stat
!=
null
)
{
try
{
stat
.
close
();
}
catch
(
SQLException
e
)
{
// TODO: handle exception
System
.
out
.
println
(
"关闭Statement失败!"
);
}
}
if
(
paste
!=
null
)
{
try
{
paste
.
close
();
}
catch
(
SQLException
e
)
{
// TODO: handle exception
System
.
out
.
println
(
"关闭ResultSetMetaData失败!"
);
}
}
if
(
conn
!=
null
)
{
try
{
conn
.
close
();
}
catch
(
SQLException
e
)
{
// TODO: handle exception
System
.
out
.
println
(
"关闭连接失败!"
);
}
}
}
}
}
src/main/webapp/WEB-INF/view/sjsblog/bssjbd.jsp
View file @
9a94e60f
...
@@ -226,7 +226,7 @@
...
@@ -226,7 +226,7 @@
var
xxzjbhs
=
check_val
.
toString
();
var
xxzjbhs
=
check_val
.
toString
();
if
(
check_val
==
""
){
if
(
check_val
==
""
){
$
.
ajax
({
$
.
ajax
({
url
:
"toBssjbd"
,
url
:
"toBssjbd
zk
"
,
type
:
"POST"
,
type
:
"POST"
,
data
:{
"xxzjbhs"
:
xxzjbhs
},
data
:{
"xxzjbhs"
:
xxzjbhs
},
success
:
function
(
data
){
success
:
function
(
data
){
...
...
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