From 250d693845d14f62daf5ed9f1d36f9b7c643ef25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 13 Dec 2024 20:51:52 +0800 Subject: [PATCH] 'commit' --- .../base/DataEase/Util/SyncCityScreen.java | 100 ++++++--------- .../base/DataEase/Util/SyncCityScreenNew.java | 120 ------------------ 2 files changed, 42 insertions(+), 178 deletions(-) delete mode 100644 src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreenNew.java diff --git a/src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreen.java b/src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreen.java index 24dbfc8c..c246d040 100644 --- a/src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreen.java +++ b/src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreen.java @@ -53,7 +53,7 @@ public class SyncCityScreen { public static DataEaseModel dm = new DataEaseModel(); - public static void clear(String dataVisualizationName){ + public static void clear(String dataVisualizationName) { //一、先删除后插入保持健康:保留:【云南省教育决策支持系统【市州】】,删除掉云南省教育决策支持系统【市州】+昆明市,云南省教育决策支持系统【市州】+楚雄州等数据 String sql = "select * from data_visualization_info where name like '%" + dataVisualizationName + "%' and name <>'" + dataVisualizationName + "'"; List toDelList = Db.use(DataEaseModel.DB_NAME).find(sql); @@ -95,6 +95,7 @@ public class SyncCityScreen { } System.out.println("成功删除大屏数据" + toDelList.size() + "条~"); } + /** * 同步【云南省教育决策支持系统【市州】】 * @@ -111,8 +112,8 @@ public class SyncCityScreen { sql = "select * from core_chart_view where scene_id=?"; List motherChartList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); //母屏共享链接 -// sql = "select * from xpack_share where resource_id=?"; -// Record motherShareRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, motherId); + sql = "select * from xpack_share where resource_id=?"; + Record motherShareRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, motherId); //母屏的可视化资源表 sql = "select * from core_opt_recent where resource_id=?"; Record motherOptRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, motherId); @@ -121,17 +122,9 @@ public class SyncCityScreen { sql = "select * from visualization_link_jump where source_dv_id=?"; List motherLinkJumpList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); //母屏的linkJumpInfo -// sql = "select * from visualization_link_jump_info where target_dv_id=?"; -// List motherLinkJumpInfoList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); - - //母屏的外部参数关联关系表 -// sql = "select * from visualization_outer_params where visualization_id=?"; -// List motheRouterParamsList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); + sql = "select * from visualization_link_jump_info where target_dv_id=?"; + List motherLinkJumpInfoList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); - //跳转目标仪表板图表字段配置表 -// sql = "select * from visualization_link_jump_target_view_info where link_jump_info_id in (" + -// "select id from visualization_link_jump_info where target_dv_id=?)"; -// List motherLinkJumpTargetViewInfo = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); //2、需要哪16个城市 for (String cityName : dm.getCityNameList()) { //(1)复制16个大屏 @@ -143,16 +136,36 @@ public class SyncCityScreen { // (2) 复制16个大屏的细节表 List writeList = new ArrayList<>(); + Map mcMap = new HashMap<>(); for (Record rMotherChart : motherChartList) { Record rCityChart = new Record().setColumns(rMotherChart);//克隆出来 //修改大屏ID rCityChart.set("id", getSnowId()); rCityChart.set("scene_id", bigScreenId); writeList.add(rCityChart); + //保存母屏的组件IDS 与复制品组件IDS之间的对应关系 + long motherChartId = rMotherChart.getLong("id"); + mcMap.put(motherChartId, rCityChart.getLong("id")); + } //批量保存 Db.use(DataEaseModel.DB_NAME).batchSave("core_chart_view", writeList, 100); + //回头修改一下主表 + sql = "select component_data from data_visualization_info where id=?"; + Record rChild = Db.use(DataEaseModel.DB_NAME).findFirst(sql, bigScreenId); + String component_data = rChild.getStr("component_data"); + //遍历map + for (Map.Entry entry : mcMap.entrySet()) { + Long key = entry.getKey(); + Long value = entry.getValue(); + component_data = component_data.replace(key.toString(), value.toString()); + } + // 更新回去 + sql = "update data_visualization_info set component_data=? where id=?"; + Db.use(DataEaseModel.DB_NAME).update(sql, component_data, bigScreenId); + + // (3) 修改地图中城市 List list = dm.getMap(bigScreenId); //core_chart_view表 @@ -175,11 +188,11 @@ public class SyncCityScreen { } // (4) 发布共享链接 -// Record shareRecord = new Record().setColumns(motherShareRecord); -// shareRecord.set("resource_id", bigScreenId); -// shareRecord.set("id", getSnowId()); -// shareRecord.set("uuid", randomString(8));//大小写字母和数字组合,长度为8 -// Db.use(DataEaseModel.DB_NAME).save("xpack_share", "id", shareRecord); + Record shareRecord = new Record().setColumns(motherShareRecord); + shareRecord.set("resource_id", bigScreenId); + shareRecord.set("id", getSnowId()); + shareRecord.set("uuid", randomString(8));//大小写字母和数字组合,长度为8 + Db.use(DataEaseModel.DB_NAME).save("xpack_share", "id", shareRecord); // (5) 插入可视化资源表 Record optRecord = new Record().setColumns(motherOptRecord); @@ -195,48 +208,19 @@ public class SyncCityScreen { rCityLinkJump.set("source_dv_id", bigScreenId); Db.use(DataEaseModel.DB_NAME).save("visualization_link_jump", "id", rCityLinkJump); } - - // (7) 插入跳转配置信息表 -// Map map = new HashMap<>(); -// int idx = 0; -// for (Record rMotherLinkJumpInfo : motherLinkJumpInfoList) { -// idx++; -// Record rCityLinkJumpInfo = new Record().setColumns(rMotherLinkJumpInfo);//克隆出来 -// rCityLinkJumpInfo.set("id", getSnowId()); -// map.put(idx, rCityLinkJumpInfo.getLong("id")); -// rCityLinkJumpInfo.set("target_dv_id", bigScreenId); -// Db.use(DataEaseModel.DB_NAME).save("visualization_link_jump_info", "id", rCityLinkJumpInfo); -// } - - //TODO 外部参数比较复杂 - /* - select * from visualization_outer_params where visualization_id=1036286881547030528; - */ - - //(8) 跳转目标仪表板图表字段配置表:visualization_link_jump_info -// idx = 0; -// for (Record record : motherLinkJumpTargetViewInfo) { -// idx++; -// Record rCityLinkJumpTargetViewInfo = new Record().setColumns(record);//克隆出来 -// rCityLinkJumpTargetViewInfo.set("target_id", getSnowId()); -// rCityLinkJumpTargetViewInfo.set("link_jump_info_id", map.get(idx)); -// Db.use(DataEaseModel.DB_NAME).save( -// "visualization_link_jump_target_view_info", "target_id", rCityLinkJumpTargetViewInfo); -// } System.out.println("完成" + cityName + "的数据填充~"); - break; } -// //查询出每个城市的共享链接 -// for (String cityName : dm.getCityNameList()) { -// String screenName = dataVisualizationName + cityName; -// sql = "select * from data_visualization_info where name =?"; -// Record record = Db.use(DataEaseModel.DB_NAME).findFirst(sql, screenName); -// long id = record.getLong("id"); -// sql = "select * from xpack_share where resource_id=?"; -// Record shareRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, id); -// System.out.println(cityName + "的共享链接:" + shareRecord.getStr("uuid")); -// } + //查询出每个城市的共享链接 + for (String cityName : dm.getCityNameList()) { + String screenName = dataVisualizationName + cityName; + sql = "select * from data_visualization_info where name =?"; + Record record = Db.use(DataEaseModel.DB_NAME).findFirst(sql, screenName); + long id = record.getLong("id"); + sql = "select * from xpack_share where resource_id=?"; + Record shareRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, id); + System.out.println(cityName + "的共享链接:" + shareRecord.getStr("uuid")); + } System.out.println("生成完毕"); } @@ -245,6 +229,6 @@ public class SyncCityScreen { //获取数据可视化名称 String dataVisualizationName = LocalMysqlConnectUtil.PropKit.get("dataEase.dataVisualizationName"); clear(dataVisualizationName); - //SyncCityScreen(dataVisualizationName); + SyncCityScreen(dataVisualizationName); } } diff --git a/src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreenNew.java b/src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreenNew.java deleted file mode 100644 index b6723275..00000000 --- a/src/main/java/com/dsideal/base/DataEase/Util/SyncCityScreenNew.java +++ /dev/null @@ -1,120 +0,0 @@ -package com.dsideal.base.DataEase.Util; - -import cn.hutool.core.lang.Snowflake; -import cn.hutool.core.util.IdUtil; -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.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class SyncCityScreenNew { - - /* - 开启数据库SQL执行日志 - SHOW VARIABLES LIKE 'general_log%'; - SET GLOBAL general_log = 'ON'; - SET GLOBAL general_log = 'OFF'; - */ - - /** - * 利用雪花算法获取唯一ID - * - * @return - */ - public static long getSnowId() throws InterruptedException { - //雪花算法生成唯一ID - Snowflake snowflake = IdUtil.createSnowflake(1, 1); - Thread.sleep(2); - return snowflake.nextId(); - } - - public static DataEaseModel dm = new DataEaseModel(); - - /** - * @param dataVisualizationName - * @throws InterruptedException - */ - public static void SyncScreen(String dataVisualizationName) throws InterruptedException { - //1、获取母屏数据 - String sql = "select * from data_visualization_info where name =?"; - Record motherRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, dataVisualizationName); - long motherId = motherRecord.getLong("id"); - //母屏细节表 - sql = "select * from core_chart_view where scene_id=?"; - List motherChartList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); - - //母屏的可视化资源表 - sql = "select * from core_opt_recent where resource_id=?"; - Record motherOptRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, motherId); - - //母屏的linkJump - sql = "select * from visualization_link_jump where source_dv_id=?"; - List motherLinkJumpList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId); - - - //(1)复制大屏 - Record cityRecord = new Record().setColumns(motherRecord);//复制record对象 - cityRecord.set("name", dataVisualizationName + "_copy"); - long bigScreenId = getSnowId(); - cityRecord.set("id", bigScreenId); - Db.use(DataEaseModel.DB_NAME).save("data_visualization_info", "id", cityRecord); - Map mcMap = new HashMap<>(); - // (2) 复制大屏的细节表 - List writeList = new ArrayList<>(); - for (Record rMotherChart : motherChartList) { - long motherChartId = rMotherChart.getLong("id"); - Record rCityChart = new Record().setColumns(rMotherChart);//克隆出来 - //修改大屏ID - rCityChart.set("id", getSnowId()); - rCityChart.set("scene_id", bigScreenId); - writeList.add(rCityChart); - //保存母屏的组件IDS 与复制品组件IDS之间的对应关系 - mcMap.put(motherChartId, rCityChart.getLong("id")); - } - //批量保存 - Db.use(DataEaseModel.DB_NAME).batchSave("core_chart_view", writeList, 100);//需要修改 - - //回头修改一下主表 - sql = "select component_data from data_visualization_info where id=?"; - Record rChild = Db.use(DataEaseModel.DB_NAME).findFirst(sql, bigScreenId); - String component_data = rChild.getStr("component_data"); - //遍历map - for (Map.Entry entry : mcMap.entrySet()) { - Long key = entry.getKey(); - Long value = entry.getValue(); - component_data = component_data.replace(key.toString(), value.toString()); - } - // 更新回去 - sql = "update data_visualization_info set component_data=? where id=?"; - Db.use(DataEaseModel.DB_NAME).update(sql, component_data, bigScreenId); - - // (5) 插入可视化资源表 - Record optRecord = new Record().setColumns(motherOptRecord); - optRecord.set("resource_id", bigScreenId); - optRecord.set("id", getSnowId()); - Db.use(DataEaseModel.DB_NAME).save("core_opt_recent", "id", optRecord); - - - // (6) 插入跳转配置表 - for (Record rMotherLinkJump : motherLinkJumpList) { - Record rCityLinkJump = new Record().setColumns(rMotherLinkJump);//克隆出来 - rCityLinkJump.set("id", getSnowId()); - rCityLinkJump.set("source_dv_id", bigScreenId); - Db.use(DataEaseModel.DB_NAME).save("visualization_link_jump", "id", rCityLinkJump); - } - - System.out.println("生成完毕"); - } - - public static void main(String[] args) throws InterruptedException { - LocalMysqlConnectUtil.Init(); - //获取数据可视化名称 - String dataVisualizationName = "黄海测试的气泡地图"; - SyncScreen(dataVisualizationName); - } -}