Commit 3ba26bbd authored by ryzeycy's avatar ryzeycy

xx

parent 4dc16ff5
...@@ -47,7 +47,7 @@ public class MyDataSourceConfig { ...@@ -47,7 +47,7 @@ public class MyDataSourceConfig {
System.err.println("print init reportSource..."); System.err.println("print init reportSource...");
//外网 //外网
String url = "jdbc:mysql://192.168.0.14:3306/tda_20250918?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8"; String url = "jdbc:mysql://192.168.0.14:3306/tda_20251030?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8";
DruidDataSource dataSource = getDataSource(url); DruidDataSource dataSource = getDataSource(url);
dataSource.setUsername("root"); dataSource.setUsername("root");
dataSource.setPassword("Thussat@2023"); dataSource.setPassword("Thussat@2023");
......
...@@ -42,7 +42,7 @@ public class GeneratorAllTypePdfByProvinceController { ...@@ -42,7 +42,7 @@ public class GeneratorAllTypePdfByProvinceController {
@RequestMapping("/GeneratorByProvinceName") @RequestMapping("/GeneratorByProvinceName")
public ResponseEntity generatorName(@RequestParam("examId")String examId, @RequestParam(value = "provinceName",required = false)String provinceName,@RequestParam(value = "schoolName",required = false)String schoolName) throws IOException, InterruptedException { public ResponseEntity generatorName(@RequestParam("examId")String examId, @RequestParam(value = "provinceName",required = false)String provinceName,@RequestParam(value = "schoolName",required = false)String schoolName) throws IOException, InterruptedException {
String suffix = examId.trim().replace("TDA","").replace("G3","").replace("G2","").replace("G11","").replace("G12","").trim(); String suffix = examId.trim().replace("TDA","").replace("G3","").replace("G2","").replace("G10","").replace("G11","").replace("G12","").trim();
String synthesisSchoolSubjectReportSql = "select \n" + String synthesisSchoolSubjectReportSql = "select \n" +
"school,exam_id,province,region1 as region,sub_subject\n" + "school,exam_id,province,region1 as region,sub_subject\n" +
...@@ -263,44 +263,44 @@ public class GeneratorAllTypePdfByProvinceController { ...@@ -263,44 +263,44 @@ public class GeneratorAllTypePdfByProvinceController {
List<ClassBasicReportParameters> classBasicReport = classReport.get(key); List<ClassBasicReportParameters> classBasicReport = classReport.get(key);
List<ClassBasicReportParameters> classSubject = classSubjectReport.get(key); List<ClassBasicReportParameters> classSubject = classSubjectReport.get(key);
for (BasicReportParameters schoolLevel : schoolBasicReport) { for (BasicReportParameters schoolLevel : schoolBasicReport) {
List<RetryCommand> retryCommands = new ArrayList<>(); List<RetryCommand> retryCommands = new ArrayList<>();
logger.info("school:"+schoolLevel.getSchool()+"loading"); logger.info("school:"+schoolLevel.getSchool()+"loading");
Map<String, List<BasicReportParameters>> schoolMap= schoolSubject.stream().collect(Collectors.groupingBy(BasicReportParameters::getSchool)); Map<String, List<BasicReportParameters>> schoolMap= schoolSubject.stream().collect(Collectors.groupingBy(BasicReportParameters::getSchool));
Map<String, List<ClassBasicReportParameters>> classBasic = classBasicReport.stream().collect(Collectors.groupingBy(ClassBasicReportParameters::getSchool)); Map<String, List<ClassBasicReportParameters>> classBasic = classBasicReport.stream().collect(Collectors.groupingBy(ClassBasicReportParameters::getSchool));
final Map<String, List<ClassBasicReportParameters>> subjectClass = classSubject.stream().collect(Collectors.groupingBy(ClassBasicReportParameters::getSchool)); final Map<String, List<ClassBasicReportParameters>> subjectClass = classSubject.stream().collect(Collectors.groupingBy(ClassBasicReportParameters::getSchool));
List<BasicReportParameters> schoolSelf = schoolMap.get(schoolLevel.getSchool()); List<BasicReportParameters> schoolSelf = schoolMap.get(schoolLevel.getSchool());
logger.info("basicReport:loading"); logger.info("basicReport:loading");
logger.info("exitCode:"+schoolLevel.getSchool()); logger.info("exitCode:"+schoolLevel.getSchool());
ProcessBuilder processBuilder = new ProcessBuilder(); ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("cmd.exe", "-c", schoolLevel.getCommand()); processBuilder.command("bash", "-c", schoolLevel.getCommand());
processBuilder.redirectErrorStream(true); // 合并标准输出和错误输出 processBuilder.redirectErrorStream(true); // 合并标准输出和错误输出
Process process = null; Process process = null;
try {
process = processBuilder.start();
} catch (IOException e) {
throw new RuntimeException(e);
}
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while (true) {
try { try {
process = processBuilder.start(); if (!((line = reader.readLine()) != null)) break;
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); }
String line;
while (true) {
try {
if (!((line = reader.readLine()) != null)) break;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
// while ((line = reader.readLine()) != null) { // while ((line = reader.readLine()) != null) {
// // 如果输出了 "DONE",表示生成完毕 // // 如果输出了 "DONE",表示生成完毕
// if ("DONE".equals(line)) { // if ("DONE".equals(line)) {
// break; // 跳出循环 // break; // 跳出循环
// } // }
// } // }
try { try {
int exitCode = process.waitFor(); int exitCode = process.waitFor();
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
//上传文件 //上传文件
// File basicFile = new File("/myworkSpace/basic/"); // File basicFile = new File("/myworkSpace/basic/");
// File[] basicFiles = basicFile.listFiles(); // File[] basicFiles = basicFile.listFiles();
// assert basicFiles != null; // assert basicFiles != null;
...@@ -322,38 +322,38 @@ public class GeneratorAllTypePdfByProvinceController { ...@@ -322,38 +322,38 @@ public class GeneratorAllTypePdfByProvinceController {
// e.printStackTrace(); // e.printStackTrace();
// } // }
// } // }
for (BasicReportParameters parameters : schoolSelf) { for (BasicReportParameters parameters : schoolSelf) {
logger.info("subjectReport:loading"); logger.info("subjectReport:loading");
logger.info("exitCode:"+parameters.getSubSubject()); logger.info("exitCode:"+parameters.getSubSubject());
ProcessBuilder processBuilderSubject = new ProcessBuilder(); ProcessBuilder processBuilderSubject = new ProcessBuilder();
processBuilderSubject.command("cmd.exe", "-c", parameters.getCommand()); processBuilderSubject.command("bash", "-c", parameters.getCommand());
processBuilderSubject.redirectErrorStream(true); // 合并标准输出和错误输出 processBuilderSubject.redirectErrorStream(true); // 合并标准输出和错误输出
Process processSubject = null; Process processSubject = null;
try {
processSubject = processBuilderSubject.start();
} catch (IOException e) {
throw new RuntimeException(e);
}
BufferedReader readerSubject = new BufferedReader(new InputStreamReader(processSubject.getInputStream()));
String lineSubject;
while (true) {
try { try {
processSubject = processBuilderSubject.start(); if (!((lineSubject = readerSubject.readLine()) != null)) break;
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
BufferedReader readerSubject = new BufferedReader(new InputStreamReader(processSubject.getInputStream())); }
String lineSubject;
while (true) {
try {
if (!((lineSubject = readerSubject.readLine()) != null)) break;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
// while ((lineSubject = readerSubject.readLine()) != null) { // while ((lineSubject = readerSubject.readLine()) != null) {
// // 如果输出了 "DONE",表示生成完毕 // // 如果输出了 "DONE",表示生成完毕
// if ("DONE".equals(lineSubject)) { // if ("DONE".equals(lineSubject)) {
// break; // 跳出循环 // break; // 跳出循环
// } // }
// } // }
try { try {
int exitCodeSubject = processSubject.waitFor(); int exitCodeSubject = processSubject.waitFor();
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// File subjectFile = new File("/myworkSpace/subject/"); // File subjectFile = new File("/myworkSpace/subject/");
// File[] subjectFiles = subjectFile.listFiles(); // File[] subjectFiles = subjectFile.listFiles();
// assert subjectFiles != null; // assert subjectFiles != null;
...@@ -375,41 +375,41 @@ public class GeneratorAllTypePdfByProvinceController { ...@@ -375,41 +375,41 @@ public class GeneratorAllTypePdfByProvinceController {
// e.printStackTrace(); // e.printStackTrace();
// } // }
// } // }
}
List<ClassBasicReportParameters> args = classBasic.get(schoolLevel.getSchool());
List<ClassBasicReportParameters> params = subjectClass.get(schoolLevel.getSchool());
for (ClassBasicReportParameters arg : args) {
logger.info("classBasic:loading");
logger.info("exitCode:"+arg.getClassName());
ProcessBuilder processBuilderClass = new ProcessBuilder();
processBuilderClass.command("bash", "-c", arg.getCommand());
processBuilderClass.redirectErrorStream(true); // 合并标准输出和错误输出
Process processClass = null;
try {
processClass = processBuilderClass.start();
} catch (IOException e) {
throw new RuntimeException(e);
} }
List<ClassBasicReportParameters> args = classBasic.get(schoolLevel.getSchool()); BufferedReader readerClass = new BufferedReader(new InputStreamReader(processClass.getInputStream()));
List<ClassBasicReportParameters> params = subjectClass.get(schoolLevel.getSchool()); String lineClass;
for (ClassBasicReportParameters arg : args) { while (true) {
logger.info("classBasic:loading");
logger.info("exitCode:"+arg.getClassName());
ProcessBuilder processBuilderClass = new ProcessBuilder();
processBuilderClass.command("cmd.exe", "-c", arg.getCommand());
processBuilderClass.redirectErrorStream(true); // 合并标准输出和错误输出
Process processClass = null;
try { try {
processClass = processBuilderClass.start(); if (!((lineClass = readerClass.readLine()) != null)) break;
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
BufferedReader readerClass = new BufferedReader(new InputStreamReader(processClass.getInputStream())); }
String lineClass;
while (true) {
try {
if (!((lineClass = readerClass.readLine()) != null)) break;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
// while ((lineClass = readerClass.readLine()) != null) { // while ((lineClass = readerClass.readLine()) != null) {
// // 如果输出了 "DONE",表示生成完毕 // // 如果输出了 "DONE",表示生成完毕
// if ("DONE".equals(lineClass)) { // if ("DONE".equals(lineClass)) {
// break; // 跳出循环 // break; // 跳出循环
// } // }
// } // }
try { try {
int exitCodeSubject = processClass.waitFor(); int exitCodeSubject = processClass.waitFor();
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// File classBasicFile = new File("/myworkSpace/Class/Basic/"); // File classBasicFile = new File("/myworkSpace/Class/Basic/");
// File[] classBasicFiles = classBasicFile.listFiles(); // File[] classBasicFiles = classBasicFile.listFiles();
// assert classBasicFiles != null; // assert classBasicFiles != null;
...@@ -431,40 +431,40 @@ public class GeneratorAllTypePdfByProvinceController { ...@@ -431,40 +431,40 @@ public class GeneratorAllTypePdfByProvinceController {
// e.printStackTrace(); // e.printStackTrace();
// } // }
// } // }
final Map<String, List<ClassBasicReportParameters>> collect = params.stream().collect(Collectors.groupingBy(ClassBasicReportParameters::getClassName)); final Map<String, List<ClassBasicReportParameters>> collect = params.stream().collect(Collectors.groupingBy(ClassBasicReportParameters::getClassName));
List<ClassBasicReportParameters> list = collect.get(arg.getClassName()); List<ClassBasicReportParameters> list = collect.get(arg.getClassName());
for (ClassBasicReportParameters classBasicReportParameters : list) { for (ClassBasicReportParameters classBasicReportParameters : list) {
logger.info("classSubject:loading"); logger.info("classSubject:loading");
logger.info("exitCode:"+classBasicReportParameters.getSubSubject()); logger.info("exitCode:"+classBasicReportParameters.getSubSubject());
ProcessBuilder processBuilderClassSubject = new ProcessBuilder(); ProcessBuilder processBuilderClassSubject = new ProcessBuilder();
processBuilderClassSubject.command("cmd.exe", "-c", classBasicReportParameters.getCommand()); processBuilderClassSubject.command("bash", "-c", classBasicReportParameters.getCommand());
processBuilderClassSubject.redirectErrorStream(true); // 合并标准输出和错误输出 processBuilderClassSubject.redirectErrorStream(true); // 合并标准输出和错误输出
Process processClassSubject = null; Process processClassSubject = null;
try {
processClassSubject = processBuilderClassSubject.start();
} catch (IOException e) {
throw new RuntimeException(e);
}
BufferedReader readerClassSubject = new BufferedReader(new InputStreamReader(processClassSubject.getInputStream()));
String lineClassSubject;
while (true) {
try { try {
processClassSubject = processBuilderClassSubject.start(); if (!((lineClassSubject = readerClassSubject.readLine()) != null)) break;
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
BufferedReader readerClassSubject = new BufferedReader(new InputStreamReader(processClassSubject.getInputStream())); }
String lineClassSubject;
while (true) {
try {
if (!((lineClassSubject = readerClassSubject.readLine()) != null)) break;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
// while ((lineClassSubject = readerClassSubject.readLine()) != null) { // while ((lineClassSubject = readerClassSubject.readLine()) != null) {
// // 如果输出了 "DONE",表示生成完毕 // // 如果输出了 "DONE",表示生成完毕
// if ("DONE".equals(lineClassSubject)) { // if ("DONE".equals(lineClassSubject)) {
// break; // 跳出循环 // break; // 跳出循环
// } // }
// } // }
try { try {
int exitCodeSubjectClass = processClassSubject.waitFor(); int exitCodeSubjectClass = processClassSubject.waitFor();
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// File classSubjectFile = new File("/myworkSpace/Class/subject/"); // File classSubjectFile = new File("/myworkSpace/Class/subject/");
// File[] classSubjectFiles = classSubjectFile.listFiles(); // File[] classSubjectFiles = classSubjectFile.listFiles();
// assert classSubjectFiles != null; // assert classSubjectFiles != null;
...@@ -487,54 +487,54 @@ public class GeneratorAllTypePdfByProvinceController { ...@@ -487,54 +487,54 @@ public class GeneratorAllTypePdfByProvinceController {
// e.printStackTrace(); // e.printStackTrace();
// } // }
// } // }
}
} }
}
if(retryCommands.size()!=0){
logger.info("size"+retryCommands.size());
for (RetryCommand retryCommand : retryCommands) {
String command = retryCommand.getRetryCommand();
Object arguments = retryCommand.getParams();
String filePrefix = "";
if ( arguments instanceof BasicReportParameters){
BasicReportParameters parametersOne = (BasicReportParameters) arguments;
filePrefix = parametersOne.getPrefix();
}
if (arguments instanceof ClassBasicReportParameters) {
ClassBasicReportParameters parametersTwo = (ClassBasicReportParameters) arguments;
filePrefix = parametersTwo.getPrefix();
}
if(retryCommands.size()!=0){ logger.info("RetryCommand:ls");
logger.info("size"+retryCommands.size()); ProcessBuilder processBuilderClassSubject = new ProcessBuilder();
for (RetryCommand retryCommand : retryCommands) { processBuilderClassSubject.command("bash", "-c", command);
String command = retryCommand.getRetryCommand(); processBuilderClassSubject.redirectErrorStream(true); // 合并标准输出和错误输出
Object arguments = retryCommand.getParams(); Process processClassSubject = null;
String filePrefix = ""; try {
if ( arguments instanceof BasicReportParameters){ processClassSubject = processBuilderClassSubject.start();
BasicReportParameters parametersOne = (BasicReportParameters) arguments; } catch (IOException e) {
filePrefix = parametersOne.getPrefix(); throw new RuntimeException(e);
} }
if (arguments instanceof ClassBasicReportParameters) { BufferedReader readerClassSubject = new BufferedReader(new InputStreamReader(processClassSubject.getInputStream()));
ClassBasicReportParameters parametersTwo = (ClassBasicReportParameters) arguments; String lineClassSubject;
filePrefix = parametersTwo.getPrefix(); while (true) {
}
logger.info("RetryCommand:ls");
ProcessBuilder processBuilderClassSubject = new ProcessBuilder();
processBuilderClassSubject.command("cmd.exe", "-c", command);
processBuilderClassSubject.redirectErrorStream(true); // 合并标准输出和错误输出
Process processClassSubject = null;
try { try {
processClassSubject = processBuilderClassSubject.start(); if (!((lineClassSubject = readerClassSubject.readLine()) != null)) break;
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
BufferedReader readerClassSubject = new BufferedReader(new InputStreamReader(processClassSubject.getInputStream())); }
String lineClassSubject;
while (true) {
try {
if (!((lineClassSubject = readerClassSubject.readLine()) != null)) break;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
// while ((lineClassSubject = readerClassSubject.readLine()) != null) { // while ((lineClassSubject = readerClassSubject.readLine()) != null) {
// // 如果输出了 "DONE",表示生成完毕 // // 如果输出了 "DONE",表示生成完毕
// if ("DONE".equals(lineClassSubject)) { // if ("DONE".equals(lineClassSubject)) {
// break; // 跳出循环 // break; // 跳出循环
// } // }
// } // }
try { try {
int exitCodeSubjectClass = processClassSubject.waitFor(); int exitCodeSubjectClass = processClassSubject.waitFor();
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
// File classSubjectFile = new File(filePrefix); // File classSubjectFile = new File(filePrefix);
// File[] classSubjectFiles = classSubjectFile.listFiles(); // File[] classSubjectFiles = classSubjectFile.listFiles();
// assert classSubjectFiles != null; // assert classSubjectFiles != null;
...@@ -553,14 +553,14 @@ public class GeneratorAllTypePdfByProvinceController { ...@@ -553,14 +553,14 @@ public class GeneratorAllTypePdfByProvinceController {
// } // }
// } // }
}
} }
//插入数据 }
int rowsAffected = reportJdbcTemplate.update("UPDATE school_report_task_generate SET status = ? WHERE exam_id = ? AND region = ? AND province = ? AND school = ?",1,schoolLevel.getExamId(),schoolLevel.getRegion(),schoolLevel.getProvince(),schoolLevel.getSchool());
//插入数据
int rowsAffected = reportJdbcTemplate.update("UPDATE school_report_task_generate SET status = ? WHERE exam_id = ? AND region = ? AND province = ? AND school = ?",1,schoolLevel.getExamId(),schoolLevel.getRegion(),schoolLevel.getProvince(),schoolLevel.getSchool());
logger.info("Rows affected:" + rowsAffected); logger.info("Rows affected:" + rowsAffected);
} }
} }
......
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