From fdbb04b3290f8f65c09d2fcd446f0c2a9b15e11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 12 Feb 2025 16:43:58 +0800 Subject: [PATCH] 'commit' --- src/main/java/Tools/Crawler/SyncDataEase.java | 22 +++++++++++++++++++ src/main/resources/Sql/DataEase.sql | 12 ++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/main/java/Tools/Crawler/SyncDataEase.java b/src/main/java/Tools/Crawler/SyncDataEase.java index de74f88c..a1522508 100644 --- a/src/main/java/Tools/Crawler/SyncDataEase.java +++ b/src/main/java/Tools/Crawler/SyncDataEase.java @@ -46,6 +46,8 @@ public class SyncDataEase { CitySchoolKeChengDetail(); //章节覆盖率 ZhangJieFuGaiDetail(); + //知识点覆盖率 + ZhiShiDianFuGaiDetail(); } /** @@ -388,4 +390,24 @@ public class SyncDataEase { } print("更新章节覆盖率详情成功!"); } + + /** + * 知识点覆盖率详情 + */ + public static void ZhiShiDianFuGaiDetail() { + SqlPara sqlPara = Db.getSqlPara("DataEase.ZhiShiDianFuGaiDetail"); + List list = Db.find(sqlPara); + String sql = "truncate table `excel_学段应用分布_c747031012`"; + Db.use(MYSQL_DB).update(sql); + sql = Db.getSql("DataEase.updateZhiShiDianFuGaiDetail"); + 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, stage_name, subject_name, total_cnt, cover_percent); + } + print("更新知识点覆盖率详情成功!"); + } } diff --git a/src/main/resources/Sql/DataEase.sql b/src/main/resources/Sql/DataEase.sql index fdf5334a..9369771e 100644 --- a/src/main/resources/Sql/DataEase.sql +++ b/src/main/resources/Sql/DataEase.sql @@ -293,4 +293,16 @@ ORDER BY insert into `excel_学段应用分布_7023778bfd`(`学段`,`学科`,`版本`,`教材`,`覆盖章节(一级节点)`,`覆盖率(一级节点)`) values(?,?,?,?,?,?); #end + -- 知识点覆盖率详细统计 + #sql("ZhiShiDianFuGaiDetail") + SELECT T3.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) * 1.0 / COUNT(*),2) as cover_percent + FROM t_crawler_structure_knowledge T1 INNER JOIN t_crawler_stage T3 ON T3.stage_id=T1.stage_id INNER JOIN t_crawler_subject T2 ON T1.subject_id=T2.subject_id WHERE T1.stage_id IN ('2','3','4') AND T1.subject_id IN ('213','241','214','264','215','225','228','224','313','314','341','316','317','318','321','320','364','325','322','324','413','414','416','441','417','418','448','421','420','425','422','424') AND parent_id='-1' GROUP BY T3.stage_name,T2.subject_name; + #end + -- 修改知识点覆盖率详细统计 + #sql("updateZhiShiDianFuGaiDetail") + insert into `excel_学段应用分布_c747031012`(`学段`,`学科`,`一级节点数`,`一级节点覆盖率`) + values(?,?,?,?); + #end #end \ No newline at end of file