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

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

8
.idea/workspace.xml generated
View File

@@ -7,18 +7,10 @@
</component> </component>
<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 afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/PackageComparisonSummary.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/versions/MatchDone.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/versions/MatchDoneWithErrors.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/versions/NotMatchDone.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/versions/NotMatchDoneWithErrors.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/versions/UnknownDone.png" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/icons/versions/UnknownDoneWithErrors.png" afterDir="false" />
<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/TestingSystem/SAPFOR/Json/SapforPackage_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/Json/SapforPackage_json.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTask/SapforTask.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforTaskNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforTaskNode.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforTaskNode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/SapforTaskNode.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/TestingSystem/SAPFOR/SapforTasksPackage/UI/StateSummary.java" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/Visual_DVM_2021/UI/Main/SapforPackagesComparisonForm.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />

View File

@@ -10,7 +10,7 @@ import com.google.gson.annotations.Expose;
import javax.swing.tree.DefaultMutableTreeNode; import javax.swing.tree.DefaultMutableTreeNode;
import java.io.Serializable; import java.io.Serializable;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.LinkedHashMap; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Vector; import java.util.Vector;
public class SapforPackage_json implements Serializable { public class SapforPackage_json implements Serializable {
@@ -34,38 +34,23 @@ public class SapforPackage_json implements Serializable {
public PackageSummary root = null; public PackageSummary root = null;
public PackageComparisonSummary comparison_root = null; public PackageComparisonSummary comparison_root = null;
//-- //--
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>(); //задачи по ключам (?) // public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>(); //задачи по ключам (?)
public LinkedHashMap<TaskState, Vector<SapforTask>> sortedTasks = new LinkedHashMap<>(); // public LinkedHashMap<TaskState, Vector<SapforTask>> sortedTasks = new LinkedHashMap<>();
// public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, 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, 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() { public void DropComparison() {
// UI.Info("DROP COMPARISON"); // UI.Info("DROP COMPARISON");
comparison_root = null; comparison_root = null;
comparisonSortedTasks.clear(); // comparisonSortedTasks.clear();
for (SapforTask task: tasks) for (SapforTask task: tasks)
task.matchState = MatchState.Unknown; task.comparisonState = 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);
}
} }
public void SortTasksForComparison() { public void SortTasksForComparison() {
/*
comparisonSortedTasks.clear(); comparisonSortedTasks.clear();
for (MatchState matchState : MatchState.values()) { for (MatchState matchState : MatchState.values()) {
LinkedHashMap<TaskState, Vector<SapforTask>> match_state_tasks = new LinkedHashMap<>(); LinkedHashMap<TaskState, Vector<SapforTask>> match_state_tasks = new LinkedHashMap<>();
@@ -82,17 +67,17 @@ public class SapforPackage_json implements Serializable {
} }
comparisonSortedTasks.put(matchState, match_state_tasks); comparisonSortedTasks.put(matchState, match_state_tasks);
} }
*/
} }
public void buildTree(SapforPackage package_in) { public void buildTree(SapforPackage package_in) {
// tasks.sort(Comparator.comparing(SapforTask::getPK));
for (SapforTask task: tasks)
task.comparisonState = MatchState.Unknown;
//---
root = new PackageSummary(); 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){ for (SapforTask task: tasks){
DefaultMutableTreeNode taskNode = task.getNode(Paths.get( DefaultMutableTreeNode taskNode = task.getNode(Paths.get(
package_in.getLocalWorkspace().getAbsolutePath(), package_in.getLocalWorkspace().getAbsolutePath(),
@@ -100,10 +85,12 @@ public class SapforPackage_json implements Serializable {
String.valueOf(task.sapfor_configuration_id) String.valueOf(task.sapfor_configuration_id)
).toFile()); ).toFile());
root.add(taskNode); root.add(taskNode);
} if (task.state.equals(TaskState.DoneWithErrors))
root.errors_count++;
} }
} }
public void buildComparisonTree(SapforPackage package_in) { public void buildComparisonTree(SapforPackage package_in) {
/*
comparison_root = new PackageComparisonSummary(); comparison_root = new PackageComparisonSummary();
comparison_root.count = package_in.package_json.allTasks.size(); 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)) if (match_state.equals(MatchState.NotMatch))
comparison_root.mismatches_count+=count; comparison_root.mismatches_count+=count;
} }
*/
} }
} }

View File

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

View File

@@ -9,12 +9,12 @@ public class SapforTaskNode extends SapforPackageTreeNode {
public String getImageKey() { public String getImageKey() {
SapforTask task = (SapforTask) getUserObject(); SapforTask task = (SapforTask) getUserObject();
//обычный режим //обычный режим
if (task.matchState == MatchState.Unknown) { if (task.comparisonState == MatchState.Unknown) {
return task.state.toString(); return task.state.toString();
} }
//режим сравнения. //режим сравнения.
else { 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) { if (object.package_json == null) {
try { try {
object.readJson(); 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); object.package_json.buildTree(object);
//--- //---
} catch (Exception ex) { } catch (Exception ex) {
@@ -198,16 +192,18 @@ public class SapforPackagesComparisonForm {
package1 = object; package1 = object;
package2 = slave.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_("Количество задач в пакетах не совпадает!"); Log.Writeln_("Количество задач в пакетах не совпадает!");
return false; return false;
} }
//-- //--
for (String key1 : package1.package_json.allTasks.keySet()) { /*
for (String key1 : package1.package_json.tasks) {
if (!package2.package_json.allTasks.containsKey(key1)) { if (!package2.package_json.allTasks.containsKey(key1)) {
Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!"); Log.Writeln_("Задача эталона " + key1 + "не найдена в сравниваемом пакете!");
} }
} }
*/
return Log.isEmpty(); return Log.isEmpty();
} }
return false; return false;
@@ -233,6 +229,7 @@ public class SapforPackagesComparisonForm {
} }
@Override @Override
protected void body() throws Exception { protected void body() throws Exception {
/*
System.out.println(package1.package_json.allTasks.size()); System.out.println(package1.package_json.allTasks.size());
System.out.println(package2.package_json.allTasks.size()); System.out.println(package2.package_json.allTasks.size());
@@ -254,6 +251,7 @@ public class SapforPackagesComparisonForm {
//- //-
package1.package_json.buildComparisonTree(package1); package1.package_json.buildComparisonTree(package1);
package2.package_json.buildComparisonTree(package2); package2.package_json.buildComparisonTree(package2);
*/
} }
@Override @Override
protected boolean validate() { protected boolean validate() {