From b7b916aadcf55527ed67dbfcbe8cc008fa1b3d20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 6 Nov 2024 08:05:42 +0800 Subject: [PATCH] 'commit' --- .../base/DataEase/Model/DataEaseModel.java | 12 +++ .../dsideal/base/Tools/DataSetFakeData.java | 87 +++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 src/main/java/com/dsideal/base/Tools/DataSetFakeData.java diff --git a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java index 5c7549fe..cbce93dd 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -534,4 +534,16 @@ public class DataEaseModel { long rootId = getVisuallizationRoot().getLong("id"); return new HashSet<>(getChildren(rootId)); } + + /** + * 获取指定名称省下面的所有县区 + * + * @param provinceName + * @return + */ + public List 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); + } } diff --git a/src/main/java/com/dsideal/base/Tools/DataSetFakeData.java b/src/main/java/com/dsideal/base/Tools/DataSetFakeData.java new file mode 100644 index 00000000..77c4b64b --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/DataSetFakeData.java @@ -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 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 keepArea = Arrays.asList("云南省", "昆明市", "楚雄州", "寻甸县"); + //所有市州 + Record rPrinvice = dm.getAreaByName("云南省"); + String province_id = rPrinvice.getStr("id"); + List 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 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 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 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, "寻甸县"); + } + } + } + } +}