From 27025805541b302c1418d1610964f8fe534cd27e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 7 May 2024 11:58:46 +0800 Subject: [PATCH 1/2] 'commit' --- .../Zbdc/Controller/ZbdcController.java | 4 +- .../QingLong/Zbdc/Model/ZbdcModel.java | 113 ++++++++++++++++++ src/main/resource/Sql/Zbdc.sql | 16 +-- 3 files changed, 124 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java b/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java index fcdf7a03..96c803f0 100644 --- a/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java +++ b/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java @@ -569,6 +569,8 @@ public class ZbdcController extends Controller { @IsLoginInterface({}) // http://10.10.21.20:9000/QingLong/zbdc/getSummaryXxhsb public void getSummaryXxhsb(int year) { - + if (year == 0) year = DateTime.now().year();//如果没有传入获取的年份,那么就是系统的默认当前年份 + List list = zm.getSummaryXxhsb(year); + renderJson(CommonUtil.renderJsonForLayUI(list)); } } diff --git a/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java b/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java index 3fdf1465..babad288 100644 --- a/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java +++ b/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java @@ -1171,4 +1171,117 @@ public class ZbdcModel { } return _map; } + + private Map getMap(List list) { + Map map = new HashMap<>(); + for (Record record : list) { + map.put(record.getStr("area_name"), record); + } + return map; + } + + /** + * 功能:合并两个 Record 对象 + * + * @param r1 + * @param r2 + * @return + */ + private void mergeRecord(Record r1, Record r2) { + // 获取 record1 的所有字段和值,设置到 mergedRecord 中 + Set fields1 = r1.getColumns().keySet(); + // 获取 record2 的所有字段和值,设置到 mergedRecord 中,注意避免重复设置已经在 record1 中设置过的字段 + Set fields2 = r2.getColumns().keySet(); + for (String field : fields2) { + if (!fields1.contains(field)) { // 检查字段是否已经在 record1 中设置过 + r1.set(field, r2.get(field)); + } + } + } + /** + * 功能:信息化设备统计分析 + * + * @param year + */ + public List getSummaryXxhsb(int year) { + Kv kv = Kv.by("year", year); + SqlPara sqlPara = Db.getSqlPara("Zbdc.xxhzbSummary_jchj", kv); + List listJchj = Db.find(sqlPara);//基础环境 + Map mJcjh = getMap(listJchj); + + sqlPara = Db.getSqlPara("Zbdc.xxhbSummary_szzd", kv); + List listSzzd = Db.find(sqlPara);//数字终端 + Map mSzzd = getMap(listSzzd); + + sqlPara = Db.getSqlPara("Zbdc.xxhbSummary_szhjxkj1", kv); + List listSzhjxkj1 = Db.find(sqlPara);//数字化教学空间1 + Map mSzhjxkj1 = getMap(listSzhjxkj1); + + sqlPara = Db.getSqlPara("Zbdc.xxhbSummary_szhjxkj2", kv); + List listSzhjxkj2 = Db.find(sqlPara);////数字化教学空间2 + Map mSzhjxkj2 = getMap(listSzhjxkj2); + + sqlPara = Db.getSqlPara("Zbdc.xxhbSummary_whsh1", kv); + List listWhsh1 = Db.find(sqlPara);//文化生活空间1 + Map mWhsh1 = getMap(listWhsh1); + + sqlPara = Db.getSqlPara("Zbdc.xxhbSummary_whsh2", kv); + List listWhsh2 = Db.find(sqlPara);//文化生活空间2 + Map mWhsh2 = getMap(listWhsh2); + + sqlPara = Db.getSqlPara("Zbdc.xxhbSummary_whsh3", kv); + List listWhsh3 = Db.find(sqlPara);//文化生活空间3 + Map mWhsh3 = getMap(listWhsh3); + + sqlPara = Db.getSqlPara("Zbdc.xxhbSummary_hlwdk", kv); + List listHlwdk = Db.find(sqlPara);//互联网带宽 + Map mHlwdk = getMap(listHlwdk); + + //行政区划 + List list = getQueryXzqh(); + for (Record record : list) { + String area_name = record.getStr("area_name"); + if (mJcjh.containsKey(area_name)) { + Record r = mJcjh.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + if (mSzzd.containsKey(area_name)) { + Record r = mSzzd.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + if (mSzhjxkj1.containsKey(area_name)) { + Record r = mSzhjxkj1.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + if (mSzhjxkj2.containsKey(area_name)) { + Record r = mSzhjxkj2.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + if (mWhsh1.containsKey(area_name)) { + Record r = mWhsh1.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + if (mWhsh2.containsKey(area_name)) { + Record r = mWhsh2.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + if (mWhsh3.containsKey(area_name)) { + Record r = mWhsh3.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + if (mHlwdk.containsKey(area_name)) { + Record r = mHlwdk.get(area_name); + r.remove("area_name"); + mergeRecord(record, r); + } + } + return list; + } } \ No newline at end of file diff --git a/src/main/resource/Sql/Zbdc.sql b/src/main/resource/Sql/Zbdc.sql index 000f43ee..4cf095bc 100644 --- a/src/main/resource/Sql/Zbdc.sql +++ b/src/main/resource/Sql/Zbdc.sql @@ -149,7 +149,7 @@ sum(case when lb_name='网络环境' then taishu else 0 end) as jchj_wlhj_count, sum (case when lb_name='存储容量' then taishu else 0 end) as jchj_ccrl_count, sum (case when lb_name='校园安全监控' then taishu else 0 end) as jchj_xyaqjk_count - from t_zbdc_xxjs_szzd_jchj GROUP BY area_name + from t_zbdc_xxjs_szzd_jchj where year=#para(year) GROUP BY area_name #end -- 数字终端 #sql("xxhbSummary_szzd") @@ -159,13 +159,13 @@ sum (case when lb_name='电子图书阅览室' then taishu else 0 end) as szzd_dztsyls_count, sum(case when lb_name='教师用计算机1' or lb_name='教师用计算机2' then taishu else 0 end) as szzd_jsyjsj_count, sum(case when lb_name='电子备课室' then taishu else 0 end) as szzd_dzbks_count - from t_zbdc_xxjs_szzd GROUP BY area_name + from t_zbdc_xxjs_szzd where year=#para(year) GROUP BY area_name #end -- 数字化教学空间1 #sql("xxhbSummary_szhjxkj1") select area_name, sum(taishu) as szhjxkj1_taishu, sum(case when lb_name='多媒体班级教室1' or lb_name='多媒体班级教室2' or lb_name='多媒体班级教室3' or lb_name='多媒体班级教室4' then taishu else 0 end) as szhjxkj1_dmtbjjs_count - from t_zbdc_xxjs_szzd_szhjxkj1 GROUP BY area_name + from t_zbdc_xxjs_szzd_szhjxkj1 where year=#para(year) GROUP BY area_name #end -- 数字化教学空间2 #sql("xxhbSummary_szhjxkj2") @@ -176,30 +176,30 @@ sum(case when lb_name='常态化录播' then shuliang else 0 end) as szhjxkj2_cthlb_count, sum(case when lb_name='语音系统1' or lb_name='语音系统2' or lb_name='语音系统3' or lb_name='语音系统4' then shuliang else 0 end) as szhjxkj2_yyxtsb_count, sum(case when lb_name='创新类活动室' then shuliang else 0 end) as szhjxkj2_cxhds_count - from t_zbdc_xxjs_szzd_szhjxkj2 GROUP BY area_name + from t_zbdc_xxjs_szzd_szhjxkj2 where year=#para(year) GROUP BY area_name #end -- 文化生活空间1 #sql("xxhbSummary_whsh1") select area_name, sum(zhengchang) as whsh1_taishu, sum(case when lb_name='校园广播1' or lb_name='校园广播2' then zhengchang else 0 end) as whsh1_xygb_count - from t_zbdc_xxjs_szzd_whkj1 GROUP BY area_name; + from t_zbdc_xxjs_szzd_whkj1 where year=#para(year) GROUP BY area_name; #end -- 文化生活空间2 #sql("xxhbSummary_whsh2") select area_name, sum(zhengchang) as whsh2_taishu, sum(case when lb_name='虚拟演播室' then zhengchang else 0 end) as whsh2_xnybs_count - from t_zbdc_xxjs_szzd_whkj2 GROUP BY area_name; + from t_zbdc_xxjs_szzd_whkj2 where year=#para(year) GROUP BY area_name; #end -- 文化生活空间3 #sql("xxhbSummary_whsh3") select area_name, sum(zhengchang) as whsh3_taishu, sum(case when lb_name='校园电视系统' then zhengchang else 0 end) as whsh3_xydsxt_count - from t_zbdc_xxjs_szzd_whkj3 GROUP BY area_name; + from t_zbdc_xxjs_szzd_whkj3 where year=#para(year) GROUP BY area_name; #end -- 互联网带宽 #sql("xxhbSummary_hlwdk") select area_name, sum(hlwdk) as hlwdk_hlwdk - from t_zbdc_xxjs_szzd_wlaq GROUP BY area_name; + from t_zbdc_xxjs_szzd_wlaq where year=#para(year) GROUP BY area_name; #end #end \ No newline at end of file From 5561698cd0a5ce5a1ab7b8c28ce9216e6116703b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 7 May 2024 13:16:52 +0800 Subject: [PATCH 2/2] 'commit' --- .../QingLong/Zbdc/Model/ZbdcModel.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java b/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java index babad288..217b7f43 100644 --- a/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java +++ b/src/main/java/com/dsideal/QingLong/Zbdc/Model/ZbdcModel.java @@ -14,6 +14,7 @@ import com.jfinal.plugin.activerecord.SqlPara; import java.util.*; import java.text.SimpleDateFormat; +import java.util.stream.Collectors; public class ZbdcModel { /** @@ -1198,6 +1199,7 @@ public class ZbdcModel { } } } + /** * 功能:信息化设备统计分析 * @@ -1282,6 +1284,41 @@ public class ZbdcModel { mergeRecord(record, r); } } + String[] columns = { + "area_name", + "jchj_taishu", + "jchj_wlhj_count", + "jchj_ccrl_count", + "jchj_xyaqjk_count", + "szzd_taishu", + "szzd_xsjsjjs_count", + "szzd_zhjs_count", + "szzd_dztsyls_count", + "szzd_jsyjsj_count", + "szzd_dzbks_count", + "szhjxkj1_taishu", + "szhjxkj1_dmtbjjs_count", + "szhjxkj2_taishu", + "szhjxkj2_dgnjs_count", + "szhjxkj2_jplbsb_count", + "szhjxkj2_cthlb_count", + "szhjxkj2_yyxtsb_count", + "szhjxkj2_cxhds_count", + "whsh1_taishu", + "whsh1_xygb_count", + "whsh2_taishu", + "whsh2_xnybs_count", + "whsh3_taishu", + "whsh3_xydsxt_count", + "hlwdk_hlwdk" + }; + for (Record record : list) { + for (int i = 0; i < columns.length; i++) { + if (!record.getColumns().containsKey(columns[i])) + record.set(columns[i], 0); + } + record.remove("id"); + } return list; } } \ No newline at end of file