Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
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
项目统一框架
amos-boot-biz
Commits
f7216ada
Commit
f7216ada
authored
May 23, 2025
by
王果
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
系统人员和消防人员同步优化
parent
15a18369
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
44 deletions
+59
-44
AdpterService.java
...n/java/com/yeejoin/amos/adpter/service/AdpterService.java
+55
-43
HutoolIdGenerator.java
.../java/com/yeejoin/amos/adpter/util/HutoolIdGenerator.java
+1
-1
application-dev.properties
...tils-adpter/src/main/resources/application-dev.properties
+3
-0
No files found.
amos-boot-utils/amos-boot-utils-adpter/src/main/java/com/yeejoin/amos/adpter/service/AdpterService.java
View file @
f7216ada
...
...
@@ -93,8 +93,11 @@ public class AdpterService {
@Value
(
"${goal.jdbc.ip.project.role.seq}"
)
String
projectRoleSeq
;
@Value
(
"${goal.jdbc.ip.project.user.rec-time}"
)
String
systemUserRecTime
;
public
Map
<
String
,
String
>
handle
()
{
Map
<
String
,
String
>
rMap
=
new
HashMap
<>();
...
...
@@ -148,19 +151,23 @@ public class AdpterService {
}
public
Map
<
String
,
String
>
cpSysUserOrg
()
{
String
time
=
systemUserRecTime
;
Map
<
String
,
String
>
rMap
=
new
HashMap
<>();
String
srcTableName
=
"auth_login_info"
;
String
destTableName
=
"auth_login_info"
;
String
id
=
"SEQUENCE_NBR"
;
startTime
=
System
.
currentTimeMillis
();
Connection
conn
=
getConnection
(
goalJdbcProject
);
PreparedStatement
pst
=
null
;
//查询数据 只查询电力用户(AGENCY_CODE = 'STATE_GRID')
String
sql
=
String
.
format
(
"select * from %s where AGENCY_CODE = 'STATE_GRID'"
,
srcTableName
);
//查询数据
String
sql
=
String
.
format
(
"select * from %s "
,
srcTableName
);
//查询数据
String
sqlGoal
=
"select count(1) as num from "
+
destTableName
+
" where "
+
id
+
" = "
;
String
sqlGoal
=
"select SEQUENCE_NBR from "
+
destTableName
;
List
<
Map
<
String
,
Object
>>
queryOld
=
query
(
sourceJdbcProject
,
sql
);
if
(
ObjectUtils
.
isEmpty
(
queryOld
)){
log
.
info
(
"未查询到数据,执行结束================"
);
return
null
;
}
List
<
Map
<
String
,
Object
>>
query
=
new
ArrayList
<>();
//插入数据
String
insertSql
=
"insert into %s(%s) values(%s)"
;
...
...
@@ -169,35 +176,36 @@ public class AdpterService {
List
<
String
>
columns
=
new
ArrayList
<>();
List
<
List
<
Object
>>
params
=
new
ArrayList
<>();
List
<
String
>
sqlList
=
new
ArrayList
<>();
List
<
String
>
oldUserId
=
new
ArrayList
<>();
try
{
pst
=
conn
.
prepareStatement
(
sqlGoal
);
ResultSet
resultSet
=
pst
.
executeQuery
();
log
.
debug
(
"重复数据查询:{}"
,
sqlGoal
);
while
(
resultSet
.
next
())
{
oldUserId
.
add
(
resultSet
.
getString
(
"SEQUENCE_NBR"
));
}
}
catch
(
SQLException
throwables
)
{
throwables
.
printStackTrace
();
}
finally
{
try
{
if
(
pst
!=
null
&&
!
pst
.
isClosed
())
{
pst
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
// 剔除已存在的数据
for
(
Map
<
String
,
Object
>
map
:
queryOld
)
{
map
.
put
(
"SALT"
,
"10ICG834E4"
);
map
.
put
(
"PASSWORD"
,
"ACCB2DE8AD752638D55F6F0FE7CA928"
);
//设置密码为a1234560
// map.put("SALT", "10ICG834E4");//设置密码为a1234560
//
map.put("PASSWORD", "ACCB2DE8AD752638D55F6F0FE7CA928");//设置密码为a1234560
map
.
put
(
"AGENCY_CODE"
,
"ONEPLOT"
);
map
.
put
(
"REC_DATE"
,
new
Date
());
try
{
pst
=
conn
.
prepareStatement
(
sqlGoal
+
map
.
get
(
id
));
ResultSet
resultSet
=
pst
.
executeQuery
();
log
.
debug
(
"重复数据查询:{}"
,
sqlGoal
+
map
.
get
(
id
));
while
(
resultSet
.
next
())
{
int
num
=
resultSet
.
getInt
(
"num"
);
if
(
num
<
1
)
{
query
.
add
(
map
);
}
}
}
catch
(
SQLException
throwables
)
{
throwables
.
printStackTrace
();
}
finally
{
try
{
if
(
pst
!=
null
&&
!
pst
.
isClosed
())
{
pst
.
close
();
}
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
map
.
put
(
"REC_DATE"
,
time
);
//去重
if
(!
oldUserId
.
contains
(
map
.
get
(
"SEQUENCE_NBR"
).
toString
())){
query
.
add
(
map
);
}
}
if
(!
query
.
isEmpty
())
{
for
(
String
column
:
query
.
get
(
0
).
keySet
())
{
key
.
append
(
column
).
append
(
","
);
...
...
@@ -209,30 +217,34 @@ public class AdpterService {
key
.
substring
(
0
,
key
.
length
()
-
1
),
value
.
substring
(
0
,
value
.
length
()
-
1
));
List
<
String
>
userId
=
new
ArrayList
<>();
for
(
Map
<
String
,
Object
>
map
:
query
)
{
List
<
Object
>
param
=
new
ArrayList
<>();
for
(
String
column
:
columns
)
{
param
.
add
(
map
.
get
(
column
));
}
params
.
add
(
param
);
//用户公司表数据、用户角色表数据、用户与应用关联表数据插入
if
(
map
.
containsKey
(
"USER_ID"
)
&&
!
ObjectUtils
.
isEmpty
(
map
.
get
(
"USER_ID"
)))
{
sqlList
.
add
(
"INSERT INTO `privilege_group_user` (`SEQUENCE_NBR`, `GROUP_SEQ`, `USER_ID`, `AGENCY_CODE`, `REC_DATE`, `REC_USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", "
+
projectOrgSeq
+
", '"
+
map
.
get
(
"USER_ID"
)
+
"', 'ONEPLOT', '2025-05-19 11:18:44', '4950517', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_
user_org_role` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `USER_ID`, `COMPANY_SEQ`, `DEPARTMENT_SEQ`, `AGENCY_CODE`, `ROLE_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '2025-05-19 11:18:44', '4950517', '"
+
map
.
get
(
"USER_ID"
)
+
"', "
+
projectRoleSeq
+
", NULL, 'ONEPLOT', "
+
projectOrgSeq
+
"
)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_
application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '2025-05-19 11:18:44', '4950517', 'ONEPLOT', 'AMOS_STUDIO', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL
)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
2025-05-19 11:18:44', '4950517', 'ONEPLOT', 'AMOS_ONEPLOT_DP
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
2025-05-19 11:18:44', '4950517', 'ONEPLOT', 'AMOS_ADMIN
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
2025-05-19 11:18:44', '4950517', 'ONEPLOT', 'AMOS_ONEPLOT
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
2025-05-19 11:18:44', '4950517', 'ONEPLOT', 'AMOS_ONEPLOT_SP
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
if
(
map
.
containsKey
(
"USER_ID"
)
&&
!
ObjectUtils
.
isEmpty
(
map
.
get
(
"USER_ID"
))
&&!
userId
.
contains
(
map
.
get
(
"USER_ID"
).
toString
())
)
{
userId
.
add
(
map
.
get
(
"USER_ID"
).
toString
()
);
sqlList
.
add
(
"INSERT INTO `privilege_
group_user` (`SEQUENCE_NBR`, `GROUP_SEQ`, `USER_ID`, `AGENCY_CODE`, `REC_DATE`, `REC_USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", "
+
projectRoleSeq
+
", '"
+
map
.
get
(
"USER_ID"
)
+
"', 'ONEPLOT', '"
+
time
+
"', '4950517', NULL
)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_
org_role` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `USER_ID`, `COMPANY_SEQ`, `DEPARTMENT_SEQ`, `AGENCY_CODE`, `ROLE_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '"
+
time
+
"', '4950517', '"
+
map
.
get
(
"USER_ID"
)
+
"', "
+
projectOrgSeq
+
", NULL, 'ONEPLOT', "
+
projectRoleSeq
+
"
)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
"
+
time
+
"', '4950517', 'ONEPLOT', 'AMOS_STUDIO
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
"
+
time
+
"', '4950517', 'ONEPLOT', 'AMOS_ONEPLOT_DP
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
"
+
time
+
"', '4950517', 'ONEPLOT', 'AMOS_ADMIN
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '
"
+
time
+
"', '4950517', 'ONEPLOT', 'AMOS_ONEPLOT
', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
sqlList
.
add
(
"INSERT INTO `privilege_user_application` (`SEQUENCE_NBR`, `REC_DATE`, `REC_USER_ID`, `AGENCY_CODE`, `APP_CODE`, `USER_ID`, `SUB_ORG_SEQ`) VALUES ("
+
HutoolIdGenerator
.
generate
()
+
", '"
+
time
+
"', '4950517', 'ONEPLOT', 'AMOS_ONEPLOT_SP', '"
+
map
.
get
(
"USER_ID"
)
+
"', NULL)"
);
}
}
int
[]
count
=
executeBatch
(
goalJdbcProject
,
insertSql
,
params
,
destTableName
);
log
.
debug
(
"复制表{}成功,用时:{}ms,复制数据行数:{}"
,
destTableName
,
(
System
.
currentTimeMillis
()
-
startTime
),
count
.
length
);
}
if
(!
ObjectUtils
.
isEmpty
(
sqlList
)){
executeBySql
(
sqlList
,
goalJdbcProject
,
userName
,
pwd
);
int
batchSize
=
50
;
for
(
int
i
=
0
;
i
<
sqlList
.
size
();
i
+=
batchSize
)
{
List
<
String
>
subList
=
sqlList
.
subList
(
i
,
Math
.
min
(
i
+
batchSize
,
sqlList
.
size
()));
executeBySql
(
subList
,
goalJdbcProject
,
userName
,
pwd
);
}
log
.
debug
(
"处理用户角色单位数据成功,用时:{}ms"
,
(
System
.
currentTimeMillis
()
-
startTime
));
}
copyUser
(
sourceJdbcProject
,
goalJdbcProject
,
"privilege_agency_user"
,
"privilege_agency_user"
,
"SEQUENCE_NBR"
,
rMap
);
...
...
@@ -412,7 +424,7 @@ public class AdpterService {
List
<
String
>
list
=
new
ArrayList
<>();
//查询数据
String
sql
=
String
.
format
(
"select * from %s "
,
srcTableName
);
String
sql
=
String
.
format
(
"select * from %s
where AGENCY_CODE = 'STATE_GRID'
"
,
srcTableName
);
//查询数据
String
sqlGoal
=
"select count(*) as num from "
+
destTableName
+
" where "
+
id
+
" = "
;
List
<
Map
<
String
,
Object
>>
queryOld
=
query
(
source
,
sql
);
...
...
@@ -947,14 +959,14 @@ public class AdpterService {
statement
=
connection
.
createStatement
();
Statement
finalStatement
=
statement
;
for
(
String
sql
:
sqlList
)
{
finalStatement
.
addBatch
(
sql
);
log
.
debug
(
"执sql:{}"
,
sql
);
finalStatement
.
addBatch
(
sql
);
}
// 执行批处理
int
[]
result
=
statement
.
executeBatch
();
// 提交事务
connection
.
commit
();
System
.
out
.
println
(
"批量插入完成,影响行数: "
+
Arrays
.
toString
(
result
)
);
System
.
out
.
println
(
"批量插入完成,影响行数: "
+
result
.
length
);
}
catch
(
SQLException
e
)
{
if
(
connection
!=
null
)
{
try
{
...
...
@@ -1199,7 +1211,7 @@ public class AdpterService {
for
(
Map
<
String
,
Object
>
objectMap
:
list2
)
{
if
(
map
.
get
(
"sequence_nbr"
).
toString
().
equals
(
objectMap
.
get
(
"instance_id"
).
toString
()))
{
if
(
objectMap
.
get
(
"field_code"
).
equals
(
"personNumber"
)
&&
!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value"
)))
{
model
.
setCode
(
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value_label"
))
?
objectMap
.
get
(
"field_value"
).
toString
()
:
objectMap
.
get
(
"field_value_label"
).
toString
());
//
model.setCode(ObjectUtils.isEmpty(objectMap.get("field_value_label")) ? objectMap.get("field_value").toString() : objectMap.get("field_value_label").toString());
model
.
setNum
(
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value_label"
))
?
objectMap
.
get
(
"field_value"
).
toString
()
:
objectMap
.
get
(
"field_value_label"
).
toString
());
}
if
(
objectMap
.
get
(
"field_code"
).
equals
(
"peopleType"
)
&&
!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value"
)))
{
...
...
amos-boot-utils/amos-boot-utils-adpter/src/main/java/com/yeejoin/amos/adpter/util/HutoolIdGenerator.java
View file @
f7216ada
...
...
@@ -4,7 +4,7 @@ import cn.hutool.core.util.IdUtil;
public
class
HutoolIdGenerator
{
public
static
long
generate
()
{
Snowflake
snowflake
=
IdUtil
.
getSnowflake
(
1
,
1
);
// 指定workerId和datacenterId
Snowflake
snowflake
=
IdUtil
.
getSnowflake
(
1
,
3
);
// 指定workerId和datacenterId
return
snowflake
.
nextId
();
}
...
...
amos-boot-utils/amos-boot-utils-adpter/src/main/resources/application-dev.properties
View file @
f7216ada
...
...
@@ -40,6 +40,8 @@ source.jdbc.ip.project=jdbc:mysql://39.100.71.139:3307/wh_project?useUnicode=tru
goal.jdbc.ip.project.org.seq
=
1921835551384690690
## 系统用户要同步角色的ID
goal.jdbc.ip.project.role.seq
=
1769904956711661569
## 系统用户同步数据插入时间(建议每个站不一样,方便恢复数据)
goal.jdbc.ip.project.user.rec-time
=
2011-11-11 11:11:52
yeejoin.user
=
root
yeejoin.pwd
=
Yeejoin@2020
\ No newline at end of file
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