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 c86676a0..dc58e7e1 100644 --- a/src/main/java/com/dsideal/base/DataEase/Util/CopyBigScreen.java +++ b/src/main/java/com/dsideal/base/DataEase/Util/CopyBigScreen.java @@ -10,6 +10,7 @@ import com.jfinal.kit.PathKit; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; +import org.sqlite.core.DB; import java.util.*; @@ -41,7 +42,8 @@ public class CopyBigScreen { * @param bigScreenName 大屏名称 */ public static void clearScreen(String bigScreenName) { - //一、先删除后插入保持健康:保留:【云南省教育决策支持系统【市州】】,删除掉云南省教育决策支持系统【市州】+昆明市,云南省教育决策支持系统【市州】+楚雄州等数据 + //一、先删除后插入保持健康 + // 保留:【云南省教育决策支持系统【市州拷贝】】,删除掉云南省教育决策支持系统【市州拷贝】+昆明市,云南省教育决策支持系统【市州】+楚雄州等数据 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) { @@ -68,22 +70,6 @@ public class CopyBigScreen { sql = "delete from visualization_link_jump_info where id=?"; Db.use(DB_NAME).update(sql, jumpId); } - // (6) 外部参数关联关系表 - sql = "select params_id from visualization_outer_params where visualization_id=?"; - String paramsId = Db.use(DB_NAME).queryStr(sql, id); - - sql = "select params_info_id from visualization_outer_params_info where params_id=?"; - String params_info_id = Db.use(DB_NAME).queryStr(sql, paramsId); - - sql = "delete from visualization_outer_params_target_view_info where params_info_id=?"; - Db.use(DB_NAME).update(sql, params_info_id); - - sql = "delete from visualization_outer_params_info where params_id=?"; - Db.use(DB_NAME).update(sql, paramsId); - - sql = "delete from visualization_outer_params where visualization_id=?"; - Db.use(DB_NAME).update(sql, id); - //(7) 删除主表数据 Db.use(DB_NAME).deleteById("data_visualization_info", id); } @@ -144,10 +130,6 @@ public class CopyBigScreen { Db.use(DataEaseModel.DB_NAME).save("xpack_share", "id", shareRecord); } - public static List getViewList(long screenId) { - String sql = "select * from core_chart_view where scene_id=?"; - return Db.use(DB_NAME).find(sql, screenId); - } /** * 拷贝城市大屏 @@ -155,7 +137,7 @@ public class CopyBigScreen { * @param dataVisualizationNameCity */ public static void copyCityScreen(String dataVisualizationNameCity) throws InterruptedException { - //母屏信息 + //母屏信息 Record motherRecord = getVisualizationByName(dataVisualizationNameCity); long motherId = motherRecord.getLong("id");//母屏ID long pid = motherRecord.getLong("pid"); //隶属文件夹 @@ -164,25 +146,6 @@ public class CopyBigScreen { String sql = "select * from xpack_share where resource_id=?"; Record motherShareRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, motherId); - //母屏的外部参数 - sql = "select * from visualization_outer_params where visualization_id =?"; - Record motherOuterParamsRecord = Db.use(DB_NAME).findFirst(sql, motherId); - String motherParamsId = motherOuterParamsRecord.getStr("params_id"); - //外部参数关联关系表 - sql = "select * from visualization_outer_params_info where params_id=?"; - Record motherParamsInfoRecord = Db.use(DB_NAME).findFirst(sql, motherParamsId); - String params_info_id = motherParamsInfoRecord.getStr("params_info_id"); - - //母屏的visualization_outer_params_target_view_info - sql = "select * from visualization_outer_params_target_view_info where params_info_id=?"; - List motherTargetViewInfoList = Db.use(DB_NAME).find(sql, params_info_id); - - Map motherMap = new HashMap<>(); - List listView = getViewList(motherId); - for (int i = 0; i < listView.size(); i++) { - motherMap.put(listView.get(i).getLong("id"), i); - } - //按16个市州进行生成 List list = dm.getCityNameList(); for (int i = 0; i < list.size(); i++) { @@ -205,34 +168,9 @@ public class CopyBigScreen { String jsonString = jo.toString(); Db.use(DB_NAME).update("update core_chart_view set custom_attr=? where id=?", jsonString, id); } - - //修改外部参数 - Record cityOuterParamsRecord = new Record().setColumns(motherOuterParamsRecord); - cityOuterParamsRecord.set("params_id", UUID.randomUUID().toString()); - cityOuterParamsRecord.set("visualization_id", childId); - Db.use(DB_NAME).save("visualization_outer_params", "params_id", cityOuterParamsRecord); - - //复制外部参数关联关系表 - Record cityParamsInfoRecord = new Record().setColumns(motherParamsInfoRecord); - cityParamsInfoRecord.set("params_id", cityOuterParamsRecord.getStr("params_id")); - cityParamsInfoRecord.set("params_info_id", UUID.randomUUID().toString()); - Db.use(DB_NAME).save("visualization_outer_params_info", "params_info_id", cityParamsInfoRecord); - - List childChartViewMap = getViewList(childId); - List writeList = new ArrayList<>(); - for (int j = 0; j < motherTargetViewInfoList.size(); j++) { - Record record = motherTargetViewInfoList.get(j); - long target_view_id = record.getLong("target_view_id"); - //这个target_view_id是母屏在core_chart_view表中的id,是第几个? - if (motherMap.containsKey(target_view_id)) { - int k = motherMap.get(target_view_id); - record.set("target_view_id", childChartViewMap.get(k).getStr("id")); - record.set("target_id", UUID.randomUUID().toString());//主键,全新生成 - record.set("params_info_id", cityParamsInfoRecord.getStr("params_info_id"));//附本的params_info_id - writeList.add(record); - } - } - Db.use(DB_NAME).batchSave("visualization_outer_params_target_view_info", writeList, 100); + //更改过滤器 + sql = "update core_chart_view set custom_filer=replace(custom_filer,'昆明市','" + cityName + "') where scene_id=?"; + Db.use(DB_NAME).update(sql, childId); //发布共享链接 publishShare(motherShareRecord, childId); @@ -247,7 +185,6 @@ public class CopyBigScreen { * @param dataVisualizationProvince 省级大屏的名称 */ public static void copyProvinceScreen(String dataVisualizationProvince) throws InterruptedException { - //母屏信息 Record motherRecord = getVisualizationByName(dataVisualizationProvince); long motherId = motherRecord.getLong("id");//母屏ID @@ -257,7 +194,7 @@ public class CopyBigScreen { String sql = "select * from xpack_share where resource_id=?"; Record motherShareRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, motherId); - String screenName = dataVisualizationProvince + "【黄海】";//要拷贝出来的屏幕名称 + String screenName = dataVisualizationProvince + "【拷贝】";//要拷贝出来的屏幕名称 //拷贝API long childId = callApiToCopy(screenName, motherId, pid); @@ -297,14 +234,14 @@ public class CopyBigScreen { clearScreen(dataVisualizationNameCity); //拷贝省级大屏 -// copyProvinceScreen(dataVisualizationProvince); -// //拷贝市州级大屏 -// copyCityScreen(dataVisualizationNameCity); -// //更新复制出的省级大屏的链接路由 -// Record motherRecord = getVisualizationByName(dataVisualizationProvince + "【黄海】"); -// long motherId = motherRecord.getLong("id");//母屏ID -// String sql = "update visualization_link_jump_info set content=REPLACE(content,'/dsBase/dataease/route?city_name=','/dsBase/dataease/routeV2?city_name=') where link_jump_id in (select id from visualization_link_jump where source_dv_id=?)"; -// Db.use(DB_NAME).update(sql, motherId); -// System.out.println("恭喜,所有操作成功完成~~~"); + copyProvinceScreen(dataVisualizationProvince); + //拷贝市州级大屏 + copyCityScreen(dataVisualizationNameCity); + //更新复制出的省级大屏的链接路由 + Record motherRecord = getVisualizationByName(dataVisualizationProvince + "【拷贝】"); + long motherId = motherRecord.getLong("id");//母屏ID + String sql = "update visualization_link_jump_info set content=REPLACE(content,'/dsBase/dataease/route?city_name=','/dsBase/dataease/routeV2?city_name=') where link_jump_id in (select id from visualization_link_jump where source_dv_id=?)"; + Db.use(DB_NAME).update(sql, motherId); + System.out.println("恭喜,所有操作成功完成~~~"); } } diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index eef74ca7..f50ee7e7 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -28,7 +28,7 @@ dataEase: dataVisualizationProvince: 云南省教育决策支持系统【云南省】 dataVisualizationRootName: 云南省教科院 # 市级大屏名称 - dataVisualizationNameCity: 云南省教育决策支持系统【市州】 + dataVisualizationNameCity: 云南省教育决策支持系统【市州拷贝】 ShiZhou_url: /#/de-link/X4l1qGNH ShiLeft_url: /#/de-link/TgShVA0z ShiBottom_url: /#/de-link/QZVOyXqD