2023-09-21 20:55:14 +03:00
|
|
|
|
package SapforTestingSystem.Json;
|
2023-11-09 01:47:46 +03:00
|
|
|
|
import Common.Utils.Utils;
|
2023-10-27 00:20:42 +03:00
|
|
|
|
import GlobalData.Tasks.TaskState;
|
2023-11-09 01:47:46 +03:00
|
|
|
|
import SapforTestingSystem.SapforTask.MatchState;
|
2023-09-27 00:43:23 +03:00
|
|
|
|
import SapforTestingSystem.SapforTask.SapforTask;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
import com.google.gson.annotations.Expose;
|
|
|
|
|
|
|
2023-11-08 02:05:21 +03:00
|
|
|
|
import java.util.Comparator;
|
2023-10-27 00:20:42 +03:00
|
|
|
|
import java.util.LinkedHashMap;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
import java.util.List;
|
|
|
|
|
|
import java.util.Vector;
|
2023-10-08 01:06:55 +03:00
|
|
|
|
public class SapforTasksResults_json {
|
2023-10-01 23:22:07 +03:00
|
|
|
|
@Expose
|
|
|
|
|
|
public long StartDate = 0;
|
|
|
|
|
|
@Expose
|
|
|
|
|
|
public long EndDate = 0;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
@Expose
|
2023-09-27 00:43:23 +03:00
|
|
|
|
public List<SapforTask> tasks = new Vector<>();
|
2023-11-09 01:47:46 +03:00
|
|
|
|
//все задачи по ключам.
|
|
|
|
|
|
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>();
|
|
|
|
|
|
public LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
|
|
|
|
|
|
//-- задачи, отсортированные для сравнения.
|
|
|
|
|
|
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
|
2023-11-08 02:05:21 +03:00
|
|
|
|
public void SortTasks() {
|
2023-11-09 01:47:46 +03:00
|
|
|
|
sortedTasks.clear();
|
|
|
|
|
|
//--
|
2023-10-29 01:41:43 +03:00
|
|
|
|
for (TaskState state : TaskState.values()) {
|
2023-11-09 01:47:46 +03:00
|
|
|
|
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
sortedTasks.put(state, configuration_tasks);
|
2023-10-29 01:41:43 +03:00
|
|
|
|
//--
|
|
|
|
|
|
for (SapforTask task : tasks) {
|
|
|
|
|
|
if (task.state.equals(state)) {
|
|
|
|
|
|
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
|
2023-11-09 01:47:46 +03:00
|
|
|
|
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
|
|
|
|
|
|
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
|
2023-10-29 01:41:43 +03:00
|
|
|
|
} else {
|
|
|
|
|
|
groups_tasks = new LinkedHashMap<>();
|
2023-11-09 01:47:46 +03:00
|
|
|
|
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
|
2023-10-29 01:41:43 +03:00
|
|
|
|
}
|
2023-11-09 01:47:46 +03:00
|
|
|
|
Vector<SapforTask> tasks_ = null;
|
2023-10-29 01:41:43 +03:00
|
|
|
|
if (groups_tasks.containsKey(task.group_description)) {
|
2023-11-09 01:47:46 +03:00
|
|
|
|
tasks_ = groups_tasks.get(task.group_description);
|
2023-10-29 01:41:43 +03:00
|
|
|
|
} else {
|
2023-11-09 01:47:46 +03:00
|
|
|
|
tasks_ = new Vector<>();
|
|
|
|
|
|
groups_tasks.put(task.group_description, tasks_);
|
2023-10-29 01:41:43 +03:00
|
|
|
|
}
|
2023-11-09 01:47:46 +03:00
|
|
|
|
tasks_.add(task);
|
2023-10-29 01:41:43 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-11-09 01:47:46 +03:00
|
|
|
|
//--
|
2023-10-29 01:41:43 +03:00
|
|
|
|
}
|
2023-11-07 19:13:07 +03:00
|
|
|
|
//--
|
|
|
|
|
|
for (TaskState state : TaskState.values()) {
|
2023-11-09 01:47:46 +03:00
|
|
|
|
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = sortedTasks.get(state);
|
|
|
|
|
|
for (String configuration_id : configuration_tasks.keySet()) {
|
|
|
|
|
|
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
|
|
|
|
|
|
for (String group : groups_tasks.keySet()) {
|
|
|
|
|
|
Vector<SapforTask> tasks_ = groups_tasks.get(group);
|
|
|
|
|
|
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SortTasksForComparison() {
|
|
|
|
|
|
comparisonSortedTasks.clear();
|
|
|
|
|
|
//раскидать задачи по состояниям, конфигам, группам
|
|
|
|
|
|
for (MatchState matchState : MatchState.values()) {
|
|
|
|
|
|
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
comparisonSortedTasks.put(matchState, state_tasks);
|
2023-11-07 19:13:07 +03:00
|
|
|
|
//--
|
2023-11-09 01:47:46 +03:00
|
|
|
|
for (TaskState state : TaskState.values()) {
|
|
|
|
|
|
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
state_tasks.put(state, configuration_tasks);
|
|
|
|
|
|
//--
|
|
|
|
|
|
for (SapforTask task : tasks) {
|
|
|
|
|
|
if (task.match.equals(matchState) && task.state.equals(state)) {
|
|
|
|
|
|
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
|
|
|
|
|
|
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
|
|
|
|
|
|
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
groups_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
|
|
|
|
|
|
}
|
|
|
|
|
|
Vector<SapforTask> tasks = null;
|
|
|
|
|
|
if (groups_tasks.containsKey(task.group_description)) {
|
|
|
|
|
|
tasks = groups_tasks.get(task.group_description);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
tasks = new Vector<>();
|
|
|
|
|
|
groups_tasks.put(task.group_description, tasks);
|
|
|
|
|
|
}
|
|
|
|
|
|
tasks.add(task);
|
2023-11-07 19:13:07 +03:00
|
|
|
|
}
|
2023-11-09 01:47:46 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//--
|
|
|
|
|
|
}
|
|
|
|
|
|
//рассортировать задачи в группах по ключам.
|
|
|
|
|
|
for (MatchState matchState : MatchState.values()) {
|
|
|
|
|
|
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = comparisonSortedTasks.get(matchState);
|
|
|
|
|
|
for (TaskState state : TaskState.values()) {
|
|
|
|
|
|
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = state_tasks.get(state);
|
|
|
|
|
|
for (String configuration_id : configuration_tasks.keySet()) {
|
|
|
|
|
|
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = configuration_tasks.get(configuration_id);
|
|
|
|
|
|
for (String group : groups_tasks.keySet()) {
|
|
|
|
|
|
Vector<SapforTask> tasks_ = groups_tasks.get(group);
|
|
|
|
|
|
tasks_.sort(Comparator.comparing(SapforTask::getUniqueKey));
|
2023-11-07 19:13:07 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-11-09 01:47:46 +03:00
|
|
|
|
}
|
|
|
|
|
|
//---
|
|
|
|
|
|
public String getEmailSummary() {
|
|
|
|
|
|
String res = "";
|
|
|
|
|
|
Vector<String> summary_lines = new Vector<>();
|
|
|
|
|
|
summary_lines.add("Всего задач: " + tasks.size());
|
|
|
|
|
|
for (TaskState state : sortedTasks.keySet()) {
|
|
|
|
|
|
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> tasksByConfigurations = sortedTasks.get(state);
|
|
|
|
|
|
if (!tasksByConfigurations.isEmpty()) {
|
|
|
|
|
|
int count = 0;
|
|
|
|
|
|
if (!state.equals(TaskState.Done)) {
|
|
|
|
|
|
Vector<String> flagsLines = new Vector<>();
|
|
|
|
|
|
for (String configuration_id : tasksByConfigurations.keySet()) {
|
|
|
|
|
|
LinkedHashMap<String, Vector<SapforTask>> tasksByGroups = tasksByConfigurations.get(configuration_id);
|
|
|
|
|
|
for (String group : tasksByGroups.keySet()) {
|
|
|
|
|
|
Vector<SapforTask> tasks = tasksByGroups.get(group);
|
|
|
|
|
|
flagsLines.add("Группа " + group + ": " + tasks.size());
|
|
|
|
|
|
count += tasks.size();
|
|
|
|
|
|
for (SapforTask task : tasks) {
|
|
|
|
|
|
task.versionsDescription = task.getVersionsChain();
|
|
|
|
|
|
flagsLines.add(
|
|
|
|
|
|
"тест: " +
|
|
|
|
|
|
Utils.Brackets(task.test_description) + " " +
|
|
|
|
|
|
"флаги: "
|
|
|
|
|
|
+ Utils.Brackets(task.flags) + " " +
|
|
|
|
|
|
"версии: " +
|
|
|
|
|
|
task.versionsDescription
|
|
|
|
|
|
// + " " + "конфигурация " + task.sapfor_configuration_id
|
|
|
|
|
|
);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
summary_lines.add(state.getDescription() + " :" + count);
|
|
|
|
|
|
summary_lines.addAll(flagsLines);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
for (String flags : tasksByConfigurations.keySet()) {
|
|
|
|
|
|
LinkedHashMap<String, Vector<SapforTask>> tasksByGroups = tasksByConfigurations.get(flags);
|
|
|
|
|
|
for (String group : tasksByGroups.keySet()) {
|
|
|
|
|
|
Vector<SapforTask> tasks = tasksByGroups.get(group);
|
|
|
|
|
|
for (SapforTask task : tasks)
|
|
|
|
|
|
task.versionsDescription = task.getVersionsChain();
|
|
|
|
|
|
count += tasks.size();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
summary_lines.add(state.getDescription() + " :" + count);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
res = String.join("\n", summary_lines);
|
2023-11-07 19:13:07 +03:00
|
|
|
|
return res;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//---
|
|
|
|
|
|
/*
|
|
|
|
|
|
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>>> sortTasksForComparisonTree() {
|
2023-11-06 22:20:18 +03:00
|
|
|
|
LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>>> res = new LinkedHashMap<>();
|
|
|
|
|
|
for (MatchState matchState : MatchState.values()) {
|
|
|
|
|
|
LinkedHashMap<TaskState, LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>>> state_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
res.put(matchState, state_tasks);
|
|
|
|
|
|
//--
|
|
|
|
|
|
for (TaskState state : TaskState.values()) {
|
|
|
|
|
|
LinkedHashMap<String, LinkedHashMap<String, Vector<SapforTask>>> configuration_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
state_tasks.put(state, configuration_tasks);
|
|
|
|
|
|
//--
|
|
|
|
|
|
for (SapforTask task : tasks) {
|
|
|
|
|
|
if (task.match.equals(matchState) && task.state.equals(state)) {
|
|
|
|
|
|
LinkedHashMap<String, Vector<SapforTask>> groups_tasks = null;
|
|
|
|
|
|
if (configuration_tasks.containsKey(task.sapfor_configuration_id)) {
|
|
|
|
|
|
groups_tasks = configuration_tasks.get(task.sapfor_configuration_id);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
groups_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
configuration_tasks.put(task.sapfor_configuration_id, groups_tasks);
|
|
|
|
|
|
}
|
|
|
|
|
|
Vector<SapforTask> tasks = null;
|
|
|
|
|
|
if (groups_tasks.containsKey(task.group_description)) {
|
|
|
|
|
|
tasks = groups_tasks.get(task.group_description);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
tasks = new Vector<>();
|
|
|
|
|
|
groups_tasks.put(task.group_description, tasks);
|
|
|
|
|
|
}
|
|
|
|
|
|
tasks.add(task);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//--
|
|
|
|
|
|
}
|
|
|
|
|
|
//--
|
|
|
|
|
|
//рассортировать задачи по конфигурациям.
|
|
|
|
|
|
return res;
|
|
|
|
|
|
}
|
2023-11-07 19:13:07 +03:00
|
|
|
|
*/
|