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 13f6dadf..f6ae0a0f 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -52,13 +52,13 @@ public class DataEaseController extends Controller { @EmptyInterface({"city_name"}) public void route(String city_name) { //大屏名称 - String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationName"); + String dataVisualizationNameCity = BaseApplication.PropKit.get("dataEase.dataVisualizationNameCity"); //发布的地址 String publish_url = BaseApplication.PropKit.get("dataEase.publish_url"); //先更新一下数据表 - int res = dm.updateCityArea(dataVisualizationName, city_name); + int res = dm.updateCityArea(dataVisualizationNameCity, city_name); if (res == -1) { - renderJson(CommonUtil.returnMessageJson(false, dataVisualizationName + "名称的大屏不唯一,无法完成更新操作!")); + renderJson(CommonUtil.returnMessageJson(false, dataVisualizationNameCity + "名称的大屏不唯一,无法完成更新操作!")); return; } //拼接一下URL的最终地址 @@ -80,11 +80,11 @@ public class DataEaseController extends Controller { @EmptyInterface({"city_name"}) public void updateCityArea(String city_name) { //大屏名称 - String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationName"); + String dataVisualizationNameCity = BaseApplication.PropKit.get("dataEase.dataVisualizationNameCity"); //先更新一下数据表 - int res = dm.updateCityArea(dataVisualizationName, city_name); + int res = dm.updateCityArea(dataVisualizationNameCity, city_name); if (res == -1) { - renderJson(CommonUtil.returnMessageJson(false, dataVisualizationName + "名称的大屏不唯一,无法完成更新操作!")); + renderJson(CommonUtil.returnMessageJson(false, dataVisualizationNameCity + "名称的大屏不唯一,无法完成更新操作!")); return; } renderJson(CommonUtil.returnMessageJson(true, "更新成功!")); @@ -101,13 +101,13 @@ public class DataEaseController extends Controller { @EmptyInterface({"area_name"}) public void routeArea(String area_name) { //大屏名称 - String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationNameArea"); + String dataVisualizationNameArea = BaseApplication.PropKit.get("dataEase.dataVisualizationNameArea"); //发布的地址 String publish_url = BaseApplication.PropKit.get("dataEase.publish_url"); //先更新一下数据表 - int res = dm.updateCityArea(dataVisualizationName, area_name); + int res = dm.updateCityArea(dataVisualizationNameArea, area_name); if (res == -1) { - renderJson(CommonUtil.returnMessageJson(false, dataVisualizationName + "名称的大屏不唯一,无法完成更新操作!")); + renderJson(CommonUtil.returnMessageJson(false, dataVisualizationNameArea + "名称的大屏不唯一,无法完成更新操作!")); return; } //拼接一下URL的最终地址 diff --git a/src/main/java/com/dsideal/base/DataEase/Util/CopyBigScreen.java b/src/main/java/com/dsideal/base/DataEase/Util/CopyBigScreen.java index 1a04f812..4769e64d 100644 --- a/src/main/java/com/dsideal/base/DataEase/Util/CopyBigScreen.java +++ b/src/main/java/com/dsideal/base/DataEase/Util/CopyBigScreen.java @@ -1,7 +1,5 @@ package com.dsideal.base.DataEase.Util; -import cn.hutool.core.lang.Snowflake; -import cn.hutool.core.util.IdUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; import com.dsideal.base.DataEase.Model.DataEaseModel; @@ -13,7 +11,6 @@ import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import java.util.List; -import java.util.Random; import java.util.UUID; import static com.dsideal.base.DataEase.Model.DataEaseModel.DB_NAME; @@ -39,13 +36,13 @@ public class CopyBigScreen { /** - * 清理通过本程序生成的所有副本,为了再次生成不重复 + * 清理指定名称大屏的所有副本,为了再次生成不重复 * - * @param dataVisualizationName + * @param bigScreenName 大屏名称 */ - public static void clear(String dataVisualizationName) { + public static void clearScreen(String bigScreenName) { //一、先删除后插入保持健康:保留:【云南省教育决策支持系统【市州】】,删除掉云南省教育决策支持系统【市州】+昆明市,云南省教育决策支持系统【市州】+楚雄州等数据 - String sql = "select * from data_visualization_info where name like '%" + dataVisualizationName + "%' and name <>'" + dataVisualizationName + "'"; + String sql = "select * from data_visualization_info where name like '%" + bigScreenName + "%' and name <>'" + bigScreenName + "'"; List toDelList = Db.use(DB_NAME).find(sql); for (Record record : toDelList) { long id = record.getLong("id"); @@ -53,7 +50,7 @@ public class CopyBigScreen { sql = "delete from core_chart_view where scene_id=?"; Db.use(DB_NAME).update(sql, id); //(2) 删除共享链接表 - sql = "delete from xpack_share WHERE resource_id=?"; + sql = "delete from xpack_share where resource_id=?"; Db.use(DB_NAME).update(sql, id); //(3) 删除可视化资源表 sql = "delete from core_opt_recent where resource_id=?"; @@ -85,16 +82,16 @@ public class CopyBigScreen { } /** - * 拷贝大屏 + * 拷贝城市大屏 * - * @param dataVisualizationName + * @param dataVisualizationNameCity */ - public static void Copy(String dataVisualizationName) { + public static void copyCityScreen(String dataVisualizationNameCity) { //清理掉旧的数据 - clear(dataVisualizationName); + clearScreen(dataVisualizationNameCity); //母屏信息 String sql = "select * from data_visualization_info where name =?"; - Record motherRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, dataVisualizationName); + Record motherRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, dataVisualizationNameCity); long motherId = motherRecord.getLong("id");//母屏ID long pid = motherRecord.getLong("pid"); //隶属文件夹 //母屏共享链接 @@ -103,7 +100,7 @@ public class CopyBigScreen { //按16个市州进行生成 for (String cityName : dm.getCityNameList()) { - String screenName = dataVisualizationName + cityName;//要拷贝出来的屏幕名称 + String screenName = dataVisualizationNameCity + cityName;//要拷贝出来的屏幕名称 //拷贝API String url = urlPrefix + "/de2api/dataVisualization/copy"; JSONObject jo = new JSONObject(); @@ -162,10 +159,63 @@ public class CopyBigScreen { System.out.println("恭喜,所有操作成功完成!"); } + /** + * 拷贝省级大屏 + * + * @param dataVisualizationProvince 省级大屏的名称 + */ + public static long copyProvinceScreen(String dataVisualizationProvince) { + //清理掉旧的数据 + clearScreen(dataVisualizationProvince); + //母屏信息 + String sql = "select * from data_visualization_info where name =?"; + Record motherRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, dataVisualizationProvince); + long motherId = motherRecord.getLong("id");//母屏ID + long pid = motherRecord.getLong("pid"); //隶属文件夹 + //母屏共享链接 + sql = "select * from xpack_share where resource_id=?"; + Record motherShareRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, motherId); + + String screenName = dataVisualizationProvince + "【黄海】";//要拷贝出来的屏幕名称 + //拷贝API + String url = urlPrefix + "/de2api/dataVisualization/copy"; + JSONObject jo = new JSONObject(); + jo.put("nodeType", "leaf"); + jo.put("name", screenName); + jo.put("type", "dataV"); + jo.put("id", motherId); + jo.put("pid", pid); + String res = HttpUtil.createPost(url).contentType("application/json") + .header("x-de-token", getToken()).body(jo.toString()).execute().body(); + long childId = Long.parseLong(JSONObject.parseObject(res).getString("data")); + + //更新pid,没有这步的话,在界面上看不到拷贝出来的大屏! + sql = "update data_visualization_info set pid=? where id=?"; + Db.use(DB_NAME).update(sql, pid, childId); + + //发布共享链接 + Record shareRecord = new Record().setColumns(motherShareRecord); + shareRecord.set("resource_id", childId); + shareRecord.set("id", CommonUtil.getSnowId()); + shareRecord.set("uuid", CommonUtil.randomString(8));//大小写字母和数字组合,长度为8 + Db.use(DataEaseModel.DB_NAME).save("xpack_share", "id", shareRecord); + System.out.println("恭喜,省级大屏拷贝完成!"); + return motherId; + } + public static void main(String[] args) throws InterruptedException { + //连接本地数据库系统 LocalMysqlConnectUtil.Init(); //获取数据可视化名称 - String dataVisualizationName = LocalMysqlConnectUtil.PropKit.get("dataEase.dataVisualizationName"); - Copy(dataVisualizationName); + String dataVisualizationNameCity = LocalMysqlConnectUtil.PropKit.get("dataEase.dataVisualizationNameCity"); + + //获取数据可视化名称 + String dataVisualizationProvince = LocalMysqlConnectUtil.PropKit.get("dataEase.dataVisualizationProvince"); + + //拷贝省级大屏 + long provinceScreenId = copyProvinceScreen(dataVisualizationProvince); + + //拷贝市州级大屏 + copyCityScreen(dataVisualizationNameCity); } } diff --git a/src/main/java/com/dsideal/base/Tools/Test/ChangeDataEaseCity.java b/src/main/java/com/dsideal/base/Tools/Test/ChangeDataEaseCity.java index feafdba5..5383c670 100644 --- a/src/main/java/com/dsideal/base/Tools/Test/ChangeDataEaseCity.java +++ b/src/main/java/com/dsideal/base/Tools/Test/ChangeDataEaseCity.java @@ -31,10 +31,10 @@ public class ChangeDataEaseCity { arpDataEase.start(); //要修改的大屏中文名称 - String dataVisualizationName = "黄海测试的市州地图"; + String dataVisualizationNameCity = "黄海测试的市州地图"; String cityName = "昭通市"; DataEaseModel dm = new DataEaseModel(); - dm.updateCityArea(dataVisualizationName, cityName); + dm.updateCityArea(dataVisualizationNameCity, cityName); /* 要修改的市州名称,需要用全称 156530100 昆明市 diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 139a58f4..eef74ca7 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -24,14 +24,16 @@ redis: # 数据可视化 dataEase: publish_url: http://10.10.14.203:8100 - + # 省级大屏名称 + dataVisualizationProvince: 云南省教育决策支持系统【云南省】 dataVisualizationRootName: 云南省教科院 - dataVisualizationName: 云南省教育决策支持系统【市州】 + # 市级大屏名称 + dataVisualizationNameCity: 云南省教育决策支持系统【市州】 ShiZhou_url: /#/de-link/X4l1qGNH ShiLeft_url: /#/de-link/TgShVA0z ShiBottom_url: /#/de-link/QZVOyXqD ShiRight_url: /#/de-link/oitjXDlA - + # 县区级大屏名称 dataVisualizationNameArea: 云南省教育决策支持系统【县区】 Area_url: /#/de-link/OxwyzDTr AreaLeft_url: /#/de-link/WTtaPIn6