main
黄海 9 months ago
parent 1e49b6574d
commit 7e7c0cb48a

@ -6,6 +6,7 @@ import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@ -56,60 +57,80 @@ public class Step3_DataSetFakeData {
Record rPrinvice = dm.getAreaByName("云南省");
String province_id = rPrinvice.getStr("id");
List<Record> listCity = dm.getAreaList(province_id);
int identity_id = 1;
//完善省级数据
List<Record> list = dm.getDataSetByIdentityId(identity_id, null);
for (Record record : list) {
String table_name = record.getStr("table_name");
System.out.println("正在处理数据集:" + table_name);
String sql = "update `" + table_name + "` set `行政区划`='云南省' where `行政区划` is null";
Db.use(DataEaseModel.DB_NAME).update(sql);
sql = "update `" + table_name + "` set `上级行政区划`='云南省' where `上级行政区划` is null";
Db.use(DataEaseModel.DB_NAME).update(sql);
}
// int identity_id = 1;
// //完善省级数据
// List<Record> list = dm.getDataSetByIdentityId(identity_id, null);
// for (Record record : list) {
// String table_name = record.getStr("table_name");
// System.out.println("正在处理数据集:" + table_name);
// String sql = "update `" + table_name + "` set `行政区划`='云南省' where `行政区划` is null";
// Db.use(DataEaseModel.DB_NAME).update(sql);
// sql = "update `" + table_name + "` set `上级行政区划`='云南省' where `上级行政区划` is null";
// Db.use(DataEaseModel.DB_NAME).update(sql);
// }
//
// //拷贝城市数据
// for (Record rCity : listCity) {
// //城市名称
// String area_name = rCity.getStr("area_name");
// //如果在保留名单中,则跳过
// if (keepArea.contains(area_name)) {
// continue;
// }
// //遍历所有市州数据集
// identity_id = 2;
// list = dm.getDataSetByIdentityId(identity_id, null);
// for (Record record : list) {
// String table_name = record.getStr("table_name");
// System.out.println("正在处理数据集:" + area_name + " " + table_name);
// //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据
// deleteData(table_name, area_name);
// CopyData(table_name, "昆明市", area_name, "云南省");
// }
// }
// //获取所有县区
// List<Record> listArea = dm.getProvinceArea("云南省");
// 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;
// }
// //遍历所有县区数据集
// identity_id = 3;
// list = dm.getDataSetByIdentityId(identity_id, null);
// for (Record record : list) {
// String table_name = record.getStr("table_name");
// System.out.println(area_name + "正在处理数据集:" + table_name);
// //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝寻甸县的数据
// deleteData(table_name, area_name);
// CopyData(table_name, "寻甸县", area_name, parent_name);
// }
// }
//拷贝城市数据
for (Record rCity : listCity) {
//城市名称
String area_name = rCity.getStr("area_name");
//如果在保留名单中,则跳过
if (keepArea.contains(area_name)) {
continue;
}
//遍历所有市州数据集
identity_id = 2;
list = dm.getDataSetByIdentityId(identity_id, null);
for (Record record : list) {
String table_name = record.getStr("table_name");
System.out.println("正在处理数据集:" + table_name);
//检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据
deleteData(table_name, area_name);
CopyData(table_name, "昆明市", area_name, "云南省");
}
}
//获取所有县区
List<Record> listArea = dm.getProvinceArea("云南省");
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;
}
//遍历所有县区数据集
identity_id = 3;
list = dm.getDataSetByIdentityId(identity_id, null);
for (Record record : list) {
String table_name = record.getStr("table_name");
System.out.println(area_name + "正在处理数据集:" + table_name);
//检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝寻甸县的数据
deleteData(table_name, area_name);
CopyData(table_name, "寻甸县", area_name, parent_name);
//有一些表是以 上级行政区划为根的,然后遍历了它的县区,还有类型,不好直接抄过来,只能硬写了
for (Record record : listCity) {
//String cityName = "昭通市";
String cityName = record.getStr("area_name");
if (keepArea.contains(cityName)) continue;
Record rCity = dm.getAreaByName(cityName);
List<Record> lArea = dm.getAreaList(rCity.getStr("id"));
List<Record> writeList = new ArrayList<>();
for (Record r : lArea) {
Record rArea = new Record();
rArea.set("上级行政区划", cityName);
rArea.set("行政区划", r.getStr("area_name"));
rArea.set("类型", "净流出");
rArea.set("数值(人)", 2313250);
writeList.add(rArea);
}
Db.use(DataEaseModel.DB_NAME).batchSave("excel_区域人口流动分布_374179b760", writeList, 100);
}
}
}

Loading…
Cancel
Save