diff --git a/src/main/java/Tools/Crawler/SyncDataEase.java b/src/main/java/Tools/Crawler/SyncDataEase.java index 998ed9e0..d0f9b074 100644 --- a/src/main/java/Tools/Crawler/SyncDataEase.java +++ b/src/main/java/Tools/Crawler/SyncDataEase.java @@ -36,6 +36,8 @@ public class SyncDataEase { areaTop5(); //学段应用分布 stageYingYingFenBu(); + //章节覆盖率 + ZhangJieFuGaiLv(); } /** @@ -265,4 +267,30 @@ public class SyncDataEase { } print("更新学段应用分布成功!"); } + + /** + * 章节覆盖率 + */ + public static void ZhangJieFuGaiLv() { + SqlPara sqlPara = Db.getSqlPara("DataEase.ZhangJieFuGaiLv"); + List list = Db.find(sqlPara); + + String sql = "truncate table `excel_学段应用分布_325cbce0cb`"; + Db.use(MYSQL_DB).update(sql); + sql = Db.getSql("DataEase.updateZhangJieFuGaiLv"); + 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"); + Db.use(MYSQL_DB).update(sql, ++idx, stage_name, subject_name, "章节", total_cnt); + } + for (Record record : list) { + String stage_name = record.getStr("stage_name"); + String subject_name = record.getStr("subject_name"); + int cover_cnt = record.getInt("cover_cnt"); + Db.use(MYSQL_DB).update(sql, ++idx, stage_name, subject_name, "已覆盖章节", cover_cnt); + } + print("更新章节覆盖率成功!"); + } } diff --git a/src/main/resources/Sql/DataEase.sql b/src/main/resources/Sql/DataEase.sql index 0543b46f..939ecd09 100644 --- a/src/main/resources/Sql/DataEase.sql +++ b/src/main/resources/Sql/DataEase.sql @@ -197,4 +197,26 @@ ORDER BY #sql("updateStageYingYongFenBu") insert into `excel_学段应用分布_4b92d89f4a`(`序号`,`学段`,`学科`,`课程数量`,`占比`) values(?,?,?,?,?); #end + + -- 章节覆盖率 + #sql("ZhangJieFuGaiLv") + -- 小学 + 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=1) THEN 1 ELSE 0 END) as cover_cnt + FROM t_crawler_structure 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=1) THEN 1 ELSE 0 END) as cover_cnt + FROM t_crawler_structure 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=1) THEN 1 ELSE 0 END) as cover_cnt + FROM t_crawler_structure 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("updateZhangJieFuGaiLv") + insert into `excel_学段应用分布_325cbce0cb`(`序号`,`学段`,`学科`,`类别`,`数值`) values(?,?,?,?,?); + #end #end \ No newline at end of file