суммарное число задач, и время пакетов при экспорте

This commit is contained in:
2023-12-09 22:47:15 +03:00
parent dbd8d416f9
commit fce85afc71
5 changed files with 77 additions and 46 deletions

3
.idea/workspace.xml generated
View File

@@ -8,6 +8,9 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment=""> <list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Common/Utils/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Common/Utils/Utils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Repository/Server/ServerCode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/Common/TestingServer.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />

View File

@@ -1144,5 +1144,15 @@ public class Utils {
public static boolean isVersion(File directory) throws Exception { public static boolean isVersion(File directory) throws Exception {
return new File(directory, Constants.data).exists(); return new File(directory, Constants.data).exists();
} }
public static String printSplittedDateInterval(long milliseconds) {
//--
long seconds = milliseconds / 1000;
long hours = seconds / 3600;
seconds = seconds - hours * 3600;
long minutes = (seconds) / 60;
seconds = seconds - minutes * 60;
//--
return hours + " часов, " + minutes + " минут, " + seconds + " секунд";
}
} }

View File

@@ -82,6 +82,8 @@ public enum ServerCode {
//-- //--
PublishObject, PublishObject,
PublishObjects, PublishObjects,
UpdateTestTasks UpdateTestTasks,
GetPackagesInfo
// PublishTestProject // PublishTestProject
} }

View File

@@ -354,6 +354,12 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
UpdateTestTasks(); UpdateTestTasks();
response = new ServerExchangeUnit_2021(ServerCode.OK); response = new ServerExchangeUnit_2021(ServerCode.OK);
break; break;
case GetPackagesInfo:
Print("Получить данные по пакетам");
SetCurrentAccountDB(request.arg);
response = new ServerExchangeUnit_2021(ServerCode.OK);
GetPackagesInfo();
break;
default: default:
throw new RepositoryRefuseException("Неподдерживаемый код: " + code); throw new RepositoryRefuseException("Неподдерживаемый код: " + code);
} }
@@ -499,6 +505,7 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
} }
} }
} }
//-------------------------------------------------------------------------------------->>> //-------------------------------------------------------------------------------------->>>
@Override @Override
protected Database getDefaultDatabase() { protected Database getDefaultDatabase() {
@@ -626,4 +633,8 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
} }
} }
} }
//---------------------------------------------------------------------------------------------->>>
void GetPackagesInfo() throws Exception{
Vector<Long> keys = (Vector<Long>) request.object;
}
} }

View File

