Commit ed47312e authored by 霍传世's avatar 霍传世

具体到学校生成PDF报告数据

parent 4e8e7d1e
......@@ -48,7 +48,7 @@ public class MyDataSourceConfig {
System.err.println("print init reportSource...");
//外网
String url = "jdbc:mysql://192.168.0.46:3306/temp_test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8";
String url = "jdbc:mysql://192.168.0.46:3306/tempnew?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8";
DruidDataSource dataSource = getDataSource(url);
dataSource.setUsername("jiru");
dataSource.setPassword("Jiru@20231026");
......
......@@ -26,7 +26,7 @@ public class ClassIncrement {
public void GeProvinceQuesTypeSituation(){
String sql = "select region1" +
" as region,province from base_province_subject_tda20241031 where subject_type = '常规' group by region1,province";
" as region,province from base_province_subject_tda20241215 where subject_type = '常规' group by region1,province";
JdbcTemplate jdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate();
List<Params> params = jdbcTemplate.query(sql,new Object[]{},new BeanPropertyRowMapper<>(Params.class));
for (Params param : params) {
......@@ -43,25 +43,25 @@ public class ClassIncrement {
"sub_subject,\n" +
"stu_id\n" +
"from\n" +
"base_student_ques_type_tda20241031\n" +
"base_student_ques_type_tda20241215\n" +
"where\n" +
"region1 = '"+region+"'\n" +
"AND province = '"+province+"'\n" +
"\t\t\tAND subject_type = '常规' \n" +
"\t\t\tAND exam_id = 'TDA20241031G3'\n";
"\t\t\tAND exam_id = 'TDA20241215G3'\n";
List<DtoArgs> list = jdbcTemplate.query(sql,new Object[]{},new BeanPropertyRowMapper<>(DtoArgs.class));
Map<String, List<DtoArgs>> collect = list.stream().collect(Collectors.groupingBy(DtoArgs::getSubSubject));
for(String subject : collect.keySet()){
String sql2 = "SELECT\n" +
"\tstu_id \n" +
"FROM\n" +
"\tbase_student_subject_tda20241031 \n" +
"\tbase_student_subject_tda20241215 \n" +
"WHERE\n" +
"\tstu_subject_score_rate_province_pct_rank >= ( 1-0.27 ) \n" +
"\tAND region1 = '"+region+"' \n" +
"\tAND province = '"+province+"' \n" +
"\tAND subject_type = '常规' \n" +
"\tAND exam_id = 'TDA20241031G3' \n" +
"\tAND exam_id = 'TDA20241215G3' \n" +
"\tAND sub_subject = '"+subject+"'";
List<String> excellentIds = jdbcTemplate.queryForList(sql2,String.class);
......@@ -93,7 +93,7 @@ public class ClassIncrement {
params.put("Mean",resultMean);
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
namedParameterJdbcTemplate.update("insert into province_ques_type_excellent20241031(region,province,sub_subject,mean,ques_type) value (:region,:province,:subSubject,:Mean,:quesType)",new MapSqlParameterSource(params));
namedParameterJdbcTemplate.update("insert into province_ques_type_excellent20241215(region,province,sub_subject,mean,ques_type) value (:region,:province,:subSubject,:Mean,:quesType)",new MapSqlParameterSource(params));
}
}
......@@ -104,7 +104,7 @@ public class ClassIncrement {
@Test
public void GeProvinceExcellentDifficultySituations(){
String sql = "select region1 as region,province from base_province_subject_tda20241031 where subject_type = '常规' group by region1,province";
String sql = "select region1 as region,province from base_province_subject_tda20241215 where subject_type = '常规' group by region1,province";
JdbcTemplate jdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate();
List<Params> params = jdbcTemplate.query(sql,new Object[]{},new BeanPropertyRowMapper<>(Params.class));
for (Params param : params) {
......@@ -126,8 +126,8 @@ public class ClassIncrement {
"\tb.`ques_max_score`,\n" +
"\tb.`stu_id`\n" +
"\tFROM\n" +
"\tbase_area_question_tda20241031 a\n" +
"\tleft join base_student_question_tda20241031 b on a.ques_no = b.ques_no and a.sub_subject = b.`sub_subject` and a.region1 = b.region1 and a.subject_type = b.subject_type\n" +
"\tbase_area_question_tda20241215 a\n" +
"\tleft join base_student_question_tda20241215 b on a.ques_no = b.ques_no and a.sub_subject = b.`sub_subject` and a.region1 = b.region1 and a.subject_type = b.subject_type\n" +
"\twhere a.subject_type = '常规' and a.region1 = '"+region+"' and b.province = '"+province+"'";
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
......@@ -139,7 +139,7 @@ public class ClassIncrement {
for (String subject : collect.keySet()) {
String sql2 = "select stu_id from base_student_subject_tda20241031 where sub_subject = '"+subject+"' and region1 = '"+region+"' and province = '"+province +"' and stu_subject_score_rate_province_pct_rank >= 0.73 and subject_type = '常规'";
String sql2 = "select stu_id from base_student_subject_tda20241215 where sub_subject = '"+subject+"' and region1 = '"+region+"' and province = '"+province +"' and stu_subject_score_rate_province_pct_rank >= 0.73 and subject_type = '常规'";
List<String> excellentIds = namedParameterJdbcTemplate.queryForList(sql2,new HashMap<>(),String.class);
......@@ -232,11 +232,11 @@ public class ClassIncrement {
put("scoreMean", nanResult);
}};
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241031(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsYi));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241031(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsJiaoYi));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241031(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsZhong));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241031(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsJiaoNan));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241031(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsNan));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241215(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsYi));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241215(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsJiaoYi));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241215(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsZhong));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241215(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsJiaoNan));
namedParameterJdbcTemplate.update("insert into province_excellent_difficult20241215(sub_subject,difficult,region,province,score_mean) value(:subSubject,:difficult,:region,:province,:scoreMean)",new MapSqlParameterSource(paramsNan));
}
......
......@@ -25,7 +25,7 @@ public class Garbge {
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
String sql = "select region1 from base_school_subject_tda20241031 where subject_type = '常规' group by region1";
String sql = "select region1 from base_school_subject_tda20241215 where subject_type = '常规' group by region1";
List<String> regions = jdbcTemplate.queryForList(sql, String.class);
for (String region : regions) {
......@@ -41,7 +41,7 @@ public class Garbge {
"sub_subject,\n" +
"stu_id\n" +
"from\n" +
"base_student_knowledge_tda20241031\n" +
"base_student_knowledge_tda20241215\n" +
"where\n" +
"region1 = '"+region+"' and subject_type = '常规'";
......@@ -52,7 +52,7 @@ public class Garbge {
String sql2 = "select \n" +
"stu_id\n" +
"from \n" +
"base_student_subject_tda20241031\n" +
"base_student_subject_tda20241215\n" +
"where\n" +
"sub_subject = '"+subject+"'\n" +
"and\n" +
......@@ -81,7 +81,7 @@ public class Garbge {
paramsYi.put("rate",resultRate);
reportJdbcTemplate.update("insert into knowledge_region_excellent20241031(sub_subject,knowledge,region,rate) value (:subSubject,:knowledge,:region,:rate)",new MapSqlParameterSource(paramsYi));
reportJdbcTemplate.update("insert into knowledge_region_excellent20241215(sub_subject,knowledge,region,rate) value (:subSubject,:knowledge,:region,:rate)",new MapSqlParameterSource(paramsYi));
}
......
......@@ -28,7 +28,7 @@ public class GenerateTaskPool {
"\tschool,\n" +
"\t0 as status\n" +
"FROM\n" +
"\tbase_school_subject_tda20241031 \n" +
"\tbase_school_subject_tda20241215 \n" +
"GROUP BY\n" +
"\tregion1,\n" +
"\tprovince,\n" +
......
......@@ -22,7 +22,7 @@ public class NumberTwo {
public void ProvinceExKnow(){
JdbcTemplate jdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate();
NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);
String sql = "select region1 as region,province from base_school_subject_tda20241031 where subject_type = '常规' group by region1,province";
String sql = "select region1 as region,province from base_school_subject_tda20241215 where subject_type = '常规' group by region1,province";
List<Params> paramsList = namedParameterJdbcTemplate.query(sql,new BeanPropertyRowMapper<>(Params.class));
for (Params param : paramsList) {
provinceExe(param.getRegion(),param.getProvince(),namedParameterJdbcTemplate);
......@@ -37,7 +37,7 @@ public class NumberTwo {
"sub_subject,\n" +
"stu_id\n" +
"from\n" +
"base_student_knowledge_tda20241031\n" +
"base_student_knowledge_tda20241215\n" +
"where\n" +
"region1 = '"+region+"' and subject_type = '常规' and province = '"+province+"'";
......@@ -49,12 +49,12 @@ public class NumberTwo {
String sql3 = "\t\t\t\tSELECT\n" +
"\t\t\tstu_id \n" +
"\t\tFROM\n" +
"\t\t\tbase_student_subject_tda20241031 \n" +
"\t\t\tbase_student_subject_tda20241215 \n" +
"\t\tWHERE\n" +
"\t\t\tprovince = '"+province+"' \n" +
"\t\t\tAND region1 = '"+region+"' \n" +
"\t\t\tAND subject_type = '常规' \n" +
"\t\t\tAND exam_id = 'TDA20241031G3' \n" +
"\t\t\tAND exam_id = 'TDA20241215G3' \n" +
"\t\t\tAND sub_subject = '"+subject+"' \n" +
"\t\t\tAND stu_subject_score_rate_province_pct_rank >= (1-0.27) ";
......@@ -80,7 +80,7 @@ public class NumberTwo {
}};
paramsYi.put("rate",result);
reportTemplate.update("insert into knowledge_province_excellent20241031(sub_subject,knowledge,region,rate,province) value (:subSubject,:knowledge,:region,:rate,:province)",new MapSqlParameterSource(paramsYi));
reportTemplate.update("insert into knowledge_province_excellent20241215(sub_subject,knowledge,region,rate,province) value (:subSubject,:knowledge,:region,:rate,:province)",new MapSqlParameterSource(paramsYi));
}
}
......
......@@ -14,7 +14,7 @@ public class GenerateSchool {
public void GenerateSchool(){
JdbcTemplate reportJdbcTemplate = MyDataSourceConfig.getReportJdbcTemplate();
String examId = "TDA20241031G3";
String examId = "TDA20241215G3";
String suffix = examId.replace("TDA","").replace("G2","").replace("G3","");
......
package com.example.pdfgenerator.LocalFileMule;
import lombok.Data;
@Data
public class Args {
private String examId;
private String region;
private String province;
private String school;
private String subject;
}
package com.example.pdfgenerator.LocalFileMule;
import com.example.pdfgenerator.config.MyDataSourceConfig;
import com.qcloud.cos.COSClient;
import com.qcloud.cos.model.COSObject;
import com.qcloud.cos.model.COSObjectInputStream;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@SpringBootTest
public class FIleTogether {
@Autowired
private COSClient cosClient;
private static final String bucketName = "schoolreportpdf-1317275686";
@Test
public void fileAllToOne(){
JdbcTemplate reportTemplate = MyDataSourceConfig.getReportJdbcTemplate();
String sql = "SELECT\n" +
"\texam_id,\n" +
"\tregion1 as region,\n" +
"\tprovince,\n" +
"\tschool,\n" +
"\tsub_subject AS subject \n" +
"FROM\n" +
"\tbase_school_subject_tda20241031 \n" +
"WHERE\n" +
"\tsubject_type = '常规' \n" +
"\tAND province = '山东省' \n" +
"ORDER BY\n" +
"\tschool,school_subject_score_mean DESC ";
List<Args> argsList = reportTemplate.query(sql,new Object[]{},new BeanPropertyRowMapper<>(Args.class));
Map<String, List<Args>> argsDecideBySchool = argsList.stream().collect(Collectors.groupingBy(Args::getSchool));
for (String key : argsDecideBySchool.keySet()) {
List<Args> args = argsDecideBySchool.get(key);
//下载学科报告
for (Args arg : args) {
String bucketKey = "PdfSubject/"+arg.getRegion()+arg.getProvince()+arg.getSchool()+arg.getSubject()+arg.getExamId()+".pdf";
String localFilePath = "D:/"+"schoolReport/"+arg.getProvince()+"/"+arg.getSchool();
File file = new File(localFilePath);
if(!file.exists()){
file.mkdirs();
}
downloadFile(cosClient,bucketName,bucketKey,localFilePath);
}
//下载综合报告
String oneKey = "PdfDir/"+args.get(0).getRegion()+args.get(0).getProvince()+args.get(0).getSchool()+"xxxx"+args.get(0).getExamId()+".pdf";
String filePath = "D:/"+"schoolReport/"+args.get(0).getProvince()+"/"+args.get(0).getSchool();
downloadFile(cosClient,bucketName,oneKey,filePath);
}
}
// 5. 下载文件的具体方法
public static void downloadFile(COSClient cosClient, String bucketName, String fileKey, String localFolder) {
try {
// 获取文件对象
COSObject cosObject = cosClient.getObject(bucketName,fileKey.replace("xxxx",""));
COSObjectInputStream inputStream = cosObject.getObjectContent();
// 设置本地文件路径
File localFile = new File(localFolder + "/" + fileKey.replace("PdfSubject/","").replace("PdfDir/","").replace("xxxx","综合"));
// 创建本地文件夹
if (!localFile.getParentFile().exists()) {
localFile.getParentFile().mkdirs(); // 如果文件夹不存在,则创建
}
// 保存文件到本地
Files.copy(inputStream, Paths.get(localFile.toURI()));
System.out.println("File downloaded successfully: " + fileKey + " to " + localFile.getAbsolutePath());
} catch (IOException e) {
System.err.println("Error downloading file " + fileKey);
e.printStackTrace();
}
}
}
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