main
黄海 9 months ago
parent 34d297affa
commit b7b916aadc

@ -534,4 +534,16 @@ public class DataEaseModel {
long rootId = getVisuallizationRoot().getLong("id");
return new HashSet<>(getChildren(rootId));
}
/**
*
*
* @param provinceName
* @return
*/
public List<Record> getProvinceArea(String provinceName) {
String provinceId = getAreaByName(provinceName).getStr("id");
String sql = "select * from ds_db.t_dm_area where province_id=? and level_id=5";
return Db.find(sql, provinceId);
}
}

@ -0,0 +1,87 @@
package com.dsideal.base.Tools;
import com.dsideal.base.DataEase.Model.DataEaseModel;
import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
public class DataSetFakeData {
public static DataEaseModel dm = new DataEaseModel();
/**
*
*
* @param table_name
* @param area_name
*/
public static void CopyData(String table_name, String area_name, String source_area_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);
}
Db.use(DataEaseModel.DB_NAME).batchSave(table_name, list, 100);
}
public static void main(String[] args) throws IOException {
LocalMysqlConnectUtil.Init();
DataEaseModel dm = new DataEaseModel();
//这几个是要保留的地名
List<String> keepArea = Arrays.asList("云南省", "昆明市", "楚雄州", "寻甸县");
//所有市州
Record rPrinvice = dm.getAreaByName("云南省");
String province_id = rPrinvice.getStr("id");
List<Record> listCity = dm.getAreaList(province_id);
//拷贝城市数据
for (Record rCity : listCity) {
//城市名称
String area_name = rCity.getStr("area_name");
//如果在保留名单中,则跳过
if (keepArea.contains(area_name)) {
continue;
}
//遍历所有市州数据集
int identity_id = 2;
List<Record> list = dm.getDataSetByIdentityId(identity_id, null);
for (Record record : list) {
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, "昆明市");
}
}
}
//获取所有县区
List<Record> listArea = dm.getProvinceArea("云南省");
for (Record rArea : listArea) {
//城市名称
String area_name = rArea.getStr("area_name");
//如果在保留名单中,则跳过
if (keepArea.contains(area_name)) {
continue;
}
//遍历所有县区数据集
int identity_id = 3;
List<Record> list = dm.getDataSetByIdentityId(identity_id, null);
for (Record record : list) {
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, "寻甸县");
}
}
}
}
}
Loading…
Cancel
Save