@@ -1,8 +1,6 @@
package Visual_DVM_2021.Passes.All; package Visual_DVM_2021.Passes.All;
import Common.Constants;
import Common.Current; import Common.Current;
import Common.Global; import Common.Global;
import Common.UI.Themes.FreeFortranSPFTokenMaker;
import Common.UI.UI; import Common.UI.UI;
import Common.Utils.Files.VDirectoryChooser; import Common.Utils.Files.VDirectoryChooser;
import Common.Utils.Index; import Common.Utils.Index;
@@ -36,6 +34,9 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
Workbook book = null; Workbook book = null;
Sheet sheet = null; Sheet sheet = null;
//-- //--
int total_tasks_count = 0;
long total_time = 0;
//--
LinkedHashMap<Long, Vector<TestRunTask>> packages_tasks = null; LinkedHashMap<Long, Vector<TestRunTask>> packages_tasks = null;
//-- //--
@Override @Override
@@ -89,18 +90,19 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
return true; return true;
} }
//--- //---
static String getPackageInfo(TasksPackage object) { String getPackageInfo(TasksPackage object) {
Vector<String> lines = new Vector<>(); Vector<String> lines = new Vector<>();
lines.add("задач " + object.runTasksCount); lines.add("задач " + object.runTasksCount);
lines.add("машина " + object.machine_address + ":" + object.machine_port); lines.add("машина " + object.machine_address + ":" + object.machine_port);
lines.add("ядер " + object.kernels); lines.add("ядер " + object.kernels);
lines.add("DVM-система " + object.dvm_version); lines.add("DVM-система " + object.dvm_version);
long seconds = (object.ChangeDate - object.StartDate) / 1000; //--
long hours = seconds / 3600; total_tasks_count+=object.runTasksCount;
seconds = seconds - hours * 3600; //--
long minutes = (seconds) / 60; long milliseconds = object.ChangeDate - object.StartDate;
seconds = seconds - minutes * 60; total_time+= milliseconds;
lines.add("время выполнения " + hours + " часов, " + minutes + " минут, " + seconds + " секунд"); //--
lines.add("время выполнения " + Utils.printSplittedDateInterval(milliseconds));
return String.join("; ", lines); return String.join("; ", lines);
} }
//--- //---
@@ -109,12 +111,12 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
String cell_text = value.toString(); String cell_text = value.toString();
Cell cell = row.createCell(0); Cell cell = row.createCell(0);
cell.setCellValue(cell_text); cell.setCellValue(cell_text);
cell.setCellStyle(styles.get(0)); cell.setCellStyle(styles.get(1));
//https://translated.turbopages.org/proxy_u/en-ru.ru.f85b6508-657377d3-df23bc2d-74722d776562/https/stackoverflow.com/questions/23533381/creating-the-border-for-the-merged-cells-in-poi //https://translated.turbopages.org/proxy_u/en-ru.ru.f85b6508-657377d3-df23bc2d-74722d776562/https/stackoverflow.com/questions/23533381/creating-the-border-for-the-merged-cells-in-poi
sheet.addMergedRegion(new CellRangeAddress(row_num, row_num, 0, max_columns - 1)); sheet.addMergedRegion(new CellRangeAddress(row_num, row_num, 0, max_columns - 1));
for (int i = 1; i < max_columns; ++i) { for (int i = 1; i < max_columns; ++i) {
Cell blankCell = row.createCell(i); Cell blankCell = row.createCell(i);
blankCell.setCellStyle(styles.get(0)); blankCell.setCellStyle(styles.get(1));
} }
} }
protected void addHeaderRow(int row_num, Object... values) { protected void addHeaderRow(int row_num, Object... values) {
@@ -157,7 +159,6 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
task.progress //15 task.progress //15
); );
*/ */
case 4: case 4:
case 5: case 5:
TaskState state = (TaskState) value; TaskState state = (TaskState) value;
@@ -299,29 +300,7 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
styles.add(style); styles.add(style);
} }
} }
void exportPackage(TasksPackage tasksPackage, Index offset) { void exportPackageTasks(TasksPackage tasksPackage, Index offset) {
addInfoRow(offset.getValue(), getPackageInfo(tasksPackage));
offset.Inc();
addHeaderRow(offset.getValue(),
"Группа",
"Тест",
"Язык",
"Флаги",
"Компиляция",
"Запуск",
"NUM_THREADS",
"NUM_CUDAS",
"TOTAL_THREADS",
"Матрица",
"Окружение",
"usr.par",
"Время компиляции (с)",
"Время запуска (с)",
"Чистое время (с)",
"Прогресс (%)");
//--
offset.Inc();
//--
Vector<TestRunTask> tasks = packages_tasks.get(tasksPackage.id); Vector<TestRunTask> tasks = packages_tasks.get(tasksPackage.id);
for (TestRunTask task : tasks) { for (TestRunTask task : tasks) {
ShowMessage2(task.test_description); ShowMessage2(task.test_description);
@@ -367,8 +346,34 @@ public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
//-- //--
Index offset = new Index(); Index offset = new Index();
for (TasksPackage tasksPackage : target) { for (TasksPackage tasksPackage : target) {
exportPackage(tasksPackage, offset); addInfoRow(offset.getValue(), getPackageInfo(tasksPackage));
// UI.Info(String.valueOf(tasksPackage.id)); offset.Inc();
}
if (target.size()>1){
addInfoRow(offset.getValue(), "всего задач "+total_tasks_count+"; общее время выполнения "+Utils.printSplittedDateInterval(total_time));
offset.Inc();
}
addHeaderRow(offset.getValue(),
"Группа",
"Тест",
"Язык",
"Флаги",
"Компиляция",
"Запуск",
"NUM_THREADS",
"NUM_CUDAS",
"TOTAL_THREADS",
"Матрица",
"Окружение",
"usr.par",
"Время компиляции (с)",
"Время запуска (с)",
"Чистое время (с)",
"Прогресс (%)");
//--
offset.Inc();
for (TasksPackage tasksPackage : target) {
exportPackageTasks(tasksPackage, offset);
} }
//-- //--
for (int i = 0; i < max_columns; ++i) for (int i = 0; i < max_columns; ++i)