From 6518d926e5abf5fe5ed0df97cbed51bc3144e6cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 15 Jan 2025 10:51:33 +0800 Subject: [PATCH] 'commit' --- .../base/YunXiao/Model/YunXiaoModel.java | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java b/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java index 25c9c299..2fc09214 100644 --- a/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java +++ b/src/main/java/com/dsideal/base/YunXiao/Model/YunXiaoModel.java @@ -214,10 +214,16 @@ public class YunXiaoModel { public Page getDataSetContent(String datasetId, int pageNumber, int pageSize) { String sql = "select * from t_dp_yx_dataset where dataset_group_id=?"; Record record = Db.findFirst(sql, datasetId); - if(record == null) return null; + if (record == null) return null; String tableName = record.getStr("table_name"); Page p = Db.use(DB_NAME).paginate(pageNumber, pageSize, - "SELECT *", "from " + "`" + tableName+"`"); + "SELECT *", "from " + "`" + tableName + "`"); + //遍历检查 p.getList() 中的每个 Record,是不是有“占比”名称的字段,这个字段不返回给前端让用户修改 + for (Record r : p.getList()) { + if (r.get("占比") != null) { + r.remove("占比"); + } + } return p; } @@ -226,11 +232,26 @@ public class YunXiaoModel { * 保存数据集对应的表 */ public void saveDataSet(String dataset_id, String id, String field, String value) { - String sql="select * from t_dp_yx_dataset where dataset_group_id=?"; + String sql = "select * from t_dp_yx_dataset where dataset_group_id=?"; Record record = Db.findFirst(sql, dataset_id); String tableName = record.getStr("table_name"); sql = "update `" + tableName + "` set `" + field + "`=? where id=?"; Db.use(DB_NAME).update(sql, value, id); + + //查询出这个数据集对应的表 + sql = "select * from `" + tableName + "` where id=?"; + Record r = Db.use(DB_NAME).findFirst(sql, id); + if (r.get("占比") != null) { + //需要重新统计占比 + sql = "UPDATE `" + tableName + "` t1,(SELECT SUM(`" + field + "`) as total FROM `" + tableName + "` {{where}} ) t2 SET t1.`占比` = ROUND(t1.`" + field + + "` / t2.total, 2) "; + if (r.get("学段") != null) {//重新按同一个学段统计一下占比 + sql = sql.replace("{{where}}", " where t1.`学段`='" + r.getStr("学段") + "'"); + } else {//整体统计占比 + sql = sql.replace("{{where}}", ""); + } + Db.use(DB_NAME).update(sql); + } } public String getCityNameByAreaName(String areaName) { @@ -249,7 +270,7 @@ public class YunXiaoModel { */ public List getDatasetTree() { SqlPara sqlPara = Db.getSqlPara("YunXiao.datasetTree"); - List list=Db.find(sqlPara); + List list = Db.find(sqlPara); return list; } }