kgdxpr 9 months ago
commit 9d420c6d88

@ -34,10 +34,14 @@ public class DataEaseController extends Controller {
DataEaseModel dm = new DataEaseModel();
ResourceModel rm = new ResourceModel();
String tempDir = System.getProperty("java.io.tmpdir");
// http://10.10.21.20:9000/dsBase/dataease/route?city_name=昆明市
// http://10.10.21.20:9000/dsBase/dataease/route?city_name=楚雄彝族自治州
// http://10.10.21.20:9000/dsBase/dataease/route?city_name=西双版纳傣族自治州
// !!!必须发布后访问才能做到进入此接口,否则浏览器就走缓存,不进来这个接口了!!!
/*
http://10.10.21.20:9000/dsBase/dataease/route?city_name=昆明市
http://10.10.21.20:9000/dsBase/dataease/routePage?type_id=1
http://10.10.21.20:9000/dsBase/dataease/routeArea?area_name=五华区
http://10.10.21.20:9000/dsBase/dataease/routePageArea?type_id=1
!!!访!!
*/
/**
*
@ -52,15 +56,11 @@ public class DataEaseController extends Controller {
//发布的地址
String publish_url = BaseApplication.PropKit.get("dataEase.publish_url");
//先更新一下数据表
int res = dm.updateCity(dataVisualizationName, city_name);
int res = dm.updateCityArea(dataVisualizationName, city_name);
if (res == -1) {
renderJson(CommonUtil.returnMessageJson(false, dataVisualizationName + "名称的大屏不唯一,无法完成更新操作!"));
return;
}
if (res == -2) {
renderJson(CommonUtil.returnMessageJson(false, dataVisualizationName + "名称的大屏并不是隶属于云南教科院项目,无法完成更新操作!"));
return;
}
//拼接一下URL的最终地址
JSONObject jo = new JSONObject();
jo.put("city_name", city_name);
@ -71,12 +71,40 @@ public class DataEaseController extends Controller {
redirect(publish_url + BaseApplication.PropKit.get("dataEase.ShiZhou_url") + "?attachParams=" + base64Str);
}
/**
*
*
* @param area_name
*/
@Before({GET.class})
@EmptyInterface({"area_name"})
public void routeArea(String area_name) {
//大屏名称
String dataVisualizationName = BaseApplication.PropKit.get("dataEase.dataVisualizationNameArea");
//发布的地址
String publish_url = BaseApplication.PropKit.get("dataEase.publish_url");
//先更新一下数据表
int res = dm.updateCityArea(dataVisualizationName, area_name);
if (res == -1) {
renderJson(CommonUtil.returnMessageJson(false, dataVisualizationName + "名称的大屏不唯一,无法完成更新操作!"));
return;
}
//拼接一下URL的最终地址
JSONObject jo = new JSONObject();
jo.put("area_name", area_name);
String base64Str = Base64.encode(jo.toString());
//记录最后一次操作的是哪个市或者县区
dm.writeLastArea(area_name);
//跳转
redirect(publish_url + BaseApplication.PropKit.get("dataEase.Area_url") + "?attachParams=" + base64Str);
}
/**
*
*
* @param type_id
*/
// http://10.10.21.20:9000/dsBase/dataease/routePage?type_id=1
@Before({GET.class})
@IsNumericInterface({"type_id"})
public void routePage(int type_id) {
@ -103,6 +131,38 @@ public class DataEaseController extends Controller {
redirect(publish_url + "?attachParams=" + base64Str);
}
/**
*
*
* @param type_id
*/
@Before({GET.class})
@IsNumericInterface({"type_id"})
public void routePageArea(int type_id) {
//最后一次操作的区域名称
String area_name = dm.getLastArea();
//发布的地址
String publish_url = BaseApplication.PropKit.get("dataEase.publish_url");
//拼接一下URL的最终地址
JSONObject jo = new JSONObject();
jo.put("area_name", area_name);
String base64Str = Base64.encode(jo.toString());
switch (type_id) {
case 1://左侧学前教育规模发展预测,义务教育规模发展预测,普通高中教育规模发展预测
publish_url = publish_url + BaseApplication.PropKit.get("dataEase.AreaLeft_url");
break;
case 2://最底下,人口
publish_url = publish_url + BaseApplication.PropKit.get("dataEase.AreaBottom_url");
break;
case 3://教育资源配置发展预测
publish_url = publish_url + BaseApplication.PropKit.get("dataEase.AreaRight_url");
break;
}
//跳转
redirect(publish_url + "?attachParams=" + base64Str);
}
/**
* identity_id,
*/
@ -483,7 +543,7 @@ public class DataEaseController extends Controller {
ExcelReader excelReader = new ExcelReader();
List<ExcelRow> rows = excelReader.readXlsxFile(excelPath, excelCols);
dm.saveDataSetTableByCity(id,area_name, rows);
dm.saveDataSetTableByCity(id, area_name, rows);
//返回结果
Kv kv = Kv.create();

@ -38,6 +38,9 @@ public class DataEaseModel {
for (Record record : list) {
//这个数据集,当前的区域,已经填写了多少条数据
String table_name = record.getStr("table_name");
if(table_name.equals("excel_区域人口流动分布_374179b760")){
System.out.println("ddd");
}
sql = "select count(1) as c from `" + table_name + "`";
if (identity_id > 1) {
sql += " where `行政区划`='" + area_name + "' or `上级行政区划`='" + area_name + "'";
@ -87,7 +90,8 @@ public class DataEaseModel {
if (isInteger(value)) {
record.set(colName, Integer.parseInt(value));
} else if (isDouble(value)) {
record.set(colName, Double.parseDouble(value));
double roundedValue = Math.round(Double.parseDouble(value) * 100) / 100.0;
record.set(colName,roundedValue );
} else {
record.set(colName, value);
}
@ -144,9 +148,9 @@ public class DataEaseModel {
*
*
* @param dataVisualizationName
* @param cityName
* @param cityAreaName
*/
public int updateCity(String dataVisualizationName, String cityName) {
public int updateCityArea(String dataVisualizationName, String cityAreaName) {
//取出大屏的ID值
//云南省教育决策支持系统
String sql = "select * from data_visualization_info where name =?";
@ -156,11 +160,6 @@ public class DataEaseModel {
}
Record dataVisualizationInfo = L1.getFirst();
long bigScreenId = dataVisualizationInfo.getLong("id");
//这个名称确实是存在,但它是不是我想要的这个云南省项目中的大屏呢
// Set<Long> set = getFamilyNodes();
// if (!set.contains(bigScreenId)) {
// return -2;
// }
// 配置的内容
List<Record> list = getMap(bigScreenId);
@ -169,7 +168,7 @@ public class DataEaseModel {
long id = record.getLong("id");
JSONObject jo = JSONObject.fromObject(record.getStr("custom_attr"));
//获取城市编码
String area_code = getCityCode(cityName);
String area_code = getCityCode(cityAreaName);
//修改前
System.out.println("修改前=" + jo.getJSONObject("map"));
@ -456,7 +455,7 @@ public class DataEaseModel {
//对此表中的数据进行直接导出EXCEL
String sql = "select * from `" + tableName + "`";
if (identity_id > 1) {
sql = sql + "where `行政区划`='" + area_name + "'";
sql = sql + "where `行政区划`='" + area_name + "' or `上级行政区划`='" + area_name + "'" ;
}
//获取一下表有哪些列
//List<String> columnNames = getColumns(tableName);
@ -590,7 +589,7 @@ public class DataEaseModel {
String tableName = record.getStr("table_name");
if (identity_id > 1) {
String sql = "select * from `" + tableName + "` where `行政区划`='" + area_name + "'";
String sql = "select * from `" + tableName + "` where `行政区划`='" + area_name + "' or `上级行政区划`='" + area_name + "'";
return Db.use(DB_NAME).find(sql);
} else {
String sql = "select * from `" + tableName + "`";

@ -4,7 +4,6 @@ import com.dsideal.base.BaseApplication;
import com.dsideal.base.DataEase.Model.DataEaseModel;
import com.dsideal.base.Plugin.YamlProp;
import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil;
import com.jfinal.kit.Prop;
public class ChangeCity {
public static DataEaseModel dm = new DataEaseModel();
@ -16,6 +15,6 @@ public class ChangeCity {
LocalMysqlConnectUtil.Init();
//dm.updateCity("云南省教育决策支持系统【市州】", "楚雄州");
dm.updateCity("云南省教育决策支持系统【市州】", "昆明市");
dm.updateCityArea("云南省教育决策支持系统【市州】", "昆明市");
}
}

@ -113,24 +113,56 @@ public class Step3_DataSetFakeData {
// }
// }
//有一些表是以 上级行政区划为根的,然后遍历了它的县区,还有类型,不好直接抄过来,只能硬写了
//市州净注入与净流出的数据集
String tableName = "excel_区域人口流动分布_193751804a";
for (Record record : listCity) {
//String cityName = "昭通市";
String cityName = record.getStr("area_name");
if (keepArea.contains(cityName)) continue;
String sql = "delete from `" + tableName + "` where `行政区划`='" + cityName + "'";
Db.use(DataEaseModel.DB_NAME).update(sql);
System.out.println(cityName + "正在处理数据集:" + tableName);
//if (keepArea.contains(cityName)) continue;
Record rCity = dm.getAreaByName(cityName);
List<Record> lArea = dm.getAreaList(rCity.getStr("id"));
List<Record> writeList = new ArrayList<>();
int x = 0;
for (Record r : lArea) {
x++;
Record rArea = new Record();
rArea.set("上级行政区划", cityName);
rArea.set("行政区划", r.getStr("area_name"));
rArea.set("类型", "净流出");
rArea.set("数值(人)", 2313250);
rArea.set("行政区划", cityName);
rArea.set("下级行政区划", r.getStr("area_name"));
rArea.set("类型", x % 2 == 1 ? "净流出" : "净流入");
rArea.set("数值", 900);
writeList.add(rArea);
}
Db.use(DataEaseModel.DB_NAME).batchSave("excel_区域人口流动分布_374179b760", writeList, 100);
Db.use(DataEaseModel.DB_NAME).batchSave(tableName, writeList, 100);
}
// //县区净注入与净流出的数据集
// String tableName = "excel_区域人口流动分布_374179b760";
// int x=0;
// for (Record record : listCity) {
// x++;
// String cityName = record.getStr("area_name");
// if (keepArea.contains(cityName)) continue;
// String sql = "delete from `" + tableName + "` where `上级行政区划`='" + cityName + "'";
// Db.use(DataEaseModel.DB_NAME).update(sql);
//
// System.out.println(cityName + "正在处理数据集:" + tableName);
// Record rCity = dm.getAreaByName(cityName);
// List<Record> lArea = dm.getAreaList(rCity.getStr("id"));
// List<Record> writeList = new ArrayList<>();
// for (Record r : lArea) {
// Record rArea = new Record();
// rArea.set("上级行政区划", cityName);
// rArea.set("行政区划", r.getStr("area_name"));
// rArea.set("类型", x % 2 == 1 ? "净流出" : "净流入");
// rArea.set("数值(人)", 2313250);
// writeList.add(rArea);
// }
// Db.use(DataEaseModel.DB_NAME).batchSave(tableName, writeList, 100);
// }
}
}

@ -34,7 +34,7 @@ public class ChangeDataEaseCity {
String dataVisualizationName = "黄海测试的市州地图";
String cityName = "昭通市";
DataEaseModel dm = new DataEaseModel();
dm.updateCity(dataVisualizationName, cityName);
dm.updateCityArea(dataVisualizationName, cityName);
/*
156530100

@ -23,13 +23,20 @@ redis:
# 数据可视化
dataEase:
publish_url: http://10.10.14.203:8100
dataVisualizationRootName: 云南省教科院
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
dataVisualizationNameArea: 云南省教育决策支持系统【县区】
Area_url: /#/de-link/OxwyzDTr
AreaLeft_url: /#/de-link/WTtaPIn6
AreaBottom_url: /#/de-link/j3vwbtKm
AreaRight_url: /#/de-link/ufRSlWmB
# ==============================================================
excel:

Loading…
Cancel
Save