From 93abb895bd60acb799f752e1df94237d24442308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 11 Feb 2025 13:06:11 +0800 Subject: [PATCH] 'commit' --- src/main/java/Tools/Crawler/SyncDataEase.java | 23 ++++++++++++++++ src/main/resources/Sql/DataEase.sql | 26 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/src/main/java/Tools/Crawler/SyncDataEase.java b/src/main/java/Tools/Crawler/SyncDataEase.java index d0f9b074..a5bdeab8 100644 --- a/src/main/java/Tools/Crawler/SyncDataEase.java +++ b/src/main/java/Tools/Crawler/SyncDataEase.java @@ -38,6 +38,8 @@ public class SyncDataEase { stageYingYingFenBu(); //章节覆盖率 ZhangJieFuGaiLv(); + //知识点覆盖率 + ZhiShiDianFuGaiLv(); } /** @@ -293,4 +295,25 @@ public class SyncDataEase { } print("更新章节覆盖率成功!"); } + + /** + * 知识点覆盖率 + */ + public static void ZhiShiDianFuGaiLv() { + SqlPara sqlPara = Db.getSqlPara("DataEase.ZhiShiDianFuGaiLv"); + List list = Db.find(sqlPara); + String sql = "truncate table `excel_学段应用分布_ff2e12fb67`"; + Db.use(MYSQL_DB).update(sql); + sql = Db.getSql("DataEase.updateZhiShiDianFuGaiLv"); + int idx = 0; + for (Record record : list) { + String stage_name = record.getStr("stage_name"); + String subject_name = record.getStr("subject_name"); + int total_cnt = record.getInt("total_cnt"); + int cover_cnt = record.getInt("cover_cnt"); + double cover_percent = record.getDouble("cover_percent"); + Db.use(MYSQL_DB).update(sql, ++idx, stage_name, subject_name, total_cnt, cover_cnt, cover_percent); + } + print("更新知识点覆盖率成功!"); + } } diff --git a/src/main/resources/Sql/DataEase.sql b/src/main/resources/Sql/DataEase.sql index 939ecd09..efdefdbe 100644 --- a/src/main/resources/Sql/DataEase.sql +++ b/src/main/resources/Sql/DataEase.sql @@ -219,4 +219,30 @@ ORDER BY #sql("updateZhangJieFuGaiLv") insert into `excel_学段应用分布_325cbce0cb`(`序号`,`学段`,`学科`,`类别`,`数值`) values(?,?,?,?,?); #end + + -- 知识点覆盖率 + #sql("ZhiShiDianFuGaiLv") + -- 小学 + SELECT '小学' as stage_name,T2.subject_name,count(*) as total_cnt, + SUM(CASE WHEN T1.node_id IN (SELECT node_id FROM t_crawler_lesson WHERE node_type=2) THEN 1 ELSE 0 END) as cover_cnt, + ROUND(SUM(CASE WHEN T1.node_id IN (SELECT node_id FROM t_crawler_lesson WHERE node_type = 2) THEN 1 ELSE 0 END) * 100.0 / COUNT(*),2) as cover_percent + FROM t_crawler_structure_knowledge T1 INNER JOIN t_crawler_subject T2 ON T1.subject_id=T2.subject_id WHERE T1.stage_id='2' AND T1.subject_id IN ('213','241','214','264','215','225','228','224') AND parent_id='-1' GROUP BY T2.subject_name + union all + -- 初中 + SELECT '初中',T2.subject_name,count(*) as total_cnt, + SUM(CASE WHEN T1.node_id IN (SELECT node_id FROM t_crawler_lesson WHERE node_type=2) THEN 1 ELSE 0 END) as cover_cnt, + ROUND(SUM(CASE WHEN T1.node_id IN (SELECT node_id FROM t_crawler_lesson WHERE node_type = 2) THEN 1 ELSE 0 END) * 100.0 / COUNT(*),2) as cover_percent + FROM t_crawler_structure_knowledge T1 INNER JOIN t_crawler_subject T2 ON T1.subject_id=T2.subject_id WHERE T1.stage_id='3' AND T1.subject_id IN ('313','314','341','316','317','318','321','320','364','325','322','324') AND parent_id='-1' GROUP BY T2.subject_name + union all + -- 高中 + SELECT '高中',T2.subject_name,count(*) as total_cnt, + SUM(CASE WHEN T1.node_id IN (SELECT node_id FROM t_crawler_lesson WHERE node_type=2) THEN 1 ELSE 0 END) as cover_cnt, + ROUND(SUM(CASE WHEN T1.node_id IN (SELECT node_id FROM t_crawler_lesson WHERE node_type = 2) THEN 1 ELSE 0 END) * 100.0 / COUNT(*),2) as cover_percent + FROM t_crawler_structure_knowledge T1 INNER JOIN t_crawler_subject T2 ON T1.subject_id=T2.subject_id WHERE T1.stage_id='4' AND T1.subject_id IN ('413','414','416','441','417','418','448','421','420','425','422','424') AND parent_id='-1' GROUP BY T2.subject_name; + #end + -- 修改知识点覆盖率 + #sql("updateZhiShiDianFuGaiLv") + insert into `excel_学段应用分布_ff2e12fb67`(`序号`,`学段`,`学科`,`节点数`,`已覆盖节点数`,`覆盖率`) values(?,?,?,?,?,?); + #end + #end \ No newline at end of file