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
2969d16f
Commit
2969d16f
authored
May 19, 2025
by
王果
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
36671 子 【一张图替换站端系统】-自动化数据处理 / 数据同步:系统账号
parent
e6f2ffd0
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
175 additions
and
85 deletions
+175
-85
pom.xml
amos-boot-utils/amos-boot-utils-adpter/pom.xml
+6
-0
AdpterService.java
...n/java/com/yeejoin/amos/adpter/service/AdpterService.java
+147
-85
HutoolIdGenerator.java
.../java/com/yeejoin/amos/adpter/util/HutoolIdGenerator.java
+17
-0
application-dev.properties
...tils-adpter/src/main/resources/application-dev.properties
+5
-0
No files found.
amos-boot-utils/amos-boot-utils-adpter/pom.xml
View file @
2969d16f
...
...
@@ -59,6 +59,12 @@
<artifactId>
poi-ooxml
</artifactId>
<version>
5.2.3
</version>
</dependency>
<dependency>
<groupId>
cn.hutool
</groupId>
<artifactId>
hutool-all
</artifactId>
<version>
5.8.21
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
<build>
...
...
amos-boot-utils/amos-boot-utils-adpter/src/main/java/com/yeejoin/amos/adpter/service/AdpterService.java
View file @
2969d16f
...
...
@@ -7,6 +7,7 @@ import com.yeejoin.amos.adpter.model.AreaExcelModel;
import
com.yeejoin.amos.adpter.model.DeviceExcelModel
;
import
com.yeejoin.amos.adpter.model.PersonExcelModel
;
import
com.yeejoin.amos.adpter.model.SystemExcelModel
;
import
com.yeejoin.amos.adpter.util.HutoolIdGenerator
;
import
org.apache.ibatis.io.Resources
;
import
org.apache.ibatis.jdbc.RuntimeSqlException
;
import
org.apache.ibatis.jdbc.ScriptRunner
;
...
...
@@ -86,6 +87,14 @@ public class AdpterService {
@Value
(
"${goal.jdbc.ip.project}"
)
String
goalJdbcProject
;
@Value
(
"${goal.jdbc.ip.project.org.seq}"
)
String
projectOrgSeq
;
@Value
(
"${goal.jdbc.ip.project.role.seq}"
)
String
projectRoleSeq
;
public
Map
<
String
,
String
>
handle
()
{
Map
<
String
,
String
>
rMap
=
new
HashMap
<>();
...
...
@@ -137,83 +146,95 @@ public class AdpterService {
log
.
info
(
"执行结束================"
);
return
rMap
;
}
public
Map
<
String
,
String
>
cpSysUserOrg
()
{
Map
<
String
,
String
>
rMap
=
new
HashMap
<>();
// //同步amos_project库用户表
//// copy(goalJdbcProject, sourceJdbcProject, "auth_login_info", "auth_login_info", "SEQUENCE_NBR", rMap);
// String srcTableName = "auth_login_info";
// String destTableName = "auth_login_info";
// String id = "SEQUENCE_NBR";
// startTime = System.currentTimeMillis();
//
// Connection conn = null;
// PreparedStatement pst = null;
// conn = getConnection(goalJdbcProject);
//
//// int count[] = new int[0];
// List<String> list = new ArrayList<>();
//
// //查询数据
// String sql = String.format("select * from %s ", srcTableName);
// //查询数据
// String sqlGoal = "select count(1) as num from " + destTableName + " where " + id + " = ";
// List<Map<String, Object>> queryOld = query(sourceJdbcProject, sql);
// List<Map<String, Object>> query = new ArrayList<>();
// //插入数据
// String insertSql = "insert into %s(%s) values(%s)";
// StringBuilder key = new StringBuilder();
// StringBuilder value = new StringBuilder();
// List<String> columns = new ArrayList<>();
// List<List<Object>> params = new ArrayList<>();
//// 剔除已存在的数据
// for (Map<String, Object> map : queryOld) {
// map.put("SALT", "10ICG834E4");
// map.put("PASSWORD", "ACCB2DE8AD752638D55F6F0FE7CA928");//设置密码为a1234560
// map.put("AGENCY_CODE", "ONEPLOT");
// 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();
// }
// }
// }
//
// if (!query.isEmpty()) {
// for (String column : query.get(0).keySet()) {
// key.append(column).append(",");
// value.append("?,");
// columns.add(column);
// }
// insertSql = String.format(insertSql,
// destTableName,
// key.substring(0, key.length() - 1),
// value.substring(0, value.length() - 1));
//
// for (Map<String, Object> map : query) {
// List<Object> param = new ArrayList<>();
// for (String column : columns) {
// param.add(map.get(column));
// }
// params.add(param);
// }
// int[] count = executeBatch(goalJdbcProject, insertSql, params, destTableName);
// log.debug("复制表{}成功,用时:{}ms,复制数据行数:{}", destTableName, (System.currentTimeMillis() - startTime), count.length);
// }
String
srcTableName
=
"auth_login_info"
;
String
destTableName
=
"auth_login_info"
;
String
id
=
"SEQUENCE_NBR"
;
startTime
=
System
.
currentTimeMillis
();
Connection
conn
=
getConnection
(
goalJdbcProject
);
PreparedStatement
pst
=
null
;
//查询数据
String
sql
=
String
.
format
(
"select * from %s "
,
srcTableName
);
//查询数据
String
sqlGoal
=
"select count(1) as num from "
+
destTableName
+
" where "
+
id
+
" = "
;
List
<
Map
<
String
,
Object
>>
queryOld
=
query
(
sourceJdbcProject
,
sql
);
List
<
Map
<
String
,
Object
>>
query
=
new
ArrayList
<>();
//插入数据
String
insertSql
=
"insert into %s(%s) values(%s)"
;
StringBuilder
key
=
new
StringBuilder
();
StringBuilder
value
=
new
StringBuilder
();
List
<
String
>
columns
=
new
ArrayList
<>();
List
<
List
<
Object
>>
params
=
new
ArrayList
<>();
List
<
String
>
sqlList
=
new
ArrayList
<>();
// 剔除已存在的数据
for
(
Map
<
String
,
Object
>
map
:
queryOld
)
{
map
.
put
(
"SALT"
,
"10ICG834E4"
);
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
();
}
}
}
if
(!
query
.
isEmpty
())
{
for
(
String
column
:
query
.
get
(
0
).
keySet
())
{
key
.
append
(
column
).
append
(
","
);
value
.
append
(
"?,"
);
columns
.
add
(
column
);
}
insertSql
=
String
.
format
(
insertSql
,
destTableName
,
key
.
substring
(
0
,
key
.
length
()
-
1
),
value
.
substring
(
0
,
value
.
length
()
-
1
));
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)"
);
}
}
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
);
log
.
debug
(
"处理用户角色单位数据成功,用时:{}ms"
,
(
System
.
currentTimeMillis
()
-
startTime
));
}
copyUser
(
sourceJdbcProject
,
goalJdbcProject
,
"privilege_agency_user"
,
"privilege_agency_user"
,
"SEQUENCE_NBR"
,
rMap
);
log
.
info
(
"执行结束================"
);
return
rMap
;
...
...
@@ -405,9 +426,10 @@ public class AdpterService {
// 剔除已存在的数据
for
(
Map
map
:
queryOld
)
{
map
.
put
(
"AGENCY_CODE"
,
"ONEPLOT"
);
map
.
put
(
"PASSWORD_RESET"
,
0
);
map
.
put
(
"SUPER_ORG_CODE"
,
"10*11"
);
map
.
put
(
"AGENCY_CODE"
,
"ONEPLOT"
);
map
.
put
(
"PASSWORD_RESET"
,
0
);
map
.
put
(
"SUPER_ORG_CODE"
,
"10*11"
);
map
.
put
(
"REC_DATE"
,
new
Date
());
try
{
pst
=
conn
.
prepareStatement
(
sqlGoal
+
map
.
get
(
id
));
ResultSet
resultSet
=
pst
.
executeQuery
();
...
...
@@ -461,6 +483,7 @@ public class AdpterService {
}
return
count
;
}
/**
* 批量执行一个 SQL 语句,可以传不同的参数
*
...
...
@@ -914,6 +937,44 @@ public class AdpterService {
}
private
void
executeBySql
(
List
<
String
>
sqlList
,
String
url
,
String
username
,
String
password
)
{
Connection
connection
=
null
;
Statement
statement
=
null
;
try
{
// 获取数据库连接
connection
=
DriverManager
.
getConnection
(
url
,
username
,
password
);
connection
.
setAutoCommit
(
false
);
statement
=
connection
.
createStatement
();
Statement
finalStatement
=
statement
;
for
(
String
sql
:
sqlList
)
{
finalStatement
.
addBatch
(
sql
);
log
.
debug
(
"执sql:{}"
,
sql
);
}
// 执行批处理
int
[]
result
=
statement
.
executeBatch
();
// 提交事务
connection
.
commit
();
System
.
out
.
println
(
"批量插入完成,影响行数: "
+
Arrays
.
toString
(
result
));
}
catch
(
SQLException
e
)
{
if
(
connection
!=
null
)
{
try
{
connection
.
rollback
();
}
catch
(
SQLException
ex
)
{
ex
.
printStackTrace
();
}
}
e
.
printStackTrace
();
}
finally
{
// 关闭资源
try
{
if
(
statement
!=
null
)
statement
.
close
();
if
(
connection
!=
null
)
connection
.
close
();
}
catch
(
SQLException
e
)
{
e
.
printStackTrace
();
}
}
}
private
void
execute
(
List
<
Map
<
String
,
Object
>>
params
,
String
url
,
String
username
,
String
password
)
{
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Connection
connection
=
null
;
...
...
@@ -1125,7 +1186,7 @@ public class AdpterService {
sql2
=
sql2
+
String
.
join
(
","
,
arrayList
)
+
") and field_value is not NULL and field_value !=''"
;
List
<
Map
<
String
,
Object
>>
list2
=
query
(
dlCom
,
sql2
);
ArrayList
<
PersonExcelModel
>
models
=
new
ArrayList
<>();
String
sql3
=
"select * from cb_firefighters_post where org_usr_id in ("
+
String
.
join
(
","
,
arrayList
)
+
")"
;
String
sql3
=
"select * from cb_firefighters_post where org_usr_id in ("
+
String
.
join
(
","
,
arrayList
)
+
")"
;
List
<
Map
<
String
,
Object
>>
list3
=
query
(
dlCom
,
sql3
);
String
sql4
=
"select CONCAT(b.name,'-',a.name) as name from cb_data_dictionary a "
+
"left join cb_data_dictionary b on a.parent = b.sequence_nbr "
+
...
...
@@ -1157,7 +1218,8 @@ public class AdpterService {
model
.
setGender
(
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value_label"
))
?
objectMap
.
get
(
"field_value"
).
toString
()
:
objectMap
.
get
(
"field_value_label"
).
toString
());
}
if
(
objectMap
.
get
(
"field_code"
).
equals
(
"certificatesTypeCode"
)
&&
!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value"
)))
{
model
.
setIdType
(
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value_label"
))
?
objectMap
.
get
(
"field_value"
).
toString
()
:
objectMap
.
get
(
"field_value_label"
).
toString
());
String
s
=
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value_label"
))
?
objectMap
.
get
(
"field_value"
).
toString
()
:
objectMap
.
get
(
"field_value_label"
).
toString
();
model
.
setIdType
(
"120"
.
equals
(
s
)
?
"身份证"
:
s
);
}
if
(
objectMap
.
get
(
"field_code"
).
equals
(
"certificatesNumber"
)
&&
!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value"
)))
{
model
.
setIdNum
(
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"field_value_label"
))
?
objectMap
.
get
(
"field_value"
).
toString
()
:
objectMap
.
get
(
"field_value_label"
).
toString
());
...
...
@@ -1178,21 +1240,21 @@ public class AdpterService {
}
for
(
Map
<
String
,
Object
>
objectMap
:
list3
)
{
if
(
map
.
get
(
"sequence_nbr"
).
toString
().
equals
(
objectMap
.
get
(
"org_usr_id"
).
toString
()))
{
if
(!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"post_qualification"
)))
{
if
(!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"post_qualification"
)))
{
String
qualification
=
objectMap
.
get
(
"post_qualification"
).
toString
();
List
<
Map
<
String
,
Object
>>
maps
=
list4
.
stream
().
filter
(
v
->
v
.
get
(
"name"
).
toString
().
contains
(
qualification
)).
collect
(
Collectors
.
toList
());
if
(!
ObjectUtils
.
isEmpty
(
maps
))
{
if
(!
ObjectUtils
.
isEmpty
(
maps
))
{
model
.
setQualification
(
maps
.
get
(
0
).
get
(
"name"
).
toString
());
}
}
if
(!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"qualification_certificate"
)))
{
if
(!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"qualification_certificate"
)))
{
model
.
setFirePost
(
objectMap
.
get
(
"qualification_certificate"
).
toString
());
}
if
(!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"job_title"
)))
{
if
(!
ObjectUtils
.
isEmpty
(
objectMap
.
get
(
"job_title"
)))
{
model
.
setPost
(
objectMap
.
get
(
"job_title"
).
toString
());
}
}
}
}
model
.
setObjType
(
"人员"
);
models
.
add
(
model
);
}
...
...
amos-boot-utils/amos-boot-utils-adpter/src/main/java/com/yeejoin/amos/adpter/util/HutoolIdGenerator.java
0 → 100644
View file @
2969d16f
package
com
.
yeejoin
.
amos
.
adpter
.
util
;
import
cn.hutool.core.lang.Snowflake
;
import
cn.hutool.core.util.IdUtil
;
public
class
HutoolIdGenerator
{
public
static
long
generate
()
{
Snowflake
snowflake
=
IdUtil
.
getSnowflake
(
1
,
1
);
// 指定workerId和datacenterId
return
snowflake
.
nextId
();
}
// 示例调用
public
static
void
main
(
String
[]
args
)
{
long
id
=
HutoolIdGenerator
.
generate
();
System
.
out
.
println
(
"Hutool生成的ID: "
+
id
);
}
}
\ No newline at end of file
amos-boot-utils/amos-boot-utils-adpter/src/main/resources/application-dev.properties
View file @
2969d16f
...
...
@@ -36,6 +36,10 @@ goal.jdbc.ip.dlcom=jdbc:mysql://172.16.11.201:3307/gusu_common?allowMultiQueries
goal.jdbc.ip.project
=
jdbc:mysql://39.100.71.139:3307/amos_project?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
source.jdbc.ip.project
=
jdbc:mysql://39.100.71.139:3307/wh_project?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
## 系统用户要同步公司的ID
goal.jdbc.ip.project.org.seq
=
1921835551384690690
## 系统用户要同步角色的ID
goal.jdbc.ip.project.role.seq
=
1921835551384690690
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