Commit 0e76f13c authored by ryzeycy's avatar ryzeycy

xx

parent 2bd72f88
...@@ -23,7 +23,7 @@ import java.util.stream.Collectors; ...@@ -23,7 +23,7 @@ import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("/pdf321312") @RequestMapping("/pdf")
public class GeneratorAllTypePdfByProvinceXxController { public class GeneratorAllTypePdfByProvinceXxController {
private static final Logger logger = LoggerFactory.getLogger(GeneratorAllTypePdfByProvinceXxController.class); private static final Logger logger = LoggerFactory.getLogger(GeneratorAllTypePdfByProvinceXxController.class);
......
...@@ -14,74 +14,75 @@ import java.util.HashMap; ...@@ -14,74 +14,75 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@SpringBootTest @SpringBootTest
public class Garbge { public class Garbge {
// knowledge_region_excellent
@Test @Test
public void meanRegion(){ public void meanRegion() {
String suffix = "202512";
JdbcTemplate jdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate(); JdbcTemplate jdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate();
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate); NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
String sql = "select region1 from base_school_subject_tda20251023 where subject_type = '常规' group by region1"; String sql = "select region1 from base_school_subject_tda"+suffix+" where subject_type = '常规' group by region1";
List<String> regions = jdbcTemplate.queryForList(sql, String.class); List<String> regions = jdbcTemplate.queryForList(sql, String.class);
for (String region : regions) { for (String region : regions) {
meanRegionTest(region,namedParameterJdbcTemplate); meanRegionTest(region, namedParameterJdbcTemplate,suffix);
} }
} }
public void meanRegionTest(String region, NamedParameterJdbcTemplate reportJdbcTemplate){ public void meanRegionTest(String region, NamedParameterJdbcTemplate reportJdbcTemplate,String suffix) {
String sql = "select \n" + String sql = "select \n" +
"knowledge,\n" + "knowledge,\n" +
"stu_kn_score_rate,\n" + "stu_kn_score_rate,\n" +
"sub_subject,\n" + "sub_subject,\n" +
"stu_id\n" + "stu_id\n" +
"from\n" + "from\n" +
"base_student_knowledge_tda20251023\n" + "base_student_knowledge_tda"+suffix+"\n" +
"where\n" + "where\n" +
"region1 = '"+region+"' and subject_type = '常规'"; "region1 = '" + region + "' and subject_type = '常规'";
List<DtoKn> list = reportJdbcTemplate.query(sql,new BeanPropertyRowMapper<>(DtoKn.class)); List<DtoKn> list = reportJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(DtoKn.class));
Map<String, List<DtoKn>> collect = list.stream().collect(Collectors.groupingBy(DtoKn::getSubSubject)); Map<String, List<DtoKn>> collect = list.stream().collect(Collectors.groupingBy(DtoKn::getSubSubject));
for (String subject : collect.keySet()) { for (String subject : collect.keySet()) {
List<DtoKn> subjectLis =collect.get(subject); List<DtoKn> subjectLis = collect.get(subject);
String sql2 = "select \n" + String sql2 = "select \n" +
"stu_id\n" + "stu_id\n" +
"from \n" + "from \n" +
"base_student_subject_tda20251023\n" + "base_student_subject_tda"+suffix+"\n" +
"where\n" + "where\n" +
"sub_subject = '"+subject+"'\n" + "sub_subject = '" + subject + "'\n" +
"and\n" + "and\n" +
"subject_type = '常规'\n" + "subject_type = '常规'\n" +
"and\n" + "and\n" +
"region1= '"+region+"'\n" + "region1= '" + region + "'\n" +
"and \n" + "and \n" +
"stu_subject_score_rate_region_pct_rank >= 0.73"; "stu_subject_score_rate_region_pct_rank >= 0.73";
List<String> ids = reportJdbcTemplate.queryForList(sql2,new HashMap<>(),String.class); List<String> ids = reportJdbcTemplate.queryForList(sql2, new HashMap<>(), String.class);
List<DtoKn> collect1 = subjectLis.stream().filter(x -> ids.contains(x.getStuId())).collect(Collectors.toList()); List<DtoKn> collect1 = subjectLis.stream().filter(x -> ids.contains(x.getStuId())).collect(Collectors.toList());
Map<String, List<DtoKn>> collect2 = collect1.stream().collect(Collectors.groupingBy(DtoKn::getKnowledge)); Map<String, List<DtoKn>> collect2 = collect1.stream().collect(Collectors.groupingBy(DtoKn::getKnowledge));
for (String knowledge : collect2.keySet()) { for (String knowledge : collect2.keySet()) {
//优生知识点层级 //优生知识点层级
List<DtoKn> dataList = collect2.get(knowledge); List<DtoKn> dataList = collect2.get(knowledge);
Double sumRate = dataList.stream().mapToDouble(DtoKn::getStuKnScoreRate).sum(); Double sumRate = dataList.stream().mapToDouble(DtoKn::getStuKnScoreRate).sum();
Double resultRate = sumRate/dataList.size(); Double resultRate = sumRate / dataList.size();
if(Double.isNaN(resultRate)||Double.isInfinite(resultRate)){ if (Double.isNaN(resultRate) || Double.isInfinite(resultRate)) {
resultRate = 0.0; resultRate = 0.0;
} }
HashMap paramsYi = new HashMap(){{ HashMap paramsYi = new HashMap() {{
put("subSubject",subject); put("subSubject", subject);
put("knowledge",knowledge); put("knowledge", knowledge);
put("region",region); put("region", region);
}}; }};
paramsYi.put("rate",resultRate); paramsYi.put("rate", resultRate);
reportJdbcTemplate.update("insert into knowledge_region_excellent20251023(sub_subject,knowledge,region,rate) value (:subSubject,:knowledge,:region,:rate)",new MapSqlParameterSource(paramsYi)); reportJdbcTemplate.update("insert into knowledge_region_excellent"+suffix+"(sub_subject,knowledge,region,rate) value (:subSubject,:knowledge,:region,:rate)", new MapSqlParameterSource(paramsYi));
} }
......
...@@ -18,18 +18,20 @@ import java.util.stream.Collectors; ...@@ -18,18 +18,20 @@ import java.util.stream.Collectors;
@SpringBootTest @SpringBootTest
public class NumberTwo { public class NumberTwo {
// knowledge_province_excellent
@Test @Test
public void ProvinceExKnow(){ public void ProvinceExKnow() {
String suffix = "202512";
JdbcTemplate jdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate(); JdbcTemplate jdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate();
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate); NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
String sql = "select region1 as region,province from base_school_subject_tda20251023_mix where subject_type = '常规' group by region1,province"; String sql = "select region1 as region,province from base_school_subject_tda" + suffix + "_mix where subject_type = '常规' group by region1,province";
List<Params> paramsList = namedParameterJdbcTemplate.query(sql,new BeanPropertyRowMapper<>(Params.class)); List<Params> paramsList = namedParameterJdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Params.class));
for (Params param : paramsList) { for (Params param : paramsList) {
provinceExe(param.getRegion(),param.getProvince(),namedParameterJdbcTemplate); provinceExe(param.getRegion(), param.getProvince(), namedParameterJdbcTemplate, suffix);
} }
} }
public void provinceExe(String region,String province,NamedParameterJdbcTemplate reportTemplate){ public void provinceExe(String region, String province, NamedParameterJdbcTemplate reportTemplate, String suffix) {
String sql = "select \n" + String sql = "select \n" +
"knowledge,\n" + "knowledge,\n" +
...@@ -37,28 +39,27 @@ public class NumberTwo { ...@@ -37,28 +39,27 @@ public class NumberTwo {
"sub_subject,\n" + "sub_subject,\n" +
"stu_id\n" + "stu_id\n" +
"from\n" + "from\n" +
"base_student_knowledge_tda20251023_mix\n" + "base_student_knowledge_tda" + suffix + "_mix\n" +
"where\n" + "where\n" +
"region1 = '"+region+"' and subject_type = '常规' and province = '"+province+"'"; "region1 = '" + region + "' and subject_type = '常规' and province = '" + province + "'";
List<DtoKn> list = reportTemplate.query(sql,new HashMap<>(),new BeanPropertyRowMapper<>(DtoKn.class)); List<DtoKn> list = reportTemplate.query(sql, new HashMap<>(), new BeanPropertyRowMapper<>(DtoKn.class));
Map<String, List<DtoKn>> collect = list.stream().collect(Collectors.groupingBy(DtoKn::getSubSubject)); Map<String, List<DtoKn>> collect = list.stream().collect(Collectors.groupingBy(DtoKn::getSubSubject));
for (String subject : collect.keySet()) { for (String subject : collect.keySet()) {
//单个科目 //单个科目
List<DtoKn> data = collect.get(subject); List<DtoKn> data = collect.get(subject);
String sql3 = "\t\t\t\tSELECT\n" + String sql3 = "\t\t\t\tSELECT\n" +
"\t\t\tstu_id \n" + "\t\t\tstu_id \n" +
"\t\tFROM\n" + "\t\tFROM\n" +
"\t\t\tbase_student_subject_tda20251023_mix \n" + "\t\t\tbase_student_subject_tda" + suffix + "_mix \n" +
"\t\tWHERE\n" + "\t\tWHERE\n" +
"\t\t\tprovince = '"+province+"' \n" + "\t\t\tprovince = '" + province + "' \n" +
"\t\t\tAND region1 = '"+region+"' \n" + "\t\t\tAND region1 = '" + region + "' \n" +
"\t\t\tAND subject_type = '常规' \n" + "\t\t\tAND subject_type = '常规' \n" +
"\t\t\tAND exam_id = 'TDA20251023G12' \n" + "\t\t\tAND sub_subject = '" + subject + "' \n" +
"\t\t\tAND sub_subject = '"+subject+"' \n" +
"\t\t\tAND stu_subject_score_rate_province_pct_rank >= (1-0.27) "; "\t\t\tAND stu_subject_score_rate_province_pct_rank >= (1-0.27) ";
List<String> ids = reportTemplate.queryForList(sql3,new HashMap<>(),String.class); List<String> ids = reportTemplate.queryForList(sql3, new HashMap<>(), String.class);
List<DtoKn> collect1 = data.stream().filter(x -> ids.contains(x.getStuId())).collect(Collectors.toList()); List<DtoKn> collect1 = data.stream().filter(x -> ids.contains(x.getStuId())).collect(Collectors.toList());
...@@ -67,25 +68,24 @@ public class NumberTwo { ...@@ -67,25 +68,24 @@ public class NumberTwo {
for (String knowledge : collect2.keySet()) { for (String knowledge : collect2.keySet()) {
List<DtoKn> goods = collect2.get(knowledge); List<DtoKn> goods = collect2.get(knowledge);
Double sumRate = goods.stream().mapToDouble(DtoKn::getStuKnScoreRate).sum(); Double sumRate = goods.stream().mapToDouble(DtoKn::getStuKnScoreRate).sum();
Double result = sumRate/goods.size(); Double result = sumRate / goods.size();
if(Double.isNaN(result)||Double.isInfinite(result)){ if (Double.isNaN(result) || Double.isInfinite(result)) {
result = 0.0; result = 0.0;
} }
HashMap paramsYi = new HashMap(){{ HashMap paramsYi = new HashMap() {{
put("subSubject",subject); put("subSubject", subject);
put("knowledge",knowledge); put("knowledge", knowledge);
put("region",region); put("region", region);
put("province",province); put("province", province);
}}; }};
paramsYi.put("rate",result); paramsYi.put("rate", result);
reportTemplate.update("insert into knowledge_province_excellent20251023(sub_subject,knowledge,region,rate,province) value (:subSubject,:knowledge,:region,:rate,:province)",new MapSqlParameterSource(paramsYi)); reportTemplate.update("insert into knowledge_province_excellent" + suffix + "(sub_subject,knowledge,region,rate,province) value (:subSubject,:knowledge,:region,:rate,:province)", new MapSqlParameterSource(paramsYi));
} }
} }
} }
} }
...@@ -14,7 +14,7 @@ public class GenerateSchool { ...@@ -14,7 +14,7 @@ public class GenerateSchool {
public void GenerateSchool() { public void GenerateSchool() {
JdbcTemplate reportJdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate(); JdbcTemplate reportJdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate();
String examId = "TDA20251023G12"; String examId = "TDA202512G12";
// String examId = "TDA20250918G11"; // String examId = "TDA20250918G11";
String suffix = examId.replace("TDA", "").replace("G2", "").replace("G3", "").replace("G11", "").replace("G12", ""); String suffix = examId.replace("TDA", "").replace("G2", "").replace("G3", "").replace("G11", "").replace("G12", "");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment