промежуточный. убрал изменение порядка задач. вместо этого будет фильтр по состояниям

This commit is contained in:
2024-02-25 15:42:46 +03:00
parent a85446b72d
commit 0a2f2f05e1
5 changed files with 44 additions and 66 deletions

View File

@@ -10,7 +10,7 @@ import com.google.gson.annotations.Expose;
import javax.swing.tree.DefaultMutableTreeNode;
import java.io.Serializable;
import java.nio.file.Paths;
import java.util.LinkedHashMap;
import java.util.Comparator;
import java.util.List;
import java.util.Vector;
public class SapforPackage_json implements Serializable {
@@ -34,38 +34,23 @@ public class SapforPackage_json implements Serializable {
public PackageSummary root = null;
public PackageComparisonSummary comparison_root = null;
//--
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>(); //задачи по ключам (?)
public LinkedHashMap<TaskState, Vector<SapforTask>> sortedTasks = new LinkedHashMap<>();
// public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>(); //задачи по ключам (?)
// public LinkedHashMap<TaskState, Vector<SapforTask>> sortedTasks = new LinkedHashMap<>();
// public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
//-- задачи, отсортированные для сравнения.
// public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, Vector<SapforTask>>> comparisonSortedTasks = new LinkedHashMap<>();
// public LinkedHashMap<MatchState, LinkedHashMap<TaskState, Vector<SapforTask>>> comparisonSortedTasks = new LinkedHashMap<>();
//----
//---------
public void DropComparison() {
// UI.Info("DROP COMPARISON");
comparison_root = null;
comparisonSortedTasks.clear();
// comparisonSortedTasks.clear();
for (SapforTask task: tasks)
task.matchState = MatchState.Unknown;
}
public void SortTasks() {
//-- СБРОС СРАВНЕНИЯ
for (SapforTask task: tasks)
task.matchState = MatchState.Unknown;
//--
sortedTasks.clear();
for (TaskState state : TaskState.values()) {
Vector<SapforTask> stateTasks = new Vector<>();
for (SapforTask task : tasks) {
if (task.state.equals(state))
stateTasks.add(task);
}
if (!stateTasks.isEmpty())
sortedTasks.put(state, stateTasks);
}
task.comparisonState = MatchState.Unknown;
}
public void SortTasksForComparison() {
/*
comparisonSortedTasks.clear();
for (MatchState matchState : MatchState.values()) {
LinkedHashMap<TaskState, Vector<SapforTask>> match_state_tasks = new LinkedHashMap<>();
@@ -82,28 +67,30 @@ public class SapforPackage_json implements Serializable {
}
comparisonSortedTasks.put(matchState, match_state_tasks);
}
*/
}
public void buildTree(SapforPackage package_in) {
// tasks.sort(Comparator.comparing(SapforTask::getPK));
for (SapforTask task: tasks)
task.comparisonState = MatchState.Unknown;
//---
root = new PackageSummary();
root.count = package_in.package_json.allTasks.size();
root.count = package_in.package_json.tasks.size();
root.errors_count=0;
//--
for (TaskState state : sortedTasks.keySet()) {
Vector<SapforTask> tasks = sortedTasks.get(state);
//-
if (state.equals(TaskState.DoneWithErrors))
root.errors_count += tasks.size();
//-
for (SapforTask task : tasks) {
DefaultMutableTreeNode taskNode = task.getNode(Paths.get(
package_in.getLocalWorkspace().getAbsolutePath(),
String.valueOf(task.set_id),
String.valueOf(task.sapfor_configuration_id)
).toFile());
root.add(taskNode);
}
for (SapforTask task: tasks){
DefaultMutableTreeNode taskNode = task.getNode(Paths.get(
package_in.getLocalWorkspace().getAbsolutePath(),
String.valueOf(task.set_id),
String.valueOf(task.sapfor_configuration_id)
).toFile());
root.add(taskNode);
if (task.state.equals(TaskState.DoneWithErrors))
root.errors_count++;
}
}
public void buildComparisonTree(SapforPackage package_in) {
/*
comparison_root = new PackageComparisonSummary();
comparison_root.count = package_in.package_json.allTasks.size();
//--
@@ -127,5 +114,6 @@ public class SapforPackage_json implements Serializable {
if (match_state.equals(MatchState.NotMatch))
comparison_root.mismatches_count+=count;
}
*/
}
}

View File

@@ -54,7 +54,7 @@ public class SapforTask extends DBObject {
@Expose
public TaskState state = TaskState.Inactive;
@Description("IGNORE")
public MatchState matchState = MatchState.Unknown; //для сравнения. в обычном режиме всегда Unknown!
public MatchState comparisonState = MatchState.Unknown; //для сравнения. в обычном режиме всегда Unknown!
//--------------------------------------------------
public String getUniqueKey() {
return group_description + "_" + test_description + "_" + sapfor_configuration_id;
@@ -152,12 +152,12 @@ public class SapforTask extends DBObject {
//todo Для каждого случая подобрать иконку (?)
if (!state.equals(task2.state)) {
System.out.println("Не совпадение состояний задачи " + getUniqueKey());
matchState = MatchState.NotMatch;
task2.matchState = MatchState.NotMatch;
comparisonState = MatchState.NotMatch;
task2.comparisonState = MatchState.NotMatch;
} else if ((versions.size() != task2.versions.size())|| (variants.size() != task2.variants.size())) {
System.out.println("Не совпадение количества версий в задаче " + getUniqueKey());
matchState = MatchState.NotMatch;
task2.matchState = MatchState.NotMatch;
comparisonState = MatchState.NotMatch;
task2.comparisonState = MatchState.NotMatch;
} else {
LinkedHashMap<String, SapforVersion_json> versions1 = getSortedVersions();
LinkedHashMap<String, SapforVersion_json> versions2 = task2.getSortedVersions();
@@ -165,8 +165,8 @@ public class SapforTask extends DBObject {
for (String name1 : versions1.keySet()) {
if (!versions2.containsKey(name1)) {
System.out.println("Не совпадение имен версий в задаче " + getUniqueKey());
matchState = MatchState.NotMatch;
task2.matchState = MatchState.NotMatch;
comparisonState = MatchState.NotMatch;
task2.comparisonState = MatchState.NotMatch;
return;
}
}
@@ -179,13 +179,13 @@ public class SapforTask extends DBObject {
//---
if (!version1.isMatch(version2)) {
System.out.println("Не совпадение версий в задаче " + getUniqueKey());
matchState = MatchState.NotMatch;
task2.matchState = MatchState.NotMatch;
comparisonState = MatchState.NotMatch;
task2.comparisonState = MatchState.NotMatch;
return;
}
}
matchState = MatchState.Match;
task2.matchState = MatchState.Match;
comparisonState = MatchState.Match;
task2.comparisonState = MatchState.Match;
}
}
public Date getStartDate() {

View File

@@ -9,12 +9,12 @@ public class SapforTaskNode extends SapforPackageTreeNode {
public String getImageKey() {
SapforTask task = (SapforTask) getUserObject();
//обычный режим
if (task.matchState == MatchState.Unknown) {
if (task.comparisonState == MatchState.Unknown) {
return task.state.toString();
}
//режим сравнения.
else {
return task.matchState.toString()+task.state.toString();
return task.comparisonState.toString()+task.state.toString();
}
}
}

View File

@@ -116,12 +116,6 @@ public class SapforPackagesComparisonForm {
if (object.package_json == null) {
try {
object.readJson();
object.package_json.tasks.sort(Comparator.comparing(SapforTask::getUniqueKey));
for (SapforTask task : object.package_json.tasks)
object.package_json.allTasks.put(task.getUniqueKey(), task);
//---
object.package_json.SortTasks(); //по состояниям конфигурациям и группам
//---
object.package_json.buildTree(object);
//---
} catch (Exception ex) {
@@ -198,16 +192,18 @@ public class SapforPackagesComparisonForm {
package1 = object;
package2 = slave.object;
//--
if (package1.package_json.allTasks.size() != package2.package_json.allTasks.size()) {
if (package1.package_json.tasks.size() != package2.package_json.tasks.size()) {
Log.Writeln_("Количество задач в пакетах не совпадает!");
return false;
}
//--
for (String key1 : package1.package_json.allTasks.keySet()) {
/*
for (String key1 : package1.package_json.tasks) {
if (!package2.package_json.allTasks.containsKey(key1)) {
Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!");
}
}
*/
return Log.isEmpty();
}
return false;
@@ -233,6 +229,7 @@ public class SapforPackagesComparisonForm {
}
@Override
protected void body() throws Exception {
/*
System.out.println(package1.package_json.allTasks.size());
System.out.println(package2.package_json.allTasks.size());
@@ -254,6 +251,7 @@ public class SapforPackagesComparisonForm {
//-
package1.package_json.buildComparisonTree(package1);
package2.package_json.buildComparisonTree(package2);
*/
}
@Override
protected boolean validate() {