|
|
|
@ -8,9 +8,7 @@ import com.jfinal.plugin.activerecord.Db;
|
|
|
|
|
import com.jfinal.plugin.activerecord.Record;
|
|
|
|
|
import net.sf.json.JSONObject;
|
|
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Random;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
public class SyncCityScreen {
|
|
|
|
|
|
|
|
|
@ -55,12 +53,7 @@ public class SyncCityScreen {
|
|
|
|
|
|
|
|
|
|
public static DataEaseModel dm = new DataEaseModel();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 同步【云南省教育决策支持系统【市州】】
|
|
|
|
|
* @param dataVisualizationName
|
|
|
|
|
* @throws InterruptedException
|
|
|
|
|
*/
|
|
|
|
|
public static void SyncCityScreen(String dataVisualizationName) throws InterruptedException {
|
|
|
|
|
public static void clear(String dataVisualizationName){
|
|
|
|
|
//一、先删除后插入保持健康:保留:【云南省教育决策支持系统【市州】】,删除掉云南省教育决策支持系统【市州】+昆明市,云南省教育决策支持系统【市州】+楚雄州等数据
|
|
|
|
|
String sql = "select * from data_visualization_info where name like '%" + dataVisualizationName + "%' and name <>'" + dataVisualizationName + "'";
|
|
|
|
|
List<Record> toDelList = Db.use(DataEaseModel.DB_NAME).find(sql);
|
|
|
|
@ -72,14 +65,48 @@ public class SyncCityScreen {
|
|
|
|
|
//(2) 删除共享链接表
|
|
|
|
|
sql = "delete from xpack_share WHERE resource_id=?";
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).update(sql, id);
|
|
|
|
|
//(3) 删除主表数据
|
|
|
|
|
|
|
|
|
|
//(3) 删除可视化资源表
|
|
|
|
|
sql = "delete from core_opt_recent where resource_id=?";
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).update(sql, id);
|
|
|
|
|
|
|
|
|
|
// (4) 跳转记录表
|
|
|
|
|
sql = "delete from visualization_link_jump where source_dv_id=?";
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).update(sql, id);
|
|
|
|
|
|
|
|
|
|
// (5) 跳转配置表
|
|
|
|
|
sql = "select * from visualization_link_jump_info where target_dv_id=?";
|
|
|
|
|
List<Record> jumpList = Db.use(DataEaseModel.DB_NAME).find(sql, id);
|
|
|
|
|
for (Record r : jumpList) {
|
|
|
|
|
long jumpId = r.getLong("id");
|
|
|
|
|
sql = "delete from visualization_link_jump_target_view_info where link_jump_info_id =?";
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).update(sql, jumpId);
|
|
|
|
|
|
|
|
|
|
sql = "delete from visualization_link_jump_info where id=?";
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).update(sql, jumpId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// (6) 外部参数关联关系表
|
|
|
|
|
// sql = "delete from visualization_outer_params where visualization_id=?";
|
|
|
|
|
// Db.use(DataEaseModel.DB_NAME).update(sql, id);
|
|
|
|
|
|
|
|
|
|
//(7) 删除主表数据
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).deleteById("data_visualization_info", id);
|
|
|
|
|
}
|
|
|
|
|
System.out.println("成功删除大屏数据" + toDelList.size() + "条~");
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 同步【云南省教育决策支持系统【市州】】
|
|
|
|
|
*
|
|
|
|
|
* @param dataVisualizationName
|
|
|
|
|
* @throws InterruptedException
|
|
|
|
|
*/
|
|
|
|
|
public static void SyncCityScreen(String dataVisualizationName) throws InterruptedException {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 二、开始全新插入数据
|
|
|
|
|
//1、获取母屏数据
|
|
|
|
|
sql = "select * from data_visualization_info where name =?";
|
|
|
|
|
String sql = "select * from data_visualization_info where name =?";
|
|
|
|
|
Record motherRecord = Db.use(DataEaseModel.DB_NAME).findFirst(sql, dataVisualizationName);
|
|
|
|
|
long motherId = motherRecord.getLong("id");
|
|
|
|
|
//母屏细节表
|
|
|
|
@ -88,7 +115,25 @@ public class SyncCityScreen {
|
|
|
|
|
//母屏共享链接
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
//母屏的linkJump
|
|
|
|
|
sql = "select * from visualization_link_jump where source_dv_id=?";
|
|
|
|
|
List<Record> motherLinkJumpList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId);
|
|
|
|
|
//母屏的linkJumpInfo
|
|
|
|
|
sql = "select * from visualization_link_jump_info where target_dv_id=?";
|
|
|
|
|
List<Record> motherLinkJumpInfoList = Db.use(DataEaseModel.DB_NAME).find(sql, motherId);
|
|
|
|
|
|
|
|
|
|
//母屏的外部参数关联关系表
|
|
|
|
|
sql = "select * from visualization_outer_params where visualization_id=?";
|
|
|
|
|
List<Record> motheRouterParamsList = 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<Record> motherLinkJumpTargetViewInfo = Db.use(DataEaseModel.DB_NAME).find(sql, motherId);
|
|
|
|
|
//2、需要哪16个城市
|
|
|
|
|
for (String cityName : dm.getCityNameList()) {
|
|
|
|
|
//(1)复制16个大屏
|
|
|
|
@ -110,47 +155,89 @@ public class SyncCityScreen {
|
|
|
|
|
//批量保存
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).batchSave("core_chart_view", writeList, 100);
|
|
|
|
|
|
|
|
|
|
// // (3) 修改地图中城市
|
|
|
|
|
// List<Record> list = dm.getMap(bigScreenId);
|
|
|
|
|
// //core_chart_view表
|
|
|
|
|
// for (Record record : list) {
|
|
|
|
|
// long id = record.getLong("id");
|
|
|
|
|
// JSONObject jo = JSONObject.fromObject(record.getStr("custom_attr"));
|
|
|
|
|
// //获取城市编码
|
|
|
|
|
// String area_code = dm.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.toString();
|
|
|
|
|
// Db.use(DataEaseModel.DB_NAME).update("update core_chart_view set custom_attr=? where id=?", jsonString, id);
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// // (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);
|
|
|
|
|
//
|
|
|
|
|
// (3) 修改地图中城市
|
|
|
|
|
List<Record> list = dm.getMap(bigScreenId);
|
|
|
|
|
//core_chart_view表
|
|
|
|
|
for (Record record : list) {
|
|
|
|
|
long id = record.getLong("id");
|
|
|
|
|
JSONObject jo = JSONObject.fromObject(record.getStr("custom_attr"));
|
|
|
|
|
//获取城市编码
|
|
|
|
|
String area_code = dm.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.toString();
|
|
|
|
|
Db.use(DataEaseModel.DB_NAME).update("update core_chart_view set custom_attr=? where id=?", jsonString, id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// (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);
|
|
|
|
|
|
|
|
|
|
// (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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// (7) 插入跳转配置信息表
|
|
|
|
|
Map<Integer, Long> 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 + "的数据填充~");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// //查询出每个城市的共享链接
|
|
|
|
|
// 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("生成完毕");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -158,7 +245,7 @@ public class SyncCityScreen {
|
|
|
|
|
LocalMysqlConnectUtil.Init();
|
|
|
|
|
//获取数据可视化名称
|
|
|
|
|
String dataVisualizationName = LocalMysqlConnectUtil.PropKit.get("dataEase.dataVisualizationName");
|
|
|
|
|
|
|
|
|
|
SyncCityScreen(dataVisualizationName);
|
|
|
|
|
clear(dataVisualizationName);
|
|
|
|
|
// SyncCityScreen(dataVisualizationName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|