Commit cb7d17c8 authored by 王果's avatar 王果

36671 子 【一张图替换站端系统】-自动化数据处理 / 数据同步:系统账号

parent b5e8469d
......@@ -75,4 +75,15 @@ public class AdpterController {
public void personExcel(HttpServletResponse response) throws IOException {
adpterService.personExcel(response);
}
/**
* 同步amos_project系统人员和单位表
*
* @return
*/
@GetMapping(value = "/cpSysUserOrg")
@ApiOperation(httpMethod = "GET", value = "同步amos_project系统人员和单位表", notes = "同步amos_project系统人员和单位表")
public Map<String,String> cpSysUserOrg() {
return adpterService.cpSysUserOrg();
}
}
\ No newline at end of file
......@@ -131,12 +131,87 @@ public class AdpterService {
copy(sourceJdbcBuss, goalJdbcBuss, "wl_warehouse", "wl_warehouse", "id", rMap);
copy(sourceJdbcBuss, goalJdbcBuss, "wl_warehouse_structure", "wl_warehouse_structure", "id", rMap);
//处理amos_project库
copy(sourceJdbcBuss, goalJdbcBuss, "privilege_department", "privilege_department", "SEQUENCE_NBR", rMap);
copy(sourceJdbcBuss, goalJdbcBuss, "privilege_company", "privilege_company", "SEQUENCE_NBR", rMap);
copy(sourceJdbcBuss, goalJdbcBuss, "privilege_agency_user", "privilege_agency_user", "SEQUENCE_NBR", rMap);
copy(sourceJdbcBuss, goalJdbcBuss, "auth_login_info", "auth_login_info", "SEQUENCE_NBR", rMap);
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);
// }
copyUser(sourceJdbcProject, goalJdbcProject, "privilege_agency_user", "privilege_agency_user", "SEQUENCE_NBR", rMap);
log.info("执行结束================");
return rMap;
}
......@@ -296,6 +371,94 @@ public class AdpterService {
}
/**
* 将查询的数据复制到另一个数据库的表中,要求两张表的字段名,字段类型完全相同。
*
* @param srcTableName 要查询的表
* @param destTableName 目标表名称
* @return
*/
public int[] copyUser(String source, String goal, String srcTableName, String destTableName, String id, Map rMap) {
startTime = System.currentTimeMillis();
Connection conn = null;
PreparedStatement pst = null;
conn = getConnection(goal);
int count[] = new int[0];
List<String> list = new ArrayList<>();
//查询数据
String sql = String.format("select * from %s ", srcTableName);
//查询数据
String sqlGoal = "select count(*) as num from " + destTableName + " where " + id + " = ";
List<Map<String, Object>> queryOld = query(source, 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 map : queryOld) {
map.put("AGENCY_CODE","ONEPLOT");
map.put("PASSWORD_RESET",0);
map.put("SUPER_ORG_CODE","10*11");
try {
pst = conn.prepareStatement(sqlGoal + map.get(id));
ResultSet resultSet = pst.executeQuery();
while (resultSet.next()) {
int num = resultSet.getInt("num");
if (num < 1) {
query.add(map);
} else {
list.add(map.get(id).toString());
}
}
} catch (SQLException throwables) {
throwables.printStackTrace();
} finally {
try {
if (pst != null && !pst.isClosed()) {
pst.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
if (query.size() > 0) {
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).toString(),
value.substring(0, value.length() - 1).toString());
for (Map<String, Object> map : query) {
List<Object> param = new ArrayList<>();
for (String column : columns) {
param.add(map.get(column));
}
params.add(param);
}
count = executeBatch(goal, insertSql, params, destTableName);
endTime = System.currentTimeMillis();
log.debug("复制表" + destTableName + "成功" + "用时" + (endTime - startTime) + "ms");
}
if (list.size() > 0) {
rMap.put(destTableName, String.join(",", list));
} else {
rMap.put(destTableName, "复制表" + destTableName + "成功" + "用时" + (endTime - startTime) + "ms");
}
return count;
}
/**
* 批量执行一个 SQL 语句,可以传不同的参数
*
* @param sql SQL 语句
......
......@@ -6,7 +6,7 @@ management.endpoints.web.exposure.include=*
eureka.instance.health-check-url-path=/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url-path=/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.11.201:${server.port}${server.servlet.context-path}/swagger-ui.html
eureka.instance.metadata-map.management.api-docs=http://39.100.71.139:${server.port}${server.servlet.context-path}/swagger-ui.html
#����ʵ��ip��ַ����eureka.instance.prefer-ip-address=false,ip-address����ʧЧ��һ������������á�
#eureka.instance.ip-address= 172.16.3.135
#eureka����ip���ã�����д�̶�ip��ַ
......@@ -33,8 +33,8 @@ goal.jdbc.ip.dlbuss=jdbc:mysql://172.16.11.201:3307/gusu_business?allowMultiQuer
goal.jdbc.ip.dlcom=jdbc:mysql://172.16.11.201:3307/gusu_common?allowMultiQueries=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
source.jdbc.ip.project=jdbc:mysql://172.16.11.201:3306/amos_project?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
goal.jdbc.ip.project=jdbc:mysql://172.16.11.201:3306/amos_project1?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
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
yeejoin.user=root
yeejoin.pwd=ENC(9OWq6vJ9UzjgCfz8dAdzgMT5WkUTmyHkVdd3HoP80K9l5XOzu7dbmpgfXzvqANjJ)
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment