From d0cfe67b5cae5086dc8a70e64ead3c4ddd16e263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 16:34:35 +0800 Subject: [PATCH 01/20] 'commit' --- .../dsideal/base/DataEase/Controller/DataEaseController.java | 3 ++- .../java/com/dsideal/base/DataEase/Model/DataEaseModel.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index 920f9083..636926e7 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -43,6 +43,7 @@ public class DataEaseController extends Controller { @Before({GET.class}) @EmptyInterface({"city_name"}) public void route(String city_name) { + city_name = dm.getFullAreaName(city_name); //大屏名称 String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationName"); //发布的地址 @@ -127,7 +128,7 @@ public class DataEaseController extends Controller { String tableName = record.getStr("table_name"); String dataSetName = record.getStr("dataset_name"); //导出excel - String upPath = BaseApplication.PropKit.get("upload.path")+"/"; + String upPath = BaseApplication.PropKit.get("upload.path") + "/"; String excelFileName = dm.exportExcel(identity_id, tableName, dataSetName, upPath, area_name); System.out.println(excelFileName); //renderFile 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 e553c3a9..60ae12f2 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -105,7 +105,8 @@ public class DataEaseModel { public String getCityCode(String cityName) { String full_name = getFullAreaName(cityName); String sql = "select area_code from t_city_code where area_name=?"; - return Db.findFirst(sql, full_name).getStr("area_code"); + String area_code=Db.findFirst(sql, full_name).getStr("area_code"); + return area_code; } /** From 96a6472a94647cdc4c27e63e43dd52f920f36230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 18:42:30 +0800 Subject: [PATCH 02/20] 'commit' --- .../base/DataEase/Model/DataEaseModel.java | 39 +++++++------------ src/main/resources/application.yaml | 2 +- 2 files changed, 16 insertions(+), 25 deletions(-) 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 60ae12f2..2759912a 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -37,20 +37,6 @@ public class DataEaseModel { return Db.find(sql, identity_id); } - /** - * 获取数据集对应的表 - * - * @param dataset_id 数据集id - * @return - */ - public List getDataSetTableContent(int dataset_id) { - Record record = getDataSetById(dataset_id); - if (record == null) return null; - String sql = "select * from `" + record.getStr("table_name") + "`"; - List list = Db.use(DB_NAME).find(sql); - return list; - } - /** * 保存数据集对应的表 @@ -91,9 +77,8 @@ public class DataEaseModel { * @return */ public List getMap(long bigScreenId) { - String sql = "select id,custom_attr from dataease.core_chart_view where scene_id=? and type='map'"; - List list = Db.find(sql, bigScreenId); - return list; + String sql = "select id,custom_attr from core_chart_view where scene_id=? and type like '%map%'"; + return Db.use(DB_NAME).find(sql, bigScreenId); } /** @@ -105,8 +90,7 @@ public class DataEaseModel { public String getCityCode(String cityName) { String full_name = getFullAreaName(cityName); String sql = "select area_code from t_city_code where area_name=?"; - String area_code=Db.findFirst(sql, full_name).getStr("area_code"); - return area_code; + return Db.findFirst(sql, full_name).getStr("area_code"); } /** @@ -117,22 +101,29 @@ public class DataEaseModel { */ public void updateCity(String dataVisualizationName, String cityName) { //取出大屏的ID值 - String sql = "select * from dataease.data_visualization_info where name =?"; - Record dataVisualizationInfo = Db.findFirst(sql, dataVisualizationName); + //云南省教育决策支持系统 + String sql = "select * from data_visualization_info where name =?"; + Record dataVisualizationInfo = Db.use(DB_NAME).findFirst(sql, dataVisualizationName); long bigScreenId = dataVisualizationInfo.getLong("id"); // 配置的内容 List list = getMap(bigScreenId); + for (Record record : list) { long id = record.getLong("id"); - com.alibaba.fastjson.JSONObject jo = com.alibaba.fastjson.JSONObject.parseObject(record.getStr("custom_attr")); + JSONObject jo = JSONObject.fromObject(record.getStr("custom_attr")); //获取城市编码 String area_code = getCityCode(cityName); + //修改前 + System.out.println("修改前=" + jo.getJSONObject("map")); + //修改城市编码 jo.getJSONObject("map").put("id", area_code); jo.getJSONObject("map").put("level", "city"); + + System.out.println("修改后=" + jo.getJSONObject("map")); //写到数据库 - String jsonString = jo.toJSONString(); - Db.update("update dataease.core_chart_view set custom_attr=? where id=?", jsonString, id); + String jsonString = jo.toString(); + Db.use(DB_NAME).update("update core_chart_view set custom_attr=? where id=?", jsonString, id); } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 4f4603c4..cd3a71d4 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -23,7 +23,7 @@ redis: # 数据可视化 dataEase: - dataVisualizationName: 云南省教育决策支持系统 + dataVisualizationName: 云南省教育决策支持系统2 publish_url: http://10.10.14.203:8100 # ============================================================== From fa67098c985ed3909ac78fb3459bba0201a9929b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 18:52:40 +0800 Subject: [PATCH 03/20] 'commit' --- src/main/resources/application.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index cd3a71d4..b2fe17a3 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -23,7 +23,7 @@ redis: # 数据可视化 dataEase: - dataVisualizationName: 云南省教育决策支持系统2 + dataVisualizationName: 云南省教育决策支持系统【市州】 publish_url: http://10.10.14.203:8100 # ============================================================== From e8c5ef0ab0b105cb4286bb8e1e398f56d84629fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 18:56:21 +0800 Subject: [PATCH 04/20] 'commit' --- .../com/dsideal/base/DataEase/Controller/DataEaseController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index 636926e7..2e9fce72 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -43,6 +43,7 @@ public class DataEaseController extends Controller { @Before({GET.class}) @EmptyInterface({"city_name"}) public void route(String city_name) { + //换算出全名 city_name = dm.getFullAreaName(city_name); //大屏名称 String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationName"); From f77aab15902f87e097cc2def8d0947cff52a9b62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 19:10:41 +0800 Subject: [PATCH 05/20] 'commit' --- .../dsideal/base/DataEase/Controller/DataEaseController.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index 2e9fce72..943ffd2b 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -43,6 +43,7 @@ public class DataEaseController extends Controller { @Before({GET.class}) @EmptyInterface({"city_name"}) public void route(String city_name) { + //换算出全名 city_name = dm.getFullAreaName(city_name); //大屏名称 @@ -76,7 +77,7 @@ public class DataEaseController extends Controller { String publish_url = BaseApplication.PropKit.get("dataEase.publish_url"); //拼接一下URL的最终地址 JSONObject jo = new JSONObject(); - jo.put("area_name", area_name); + jo.put("city_name", area_name); String base64Str = Base64.encode(jo.toString()); switch (type_id) { case 1://左侧学前教育规模发展预测,义务教育规模发展预测,普通高中教育规模发展预测 From 96a7e128c1a5bb811a987d1deb9e9a8b1d9ead58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 19:19:01 +0800 Subject: [PATCH 06/20] 'commit' --- .../dsideal/base/DataEase/Controller/DataEaseController.java | 3 --- .../java/com/dsideal/base/DataEase/Model/DataEaseModel.java | 3 +-- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index 943ffd2b..78def7ea 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -43,9 +43,6 @@ public class DataEaseController extends Controller { @Before({GET.class}) @EmptyInterface({"city_name"}) public void route(String city_name) { - - //换算出全名 - city_name = dm.getFullAreaName(city_name); //大屏名称 String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationName"); //发布的地址 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 2759912a..9264acf9 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -402,8 +402,7 @@ public class DataEaseModel { */ public void writeLastArea(String area_name) { String sql = "update t_dataease_last_area set area_name=? where id=1"; - String full_name = getFullAreaName(area_name); - Db.update(sql, full_name); + Db.update(sql, area_name); } /** From 06b0a1d15cb965616797c5e643b8afdb89991a88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 20:12:14 +0800 Subject: [PATCH 07/20] 'commit' --- .../com/dsideal/base/Tools/ChangUrlLink.java | 40 ++++++++++++++ .../com/dsideal/base/Tools/ChangeUrlLink.java | 33 ------------ .../com/dsideal/base/Tools/ExportExcel.java | 6 +-- .../dsideal/base/Tools/Util/DevMysqlUtil.java | 52 +++++++++++++++++++ 4 files changed, 94 insertions(+), 37 deletions(-) create mode 100644 src/main/java/com/dsideal/base/Tools/ChangUrlLink.java delete mode 100644 src/main/java/com/dsideal/base/Tools/ChangeUrlLink.java create mode 100644 src/main/java/com/dsideal/base/Tools/Util/DevMysqlUtil.java diff --git a/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java b/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java new file mode 100644 index 00000000..325a2882 --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java @@ -0,0 +1,40 @@ +package com.dsideal.base.Tools; + +import com.dsideal.base.DataEase.Model.DataEaseModel; +import com.dsideal.base.Res.Model.ResourceModel; +import com.dsideal.base.Tools.Util.DevMysqlUtil; +import com.jcraft.jsch.JSchException; +import com.jfinal.kit.StrKit; +import com.jfinal.plugin.activerecord.Db; +import com.jfinal.plugin.activerecord.Record; + +import java.io.IOException; +import java.util.List; + +public class ChangUrlLink { + + public static DataEaseModel dm = new DataEaseModel(); + + public static void main(String[] args) throws IOException, JSchException { + DevMysqlUtil.Init(); + //原地址 + String sourceHost = "http://10.10.21.20:9000/dsBase/"; + //目标地址 + String targetHost = "https://www.edusoa.com/dsBase/"; + + String sql = "select * from visualization_link_jump_info"; + List list = Db.use(DataEaseModel.DB_NAME).find(sql); + String prefix = "http://"; + for (Record record : list) { + String content = record.getStr("content"); + long id = record.getLong("id"); + if (!StrKit.isBlank(content) + //只有http的不要 + && content.startsWith(prefix) && content.length() > prefix.length()) { + System.out.println(content); + //sql="update visualization_link_jump_info set content=? where id=?"; + //Db.use(DataEaseModel.DB_NAME).update(sql, content.replace(sourceHost, targetHost), id); + } + } + } +} diff --git a/src/main/java/com/dsideal/base/Tools/ChangeUrlLink.java b/src/main/java/com/dsideal/base/Tools/ChangeUrlLink.java deleted file mode 100644 index f58e74c1..00000000 --- a/src/main/java/com/dsideal/base/Tools/ChangeUrlLink.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.dsideal.base.Tools; - -import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Tools.Util.SshConnectUtil; -import com.jcraft.jsch.JSchException; -import com.jcraft.jsch.Session; -import com.jfinal.plugin.activerecord.Db; -import com.jfinal.plugin.activerecord.Record; - -import java.io.File; -import java.io.IOException; -import java.sql.SQLOutput; -import java.util.List; - -public class ChangeUrlLink { - public static DataEaseModel dm = new DataEaseModel(); - - public static void main(String[] args) throws IOException, JSchException { - //通过ssh链接到Mysql数据库 - Session session = SshConnectUtil.Init(); - - String sql="select * from core_chart_view"; - List list = Db.use(DataEaseModel.DB_NAME).find(sql); - for (Record record : list) { - String custom_attr=record.getStr("custom_attr"); - if(custom_attr.contains("http://")){ - System.out.println("Found"); - } - } - //关闭Ssh链接 - session.disconnect(); - } -} diff --git a/src/main/java/com/dsideal/base/Tools/ExportExcel.java b/src/main/java/com/dsideal/base/Tools/ExportExcel.java index c536a45e..c1d5ada7 100644 --- a/src/main/java/com/dsideal/base/Tools/ExportExcel.java +++ b/src/main/java/com/dsideal/base/Tools/ExportExcel.java @@ -1,6 +1,7 @@ package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; +import com.dsideal.base.Tools.Util.DevMysqlUtil; import com.dsideal.base.Tools.Util.SshConnectUtil; import com.dsideal.base.Util.ExcelCommonUtil; import com.jcraft.jsch.JSchException; @@ -18,8 +19,7 @@ public class ExportExcel { public static DataEaseModel dm = new DataEaseModel(); public static void main(String[] args) throws IOException, JSchException { - //通过ssh链接到Mysql数据库 - Session session = SshConnectUtil.Init(); + DevMysqlUtil.Init(); //Excel的保存目录 String exportPath = "D:/360Downloads/Excel"; @@ -68,7 +68,5 @@ public class ExportExcel { dm.exportExcel(3, tableName, dataSetName, exportPath, areaName); } System.out.println("导出完成!"); - //关闭Ssh链接 - session.disconnect(); } } diff --git a/src/main/java/com/dsideal/base/Tools/Util/DevMysqlUtil.java b/src/main/java/com/dsideal/base/Tools/Util/DevMysqlUtil.java new file mode 100644 index 00000000..78319560 --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/Util/DevMysqlUtil.java @@ -0,0 +1,52 @@ +package com.dsideal.base.Tools.Util; + +import com.dsideal.base.DataEase.Model.DataEaseModel; +import com.dsideal.base.Plugin.YamlProp; +import com.dsideal.base.Tools.InitDataEaseDataSet; +import com.jfinal.kit.Prop; +import com.jfinal.plugin.activerecord.ActiveRecordPlugin; +import com.jfinal.plugin.activerecord.dialect.MysqlDialect; +import com.jfinal.plugin.hikaricp.HikariCpPlugin; + +import java.io.File; + +public class DevMysqlUtil { + public static Prop PropKit; + + public static void Init() { + //加载配置文件 + String configFile = "application.yaml"; + PropKit = new YamlProp(configFile); + + HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), + PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); + HikariCpPlugin dataEasePlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl").replace("ds_db", "dataease"), PropKit.get("mysql.user"), + PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); + + masterPlugin.start(); + + dataEasePlugin.start(); + + // 配置ActiveRecord插件 + ActiveRecordPlugin arp = new ActiveRecordPlugin(masterPlugin); + arp.setDialect(new MysqlDialect()); + + ActiveRecordPlugin arpDataEase = new ActiveRecordPlugin(DataEaseModel.DB_NAME, dataEasePlugin); + arpDataEase.setDialect(new MysqlDialect()); + + //遍历sql目录下所有的sql文件 + File sqlDir; + String basePath = InitDataEaseDataSet.class.getResource("/").getPath(); + sqlDir = new File(basePath + "/Sql"); + File[] sqlFiles = sqlDir.listFiles(); + for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { + //只加载.sql文件 + if (sqlFile.getName().indexOf(".sql") > 0) { + arp.addSqlTemplate("/Sql/" + sqlFile.getName()); + arpDataEase.addSqlTemplate("/Sql/" + sqlFile.getName()); + } + } + arp.start(); + arpDataEase.start(); + } +} From d51f408e54f625d7965ee76508adb060f5479610 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Mon, 4 Nov 2024 20:16:23 +0800 Subject: [PATCH 08/20] 'commit' --- .../com/dsideal/base/Tools/ChangUrlLink.java | 5 ++--- .../{AddXzqh.java => DataSetAddXzqh.java} | 6 +++--- ...tDataEaseDataSet.java => DataSetInit.java} | 12 ++++-------- .../com/dsideal/base/Tools/InitOrgPerson.java | 19 +++---------------- .../Tools/{ => Test}/ChangeDataEaseCity.java | 2 +- .../base/Tools/{ => Test}/ConvertExcel.java | 4 +--- .../base/Tools/{ => Test}/ExportExcel.java | 11 +++-------- ...qlUtil.java => LocalMysqlConnectUtil.java} | 6 +++--- ...nectUtil.java => SshMysqlConnectUtil.java} | 6 +++--- 9 files changed, 23 insertions(+), 48 deletions(-) rename src/main/java/com/dsideal/base/Tools/{AddXzqh.java => DataSetAddXzqh.java} (90%) rename src/main/java/com/dsideal/base/Tools/{InitDataEaseDataSet.java => DataSetInit.java} (67%) rename src/main/java/com/dsideal/base/Tools/{ => Test}/ChangeDataEaseCity.java (95%) rename src/main/java/com/dsideal/base/Tools/{ => Test}/ConvertExcel.java (96%) rename src/main/java/com/dsideal/base/Tools/{ => Test}/ExportExcel.java (87%) rename src/main/java/com/dsideal/base/Tools/Util/{DevMysqlUtil.java => LocalMysqlConnectUtil.java} (90%) rename src/main/java/com/dsideal/base/Tools/Util/{SshConnectUtil.java => SshMysqlConnectUtil.java} (91%) diff --git a/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java b/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java index 325a2882..216041c6 100644 --- a/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java +++ b/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java @@ -1,8 +1,7 @@ package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Res.Model.ResourceModel; -import com.dsideal.base.Tools.Util.DevMysqlUtil; +import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import com.jcraft.jsch.JSchException; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; @@ -16,7 +15,7 @@ public class ChangUrlLink { public static DataEaseModel dm = new DataEaseModel(); public static void main(String[] args) throws IOException, JSchException { - DevMysqlUtil.Init(); + LocalMysqlConnectUtil.Init(); //原地址 String sourceHost = "http://10.10.21.20:9000/dsBase/"; //目标地址 diff --git a/src/main/java/com/dsideal/base/Tools/AddXzqh.java b/src/main/java/com/dsideal/base/Tools/DataSetAddXzqh.java similarity index 90% rename from src/main/java/com/dsideal/base/Tools/AddXzqh.java rename to src/main/java/com/dsideal/base/Tools/DataSetAddXzqh.java index ed16ab58..9aae4aea 100644 --- a/src/main/java/com/dsideal/base/Tools/AddXzqh.java +++ b/src/main/java/com/dsideal/base/Tools/DataSetAddXzqh.java @@ -1,7 +1,7 @@ package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Tools.Util.SshConnectUtil; +import com.dsideal.base.Tools.Util.SshMysqlConnectUtil; import com.jcraft.jsch.JSchException; import com.jfinal.plugin.activerecord.Record; @@ -10,12 +10,12 @@ import java.util.List; import com.jcraft.jsch.Session; -public class AddXzqh { +public class DataSetAddXzqh { public static DataEaseModel dm = new DataEaseModel(); public static void main(String[] args) throws IOException, JSchException { - Session session = SshConnectUtil.Init(); + Session session = SshMysqlConnectUtil.Init(); //遍历所有以excel_开头的表,找出这些表中是不是存在行政区划,上级行政区划的列名 for (int identity_id : new int[]{1, 2, 3}) { List list = dm.getDataSetByIdentityId(identity_id); diff --git a/src/main/java/com/dsideal/base/Tools/InitDataEaseDataSet.java b/src/main/java/com/dsideal/base/Tools/DataSetInit.java similarity index 67% rename from src/main/java/com/dsideal/base/Tools/InitDataEaseDataSet.java rename to src/main/java/com/dsideal/base/Tools/DataSetInit.java index 0973e0dc..8c895a91 100644 --- a/src/main/java/com/dsideal/base/Tools/InitDataEaseDataSet.java +++ b/src/main/java/com/dsideal/base/Tools/DataSetInit.java @@ -1,27 +1,23 @@ package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Tools.Util.SshConnectUtil; +import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; +import com.dsideal.base.Tools.Util.SshMysqlConnectUtil; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; import java.io.IOException; -public class InitDataEaseDataSet { +public class DataSetInit { public static DataEaseModel dm = new DataEaseModel(); public static void main(String[] args) throws IOException, JSchException { - //通过ssh链接到Mysql数据库 - Session session = SshConnectUtil.Init(); - + LocalMysqlConnectUtil.Init(); //1、添加到数据集表中 dm.collectDataSet(); //2、加上主键 dm.addPrimaryKey(); //3、将所有非空列去掉不允许为空的限制 dm.updateNotNullColumns(); - - //关闭数据库 - session.disconnect(); } } diff --git a/src/main/java/com/dsideal/base/Tools/InitOrgPerson.java b/src/main/java/com/dsideal/base/Tools/InitOrgPerson.java index 5c132fdd..3be54839 100644 --- a/src/main/java/com/dsideal/base/Tools/InitOrgPerson.java +++ b/src/main/java/com/dsideal/base/Tools/InitOrgPerson.java @@ -1,5 +1,6 @@ package com.dsideal.base.Tools; +import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import com.dsideal.base.Util.CommonUtil; import com.dsideal.base.Util.PkUtil; import com.dsideal.base.Plugin.YamlProp; @@ -23,20 +24,7 @@ public class InitOrgPerson { public static Prop PropKit; public static void main(String[] args) throws Exception { - //告之配置文件位置 - String configFile = "application.yaml"; - PropKit = new YamlProp(configFile); - - HikariCpPlugin druid = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), - PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); - druid.start(); - // 配置ActiveRecord插件 - ActiveRecordPlugin arp = new ActiveRecordPlugin(druid); - //应用系统 - String basePath = "/Sql/"; - arp.addSqlTemplate(basePath + "organization.sql"); - arp.addSqlTemplate(basePath + "loginPerson.sql"); - arp.start(); + LocalMysqlConnectUtil.Init(); // 用于缓存模块的redis服务 RedisPlugin redis = new RedisPlugin("myRedis", PropKit.get("redis.ip"), PropKit.getInt("redis.port"), 10 * 1000); @@ -98,8 +86,7 @@ public class InitOrgPerson { * 作者:黄海 * 时间:2018-12-21 */ - public static void generateUser(int identity_id, String person_name, String city_id, String area_id, int sort_id, String operator, String org_id) - throws Exception { + public static void generateUser(int identity_id, String person_name, String city_id, String area_id, int sort_id, String operator, String org_id) { Record record = new Record(); String person_id = UUID.randomUUID().toString().toUpperCase(); record.set("person_id", person_id); diff --git a/src/main/java/com/dsideal/base/Tools/ChangeDataEaseCity.java b/src/main/java/com/dsideal/base/Tools/Test/ChangeDataEaseCity.java similarity index 95% rename from src/main/java/com/dsideal/base/Tools/ChangeDataEaseCity.java rename to src/main/java/com/dsideal/base/Tools/Test/ChangeDataEaseCity.java index c8d9af2d..701fc48f 100644 --- a/src/main/java/com/dsideal/base/Tools/ChangeDataEaseCity.java +++ b/src/main/java/com/dsideal/base/Tools/Test/ChangeDataEaseCity.java @@ -1,4 +1,4 @@ -package com.dsideal.base.Tools; +package com.dsideal.base.Tools.Test; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Plugin.YamlProp; diff --git a/src/main/java/com/dsideal/base/Tools/ConvertExcel.java b/src/main/java/com/dsideal/base/Tools/Test/ConvertExcel.java similarity index 96% rename from src/main/java/com/dsideal/base/Tools/ConvertExcel.java rename to src/main/java/com/dsideal/base/Tools/Test/ConvertExcel.java index f8858860..921114c2 100644 --- a/src/main/java/com/dsideal/base/Tools/ConvertExcel.java +++ b/src/main/java/com/dsideal/base/Tools/Test/ConvertExcel.java @@ -1,4 +1,4 @@ -package com.dsideal.base.Tools; +package com.dsideal.base.Tools.Test; import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelUtil; @@ -8,8 +8,6 @@ import java.io.File; import java.io.IOException; import java.util.*; -import com.jfinal.plugin.activerecord.Record; - public class ConvertExcel { // 获取系统的临时文件目录 private static final String tempDir = System.getProperty("java.io.tmpdir"); diff --git a/src/main/java/com/dsideal/base/Tools/ExportExcel.java b/src/main/java/com/dsideal/base/Tools/Test/ExportExcel.java similarity index 87% rename from src/main/java/com/dsideal/base/Tools/ExportExcel.java rename to src/main/java/com/dsideal/base/Tools/Test/ExportExcel.java index c1d5ada7..c98db7f9 100644 --- a/src/main/java/com/dsideal/base/Tools/ExportExcel.java +++ b/src/main/java/com/dsideal/base/Tools/Test/ExportExcel.java @@ -1,25 +1,20 @@ -package com.dsideal.base.Tools; +package com.dsideal.base.Tools.Test; import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Tools.Util.DevMysqlUtil; -import com.dsideal.base.Tools.Util.SshConnectUtil; -import com.dsideal.base.Util.ExcelCommonUtil; +import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import com.jcraft.jsch.JSchException; -import com.jcraft.jsch.Session; import java.io.File; import java.io.IOException; -import java.util.ArrayList; import java.util.List; -import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; public class ExportExcel { public static DataEaseModel dm = new DataEaseModel(); public static void main(String[] args) throws IOException, JSchException { - DevMysqlUtil.Init(); + LocalMysqlConnectUtil.Init(); //Excel的保存目录 String exportPath = "D:/360Downloads/Excel"; diff --git a/src/main/java/com/dsideal/base/Tools/Util/DevMysqlUtil.java b/src/main/java/com/dsideal/base/Tools/Util/LocalMysqlConnectUtil.java similarity index 90% rename from src/main/java/com/dsideal/base/Tools/Util/DevMysqlUtil.java rename to src/main/java/com/dsideal/base/Tools/Util/LocalMysqlConnectUtil.java index 78319560..319be0f5 100644 --- a/src/main/java/com/dsideal/base/Tools/Util/DevMysqlUtil.java +++ b/src/main/java/com/dsideal/base/Tools/Util/LocalMysqlConnectUtil.java @@ -2,7 +2,7 @@ package com.dsideal.base.Tools.Util; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Plugin.YamlProp; -import com.dsideal.base.Tools.InitDataEaseDataSet; +import com.dsideal.base.Tools.DataSetInit; import com.jfinal.kit.Prop; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; @@ -10,7 +10,7 @@ import com.jfinal.plugin.hikaricp.HikariCpPlugin; import java.io.File; -public class DevMysqlUtil { +public class LocalMysqlConnectUtil { public static Prop PropKit; public static void Init() { @@ -36,7 +36,7 @@ public class DevMysqlUtil { //遍历sql目录下所有的sql文件 File sqlDir; - String basePath = InitDataEaseDataSet.class.getResource("/").getPath(); + String basePath = DataSetInit.class.getResource("/").getPath(); sqlDir = new File(basePath + "/Sql"); File[] sqlFiles = sqlDir.listFiles(); for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { diff --git a/src/main/java/com/dsideal/base/Tools/Util/SshConnectUtil.java b/src/main/java/com/dsideal/base/Tools/Util/SshMysqlConnectUtil.java similarity index 91% rename from src/main/java/com/dsideal/base/Tools/Util/SshConnectUtil.java rename to src/main/java/com/dsideal/base/Tools/Util/SshMysqlConnectUtil.java index 7bf539dc..e3d3b951 100644 --- a/src/main/java/com/dsideal/base/Tools/Util/SshConnectUtil.java +++ b/src/main/java/com/dsideal/base/Tools/Util/SshMysqlConnectUtil.java @@ -1,7 +1,7 @@ package com.dsideal.base.Tools.Util; import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Tools.InitDataEaseDataSet; +import com.dsideal.base.Tools.DataSetInit; import com.dsideal.base.Util.SSHConnector; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; @@ -11,7 +11,7 @@ import com.jfinal.plugin.hikaricp.HikariCpPlugin; import java.io.File; -public class SshConnectUtil { +public class SshMysqlConnectUtil { public static Session Init() throws JSchException { //远程主机的SSH登录信息 String sshHost = "117.78.60.214"; @@ -45,7 +45,7 @@ public class SshConnectUtil { //遍历sql目录下所有的sql文件 File sqlDir; - String basePath = InitDataEaseDataSet.class.getResource("/").getPath(); + String basePath = DataSetInit.class.getResource("/").getPath(); sqlDir = new File(basePath + "/Sql"); File[] sqlFiles = sqlDir.listFiles(); for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { From 2044f45c78d4fb39d33bda4d926170e2e89b01ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 07:43:07 +0800 Subject: [PATCH 09/20] 'commit' --- .../Controller/DataEaseController.java | 41 ++++++++++++++----- .../base/DataEase/Model/DataEaseModel.java | 9 +++- src/main/resources/application.yaml | 4 ++ 3 files changed, 42 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index 78def7ea..bbb8542e 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -14,6 +14,7 @@ import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; import com.jfinal.ext.interceptor.POST; import com.jfinal.kit.Kv; +import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Record; import com.jfinal.upload.UploadFile; import io.github.yedaxia.apidocs.ApiDoc; @@ -48,15 +49,19 @@ public class DataEaseController extends Controller { //发布的地址 String publish_url = BaseApplication.PropKit.get("dataEase.publish_url"); //先更新一下数据表 - dm.updateCity(dataVisualizationName, city_name); - //再拼接一下URL的最终地址 + boolean success = dm.updateCity(dataVisualizationName, city_name); + if (!success) { + renderJson(CommonUtil.returnMessageJson(false, dataVisualizationName + "名称的大屏不唯一,无法完成更新操作!")); + return; + } + //拼接一下URL的最终地址 JSONObject jo = new JSONObject(); jo.put("city_name", city_name); String base64Str = Base64.encode(jo.toString()); //记录最后一次操作的是哪个市或者县区 dm.writeLastArea(city_name); //跳转 - redirect(publish_url + "/#/de-link/X4l1qGNH?attachParams=" + base64Str); + redirect(publish_url + BaseApplication.PropKit.get("dataEase.ShiZhou_url") + "?attachParams=" + base64Str); } /** @@ -78,13 +83,13 @@ public class DataEaseController extends Controller { String base64Str = Base64.encode(jo.toString()); switch (type_id) { case 1://左侧学前教育规模发展预测,义务教育规模发展预测,普通高中教育规模发展预测 - publish_url = publish_url + "/#/de-link/TgShVA0z"; + publish_url = publish_url + BaseApplication.PropKit.get("dataEase.ShiLeft_url"); break; case 2://最底下,人口 - publish_url = publish_url + "/#/de-link/QZVOyXqD"; + publish_url = publish_url + BaseApplication.PropKit.get("dataEase.ShiBottom_url"); break; case 3://教育资源配置发展预测 - publish_url = publish_url + "/#/de-link/oitjXDlA"; + publish_url = publish_url + BaseApplication.PropKit.get("dataEase.ShiRight_url"); break; } //跳转 @@ -101,7 +106,11 @@ public class DataEaseController extends Controller { // identity_id=1 省 // identity_id=2 市 // identity_id=3 县 - int identity_id = Integer.parseInt(CookieUtil.getValue(getRequest(), "identity_id")); + String identity_idStr = CookieUtil.getValue(getRequest(), "identity_id"); + int identity_id = 1; + if (!StrKit.isBlank(identity_idStr)) { + identity_id = Integer.parseInt(identity_idStr); + } List list = dm.getDataSetByIdentityId(identity_id); renderJson(CommonUtil.renderJsonForLayUI(list)); } @@ -115,8 +124,12 @@ public class DataEaseController extends Controller { @IsLoginInterface({}) @IsNumericInterface({"id"}) public void downloadExcel(int id) throws IOException { + String identity_idStr = CookieUtil.getValue(getRequest(), "identity_id"); + int identity_id = 1; + if (!StrKit.isBlank(identity_idStr)) { + identity_id = Integer.parseInt(identity_idStr); + } //根据当前登录人员的身份,获取对应的数据集名称 - int identity_id = Integer.parseInt(CookieUtil.getValue(getRequest(), "identity_id")); String person_id = CookieUtil.getValue(getRequest(), "person_id"); //获取他是哪个城市或者县区的管理员 //行政区划码 @@ -142,8 +155,12 @@ public class DataEaseController extends Controller { @Before(GET.class) @IsLoginInterface({}) public void downSampleExcel(int id) throws IOException { + String identity_idStr = CookieUtil.getValue(getRequest(), "identity_id"); + int identity_id = 1; + if (!StrKit.isBlank(identity_idStr)) { + identity_id = Integer.parseInt(identity_idStr); + } //根据当前登录人员的身份,获取对应的数据集名称 - int identity_id = Integer.parseInt(CookieUtil.getValue(getRequest(), "identity_id")); if (identity_id == 1) { renderJson(CommonUtil.returnMessageJson(false, "省管理员不能下载模板!")); return; @@ -173,7 +190,11 @@ public class DataEaseController extends Controller { @IsLoginInterface({}) public void uploadExcel() { //根据当前登录人员的身份,获取对应的数据集名称 - int identity_id = Integer.parseInt(CookieUtil.getValue(getRequest(), "identity_id")); + String identity_idStr = CookieUtil.getValue(getRequest(), "identity_id"); + int identity_id = 1; + if (!StrKit.isBlank(identity_idStr)) { + identity_id = Integer.parseInt(identity_idStr); + } String person_id = CookieUtil.getValue(getRequest(), "person_id"); //获取他是哪个城市或者县区的管理员 //行政区划码 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 9264acf9..51e1aac8 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -99,11 +99,15 @@ public class DataEaseModel { * @param dataVisualizationName 大屏名称 * @param cityName 城市名称 */ - public void updateCity(String dataVisualizationName, String cityName) { + public boolean updateCity(String dataVisualizationName, String cityName) { //取出大屏的ID值 //云南省教育决策支持系统 String sql = "select * from data_visualization_info where name =?"; - Record dataVisualizationInfo = Db.use(DB_NAME).findFirst(sql, dataVisualizationName); + List L1 = Db.use(DB_NAME).find(sql, dataVisualizationName); + if (L1.size() > 1) { + return false; + } + Record dataVisualizationInfo = L1.getFirst(); long bigScreenId = dataVisualizationInfo.getLong("id"); // 配置的内容 List list = getMap(bigScreenId); @@ -125,6 +129,7 @@ public class DataEaseModel { String jsonString = jo.toString(); Db.use(DB_NAME).update("update core_chart_view set custom_attr=? where id=?", jsonString, id); } + return true; } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index b2fe17a3..d61dd626 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -25,6 +25,10 @@ redis: dataEase: dataVisualizationName: 云南省教育决策支持系统【市州】 publish_url: http://10.10.14.203:8100 + ShiZhou_url: /#/de-link/X4l1qGNH + ShiLeft_url: /#/de-link/TgShVA0z + ShiBottom_url: /#/de-link/QZVOyXqD + ShiRight_url: /#/de-link/oitjXDlA # ============================================================== excel: From 4d84fada5fba522726d0d29a4967d2d64e11200b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 08:02:49 +0800 Subject: [PATCH 10/20] 'commit' --- .../C67F1A88-A247-459B-AD26-D5BAB3A371EB.xlsx | Bin 0 -> 5798 bytes .../EF737C21-0DDA-43AF-A602-AB00B01BD391.xlsx | Bin 0 -> 4180 bytes .../Controller/DataEaseController.java | 8 ++- .../base/DataEase/Model/DataEaseModel.java | 61 +++++++++++++++--- src/main/resources/application.yaml | 1 + 5 files changed, 59 insertions(+), 11 deletions(-) create mode 100644 WebRoot/upload/C67F1A88-A247-459B-AD26-D5BAB3A371EB.xlsx create mode 100644 WebRoot/upload/EF737C21-0DDA-43AF-A602-AB00B01BD391.xlsx diff --git a/WebRoot/upload/C67F1A88-A247-459B-AD26-D5BAB3A371EB.xlsx b/WebRoot/upload/C67F1A88-A247-459B-AD26-D5BAB3A371EB.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9c737dd002f34919dfc659c799d66d179efe3b3c GIT binary patch literal 5798 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 literal 0 HcmV?d00001 diff --git a/WebRoot/upload/EF737C21-0DDA-43AF-A602-AB00B01BD391.xlsx b/WebRoot/upload/EF737C21-0DDA-43AF-A602-AB00B01BD391.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a18bce77687e85a5d343c7bf7a5744959ae6bfbd GIT binary patch literal 4180 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 L1 = Db.use(DB_NAME).find(sql, dataVisualizationName); if (L1.size() > 1) { - return false; + return -1; } Record dataVisualizationInfo = L1.getFirst(); long bigScreenId = dataVisualizationInfo.getLong("id"); + //这个名称确实是存在,但它是不是我想要的这个云南省项目中的大屏呢 + Set set = getFamilyNodes(); + if (!set.contains(bigScreenId)) { + return -2; + } + // 配置的内容 List list = getMap(bigScreenId); @@ -118,18 +123,18 @@ public class DataEaseModel { //获取城市编码 String area_code = getCityCode(cityName); //修改前 - System.out.println("修改前=" + jo.getJSONObject("map")); + //System.out.println("修改前=" + jo.getJSONObject("map")); //修改城市编码 jo.getJSONObject("map").put("id", area_code); jo.getJSONObject("map").put("level", "city"); - System.out.println("修改后=" + jo.getJSONObject("map")); + //System.out.println("修改后=" + jo.getJSONObject("map")); //写到数据库 String jsonString = jo.toString(); Db.use(DB_NAME).update("update core_chart_view set custom_attr=? where id=?", jsonString, id); } - return true; + return 0; } @@ -383,7 +388,7 @@ public class DataEaseModel { */ public static List getColumnNamesFromExcel(String filePath) { List columnNames = new ArrayList<>(); - try (FileInputStream fis = new FileInputStream(new File(filePath)); + try (FileInputStream fis = new FileInputStream(filePath); Workbook workbook = new XSSFWorkbook(fis)) { Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表 @@ -434,4 +439,42 @@ public class DataEaseModel { String sql = "select area_name from t_dataease_last_area where id=1"; return Db.findFirst(sql).getStr("area_name"); } + + /** + * 获取云南教科院项目的根节点 + * + * @return + */ + public Record getVisuallizationRoot() { + String rootName = BaseApplication.PropKit.get("dataEase.dataVisualizationRootName"); + String sql = "select * from data_visualization_info where name =?"; + return Db.use(DB_NAME).findFirst(sql, rootName); + } + + /** + * 递归获取所有子节点 + * + * @param id 节点id + * @return + */ + public List getChildren(long id) { + List list = new ArrayList<>(); + list.add(id); + String sql = "select * from data_visualization_info where pid=?"; + List children = Db.use(DB_NAME).find(sql, id); + for (Record r : children) { + list.addAll(getChildren(r.getLong("id"))); + } + return list; + } + + /** + * 获取这个项目中有多少个节点,都是什么号 + * + * @return + */ + public Set getFamilyNodes() { + long rootId = getVisuallizationRoot().getLong("id"); + return new HashSet<>(getChildren(rootId)); + } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index d61dd626..5f48ab56 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -23,6 +23,7 @@ redis: # 数据可视化 dataEase: + dataVisualizationRootName: 云南省教科院 dataVisualizationName: 云南省教育决策支持系统【市州】 publish_url: http://10.10.14.203:8100 ShiZhou_url: /#/de-link/X4l1qGNH From 0633abfc2455fd8409fadd216d9787a8194992b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 08:06:15 +0800 Subject: [PATCH 11/20] 'commit' --- .../base/DataEase/Controller/DataEaseController.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index dab0b3ad..43833aae 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -146,7 +146,6 @@ public class DataEaseController extends Controller { //导出excel String upPath = BaseApplication.PropKit.get("upload.path") + "/"; String excelFileName = dm.exportExcel(identity_id, tableName, dataSetName, upPath, area_name); - System.out.println(excelFileName); //renderFile renderFile(new File(excelFileName), "【" + area_name + "】" + dataSetName + "." + "xlsx"); } @@ -164,11 +163,6 @@ public class DataEaseController extends Controller { if (!StrKit.isBlank(identity_idStr)) { identity_id = Integer.parseInt(identity_idStr); } - //根据当前登录人员的身份,获取对应的数据集名称 - if (identity_id == 1) { - renderJson(CommonUtil.returnMessageJson(false, "省管理员不能下载模板!")); - return; - } String area_name = ""; //获取他是哪个城市的管理员 if (identity_id == 2) { From 263b42387014a696edd78ad29f523806b9744452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 08:24:01 +0800 Subject: [PATCH 12/20] 'commit' --- .../Controller/DataEaseController.java | 14 ++++-- .../base/DataEase/Model/DataEaseModel.java | 31 ++++++------ .../base/DataEase/Model/ExcelReader.java | 47 +++++++++++++++++++ .../dsideal/base/DataEase/Model/ExcelRow.java | 17 +++++++ 4 files changed, 88 insertions(+), 21 deletions(-) create mode 100644 src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java create mode 100644 src/main/java/com/dsideal/base/DataEase/Model/ExcelRow.java diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index 43833aae..d5eab9a7 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -3,6 +3,8 @@ package com.dsideal.base.DataEase.Controller; import cn.hutool.core.codec.Base64; import com.dsideal.base.BaseApplication; import com.dsideal.base.DataEase.Model.DataEaseModel; +import com.dsideal.base.DataEase.Model.ExcelReader; +import com.dsideal.base.DataEase.Model.ExcelRow; import com.dsideal.base.Interceptor.EmptyInterface; import com.dsideal.base.Interceptor.IsLoginInterface; import com.dsideal.base.Interceptor.IsNumericInterface; @@ -211,7 +213,8 @@ public class DataEaseController extends Controller { return; } //检查上传的excel,获取它有哪些列,与数据集的列是否一致 - List cols = dm.getColumnNamesFromExcel(uploadFile.getFile().getAbsolutePath()); + String excelPath = uploadFile.getFile().getAbsolutePath(); + List excelCols = dm.getColumnNamesFromExcel(excelPath); //获取指定数据表有哪些列 Record rDataSet = dm.getDataSetById(id); String tableName = rDataSet.getStr("table_name"); @@ -219,9 +222,9 @@ public class DataEaseController extends Controller { List mysqlCols = dm.getColumns(tableName); //id列需要特殊处理 - if (mysqlCols.contains("id")) mysqlCols.remove("id"); + mysqlCols.remove("id"); //对比两个数组集是不是一致,就是对比列名是不是完全匹配,使用交集去检查 - Set set1 = new HashSet<>(cols); + Set set1 = new HashSet<>(excelCols); Set set2 = new HashSet<>(mysqlCols); //是不是完整匹配 boolean match = set1.equals(set2); @@ -230,7 +233,10 @@ public class DataEaseController extends Controller { return; } //如果一致,那么需要先把数据集的指定行政区划列的表清空,再导入数据 - //TODO + ExcelReader excelReader = new ExcelReader(); + List rows = excelReader.readXlsxFile(excelPath, excelCols); + + dm.saveDataSetTable(identity_id, id, area_name, rows); //返回结果 Kv kv = Kv.create(); 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 1f6ff990..f6a58086 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -14,7 +14,6 @@ import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.*; @@ -41,31 +40,29 @@ public class DataEaseModel { * 保存数据集对应的表 * * @param dataset_id 数据集id - * @param ja json数组 */ - public void saveDataSetTable(int identity_id, int dataset_id, String xmqh, JSONArray ja) { + public void saveDataSetTable(int identity_id, int dataset_id, String xzqh, List listExcelRow) { String tableName = getDataSetById(dataset_id).getStr("table_name"); if (identity_id > 1) { - String sql = "delete from dataease.`" + tableName + "` where `行政区划`=?"; - Db.update(sql, xmqh); + String sql = "delete from `" + tableName + "` where `行政区划`=?"; + Db.use(DB_NAME).update(sql, xzqh); } else { - String sql = "delete from dataease.`" + tableName + "`"; - Db.update(sql); + String sql = "delete from `" + tableName + "`"; + Db.use(DB_NAME).update(sql); } List list = new ArrayList<>(); - for (int i = 0; i < ja.size(); i++) { - JSONObject jsonObject = ja.getJSONObject(i); - //遍历jo的每一个属性 - // 或者使用keySet和for-each循环遍历 + //数据行 + for (int i = 1; i < listExcelRow.size(); i++) { + ExcelRow row = listExcelRow.get(i); Record record = new Record(); - for (Object key : jsonObject.keySet()) { - Object value = jsonObject.get(key); - if (value.equals("null")) value = null; - record.set(key.toString(), value); + for (int j = 0; j < row.getData().size(); j++) { + String value = row.getData().get(j); + //第一行是表头 + record.set(listExcelRow.getFirst().getData().get(j), value); } list.add(record); } - Db.use("dataease").batchSave(tableName, list, 100); + Db.use(DB_NAME).batchSave(tableName, list, 100); } @@ -386,7 +383,7 @@ public class DataEaseModel { * @param filePath * @return */ - public static List getColumnNamesFromExcel(String filePath) { + public List getColumnNamesFromExcel(String filePath) { List columnNames = new ArrayList<>(); try (FileInputStream fis = new FileInputStream(filePath); Workbook workbook = new XSSFWorkbook(fis)) { diff --git a/src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java b/src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java new file mode 100644 index 00000000..98ed2259 --- /dev/null +++ b/src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java @@ -0,0 +1,47 @@ +package com.dsideal.base.DataEase.Model; + +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import java.io.FileInputStream; +import java.util.ArrayList; +import java.util.List; + +public class ExcelReader { + public List readXlsxFile(String filePath, List cols) { + List rows = new ArrayList<>(); + try (FileInputStream fis = new FileInputStream(filePath); + Workbook workbook = new XSSFWorkbook(fis)) { + + Sheet sheet = workbook.getSheetAt(0); // 读取第一个工作表 + int rowNum = 0; + for (Row row : sheet) { + List rowData = new ArrayList<>(); + for (Cell cell : row) { + rowData.add(getCellValue(cell)); + } + if (rowNum == 0) { + // 如果文件中没有列名,可以在这里手动指定 + rows.add(new ExcelRow(cols)); // 根据您的实际列名进行修改 + rowNum++; + continue; + } + rows.add(new ExcelRow(rowData)); + rowNum++; + } + } catch (Exception e) { + e.printStackTrace(); + } + return rows; + } + + private String getCellValue(Cell cell) { + return switch (cell.getCellType()) { + case STRING -> cell.getStringCellValue(); + case NUMERIC -> String.valueOf(cell.getNumericCellValue()); + case BOOLEAN -> String.valueOf(cell.getBooleanCellValue()); + case FORMULA -> cell.getCellFormula(); + default -> ""; + }; + } +} \ No newline at end of file diff --git a/src/main/java/com/dsideal/base/DataEase/Model/ExcelRow.java b/src/main/java/com/dsideal/base/DataEase/Model/ExcelRow.java new file mode 100644 index 00000000..d5b3b5ae --- /dev/null +++ b/src/main/java/com/dsideal/base/DataEase/Model/ExcelRow.java @@ -0,0 +1,17 @@ +package com.dsideal.base.DataEase.Model; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Setter +@Getter +public class ExcelRow { + private List data; + + public ExcelRow(List data) { + this.data = data; + } + +} \ No newline at end of file From 7533f53f5b2c1a630a4c81f28a8be8b21950d7e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 11:19:54 +0800 Subject: [PATCH 13/20] 'commit' --- .../2B6DCFBD-60FD-477F-884F-5457BF616ECF.xlsx | Bin 0 -> 3245 bytes .../3847638B-B617-4A0D-9FE6-7FD68B400AC2.xlsx | Bin 0 -> 5798 bytes .../50F88E15-AA31-47E6-8D0B-9447553720C6.xlsx | Bin 0 -> 5798 bytes .../D5E45A96-058C-4E9F-9100-ACB538389C98.xlsx | Bin 0 -> 4473 bytes .../D90F0328-6C35-43D1-B308-3F18B4FA7B4F.xlsx | Bin 0 -> 3245 bytes .../Controller/DataEaseController.java | 5 +- .../dsideal/base/Util/ExcelCommonUtil.java | 119 +++++++++--------- 7 files changed, 61 insertions(+), 63 deletions(-) create mode 100644 WebRoot/upload/2B6DCFBD-60FD-477F-884F-5457BF616ECF.xlsx create mode 100644 WebRoot/upload/3847638B-B617-4A0D-9FE6-7FD68B400AC2.xlsx create mode 100644 WebRoot/upload/50F88E15-AA31-47E6-8D0B-9447553720C6.xlsx create mode 100644 WebRoot/upload/D5E45A96-058C-4E9F-9100-ACB538389C98.xlsx create mode 100644 WebRoot/upload/D90F0328-6C35-43D1-B308-3F18B4FA7B4F.xlsx diff --git a/WebRoot/upload/2B6DCFBD-60FD-477F-884F-5457BF616ECF.xlsx b/WebRoot/upload/2B6DCFBD-60FD-477F-884F-5457BF616ECF.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..30b657bd07cc2c6ebfd039f917281da370fccb67 GIT binary patch literal 3245 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 Date: Tue, 5 Nov 2024 11:39:31 +0800 Subject: [PATCH 14/20] 'commit' --- .../238463B8-A635-4E1D-85F8-91092E0A60AF.xlsx | Bin 0 -> 3988 bytes .../69E3851E-9A96-45B1-BE26-DF82C87FF715.xlsx | Bin 0 -> 3245 bytes .../79EC54FA-EDBB-4524-AC1B-47CDA620C67E.xlsx | Bin 0 -> 4474 bytes .../Controller/DataEaseController.java | 4 +- .../base/DataEase/Model/DataEaseModel.java | 47 ++++++++++-------- .../dsideal/base/Tools/Test/ExportExcel.java | 10 ++-- 6 files changed, 34 insertions(+), 27 deletions(-) create mode 100644 WebRoot/upload/238463B8-A635-4E1D-85F8-91092E0A60AF.xlsx create mode 100644 WebRoot/upload/69E3851E-9A96-45B1-BE26-DF82C87FF715.xlsx create mode 100644 WebRoot/upload/79EC54FA-EDBB-4524-AC1B-47CDA620C67E.xlsx diff --git a/WebRoot/upload/238463B8-A635-4E1D-85F8-91092E0A60AF.xlsx b/WebRoot/upload/238463B8-A635-4E1D-85F8-91092E0A60AF.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b8f90cf513b6ddc391f55cb9d099e60c3a02bca4 GIT binary patch literal 3988 zcmaJ^c|6qp7RFd65;Ctf`@W5#AzSvbW*b{%&)AZ|Ad(nDBm2@~D?)GHEGZ-=G_sVP z#E@lp6S8IB?@ZnMa@|{JKEIjyW6pPe=Q-#1JkK#T1W_{*ZzhBZq z`UD_+0vs(ud=V&naPU>{O7jmsZy}7k8LgkhXNTSgty~$xB(xovqEyAFPQ_&TbF5kaHU@g`gn>L0>bAZ=O{BRO3-TGj+nY zrlRKh$Y<7>m^QW&Gg))V=j+>gFGuOVQwEJYA^Arc(Ux7D@S#dAQCYtjoS(Cz`Dadg zVRrh1I2QbXXtzemnG9diVvYbVW+rp_@-D@DV)X{Pk&&$^O|xWZebWwv<&V?Zh>N#b z6}bcN$e{ZN0j}$2#ZT^NVHMMh4En~bIR1(5R?v2-$kf5(aL_c_r0^c`!x4_%CR zKdnfg!tG1%kZa3GPHLT!xv@BN&eV_wm?9}!r%X;p#zjd+X8KF)>4?}n`Xjti(qPhi zNou13K!!2KQK%i8b(Mi2hHEZVT3Tdj4=zK|6#|se-K|?oc6{<`g%n28*j>$slV7fjTUKEJsHG*}#4@bMkpw2YXvznRCO1qxT{$<&sdK*?JgJAtL zqxN+QMO#cy&x?$tokFGe#>jJCdVDS}u{P;6e_M67FHxo7g4~}B7PGM|4X&`oed7AxzPhEVDqu2I>1IgjM^u*mj)>B6UCQC zyxmvC>(}jOI$F?Wq(6dG(beQ(gC+t=#?6=A?OWZG)(`b2?iInuCXL{HnQr zOW|7i#sE4AK$)&0>^tK%((+Y-Phy7H}he%qx)Re z2Maw0kMQubs5umDzklS$kExKf9xkIMJ~PjW*RMeY5kU<0mPUCv`y*V<1N=RG+)*SP z!_0@_eWswWYt7-UQ#p3VO>}87H14|;dlAMM=vl$1Mzfo2P4XA{(&YoVg19Qfe{_T-F;bAa9yB(P?_2sKb z5>Lm-lj*|YYHb|kX{19>`Ab9zl{(O8>AHOAhO-Mll*J+#lVsoZ2E zEJ80DGs?$-!X=f#!@Mh>Ukg^vrj62xqDr1HPRRC-w=a0n2=)wm1Snn9u;#W`xbGzZ zv2YEiTFw!CyQn6R)>4kf=q!jYT*FN+DD=&6l_-ps6=;b_;@ujtvH!|LM$ zTVoW~3Trl2vr$N&OyLh!zAvBPAwuRVSr=sTD@=vbhC%hED_Nm+?WJX>FDn~c%N4Sq zH8Vk<2ILvcT;nonU4)DCPLEm`(7Et^9BzeXruHhNjGL+CjKU%zm>1d$+Tdpz(RlqV zf>>fj0o-5vivpRAi)weSuSdrk^-E2^LZ&pKtDX-Cp|Se>9!}?(I^{D%)cDyJDb6T2 zT*I$WrWq(hXf5Ba6m;dGVIEG*@V~CD%0@X%umTL4x17ghPO0C8HrW;(|xUL(yJl?LjjvK5x8 zzV3>m%^y>e5A2-u~8lWFJ zBhxGqc zohAig-eF?Z4!xd8B@oOM$8Rl2So8$`06S+Fijl3)J=i6TG)P{B^$72I?-6&%YcOm<#oV|-(Q0{xRg5jOCu^X&cc5h>!) z45Ob_BSa0MJGDaYH|40kW&wp=#hdUVQ?S`Mj-fY2lhKAQNYEfbGNjacB>|mku{nrY zT-|-}GEl(vNuIZ594+2&k8azFicBNParK}^3MQb-*)kU6z_!Il`7VVHe^4{hvl0oI z;77izN3=WaPyJnwwuXdIy|89e&Sl-awCGmWF;)2hOHl(p7Zf#&ecL9Hjdkh5AOkVN z_rB7n#)*_|9$>o>=3k{=;waotJa%vBFHL5C+88y$18?9PzxUUZcB5{6eGx*MQLrJQ zM|fB0`3sDbzRFOOoBotM6BvUv(msoJoks2KkGu&NTCNn7$5&%Ydfph_fa0r9bm?t* zQpvb?MP6GMvv#rDueTU?F5I)Cp2RvB zy1W#UqU2DM6os4uM0U799kutQ1?s=!|EyET4>;<8Nn5~S+#vqtk)7ap;!&qbGRTLK zNgVX!cKLYrQHw=#qla;YsGI*}|HqpiPd_TMBp-Gd WObw}s)sc~%AimUyZBqMD`o92?L}roz literal 0 HcmV?d00001 diff --git a/WebRoot/upload/69E3851E-9A96-45B1-BE26-DF82C87FF715.xlsx b/WebRoot/upload/69E3851E-9A96-45B1-BE26-DF82C87FF715.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..41083e27291ac1ab85eb8b06c4a49d95f75c7dbb GIT binary patch literal 3245 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 literal 0 HcmV?d00001 diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index a9717e54..b90672d7 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -147,7 +147,7 @@ public class DataEaseController extends Controller { String dataSetName = record.getStr("dataset_name"); //导出excel String upPath = BaseApplication.PropKit.get("upload.path") + "/"; - String excelFileName = dm.exportExcel(identity_id, tableName, dataSetName, upPath, area_name); + String excelFileName = dm.exportExcel(identity_id, tableName, upPath, area_name); //renderFile renderFile(new File(excelFileName), "【" + area_name + "】" + dataSetName + "." + "xlsx"); } @@ -179,7 +179,7 @@ public class DataEaseController extends Controller { String tableName = record.getStr("table_name"); String dataSetName = record.getStr("dataset_name"); //导出excel - String excelFileName = dm.exportExcel(identity_id, tableName, dataSetName, tempDir, area_name); + String excelFileName = dm.exportExcel(identity_id, tableName, tempDir, area_name); //renderFile renderFile(new File(excelFileName), "【样例:" + area_name + "】" + dataSetName + "." + "xlsx"); } 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 f6a58086..ca1c8a9e 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -166,25 +166,20 @@ public class DataEaseModel { * @param dataset_name 数据集名 */ public void collectDataSet(String parent_name, String table_name, String dataset_name, long dataease_id) { - String sql = "select count(1) from t_dp_dataset where table_name=?"; - if (Db.queryInt(sql, table_name) == 0) { - Record record = new Record(); - record.set("parent_name", parent_name.replace("-", "")); - record.set("table_name", table_name); - record.set("dataset_name", dataset_name); - if (parent_name.contains("省")) { - record.set("owner_id", 1); - } else if (parent_name.contains("市") || parent_name.contains("州")) { - record.set("owner_id", 2); - } else if (parent_name.contains("县")) { - record.set("owner_id", 3); - } - record.set("dataease_id", dataease_id); - Db.save("t_dp_dataset", "id", record); - System.out.println("添加数据集成功,parent_name=" + parent_name + ",table_name=" + table_name + ",dataset_name=" + dataset_name); - } else { - System.out.println("数据集已存在,跳过添加"); + Record record = new Record(); + record.set("parent_name", parent_name.replace("-", "")); + record.set("table_name", table_name); + record.set("dataset_name", dataset_name); + if (parent_name.contains("省")) { + record.set("owner_id", 1); + } else if (parent_name.contains("市") || parent_name.contains("州")) { + record.set("owner_id", 2); + } else if (parent_name.contains("县")) { + record.set("owner_id", 3); } + record.set("dataease_id", dataease_id); + Db.save("t_dp_dataset", "id", record); + System.out.println("添加数据集成功,parent_name=" + parent_name + ",table_name=" + table_name + ",dataset_name=" + dataset_name); } /** @@ -290,6 +285,10 @@ public class DataEaseModel { Record rRoot = Db.findFirst(sqlPara); long rootId = rRoot.getLong("id"); + //清空数据集表 + String sql = "truncate table t_dp_dataset"; + Db.update(sql); + //2、查询有哪些数据集 Kv kv = Kv.by("id", rootId); kv.set("dataset", true); @@ -358,12 +357,20 @@ public class DataEaseModel { * * @param identity_id * @param tableName - * @param dataSetName * @param exportPath * @param area_name * @throws IOException */ - public String exportExcel(int identity_id, String tableName, String dataSetName, String exportPath, String area_name) throws IOException { + public String exportExcel(int identity_id, String tableName, String exportPath, String area_name) throws IOException { + //补全默认行政区划 + if (identity_id == 2) { + String sql = "update `" + tableName + "` set `行政区划`='昆明市' where `行政区划` is null"; + Db.use(DB_NAME).update(sql); + } + if (identity_id == 3) { + String sql = "update `" + tableName + "` set `行政区划`='寻甸县' where `行政区划` is null"; + Db.use(DB_NAME).update(sql); + } //对此表中的数据进行直接导出EXCEL String sql = "select * from `" + tableName + "`"; if (identity_id > 1) { diff --git a/src/main/java/com/dsideal/base/Tools/Test/ExportExcel.java b/src/main/java/com/dsideal/base/Tools/Test/ExportExcel.java index c98db7f9..a81b440a 100644 --- a/src/main/java/com/dsideal/base/Tools/Test/ExportExcel.java +++ b/src/main/java/com/dsideal/base/Tools/Test/ExportExcel.java @@ -32,7 +32,7 @@ public class ExportExcel { String tableName = record.getStr("table_name"); String dataSetName = record.getStr("dataset_name"); System.out.println("正在处理数据集:" + dataSetName); - dm.exportExcel(1, tableName, dataSetName, exportPath, privinceName); + dm.exportExcel(1, tableName, exportPath, privinceName); } //二、导出市的数据集 System.out.println("正在处理市数据集..."); @@ -41,12 +41,12 @@ public class ExportExcel { System.out.println("数据集个数=" + list.size()); for (Record record : list) { String tableName = record.getStr("table_name"); - String dataSetName = record.getStr("dataset_name").replace("\\","").replace("/",""); + String dataSetName = record.getStr("dataset_name").replace("\\", "").replace("/", ""); System.out.println("正在处理数据集:" + dataSetName); Record cityRecord = dm.getAreaByName(city_name); String cityName = cityRecord.getStr("area_name"); - dm.exportExcel(2, tableName, dataSetName, exportPath, cityName); + dm.exportExcel(2, tableName, exportPath, cityName); } //三、导出县区的数据集 System.out.println("正在处理县区数据集..."); @@ -55,12 +55,12 @@ public class ExportExcel { System.out.println("数据集个数=" + list.size()); for (Record record : list) { String tableName = record.getStr("table_name"); - String dataSetName = record.getStr("dataset_name").replace("\\","").replace("/",""); + String dataSetName = record.getStr("dataset_name").replace("\\", "").replace("/", ""); System.out.println("正在处理数据集:" + dataSetName); Record areaRecord = dm.getAreaByName(area_name); String areaName = areaRecord.getStr("area_name"); - dm.exportExcel(3, tableName, dataSetName, exportPath, areaName); + dm.exportExcel(3, tableName, exportPath, areaName); } System.out.println("导出完成!"); } From e03e3e8b96cc8ebe04c68820d720fffe4ed1bd1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 11:41:14 +0800 Subject: [PATCH 15/20] 'commit' --- .../java/com/dsideal/base/DataEase/Model/DataEaseModel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 ca1c8a9e..df73d10a 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -364,11 +364,11 @@ public class DataEaseModel { public String exportExcel(int identity_id, String tableName, String exportPath, String area_name) throws IOException { //补全默认行政区划 if (identity_id == 2) { - String sql = "update `" + tableName + "` set `行政区划`='昆明市' where `行政区划` is null"; + String sql = "update `" + tableName + "` set `行政区划`='昆明市',`上级行政区划`='云南省' where `行政区划` is null or `上级行政区划` is null"; Db.use(DB_NAME).update(sql); } if (identity_id == 3) { - String sql = "update `" + tableName + "` set `行政区划`='寻甸县' where `行政区划` is null"; + String sql = "update `" + tableName + "` set `行政区划`='寻甸县',`上级行政区划`='昆明市' where `行政区划` is null or `上级行政区划` is null"; Db.use(DB_NAME).update(sql); } //对此表中的数据进行直接导出EXCEL From e925cc31483a602fe20beb7d25f5f401bdbd26ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 11:50:09 +0800 Subject: [PATCH 16/20] 'commit' --- .../48697D31-12A2-4418-B3A8-6DA85427BF6C.xlsx | Bin 0 -> 3479 bytes .../636FCF96-809A-4A44-87F8-FF75475DCF24.xlsx | Bin 0 -> 3608 bytes .../A5B2D8CE-166B-467D-BE56-041D8E8C15CD.xlsx | Bin 0 -> 3245 bytes .../C1AF51AC-88BD-47BE-9D40-4E922C5D8E5E.xlsx | Bin 0 -> 4027 bytes .../C67EE628-37AA-4CAE-AA24-87B44778EE37.xlsx | Bin 0 -> 3245 bytes .../base/DataEase/Model/DataEaseModel.java | 28 +++-- .../dsideal/base/Util/ExcelCommonUtil.java | 115 +++++++++--------- 7 files changed, 73 insertions(+), 70 deletions(-) create mode 100644 WebRoot/upload/48697D31-12A2-4418-B3A8-6DA85427BF6C.xlsx create mode 100644 WebRoot/upload/636FCF96-809A-4A44-87F8-FF75475DCF24.xlsx create mode 100644 WebRoot/upload/A5B2D8CE-166B-467D-BE56-041D8E8C15CD.xlsx create mode 100644 WebRoot/upload/C1AF51AC-88BD-47BE-9D40-4E922C5D8E5E.xlsx create mode 100644 WebRoot/upload/C67EE628-37AA-4CAE-AA24-87B44778EE37.xlsx diff --git a/WebRoot/upload/48697D31-12A2-4418-B3A8-6DA85427BF6C.xlsx b/WebRoot/upload/48697D31-12A2-4418-B3A8-6DA85427BF6C.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8443c31f530e133a905c6e5fc94a345f62933a18 GIT binary patch literal 3479 zcmaJ@dpwi<8y+ij3=v9Na@Z!Pd6#o?jEsyShmf(5*_a{6oD!ilhlnVr&Y>J~m_x)c z$5f6bq?S@S7R7I?-|w~8@2%_kJkOp#p8LD+ecku>zAh9JxJ4Mi$;k+hs^+6PyG?!-S<7Wke{eIcj1fU?;UWdLpyxwQa19-3A%%Xv=L#)Zo}zYn!_&2UDFYa?(x z)RRx!G2(3dZ!Zp(>b(8BcgyWPIfi@ooz@>t$)S@hsy$2T zQ(O+!52`~($3*FI?PB*VRnYQfODiVjFL~y+1dg8|?0YE?Wz!>WHB?~$Rq=~!_H)%h zkBRfi?&MoPFEacb+N*bOce*e1_AZiykRV#Mv`6DItijYcI-2UQZ<&H=RuLg#>Y4l84r5u>k-QTL1vmZ@K4TaPLCI;{25q zna_LVCQ~3>AkIaGM#=WsD(E$w$Vo{U0Ewjzjg@AbnH(Ogr!*y2;`Ev(mH&FR4sQ=U zbnXZRt(aR774S4V-*f2Op!jJGo%^%8JDT44PMB~UwLZ}>qVqJ?>R87(+A>`*F-lK* z%-iXME*r8r0rQcR12k3eFA*9R4DHXZq&)iu0d{A-ALpHlag5Q#%pT#TrLK)@*Q;DK zfAYK))<@86k#88eo3j6j9RbD{?gTd!k>KmEJd0B%WLa5Mq#}*#RPdRYlq{b7@r1INpKFQ$a5nQrm{9`EG4tPLEzcIU* zd;vM*`t}|W9Lfm|HXHAM_9(H>Pe1yDZej}LapC7@Aqtq9l?-*sSB5-=*A{X-T*G;o}eoJ z`8j(+aRai^JiyAIu4jmXa-G($v2G8Vvvzj+RP_kvS=J%e`EDpTBP^h)a}jA2(PimE|DmNj2z7; z{g{Z(A81LNNE#R*kM0ha0s{Z~G1@}YmeI4hVzD>8wq zD|`LoN9U7k^SWmai-yqnTA$Kh8Gw(v!ypNMzZft#(1SYoC8RUuz;D z>z6^LP|qH?i3;^XYqwcuSexdih=KMZXZqS{$+AovjXBM7l3`MHnljlU-5wCK1R^tZs zPLI6iUT919_0W(zdPhp~P?$Oq*sNvj&s9%e+q-yntqM$feGV1}2ysGnt6f-hkPxqr zj0@Vqt+rZCy1c7e3m&IjB+0AlI{Ezuz9|$VzTP1c@T_m09O9=((Y__<<@oY#$Bv0l zp@2QwL33QZ2MkCn=I&r-e>*y2>9)vwpx&X%2r zcKeWq<~+fd%x)eC8J=*Cxk8+?@SUwQ6YNcmyXaM-TR3db=j8_0rL7fHPsz%A5Q7JP zP0to}*}Wr-teyYZ=(~RL@=GsS+4-fNm(0Bx6zQ&??+f?qZxSoOE4lT0ABu=9O;<;h zB^On6Hk8yhKi36mEl4MQ4&^UDekM6a({fse188m&lYgRM#=v8|bp3S5)+fGg1TX zlM_|v$9MDK^o15cC~Yc`jNEl>>v3Cj{<^2z$Wq43f*-qKREgT$CcRe|?MGXvh~CNl z^|#K@^Uf^3&Aj*_Vambz@ccV6xaq**p8J%VpHskNCjaI$M(T(^YNgmOa+tLEdt$L9 zf5v=d{J@#rgC%$3W0VDqmeW`GGnSJjy@uu3^UGnUMAL8AFL7{`Mjxc+#zsW&1>cMx zJHC2+EUT?QJb{Fl5+0)J5-8f|jML+qzx}Op}J~Oo<_r7=bIG-*}JSj2QeBgep zZ!n)j&Cbdb-^~+jk#qgFk1Isn;h7|(il;IQhSbEfST^48Y za*a(fPx>2>d0-P@cJEagO=gfae- z#TIT3WHlR1kF;`|x>o5`|y9oD8`9=i>+ ba{axD|2u>z&mmt2hN5Ti``KTG}}VKZUk literal 0 HcmV?d00001 diff --git a/WebRoot/upload/636FCF96-809A-4A44-87F8-FF75475DCF24.xlsx b/WebRoot/upload/636FCF96-809A-4A44-87F8-FF75475DCF24.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2202271488afc43d9caa24e0009bb075aa7804bf GIT binary patch literal 3608 zcmaJ@c|6nqAIDq~Hg^gg=FSx&gmSCD^hK4?>DU(jr=|+#(v>S~`p-vLztabeIUuSBPxS6(YrQg;G z%;;Z~WpCP)U8mKNmmb$ho??Xd9HonIDEOuP(#ORiMOOVD5 zgL-qBoP1PZPgI^e>92uxe%$ZUY&@qlu!K~QKnx~Bg9Ut$2ly)R??C!%emPdU#S>~Bxq96Q~hkYxO} zuUUeK(5jum6f)HyP4n~poL8P!cl^TYK%jHC>E6jPFr; z-K%7}mRKV3S$fiX;i=a1h?AcBN1UB+Sf?>fULdr8qrWqoFf#F~-6BIm1o0BL6eDL$ zAgc~!o^u{J*+J_ID*(Ndj6j(^R&Rc5-K49vO5`r!hg&gh)ki&u-lVjbiCGyQeI%9g zx-Ti$@7oR9y&)HbKa9E~pF4JtCOPidEkk@by5N3Z?ko^?Se!lE2*cV^d0bgogb3dn zc}`&YVwbY2${~iRR{u;J9?4O!q;y&JEpx*2(vv=k4}#EN>GFZsO`R(kJ;P!m`;EbZ znSD)twoK|PK$QRwV+jbDG{U zxLf=7rime#uP}7ANgA5+nnu8Af6QdU&k7KReT%)lMN3Gl5jw6i<)RwkaZE2~eqQL) z`3k0JVcp;3{kb5K!+FRJ za#UU~E{&Yf+nX|cDEt@zaAIQ^*M1tTh9(=Sp*ib{)n1$?)%WW);s|=eB6OhezKZph zGCPxXzQ)lWT35_yPh76^VC*OJDK6*|GGer?WR{-$45@a3G#p3IU4L<4(YtlC_)J|+ zkkK1C$8-IQc5Ri9yOq)6#bD^JuT3F&Y+68HdAjf7>JKmSuU(yUCItXz_Uc#F8Dq#9+U%{pGF(W z=T$+$sYBe2WsB%gOnX^5r;FNoE2TnSlvWmZf1fgksq3vQ7H84YT+R^-LssV_?}zY; zSt;Er$z!Ic?~mw4$;Ca>nbVPZa`yV50h%mvyQ;v_hme=zl$3JUVoFb%2p?`wqcz*r~i>p9Ao+_CR*5V zluX;od0vW@uA`>f_NnJ^b9%L*CRCxyGR4M0#HZmPRftM`*_-|PHOw=<_MUH{Q3sk32mSm2r+No?B`CxpgxDSe&) z#M@_0n&kFhpV$9+1Airh8yHnOEyL__Qlxp#o?J%ED!A3u z+$lEOi%m}5Sjy38yu2~XbA!6x~4u&CbcDzgoRL!=a;S}MxQdB zQfCAhTSn(O=Fe!mja6&~UuAe3h5ZNw9JqVason2;RX zzuGngx0$?0?Ac3>iSNPs*1(RXtDBu<&d-VC;PQ8hggPo$S{) zdLUq-@yXd-v)-av5-Z>$ZNgU)IBB#pcjzb_#CI1pzx7Ti@&0gq4O?AgrQsC`4rN=y z!?wWOSCW$&50Zr8KkQaE?G)S>oxNyWMLv7Cdf_%NFr)js4C{zzkW0nAMd|t_B{8#X z_&4!`dND&j(l#Zha=_O;a|3wpp%f-pv9m6(bu)rjGNZ7Yd?&2d3YOy`4ZIS?;Jnit zk&OQIt;B3>$y=?6rNe{!wrLM@|jU#r!YkOfLf zcilLci^24eUiPG0{Hu*Ko8JOS`=o_&-uRuY>90w4F={VgsN0MPtp5r9Vi=H&qT*d zde3Zn7<`Qd#EItF_r3ww_yaXO?0U*qjaHbbo)90QQGAc0d-S#^(9&_!?1cE;5tAC? z|A~Kz^iaq@7ucP`s7Z7OVU)kzl}q;)?oK<@khX&?iVXKgw!PK6$2>I=?Z6ALtNMTW zXm9!M5lGDfJE)+L^l!;v?+Wl;MoS%)JLqBfwZh+nb8qQxFQPi}4$7IfOLsfZ-s0V7 wm1XZ8@9}P;Inzmd1AG7(b00000 literal 0 HcmV?d00001 diff --git a/WebRoot/upload/A5B2D8CE-166B-467D-BE56-041D8E8C15CD.xlsx b/WebRoot/upload/A5B2D8CE-166B-467D-BE56-041D8E8C15CD.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..02c3649b2c9c7e94fdbc5551a8813eecb5212f43 GIT binary patch literal 3245 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 AGXMYp literal 0 HcmV?d00001 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 df73d10a..35048852 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -352,6 +352,18 @@ public class DataEaseModel { Db.use(DataEaseModel.DB_NAME).update(sql); } + public void fillDefaultXzqh(int identity_id,String tableName){ + //补全默认行政区划 + if (identity_id == 2) { + String sql = "update `" + tableName + "` set `行政区划`='昆明市',`上级行政区划`='云南省' where `行政区划` is null or `上级行政区划` is null"; + Db.use(DB_NAME).update(sql); + } + if (identity_id == 3) { + String sql = "update `" + tableName + "` set `行政区划`='寻甸县',`上级行政区划`='昆明市' where `行政区划` is null or `上级行政区划` is null"; + Db.use(DB_NAME).update(sql); + } + } + /** * 导出Excel * @@ -362,25 +374,21 @@ public class DataEaseModel { * @throws IOException */ public String exportExcel(int identity_id, String tableName, String exportPath, String area_name) throws IOException { - //补全默认行政区划 - if (identity_id == 2) { - String sql = "update `" + tableName + "` set `行政区划`='昆明市',`上级行政区划`='云南省' where `行政区划` is null or `上级行政区划` is null"; - Db.use(DB_NAME).update(sql); - } - if (identity_id == 3) { - String sql = "update `" + tableName + "` set `行政区划`='寻甸县',`上级行政区划`='昆明市' where `行政区划` is null or `上级行政区划` is null"; - Db.use(DB_NAME).update(sql); - } + //填充默认的行政区划 + fillDefaultXzqh(identity_id, tableName); //对此表中的数据进行直接导出EXCEL String sql = "select * from `" + tableName + "`"; if (identity_id > 1) { sql = sql + "where `行政区划`='" + area_name + "'"; } + //获取一下表有哪些列 + List columnNames = getColumns(tableName); + List tableData = Db.use(DataEaseModel.DB_NAME).find(sql); String excelFileName = UUID.randomUUID().toString().toUpperCase() + ".xlsx"; String filePath = exportPath + excelFileName; //导出 - ExcelCommonUtil.writeExcel(tableData, filePath, true); + ExcelCommonUtil.writeExcel(columnNames,tableData, filePath, true); return filePath; } diff --git a/src/main/java/com/dsideal/base/Util/ExcelCommonUtil.java b/src/main/java/com/dsideal/base/Util/ExcelCommonUtil.java index fdceda70..0548d66a 100644 --- a/src/main/java/com/dsideal/base/Util/ExcelCommonUtil.java +++ b/src/main/java/com/dsideal/base/Util/ExcelCommonUtil.java @@ -852,81 +852,76 @@ public class ExcelCommonUtil { * @param filePath * @throws IOException */ - public static void writeExcel(List tableData, String filePath, boolean killIdColumns) throws IOException { + public static void writeExcel(List columnNames, List tableData, String filePath, boolean killIdColumns) throws IOException { if (killIdColumns) { //表tableData中如果有一列叫id,那么去掉这一列 for (Record tableDatum : tableData) { tableDatum.remove("id"); } + columnNames.remove("id"); } // 创建Excel工作簿 Workbook workbook = new XSSFWorkbook(); // 创建一个Excel工作表 Sheet sheet = workbook.createSheet("Sheet1"); - - if(tableData!=null && !tableData.isEmpty() ){ - // 获取第一个Record的元数据以确定列名 - Record firstRecord = tableData.getFirst(); - String[] headers = firstRecord.getColumnNames(); - int columnCount = headers.length; - - // 创建标题行 - Row titleRow = sheet.createRow(0); - // 设置标题行的样式 - CellStyle titleStyle = workbook.createCellStyle(); - Font font = workbook.createFont(); - font.setBold(true); - font.setFontHeightInPoints((short) 14); - titleStyle.setFont(font); - titleStyle.setBorderBottom(BorderStyle.THIN); - titleStyle.setBorderLeft(BorderStyle.THIN); - titleStyle.setBorderRight(BorderStyle.THIN); - titleStyle.setBorderTop(BorderStyle.THIN); - - // 填充标题行 + // 获取第一个Record的元数据以确定列名 + int columnCount = columnNames.size(); + // 创建标题行 + Row titleRow = sheet.createRow(0); + // 设置标题行的样式 + CellStyle titleStyle = workbook.createCellStyle(); + Font font = workbook.createFont(); + font.setBold(true); + font.setFontHeightInPoints((short) 14); + titleStyle.setFont(font); + titleStyle.setBorderBottom(BorderStyle.THIN); + titleStyle.setBorderLeft(BorderStyle.THIN); + titleStyle.setBorderRight(BorderStyle.THIN); + titleStyle.setBorderTop(BorderStyle.THIN); + + // 填充标题行 + for (int i = 1; i <= columnCount; i++) { + Cell cell = titleRow.createCell(i - 1); + cell.setCellValue(columnNames.get(i - 1)); + cell.setCellStyle(titleStyle); + } + + // 创建数据行的样式 + CellStyle dataStyle = workbook.createCellStyle(); + font = workbook.createFont(); + font.setFontHeightInPoints((short) 14); + dataStyle.setFont(font); + dataStyle.setBorderBottom(BorderStyle.THIN); + dataStyle.setBorderLeft(BorderStyle.THIN); + dataStyle.setBorderRight(BorderStyle.THIN); + dataStyle.setBorderTop(BorderStyle.THIN); + + // 填充数据行 + int rowNum = 1; + for (Record record : tableData) { + Row row = sheet.createRow(rowNum++); + int cellNum = 0; for (int i = 1; i <= columnCount; i++) { - Cell cell = titleRow.createCell(i - 1); - cell.setCellValue(headers[i - 1]); - cell.setCellStyle(titleStyle); - } - - // 创建数据行的样式 - CellStyle dataStyle = workbook.createCellStyle(); - font = workbook.createFont(); - font.setFontHeightInPoints((short) 14); - dataStyle.setFont(font); - dataStyle.setBorderBottom(BorderStyle.THIN); - dataStyle.setBorderLeft(BorderStyle.THIN); - dataStyle.setBorderRight(BorderStyle.THIN); - dataStyle.setBorderTop(BorderStyle.THIN); - - // 填充数据行 - int rowNum = 1; - for (Record record : tableData) { - Row row = sheet.createRow(rowNum++); - int cellNum = 0; - for (int i = 1; i <= columnCount; i++) { - Cell cell = row.createCell(cellNum++); - Object value = record.get(headers[i - 1]); - cell.setCellValue(value == null ? "" : value.toString()); - cell.setCellStyle(dataStyle); - } + Cell cell = row.createCell(cellNum++); + Object value = record.get(columnNames.get(i - 1)); + cell.setCellValue(value == null ? "" : value.toString()); + cell.setCellStyle(dataStyle); } + } - // 设置最小列宽 - int minColumnWidth = 100 * 256 / 7; // 将像素转换为字符单位(Excel的单位是1/256个字符宽度) - for (int i = 0; i < headers.length; i++) { - sheet.setColumnWidth(i, Math.max(minColumnWidth, sheet.getColumnWidth(i))); - } + // 设置最小列宽 + int minColumnWidth = 100 * 256 / 7; // 将像素转换为字符单位(Excel的单位是1/256个字符宽度) + for (int i = 0; i < columnNames.size(); i++) { + sheet.setColumnWidth(i, Math.max(minColumnWidth, sheet.getColumnWidth(i))); + } - // 自动调整列宽 - for (int i = 0; i < headers.length; i++) { - sheet.autoSizeColumn(i); - int columnWidth = sheet.getColumnWidth(i); - int newColumnWidth = Math.max(minColumnWidth, columnWidth); - sheet.setColumnWidth(i, newColumnWidth); - } + // 自动调整列宽 + for (int i = 0; i < columnNames.size(); i++) { + sheet.autoSizeColumn(i); + int columnWidth = sheet.getColumnWidth(i); + int newColumnWidth = Math.max(minColumnWidth, columnWidth); + sheet.setColumnWidth(i, newColumnWidth); } // 将工作簿写入文件 From 39ccb4665c7a1e4ebecc6bd052845914b9bf4076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 11:53:24 +0800 Subject: [PATCH 17/20] 'commit' --- .../java/com/dsideal/base/DataEase/Model/DataEaseModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 35048852..7a34cbb1 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -31,7 +31,7 @@ public class DataEaseModel { * @return 数据集列表 */ public List getDataSetByIdentityId(int identity_id) { - String sql = "select * from t_dp_dataset where owner_id=? order by dataease_id desc"; + String sql = "select * from t_dp_dataset where owner_id=? order by dataease_id"; return Db.find(sql, identity_id); } From 3031d5819121fa4ede27e3c0d79b01f51f877ce1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 11:54:18 +0800 Subject: [PATCH 18/20] 'commit' --- .../java/com/dsideal/base/DataEase/Model/DataEaseModel.java | 1 - src/main/java/com/dsideal/base/Tools/DataSetInit.java | 2 -- 2 files changed, 3 deletions(-) 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 7a34cbb1..bd1e4941 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -6,7 +6,6 @@ import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.SqlPara; -import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; diff --git a/src/main/java/com/dsideal/base/Tools/DataSetInit.java b/src/main/java/com/dsideal/base/Tools/DataSetInit.java index 8c895a91..eb00074c 100644 --- a/src/main/java/com/dsideal/base/Tools/DataSetInit.java +++ b/src/main/java/com/dsideal/base/Tools/DataSetInit.java @@ -2,9 +2,7 @@ package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; -import com.dsideal.base.Tools.Util.SshMysqlConnectUtil; import com.jcraft.jsch.JSchException; -import com.jcraft.jsch.Session; import java.io.IOException; From 5c889701b881f42420c498b328a3f02fe6ea53ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 11:54:34 +0800 Subject: [PATCH 19/20] 'commit' --- src/main/java/com/dsideal/base/Tools/DataSetInit.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/dsideal/base/Tools/DataSetInit.java b/src/main/java/com/dsideal/base/Tools/DataSetInit.java index eb00074c..f0e68ff6 100644 --- a/src/main/java/com/dsideal/base/Tools/DataSetInit.java +++ b/src/main/java/com/dsideal/base/Tools/DataSetInit.java @@ -9,7 +9,7 @@ import java.io.IOException; public class DataSetInit { public static DataEaseModel dm = new DataEaseModel(); - public static void main(String[] args) throws IOException, JSchException { + public static void main(String[] args) throws IOException { LocalMysqlConnectUtil.Init(); //1、添加到数据集表中 dm.collectDataSet(); From 415a20115c08cbbccc7e859117c8795bb22b355f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 5 Nov 2024 13:54:34 +0800 Subject: [PATCH 20/20] 'commit' --- .../Controller/DataEaseController.java | 5 +-- .../base/DataEase/Model/DataEaseModel.java | 20 ++++++++--- .../dsideal/base/Res/Model/ResourceModel.java | 35 +++++++++++++++++++ .../com/dsideal/base/Tools/DataSetInit.java | 1 - 4 files changed, 53 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java index b90672d7..005bb968 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -202,7 +202,8 @@ public class DataEaseController extends Controller { String area_code = rm.getAreaCode(identity_id, person_id); //根据区域码,获取区域名称 String area_name = rm.getAreaName(area_code); - + //父亲的区域名称 + String parent_area_name=rm.getParentAreaName(area_name); //上传的文件 UploadFile uploadFile = getFile("file", tempDir); //数据集id @@ -237,7 +238,7 @@ public class DataEaseController extends Controller { ExcelReader excelReader = new ExcelReader(); List rows = excelReader.readXlsxFile(excelPath, excelCols); - dm.saveDataSetTable(identity_id, id, area_name, rows); + dm.saveDataSetTable(identity_id, id,parent_area_name, area_name, rows); //返回结果 Kv kv = Kv.create(); 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 bd1e4941..cd118fa3 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -40,15 +40,18 @@ public class DataEaseModel { * * @param dataset_id 数据集id */ - public void saveDataSetTable(int identity_id, int dataset_id, String xzqh, List listExcelRow) { + public void saveDataSetTable(int identity_id, int dataset_id, String parent_area_name, String area_name, List listExcelRow) { + //根据数据集id获取表名 String tableName = getDataSetById(dataset_id).getStr("table_name"); + // 清除数据 if (identity_id > 1) { String sql = "delete from `" + tableName + "` where `行政区划`=?"; - Db.use(DB_NAME).update(sql, xzqh); + Db.use(DB_NAME).update(sql, area_name); } else { String sql = "delete from `" + tableName + "`"; Db.use(DB_NAME).update(sql); } + List list = new ArrayList<>(); //数据行 for (int i = 1; i < listExcelRow.size(); i++) { @@ -57,7 +60,14 @@ public class DataEaseModel { for (int j = 0; j < row.getData().size(); j++) { String value = row.getData().get(j); //第一行是表头 - record.set(listExcelRow.getFirst().getData().get(j), value); + String colName = listExcelRow.getFirst().getData().get(j); + if (colName.equals("行政区划")) { + record.set(colName, area_name); + } else if (colName.equals("上级行政区划")) { + record.set(colName, parent_area_name); + } else { + record.set(colName, value); + } } list.add(record); } @@ -351,7 +361,7 @@ public class DataEaseModel { Db.use(DataEaseModel.DB_NAME).update(sql); } - public void fillDefaultXzqh(int identity_id,String tableName){ + public void fillDefaultXzqh(int identity_id, String tableName) { //补全默认行政区划 if (identity_id == 2) { String sql = "update `" + tableName + "` set `行政区划`='昆明市',`上级行政区划`='云南省' where `行政区划` is null or `上级行政区划` is null"; @@ -387,7 +397,7 @@ public class DataEaseModel { String excelFileName = UUID.randomUUID().toString().toUpperCase() + ".xlsx"; String filePath = exportPath + excelFileName; //导出 - ExcelCommonUtil.writeExcel(columnNames,tableData, filePath, true); + ExcelCommonUtil.writeExcel(columnNames, tableData, filePath, true); return filePath; } diff --git a/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java b/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java index 6e218272..5555992d 100644 --- a/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java +++ b/src/main/java/com/dsideal/base/Res/Model/ResourceModel.java @@ -36,6 +36,41 @@ public class ResourceModel { return Db.findFirst(sql, area_code).getStr("area_name"); } + + /** + * 根据行政区划名称获取行政区划记录 + * + * @param area_name + * @return + */ + public Record getAreaRecordByName(String area_name) { + String sql = "select * from t_dm_area where area_name=?"; + return Db.findFirst(sql, area_name); + } + + /** + * 根据行政区划代码获取行政区划记录 + * + * @param id + * @return + */ + public Record getAreaRecordByAreaCode(String id) { + String sql = "select * from t_dm_area where id=?"; + return Db.findFirst(sql, id); + } + + /** + * 获取行政区划的父级名称 + * @param area_name + * @return + */ + public String getParentAreaName(String area_name) { + Record child = getAreaRecordByName(area_name); + String parent_id = child.getStr("parent_id"); + Record parent = getAreaRecordByAreaCode(parent_id); + return parent.getStr("area_name"); + } + /** * 功能:获取当前用户的行政区划 * diff --git a/src/main/java/com/dsideal/base/Tools/DataSetInit.java b/src/main/java/com/dsideal/base/Tools/DataSetInit.java index f0e68ff6..17c91ec4 100644 --- a/src/main/java/com/dsideal/base/Tools/DataSetInit.java +++ b/src/main/java/com/dsideal/base/Tools/DataSetInit.java @@ -2,7 +2,6 @@ package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; -import com.jcraft.jsch.JSchException; import java.io.IOException;