main
黄海 9 months ago
parent b53d448680
commit 3295309492

@ -363,6 +363,16 @@ public class DataEaseModel {
return Db.findFirst(sql, area_name);
}
/**
* id
* @param id
* @return
*/
public Record getAreaById(String id) {
String sql = "select * from t_dm_area where id=?";
return Db.findFirst(sql, id);
}
/**
* id
*

@ -18,11 +18,12 @@ public class DataSetFakeData {
* @param table_name
* @param area_name
*/
public static void CopyData(String table_name, String area_name, String source_area_name) {
public static void CopyData(String table_name, String source_area_name, String area_name, String parent_name) {
String sql = "select * from `" + table_name + "` where `行政区划`='" + source_area_name + "'";
List<Record> list = Db.use(DataEaseModel.DB_NAME).find(sql);
for (Record r : list) {
r.set("行政区划", area_name);
r.set("上级行政区划", parent_name);
r.remove("id");
}
Db.use(DataEaseModel.DB_NAME).batchSave(table_name, list, 100);
@ -58,13 +59,9 @@ public class DataSetFakeData {
String table_name = record.getStr("table_name");
System.out.println("正在处理数据集:" + table_name);
//检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据
String sql = "select count(1) from `" + table_name + "` where `行政区划`='" + area_name + "'";
int cnt = Db.use(DataEaseModel.DB_NAME).queryInt(sql);
if (cnt == 0) {
CopyData(table_name, area_name, "昆明市");
} else {
System.out.println("数据集:" + table_name + " 已经存在,跳过");
}
String sql = "delete from `" + table_name + "` where `行政区划`='" + area_name + "'";
Db.use(DataEaseModel.DB_NAME).update(sql);
CopyData(table_name, "昆明市", area_name, "云南省");
}
}
//获取所有县区
@ -72,6 +69,10 @@ public class DataSetFakeData {
for (Record rArea : listArea) {
//城市名称
String area_name = rArea.getStr("area_name");
String parent_id = rArea.getStr("parent_id");
//隶属哪个市州
Record parentRecord = dm.getAreaById(parent_id);
String parent_name = parentRecord.getStr("area_name");
//如果在保留名单中,则跳过
if (keepArea.contains(area_name)) {
continue;
@ -83,13 +84,9 @@ public class DataSetFakeData {
String table_name = record.getStr("table_name");
System.out.println(area_name + "正在处理数据集:" + table_name);
//检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据
String sql = "select count(1) from `" + table_name + "` where `行政区划`='" + area_name + "'";
int cnt = Db.use(DataEaseModel.DB_NAME).queryInt(sql);
if (cnt == 0) {
CopyData(table_name, area_name, "寻甸县");
} else {
System.out.println("数据集:" + table_name + " 已经存在,跳过");
}
String sql = "delete from `" + table_name + "` where `行政区划`='" + area_name + "'";
Db.use(DataEaseModel.DB_NAME).update(sql);
CopyData(table_name, "寻甸县", area_name, parent_name);
}
}
}

Loading…
Cancel
Save