diff --git a/Doc/v1.0/.cache.json b/Doc/v1.0/.cache.json index 25d5ef6c..4d9a3cfd 100644 --- a/Doc/v1.0/.cache.json +++ b/Doc/v1.0/.cache.json @@ -1 +1 @@ -[{"baseUrl":"","className":"DataEaseController","description":"DataEaseController","docFileName":"com_dsideal_base_DataEase_Controller_DataEaseController.html","generateDocs":true,"packageName":"com.dsideal.base.DataEase.Controller","requestNodes":[{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#route","deprecated":false,"description":"省级路由","header":[],"method":["GET","POST"],"methodName":"route","paramNodes":[{"description":"城市名称","jsonBody":false,"name":"city_name","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/route"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#routePage","deprecated":false,"description":"市级路由","header":[],"method":["GET","POST"],"methodName":"routePage","paramNodes":[{"description":"哪一个仪表盘","jsonBody":false,"name":"type_id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/routePage"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSet","deprecated":false,"description":"根据当前登录人员的identity_id,获取此人员可以维护的数据集名称","header":[],"method":["GET","POST"],"methodName":"getDataSet","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/getDataSet"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#downloadExcel","deprecated":false,"description":"下载指定数据集的Excel文件","header":[],"method":["GET","POST"],"methodName":"downloadExcel","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/downloadExcel"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#downSampleExcel","deprecated":false,"description":"下载模板Excel","header":[],"method":["GET","POST"],"methodName":"downSampleExcel","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/downSampleExcel"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#uploadExcel","deprecated":false,"description":"上传Excel文件","header":[],"method":["GET","POST"],"methodName":"uploadExcel","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/uploadExcel"}],"srcFileName":"D:\\dsWork\\YunNanDsBase\\src\\main\\java\\com\\dsideal\\base\\DataEase\\Controller\\DataEaseController.java"}] \ No newline at end of file +[{"baseUrl":"","className":"DataEaseController","description":"DataEaseController","docFileName":"com_dsideal_base_DataEase_Controller_DataEaseController.html","generateDocs":true,"packageName":"com.dsideal.base.DataEase.Controller","requestNodes":[{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#route","deprecated":false,"description":"省级路由","header":[],"method":["GET","POST"],"methodName":"route","paramNodes":[{"description":"城市名称","jsonBody":false,"name":"city_name","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/route"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#routePage","deprecated":false,"description":"routePage","header":[],"method":["GET","POST"],"methodName":"routePage","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/routePage"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSet","deprecated":false,"description":"根据当前登录人员的identity_id,获取此人员可以维护的数据集名称","header":[],"method":["GET","POST"],"methodName":"getDataSet","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/getDataSet"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#downloadExcel","deprecated":false,"description":"下载指定数据集的Excel文件","header":[],"method":["GET","POST"],"methodName":"downloadExcel","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/downloadExcel"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#downSampleExcel","deprecated":false,"description":"下载模板Excel","header":[],"method":["GET","POST"],"methodName":"downSampleExcel","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/downSampleExcel"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#uploadExcel","deprecated":false,"description":"上传Excel文件","header":[],"method":["GET","POST"],"methodName":"uploadExcel","paramNodes":[],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/uploadExcel"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSetContent","deprecated":false,"description":"获取数据集下的数据表","header":[],"method":["GET","POST"],"methodName":"getDataSetContent","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"dataset_id","required":false,"type":"int"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/getDataSetContent"},{"changeFlag":0,"codeFileUrl":"com_dsideal_base_DataEase_Controller_DataEaseController.html#saveDataSet","deprecated":false,"description":"保存数据集下的数据表","header":[],"method":["GET","POST"],"methodName":"saveDataSet","paramNodes":[{"description":"数据集id","jsonBody":false,"name":"dataset_id","required":false,"type":"int"},{"description":"保存的数据","jsonBody":false,"name":"data","required":false,"type":"string"}],"responseNode":{"childNodes":[],"className":"","list":false,"showFieldNotNull":false},"url":"/dataease/saveDataSet"}],"srcFileName":"D:\\dsWork\\YunNanDsBase\\src\\main\\java\\com\\dsideal\\base\\DataEase\\Controller\\DataEaseController.java"}] \ No newline at end of file diff --git a/Doc/v1.0/YunNanDsBase-v1.0-api-docs.json b/Doc/v1.0/YunNanDsBase-v1.0-api-docs.json index 864f8863..0cdb2658 100644 --- a/Doc/v1.0/YunNanDsBase-v1.0-api-docs.json +++ b/Doc/v1.0/YunNanDsBase-v1.0-api-docs.json @@ -20,17 +20,11 @@ "request": { "method": "GET", "url": { - "query": [ - { - "description": "哪一个仪表盘", - "value": "", - "key": "type_id" - } - ], + "query": [], "raw": "{{domain}}/dataease/routePage" } }, - "name": "市级路由" + "name": "routePage" }, { "request": { @@ -83,6 +77,43 @@ } }, "name": "上传Excel文件" + }, + { + "request": { + "method": "GET", + "url": { + "query": [ + { + "description": "数据集id", + "value": "", + "key": "dataset_id" + } + ], + "raw": "{{domain}}/dataease/getDataSetContent" + } + }, + "name": "获取数据集下的数据表" + }, + { + "request": { + "method": "POST", + "url": { + "query": [ + { + "description": "数据集id", + "value": "", + "key": "dataset_id" + }, + { + "description": "保存的数据", + "value": "", + "key": "data" + } + ], + "raw": "{{domain}}/dataease/saveDataSet" + } + }, + "name": "保存数据集下的数据表" } ], "name": "DataEaseController" diff --git a/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html b/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html index 87a4c2de..2ad5af30 100644 --- a/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html +++ b/Doc/v1.0/com_dsideal_base_DataEase_Controller_DataEaseController.html @@ -46,7 +46,7 @@ 省级路由 - 市级路由 + routePage 根据当前登录人员的identity_id,获取此人员可以维护的数据集名称 @@ -60,6 +60,12 @@ 上传Excel文件 + + 获取数据集下的数据表 + + + 保存数据集下的数据表 + @@ -102,28 +108,13 @@
-

市级路由

+

routePage

请求URL

/dataease/routePage GET POST

-

请求参数 application/x-www-form-urlencoded

- - - - - - - - - - - - - -
参数名类型必须描述
type_idint哪一个仪表盘

返回结果

{}
@@ -203,6 +194,66 @@ POST

返回结果

+
{}
+ +
+
+

获取数据集下的数据表

+

请求URL

+

+ /dataease/getDataSetContent + GET + POST +

+

请求参数 application/x-www-form-urlencoded

+ + + + + + + + + + + + + +
参数名类型必须描述
dataset_idint数据集id
+

返回结果

+
{}
+
+
+
+

保存数据集下的数据表

+

请求URL

+

+ /dataease/saveDataSet + GET + POST +

+

请求参数 application/x-www-form-urlencoded

+ + + + + + + + + + + + + + + + + + + +
参数名类型必须描述
dataset_idint数据集id
datastring保存的数据
+

返回结果

{}

@@ -220,11 +271,13 @@ var search_source_data = [ {name: 'DataEaseController.省级路由', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#route'}, - {name: 'DataEaseController.市级路由', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#routePage'}, + {name: 'DataEaseController.routePage', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#routePage'}, {name: 'DataEaseController.根据当前登录人员的identity_id,获取此人员可以维护的数据集名称', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSet'}, {name: 'DataEaseController.下载指定数据集的Excel文件', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#downloadExcel'}, {name: 'DataEaseController.下载模板Excel', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#downSampleExcel'}, {name: 'DataEaseController.上传Excel文件', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#uploadExcel'}, + {name: 'DataEaseController.获取数据集下的数据表', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSetContent'}, + {name: 'DataEaseController.保存数据集下的数据表', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#saveDataSet'}, ]; diff --git a/Doc/v1.0/index.html b/Doc/v1.0/index.html index fa4a31c3..e0473ffb 100644 --- a/Doc/v1.0/index.html +++ b/Doc/v1.0/index.html @@ -46,7 +46,7 @@ 省级路由 - 市级路由 + routePage 根据当前登录人员的identity_id,获取此人员可以维护的数据集名称 @@ -60,6 +60,12 @@ 上传Excel文件 + + 获取数据集下的数据表 + + + 保存数据集下的数据表 + @@ -93,11 +99,13 @@ var search_source_data = [ {name: 'DataEaseController.省级路由', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#route'}, - {name: 'DataEaseController.市级路由', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#routePage'}, + {name: 'DataEaseController.routePage', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#routePage'}, {name: 'DataEaseController.根据当前登录人员的identity_id,获取此人员可以维护的数据集名称', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSet'}, {name: 'DataEaseController.下载指定数据集的Excel文件', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#downloadExcel'}, {name: 'DataEaseController.下载模板Excel', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#downSampleExcel'}, {name: 'DataEaseController.上传Excel文件', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#uploadExcel'}, + {name: 'DataEaseController.获取数据集下的数据表', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#getDataSetContent'}, + {name: 'DataEaseController.保存数据集下的数据表', url: 'com_dsideal_base_DataEase_Controller_DataEaseController.html#saveDataSet'}, ]; diff --git a/WebRoot/upload/229F1533-FD2A-46B3-91DA-D2655C00D110.xlsx b/WebRoot/upload/229F1533-FD2A-46B3-91DA-D2655C00D110.xlsx new file mode 100644 index 00000000..a07abcb0 Binary files /dev/null and b/WebRoot/upload/229F1533-FD2A-46B3-91DA-D2655C00D110.xlsx differ diff --git a/WebRoot/upload/412E2178-1704-4997-97C5-22A42F478ED8.xlsx b/WebRoot/upload/412E2178-1704-4997-97C5-22A42F478ED8.xlsx new file mode 100644 index 00000000..77e7b51c Binary files /dev/null and b/WebRoot/upload/412E2178-1704-4997-97C5-22A42F478ED8.xlsx differ diff --git a/WebRoot/upload/4DA142BC-FE87-4759-9BB2-3DB865BEE312.xlsx b/WebRoot/upload/4DA142BC-FE87-4759-9BB2-3DB865BEE312.xlsx new file mode 100644 index 00000000..3343e7c5 Binary files /dev/null and b/WebRoot/upload/4DA142BC-FE87-4759-9BB2-3DB865BEE312.xlsx differ diff --git a/WebRoot/upload/6E50128C-3B15-4B3B-91BD-133F9A7BC73E.xlsx b/WebRoot/upload/6E50128C-3B15-4B3B-91BD-133F9A7BC73E.xlsx new file mode 100644 index 00000000..3f5f2a30 Binary files /dev/null and b/WebRoot/upload/6E50128C-3B15-4B3B-91BD-133F9A7BC73E.xlsx differ diff --git a/WebRoot/upload/70A6D6EA-409C-46AD-AE21-9B5FD115DB92.xlsx b/WebRoot/upload/70A6D6EA-409C-46AD-AE21-9B5FD115DB92.xlsx new file mode 100644 index 00000000..db4ed272 Binary files /dev/null and b/WebRoot/upload/70A6D6EA-409C-46AD-AE21-9B5FD115DB92.xlsx differ diff --git a/WebRoot/upload/97079B19-9883-490B-9EEE-4CF03B6DC2C8.xlsx b/WebRoot/upload/97079B19-9883-490B-9EEE-4CF03B6DC2C8.xlsx new file mode 100644 index 00000000..dfb3c088 Binary files /dev/null and b/WebRoot/upload/97079B19-9883-490B-9EEE-4CF03B6DC2C8.xlsx differ diff --git a/WebRoot/upload/BEF26C40-D609-4C55-8BED-79285B3611C0.xlsx b/WebRoot/upload/BEF26C40-D609-4C55-8BED-79285B3611C0.xlsx new file mode 100644 index 00000000..509d0703 Binary files /dev/null and b/WebRoot/upload/BEF26C40-D609-4C55-8BED-79285B3611C0.xlsx differ diff --git a/WebRoot/upload/D8527BE5-1821-4F0A-A3DB-0E93D32E9F75.xlsx b/WebRoot/upload/D8527BE5-1821-4F0A-A3DB-0E93D32E9F75.xlsx new file mode 100644 index 00000000..08a9d4d2 Binary files /dev/null and b/WebRoot/upload/D8527BE5-1821-4F0A-A3DB-0E93D32E9F75.xlsx differ diff --git a/WebRoot/upload/E8001DB4-EEF1-4677-BB04-4A1A531C273A.xlsx b/WebRoot/upload/E8001DB4-EEF1-4677-BB04-4A1A531C273A.xlsx new file mode 100644 index 00000000..6e947dfc Binary files /dev/null and b/WebRoot/upload/E8001DB4-EEF1-4677-BB04-4A1A531C273A.xlsx differ diff --git a/WebRoot/upload/F7DF195F-B0DE-422D-A0CF-C00CE65E0464.xlsx b/WebRoot/upload/F7DF195F-B0DE-422D-A0CF-C00CE65E0464.xlsx new file mode 100644 index 00000000..57621de6 Binary files /dev/null and b/WebRoot/upload/F7DF195F-B0DE-422D-A0CF-C00CE65E0464.xlsx differ 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 b8c16700..3bc4bba1 100644 --- a/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java +++ b/src/main/java/com/dsideal/base/DataEase/Controller/DataEaseController.java @@ -20,6 +20,7 @@ import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Record; import com.jfinal.upload.UploadFile; import io.github.yedaxia.apidocs.ApiDoc; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.io.File; @@ -124,7 +125,7 @@ public class DataEaseController extends Controller { // identity_id=1 省 // identity_id=2 市 // identity_id=3 县 - List list = dm.getDataSetByIdentityId(identity_id,area_name); + List list = dm.getDataSetByIdentityId(identity_id, area_name); renderJson(CommonUtil.renderJsonForLayUI(list)); } @@ -253,4 +254,50 @@ public class DataEaseController extends Controller { kv.set("message", "上传成功"); renderJson(kv); } + + + /** + * 获取数据集下的数据表 + * + * @param dataset_id 数据集id + */ + @Before(GET.class) + @IsLoginInterface({}) + @IsNumericInterface({"dataset_id"}) + public void getDataSetContent(int dataset_id) { + List list = dm.getDataSetContent(dataset_id); + renderJson(CommonUtil.renderJsonForLayUI(list)); + } + + /** + * 保存数据集下的数据表 + * + * @param dataset_id 数据集id + * @param data 保存的数据 + */ + @Before(POST.class) + @IsLoginInterface({}) + public void saveDataSet(int dataset_id, String data) { + //登录的人员 + int identity_id = Integer.parseInt(CookieUtil.getValue(getRequest(), "identity_id")); + String person_id = CookieUtil.getValue(getRequest(), "person_id"); + + //获取他是哪个城市或者县区的管理员 + //行政区划码 + String area_code = rm.getAreaCode(identity_id, person_id); + //根据区域码,获取区域名称 + String area_name = rm.getAreaName(area_code); + //父亲的区域名称 + String parent_area_name = rm.getParentAreaName(area_name); + + JSONArray jsonArray = JSONArray.fromObject(data); + for (Object o : jsonArray) { + JSONObject jo = (JSONObject) o; + jo.put("行政区划", area_name); + jo.put("上级行政区划", parent_area_name); + } + //保存 + dm.saveDataSet(identity_id, dataset_id, area_name, jsonArray); + renderJson(CommonUtil.returnMessageJson(true, "保存成功")); + } } diff --git a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java index 5c7549fe..91f4bbe4 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/DataEaseModel.java @@ -7,6 +7,7 @@ import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.SqlPara; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; @@ -22,7 +23,7 @@ import java.util.stream.Collectors; public class DataEaseModel { //DataEase数据库名称 - public static final String DB_NAME = "dataease"; + public static String DB_NAME = "dataease"; /** * 获取当前人员可以看到哪些数据集 @@ -37,7 +38,10 @@ public class DataEaseModel { for (Record record : list) { //这个数据集,当前的区域,已经填写了多少条数据 String table_name = record.getStr("table_name"); - sql = "select count(1) as c from `" + table_name + "` where `行政区划`='" + area_name + "'"; + sql = "select count(1) as c from `" + table_name + "`"; + if (identity_id > 1) { + sql += " where `行政区划`='" + area_name + "'"; + } int cnt = Db.use(DB_NAME).queryInt(sql); record.set("fill_count", cnt); } @@ -364,6 +368,17 @@ public class DataEaseModel { return Db.findFirst(sql, area_name); } + /** + * 获取指定id的行政区划 + * + * @param id + * @return + */ + public Record getAreaById(String id) { + String sql = "select * from t_dm_area where id=?"; + return Db.findFirst(sql, id); + } + /** * 指定父级id获取所有子级 * @@ -534,4 +549,55 @@ public class DataEaseModel { long rootId = getVisuallizationRoot().getLong("id"); return new HashSet<>(getChildren(rootId)); } + + /** + * 获取指定名称省下面的所有县区 + * + * @param provinceName + * @return + */ + public List getProvinceArea(String provinceName) { + String provinceId = getAreaByName(provinceName).getStr("id"); + String sql = "select * from ds_db.t_dm_area where province_id=? and level_id=5"; + return Db.find(sql, provinceId); + } + + /** + * 获取数据集对应的表 + * + * @param dataset_id 数据集id + * @return + */ + public List getDataSetContent(int dataset_id) { + String tableName = getTableName(dataset_id); + String sql = "select * from `" + tableName + "`"; + return Db.use(DB_NAME).find(sql); + } + + /** + * 保存数据集对应的表 + * + * @param dataset_id 数据集id + * @param ja json数组 + */ + public void saveDataSet(int identity_id, int dataset_id, String area_name, JSONArray ja) { + String tableName = getTableName(dataset_id); + String sql = "delete from `" + tableName + "` where `行政区划`=?"; + Db.use(DB_NAME).update(sql); + + List list = new ArrayList<>(); + for (int i = 0; i < ja.size(); i++) { + JSONObject jsonObject = ja.getJSONObject(i); + //遍历jo的每一个属性 + // 或者使用keySet和for-each循环遍历 + Record record = new Record(); + for (Object key : jsonObject.keySet()) { + Object value = jsonObject.get(key); + if (value.equals("null")) value = null; + record.set(key.toString(), value); + } + list.add(record); + } + Db.use(DB_NAME).batchSave(tableName, list, 100); + } } diff --git a/src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java b/src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java index 98ed2259..8a01db10 100644 --- a/src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java +++ b/src/main/java/com/dsideal/base/DataEase/Model/ExcelReader.java @@ -36,12 +36,21 @@ public class ExcelReader { } private String getCellValue(Cell cell) { - return switch (cell.getCellType()) { - case STRING -> cell.getStringCellValue(); - case NUMERIC -> String.valueOf(cell.getNumericCellValue()); - case BOOLEAN -> String.valueOf(cell.getBooleanCellValue()); - case FORMULA -> cell.getCellFormula(); - default -> ""; - }; + String res = ""; + switch (cell.getCellType()) { + case STRING: + res = cell.getStringCellValue(); + break; + case NUMERIC: + res = String.valueOf(cell.getNumericCellValue()); + break; + case BOOLEAN: + res = String.valueOf(cell.getBooleanCellValue()); + break; + case FORMULA: + res = cell.getCellFormula(); + break; + } + return res; } } \ No newline at end of file diff --git a/src/main/java/com/dsideal/base/Tools/DataSetAddXzqh.java b/src/main/java/com/dsideal/base/Tools/Step1_DataSetAddXzqh.java similarity index 91% rename from src/main/java/com/dsideal/base/Tools/DataSetAddXzqh.java rename to src/main/java/com/dsideal/base/Tools/Step1_DataSetAddXzqh.java index de683dc8..bfb34fb9 100644 --- a/src/main/java/com/dsideal/base/Tools/DataSetAddXzqh.java +++ b/src/main/java/com/dsideal/base/Tools/Step1_DataSetAddXzqh.java @@ -2,16 +2,13 @@ package com.dsideal.base.Tools; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; -import com.dsideal.base.Tools.Util.SshMysqlConnectUtil; import com.jcraft.jsch.JSchException; import com.jfinal.plugin.activerecord.Record; import java.io.IOException; import java.util.List; -import com.jcraft.jsch.Session; - -public class DataSetAddXzqh { +public class Step1_DataSetAddXzqh { public static DataEaseModel dm = new DataEaseModel(); diff --git a/src/main/java/com/dsideal/base/Tools/DataSetInit.java b/src/main/java/com/dsideal/base/Tools/Step2_DataSetInit.java similarity index 91% rename from src/main/java/com/dsideal/base/Tools/DataSetInit.java rename to src/main/java/com/dsideal/base/Tools/Step2_DataSetInit.java index 17c91ec4..07ee3687 100644 --- a/src/main/java/com/dsideal/base/Tools/DataSetInit.java +++ b/src/main/java/com/dsideal/base/Tools/Step2_DataSetInit.java @@ -5,7 +5,7 @@ import com.dsideal.base.Tools.Util.LocalMysqlConnectUtil; import java.io.IOException; -public class DataSetInit { +public class Step2_DataSetInit { public static DataEaseModel dm = new DataEaseModel(); public static void main(String[] args) throws IOException { diff --git a/src/main/java/com/dsideal/base/Tools/Step3_DataSetFakeData.java b/src/main/java/com/dsideal/base/Tools/Step3_DataSetFakeData.java new file mode 100644 index 00000000..951e4817 --- /dev/null +++ b/src/main/java/com/dsideal/base/Tools/Step3_DataSetFakeData.java @@ -0,0 +1,115 @@ +package com.dsideal.base.Tools; + +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.io.IOException; +import java.util.Arrays; +import java.util.List; + +public class Step3_DataSetFakeData { + public static DataEaseModel dm = new DataEaseModel(); + + /** + * 拷贝昆明市的数据 + * + * @param table_name + * @param area_name + */ + public static void CopyData(String table_name, String source_area_name, String area_name, String parent_name) { + String sql = "select * from `" + table_name + "` where `行政区划`='" + source_area_name + "'"; + List list = Db.use(DataEaseModel.DB_NAME).find(sql); + for (Record r : list) { + r.set("行政区划", area_name); + r.set("上级行政区划", parent_name); + r.remove("id"); + } + System.out.println(table_name); + Db.use(DataEaseModel.DB_NAME).batchSave(table_name, list, 100); + } + + /** + * 删除某地数据 + * + * @param table_name + * @param area_name + */ + public static void deleteData(String table_name, String area_name) { + String sql = "delete from `" + table_name + "` where `行政区划`='" + area_name + "'"; + Db.use(DataEaseModel.DB_NAME).update(sql); + } + + public static void main(String[] args) throws IOException { + //切换至测试数据库 + //DataEaseModel.DB_NAME = "dataease_huanghai"; + + //初始化数据库链接 + LocalMysqlConnectUtil.Init(); + + DataEaseModel dm = new DataEaseModel(); + + //这几个是要保留的地名 + List keepArea = Arrays.asList("云南省", "昆明市", "楚雄州", "寻甸县"); + //所有市州 + Record rPrinvice = dm.getAreaByName("云南省"); + String province_id = rPrinvice.getStr("id"); + List listCity = dm.getAreaList(province_id); + int identity_id = 1; + //完善省级数据 + List list = dm.getDataSetByIdentityId(identity_id, null); + for (Record record : list) { + String table_name = record.getStr("table_name"); + System.out.println("正在处理数据集:" + table_name); + String sql = "update `" + table_name + "` set `行政区划`='云南省' where `行政区划` is null"; + Db.use(DataEaseModel.DB_NAME).update(sql); + sql = "update `" + table_name + "` set `上级行政区划`='云南省' where `上级行政区划` is null"; + Db.use(DataEaseModel.DB_NAME).update(sql); + } + + //拷贝城市数据 + for (Record rCity : listCity) { + //城市名称 + String area_name = rCity.getStr("area_name"); + //如果在保留名单中,则跳过 + if (keepArea.contains(area_name)) { + continue; + } + //遍历所有市州数据集 + identity_id = 2; + list = dm.getDataSetByIdentityId(identity_id, null); + for (Record record : list) { + String table_name = record.getStr("table_name"); + System.out.println("正在处理数据集:" + table_name); + //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝昆明市的数据 + deleteData(table_name, area_name); + CopyData(table_name, "昆明市", area_name, "云南省"); + } + } + //获取所有县区 + List listArea = dm.getProvinceArea("云南省"); + for (Record rArea : listArea) { + //城市名称 + String area_name = rArea.getStr("area_name"); + String parent_id = rArea.getStr("parent_id"); + //隶属哪个市州 + Record parentRecord = dm.getAreaById(parent_id); + String parent_name = parentRecord.getStr("area_name"); + //如果在保留名单中,则跳过 + if (keepArea.contains(area_name)) { + continue; + } + //遍历所有县区数据集 + identity_id = 3; + list = dm.getDataSetByIdentityId(identity_id, null); + for (Record record : list) { + String table_name = record.getStr("table_name"); + System.out.println(area_name + "正在处理数据集:" + table_name); + //检查这个行政区划,在本数据表中是不是存在过,判断办法是 列名: `行政区划`= area_name,如果存在则不作处理,否则拷贝寻甸县的数据 + deleteData(table_name, area_name); + CopyData(table_name, "寻甸县", area_name, parent_name); + } + } + } +} diff --git a/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java b/src/main/java/com/dsideal/base/Tools/Step4_ChangUrlLink.java similarity index 82% rename from src/main/java/com/dsideal/base/Tools/ChangUrlLink.java rename to src/main/java/com/dsideal/base/Tools/Step4_ChangUrlLink.java index 216041c6..cc7dad2c 100644 --- a/src/main/java/com/dsideal/base/Tools/ChangUrlLink.java +++ b/src/main/java/com/dsideal/base/Tools/Step4_ChangUrlLink.java @@ -10,7 +10,7 @@ import com.jfinal.plugin.activerecord.Record; import java.io.IOException; import java.util.List; -public class ChangUrlLink { +public class Step4_ChangUrlLink { public static DataEaseModel dm = new DataEaseModel(); @@ -31,8 +31,8 @@ public class ChangUrlLink { //只有http的不要 && content.startsWith(prefix) && content.length() > prefix.length()) { System.out.println(content); - //sql="update visualization_link_jump_info set content=? where id=?"; - //Db.use(DataEaseModel.DB_NAME).update(sql, content.replace(sourceHost, targetHost), id); + sql="update visualization_link_jump_info set content=? where id=?"; + Db.use(DataEaseModel.DB_NAME).update(sql, content.replace(sourceHost, targetHost), id); } } } diff --git a/src/main/java/com/dsideal/base/Tools/Util/LocalMysqlConnectUtil.java b/src/main/java/com/dsideal/base/Tools/Util/LocalMysqlConnectUtil.java index 319be0f5..6afaf8e9 100644 --- a/src/main/java/com/dsideal/base/Tools/Util/LocalMysqlConnectUtil.java +++ b/src/main/java/com/dsideal/base/Tools/Util/LocalMysqlConnectUtil.java @@ -2,7 +2,7 @@ package com.dsideal.base.Tools.Util; import com.dsideal.base.DataEase.Model.DataEaseModel; import com.dsideal.base.Plugin.YamlProp; -import com.dsideal.base.Tools.DataSetInit; +import com.dsideal.base.Tools.Step2_DataSetInit; import com.jfinal.kit.Prop; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; @@ -20,7 +20,7 @@ public class LocalMysqlConnectUtil { HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); - HikariCpPlugin dataEasePlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl").replace("ds_db", "dataease"), PropKit.get("mysql.user"), + HikariCpPlugin dataEasePlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl").replace("ds_db", DataEaseModel.DB_NAME), PropKit.get("mysql.user"), PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); masterPlugin.start(); @@ -36,7 +36,7 @@ public class LocalMysqlConnectUtil { //遍历sql目录下所有的sql文件 File sqlDir; - String basePath = DataSetInit.class.getResource("/").getPath(); + String basePath = Step2_DataSetInit.class.getResource("/").getPath(); sqlDir = new File(basePath + "/Sql"); File[] sqlFiles = sqlDir.listFiles(); for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { diff --git a/src/main/java/com/dsideal/base/Tools/Util/SshMysqlConnectUtil.java b/src/main/java/com/dsideal/base/Tools/Util/SshMysqlConnectUtil.java index e3d3b951..f0a82c8a 100644 --- a/src/main/java/com/dsideal/base/Tools/Util/SshMysqlConnectUtil.java +++ b/src/main/java/com/dsideal/base/Tools/Util/SshMysqlConnectUtil.java @@ -1,7 +1,7 @@ package com.dsideal.base.Tools.Util; import com.dsideal.base.DataEase.Model.DataEaseModel; -import com.dsideal.base.Tools.DataSetInit; +import com.dsideal.base.Tools.Step2_DataSetInit; import com.dsideal.base.Util.SSHConnector; import com.jcraft.jsch.JSchException; import com.jcraft.jsch.Session; @@ -45,7 +45,7 @@ public class SshMysqlConnectUtil { //遍历sql目录下所有的sql文件 File sqlDir; - String basePath = DataSetInit.class.getResource("/").getPath(); + String basePath = Step2_DataSetInit.class.getResource("/").getPath(); sqlDir = new File(basePath + "/Sql"); File[] sqlFiles = sqlDir.listFiles(); for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) { diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index 2c24fb65..6bbcbe09 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -34,6 +34,6 @@ - + \ No newline at end of file