main
黄海 9 months ago
parent 90a6c6393c
commit 8c10d186ed

@ -5,6 +5,8 @@ import cn.hutool.core.io.file.PathUtil;
import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.DataEase.Model.DataEaseModel;
import com.dsideal.base.Plugin.YamlProp; import com.dsideal.base.Plugin.YamlProp;
import com.dsideal.base.Util.ExcelCommonUtil; import com.dsideal.base.Util.ExcelCommonUtil;
import com.dsideal.base.Util.SSHConnector;
import com.jcraft.jsch.Session;
import com.jfinal.kit.FileKit; import com.jfinal.kit.FileKit;
import com.jfinal.kit.PathKit; import com.jfinal.kit.PathKit;
import com.jfinal.kit.Prop; import com.jfinal.kit.Prop;
@ -23,19 +25,32 @@ public class InitDataEaseDataSet {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
//加载配置文件
String configFile = "application_dev.yaml"; //远程主机的SSH登录信息
Prop PropKit = new YamlProp(configFile); String sshHost = "117.78.60.214";
HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), int sshPort = 52025;
PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); String sshUser = "root";
String sshPassword = "DsIdeal@123";
String mysqlHost = "127.0.0.1"; // MySQL server host
int mysqlPort = 3306; // MySQL server port
Session session = SSHConnector.createSSHSession(sshHost, sshPort, sshUser, sshPassword);
try {
int localPort = 33306; // Local port to forward to MySQL server
session.setPortForwardingL(localPort, mysqlHost, mysqlPort);
String jdbcUrl = "jdbc:mysql://localhost:" + localPort + "/ds_db";
String user = "root";
String password = "Password123@mysql";
String driverClassName = "com.mysql.cj.jdbc.Driver";
HikariCpPlugin masterPlugin = new HikariCpPlugin(jdbcUrl, user, password, driverClassName);
masterPlugin.start(); masterPlugin.start();
HikariCpPlugin dataEasePlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl").replace("ds_db", DataEaseModel.DB_NAME), PropKit.get("mysql.user"), HikariCpPlugin dataEasePlugin = new HikariCpPlugin(jdbcUrl.replace("ds_db", DataEaseModel.DB_NAME), user, password, driverClassName);
PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName"));
dataEasePlugin.start(); dataEasePlugin.start();
// 配置ActiveRecord插件 // 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin("master", masterPlugin); ActiveRecordPlugin arp = new ActiveRecordPlugin(masterPlugin);
arp.setDialect(new MysqlDialect()); arp.setDialect(new MysqlDialect());
ActiveRecordPlugin arpDataEase = new ActiveRecordPlugin(DataEaseModel.DB_NAME, dataEasePlugin); ActiveRecordPlugin arpDataEase = new ActiveRecordPlugin(DataEaseModel.DB_NAME, dataEasePlugin);
@ -65,71 +80,77 @@ public class InitDataEaseDataSet {
//3、将所有非空列去掉不允许为空的限制 //3、将所有非空列去掉不允许为空的限制
dm.updateNotNullColumns(); dm.updateNotNullColumns();
//4、遍历所有数据集的表 // //4、遍历所有数据集的表
int total = 0; // int total = 0;
for (int i = 1; i <= 3; i++) {//1省管理员2市州管理员3县区管理员 // for (int i = 1; i <= 3; i++) {//1省管理员2市州管理员3县区管理员
switch (i) { // switch (i) {
case 1: // case 1:
System.out.println("正在处理省管理员需要看到的数据集~"); // System.out.println("正在处理省管理员需要看到的数据集~");
break; // break;
case 2: // case 2:
System.out.println("正在处理市州管理员需要看到的数据集~"); // System.out.println("正在处理市州管理员需要看到的数据集~");
break; // break;
case 3: // case 3:
System.out.println("正在处理县区管理员需要看到的数据集~"); // System.out.println("正在处理县区管理员需要看到的数据集~");
break; // break;
} // }
//
//Excel的保存目录 // //Excel的保存目录
String exportPath = "D:/360Downloads/Excel"; // String exportPath = "D:/360Downloads/Excel";
File directory = new File(exportPath); // File directory = new File(exportPath);
// 检查目录是否存在 // // 检查目录是否存在
if (!directory.exists()) { // if (!directory.exists()) {
directory.mkdirs(); // directory.mkdirs();
} // }
//
List<Record> list = dm.getDataSetByIdentityId(i); // List<Record> list = dm.getDataSetByIdentityId(i);
System.out.println("数据集个数=" + list.size()); // System.out.println("数据集个数=" + list.size());
total += list.size(); // total += list.size();
for (Record record : list) { // for (Record record : list) {
String tableName = record.getStr("table_name"); // String tableName = record.getStr("table_name");
String dataSetName = record.getStr("dataset_name"); // String dataSetName = record.getStr("dataset_name");
System.out.println("正在处理数据集:" + dataSetName); // System.out.println("正在处理数据集:" + dataSetName);
//
//省的导出全部,市州管理员只导出市州数据,县区管理员只导出县区数据 // //省的导出全部,市州管理员只导出市州数据,县区管理员只导出县区数据
List<Record> tableData = new ArrayList<>(); // List<Record> tableData = new ArrayList<>();
String excelFileName = ""; // String excelFileName = "";
String privinceName = "云南省"; // String privinceName = "云南省";
Record privinceRecord = dm.getAreaByName(privinceName); // Record privinceRecord = dm.getAreaByName(privinceName);
String privinceId = privinceRecord.getStr("id"); // String privinceId = privinceRecord.getStr("id");
if (i == 1) { // if (i == 1) {
//对此表中的数据进行直接导出EXCEL // //对此表中的数据进行直接导出EXCEL
String sql = "select * from `" + tableName + "`"; // String sql = "select * from `" + tableName + "`";
tableData = Db.use(DataEaseModel.DB_NAME).find(sql); // tableData = Db.use(DataEaseModel.DB_NAME).find(sql);
excelFileName = "【" + privinceName + "】" + dataSetName + ".xlsx"; // excelFileName = "【" + privinceName + "】" + dataSetName + ".xlsx";
ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true); // ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
} else if (i == 2) { // } else if (i == 2) {
//枚举所有的市州数据然后进行导出EXCEL // //枚举所有的市州数据然后进行导出EXCEL
List<Record> cityList = dm.getAreaList(privinceId); // List<Record> cityList = dm.getAreaList(privinceId);
String cityName = ""; // String cityName = "";
String cityId = ""; // String cityId = "";
for (Record rCity : cityList) { // for (Record rCity : cityList) {
cityName = rCity.getStr("area_name"); // cityName = rCity.getStr("area_name");
cityId = rCity.getStr("id"); // cityId = rCity.getStr("id");
if (i == 3) { // if (i == 3) {
//
//枚举所有的县区数据然后进行导出EXCEL // //枚举所有的县区数据然后进行导出EXCEL
ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true); // ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
} // }
} // }
String sql = "select * from `" + tableName + "` where `行政区划`=?"; // String sql = "select * from `" + tableName + "` where `行政区划`=?";
System.out.println(tableName); // System.out.println(tableName);
tableData = Db.use(DataEaseModel.DB_NAME).find(sql, cityName); // tableData = Db.use(DataEaseModel.DB_NAME).find(sql, cityName);
excelFileName = "【" + cityName + "】" + dataSetName + ".xlsx"; // excelFileName = "【" + cityName + "】" + dataSetName + ".xlsx";
ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true); // ExcelCommonUtil.writeExcel(tableData, exportPath + "/" + excelFileName, true);
} // }
// }
// }
// System.out.println("恭喜,所有数据处理完毕,共生成数据集数量=" + total + "个。");
}catch (Exception e){
System.out.println(e.toString());
} }
finally {
session.disconnect();
} }
System.out.println("恭喜,所有数据处理完毕,共生成数据集数量=" + total + "个。");
} }
} }

Loading…
Cancel
Save