2023-11-17 00:04:21 +03:00
|
|
|
|
package TestingSystem.SAPFOR.SapforTask;
|
2023-10-04 22:01:09 +03:00
|
|
|
|
import Common.Constants;
|
2023-10-25 20:46:17 +03:00
|
|
|
|
import Common.Current;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
import Common.Database.DBObject;
|
2023-10-21 02:47:21 +03:00
|
|
|
|
import Common.Utils.Utils;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
import GlobalData.Tasks.TaskState;
|
2023-11-17 00:04:21 +03:00
|
|
|
|
import TestingSystem.SAPFOR.Json.SapforVersion_json;
|
|
|
|
|
|
import TestingSystem.SAPFOR.SapforTasksPackage.UI.VersionSummary;
|
2023-10-25 16:33:02 +03:00
|
|
|
|
import Visual_DVM_2021.Passes.PassCode_2021;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
import com.google.gson.annotations.Expose;
|
|
|
|
|
|
import com.sun.org.glassfish.gmbal.Description;
|
|
|
|
|
|
|
2023-10-31 01:02:11 +03:00
|
|
|
|
import javax.swing.tree.DefaultMutableTreeNode;
|
|
|
|
|
|
import java.io.File;
|
2023-11-14 17:35:59 +03:00
|
|
|
|
import java.util.Date;
|
2023-11-08 03:05:29 +03:00
|
|
|
|
import java.util.LinkedHashMap;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
import java.util.Vector;
|
2023-09-27 00:43:23 +03:00
|
|
|
|
public class SapforTask extends DBObject {
|
2023-09-17 22:13:42 +03:00
|
|
|
|
//------------------------------------>>
|
|
|
|
|
|
@Description("PRIMARY KEY, UNIQUE")
|
|
|
|
|
|
@Expose
|
2023-09-29 21:46:08 +03:00
|
|
|
|
public long id = Constants.Nan;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
@Description("DEFAULT '-1'")
|
|
|
|
|
|
@Expose
|
2023-10-04 00:25:36 +03:00
|
|
|
|
public String sapfor_configuration_id = "";
|
2023-10-29 01:03:37 +03:00
|
|
|
|
@Expose
|
2023-10-25 16:33:02 +03:00
|
|
|
|
@Description("DEFAULT ''")
|
|
|
|
|
|
public String sapfortaskspackage_id = "";
|
2023-09-17 22:13:42 +03:00
|
|
|
|
//------------------------------------->>
|
|
|
|
|
|
@Description("DEFAULT ''")
|
|
|
|
|
|
@Expose
|
|
|
|
|
|
public String test_description = "";
|
2023-09-30 22:02:58 +03:00
|
|
|
|
@Description("DEFAULT ''")
|
2023-10-18 22:16:22 +03:00
|
|
|
|
@Expose
|
2023-10-21 02:47:21 +03:00
|
|
|
|
public String group_description = "";
|
|
|
|
|
|
@Description("DEFAULT ''")
|
|
|
|
|
|
@Expose
|
2023-10-18 22:16:22 +03:00
|
|
|
|
public String flags = "";
|
|
|
|
|
|
@Description("DEFAULT ''")
|
2023-09-17 22:13:42 +03:00
|
|
|
|
@Expose
|
2023-10-24 19:42:01 +03:00
|
|
|
|
public String codes = "";
|
2023-09-17 22:13:42 +03:00
|
|
|
|
@Expose
|
|
|
|
|
|
public TaskState state = TaskState.Inactive;
|
2023-11-14 17:35:59 +03:00
|
|
|
|
@Expose
|
|
|
|
|
|
public long StartDate = 0; //дата начала выполнения
|
|
|
|
|
|
@Expose
|
|
|
|
|
|
public long ChangeDate = 0;//дата окончания выполнения
|
2023-10-25 16:33:02 +03:00
|
|
|
|
//в json не выносить. это только для БД.
|
|
|
|
|
|
@Description("DEFAULT ''")
|
|
|
|
|
|
public String versionsDescription = "";
|
|
|
|
|
|
//------
|
2023-09-30 22:02:58 +03:00
|
|
|
|
@Description("IGNORE")
|
|
|
|
|
|
@Expose
|
|
|
|
|
|
public Vector<SapforVersion_json> versions = new Vector<>();
|
2023-10-06 22:51:09 +03:00
|
|
|
|
//----------
|
2023-09-30 22:02:58 +03:00
|
|
|
|
@Description("IGNORE")
|
|
|
|
|
|
@Expose
|
|
|
|
|
|
public Vector<SapforVersion_json> variants = new Vector<>();
|
2023-11-06 22:20:18 +03:00
|
|
|
|
//----------
|
|
|
|
|
|
@Description("IGNORE")
|
2023-11-08 02:05:21 +03:00
|
|
|
|
public MatchState match = MatchState.Unknown;
|
|
|
|
|
|
//-----------
|
2023-11-08 03:05:29 +03:00
|
|
|
|
public String getUniqueKey() {
|
|
|
|
|
|
return sapfor_configuration_id + "_" + group_description + "_" + test_description;
|
2023-11-08 02:05:21 +03:00
|
|
|
|
}
|
2023-11-14 16:19:31 +03:00
|
|
|
|
public String getSummary() {
|
|
|
|
|
|
Vector<String> lines = new Vector<>();
|
|
|
|
|
|
lines.add(group_description);
|
|
|
|
|
|
lines.add(test_description);
|
|
|
|
|
|
lines.add(codes);
|
|
|
|
|
|
lines.add(flags);
|
|
|
|
|
|
return String.join(" ", lines);
|
|
|
|
|
|
}
|
2023-09-30 22:02:58 +03:00
|
|
|
|
//-----------
|
2023-09-27 00:43:23 +03:00
|
|
|
|
public SapforTask() {
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
2023-10-31 01:02:11 +03:00
|
|
|
|
public DefaultMutableTreeNode getVersionsTree(File configurationRoot) {
|
|
|
|
|
|
DefaultMutableTreeNode root = null;
|
|
|
|
|
|
DefaultMutableTreeNode child = null;
|
|
|
|
|
|
DefaultMutableTreeNode parent = null;
|
|
|
|
|
|
//--
|
|
|
|
|
|
for (SapforVersion_json version_json : versions) {
|
|
|
|
|
|
version_json.init(configurationRoot);
|
2023-11-12 02:14:20 +03:00
|
|
|
|
version_json.task = this;
|
2023-11-03 02:00:17 +03:00
|
|
|
|
//-
|
2023-11-06 22:20:18 +03:00
|
|
|
|
child = new VersionSummary(version_json);
|
2023-10-31 01:02:11 +03:00
|
|
|
|
if (parent == null) {
|
|
|
|
|
|
root = child;
|
|
|
|
|
|
parent = child;
|
|
|
|
|
|
} else {
|
|
|
|
|
|
parent.add(child);
|
|
|
|
|
|
parent = child;
|
|
|
|
|
|
}
|
2023-11-03 02:00:17 +03:00
|
|
|
|
//-
|
2023-10-31 01:02:11 +03:00
|
|
|
|
}
|
|
|
|
|
|
if (parent != null) {
|
|
|
|
|
|
for (SapforVersion_json version_json : variants) {
|
|
|
|
|
|
version_json.init(configurationRoot);
|
2023-11-12 02:14:20 +03:00
|
|
|
|
version_json.task = this;
|
2023-11-06 22:20:18 +03:00
|
|
|
|
parent.add(new VersionSummary(version_json));
|
2023-10-31 01:02:11 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//--
|
|
|
|
|
|
return root;
|
|
|
|
|
|
}
|
2023-10-24 19:42:01 +03:00
|
|
|
|
public void Reset() {
|
2023-10-23 01:32:28 +03:00
|
|
|
|
state = TaskState.Inactive;
|
|
|
|
|
|
versions.clear();
|
|
|
|
|
|
variants.clear();
|
|
|
|
|
|
}
|
2023-09-27 00:43:23 +03:00
|
|
|
|
public SapforTask(SapforTask src) {
|
2023-09-17 22:13:42 +03:00
|
|
|
|
this.SynchronizeFields(src);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public Object getPK() {
|
|
|
|
|
|
return id;
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
|
|
|
public void SynchronizeFields(DBObject object) {
|
|
|
|
|
|
super.SynchronizeFields(object);
|
2023-09-27 00:43:23 +03:00
|
|
|
|
SapforTask t = (SapforTask) object;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
id = t.id;
|
2023-10-04 00:25:36 +03:00
|
|
|
|
sapfor_configuration_id = t.sapfor_configuration_id;
|
2023-10-25 16:33:02 +03:00
|
|
|
|
sapfortaskspackage_id = t.sapfortaskspackage_id;
|
|
|
|
|
|
//-
|
2023-09-17 22:13:42 +03:00
|
|
|
|
test_description = t.test_description;
|
2023-10-25 16:33:02 +03:00
|
|
|
|
group_description = t.group_description;
|
|
|
|
|
|
versionsDescription = t.versionsDescription;
|
|
|
|
|
|
//--
|
|
|
|
|
|
codes = t.codes;
|
2023-09-17 22:13:42 +03:00
|
|
|
|
state = t.state;
|
2023-10-25 16:33:02 +03:00
|
|
|
|
//--
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|
2023-10-24 19:42:01 +03:00
|
|
|
|
public String getVersionsChain() {
|
2023-10-20 02:16:12 +03:00
|
|
|
|
Vector<String> versionsLines = new Vector<>();
|
2023-10-24 19:42:01 +03:00
|
|
|
|
for (int i = 1; i < versions.size(); ++i) {
|
2023-10-21 02:47:21 +03:00
|
|
|
|
versionsLines.add(Utils.Brackets(versions.get(i).description));
|
2023-10-20 02:16:12 +03:00
|
|
|
|
}
|
2023-10-25 16:33:02 +03:00
|
|
|
|
if (!variants.isEmpty()) {
|
|
|
|
|
|
versionsLines.add(Utils.Brackets(PassCode_2021.CreateParallelVariants.getDescription()));
|
|
|
|
|
|
}
|
2023-10-20 02:16:12 +03:00
|
|
|
|
return String.join("→", versionsLines);
|
|
|
|
|
|
}
|
2023-11-08 03:05:29 +03:00
|
|
|
|
@Override
|
|
|
|
|
|
public boolean isVisible() {
|
|
|
|
|
|
return Current.HasSapforTasksPackage() && Current.getSapforTasksPackage().id.equals(this.sapfortaskspackage_id);
|
2023-10-24 23:19:13 +03:00
|
|
|
|
}
|
2023-11-08 03:05:29 +03:00
|
|
|
|
public LinkedHashMap<String, SapforVersion_json> getSortedVersions() {
|
|
|
|
|
|
LinkedHashMap<String, SapforVersion_json> res = new LinkedHashMap<>();
|
|
|
|
|
|
for (SapforVersion_json version_json : versions)
|
|
|
|
|
|
res.put(version_json.version, version_json);
|
|
|
|
|
|
//--
|
|
|
|
|
|
for (SapforVersion_json version_json : variants)
|
|
|
|
|
|
res.put(version_json.version, version_json);
|
|
|
|
|
|
return res;
|
2023-10-24 19:42:01 +03:00
|
|
|
|
}
|
2023-11-08 03:05:29 +03:00
|
|
|
|
public void checkMatch(SapforTask task2) {
|
|
|
|
|
|
if (!state.equals(task2.state)) {
|
|
|
|
|
|
System.out.println("Не совпадение цепочки версий в задаче " + getUniqueKey());
|
|
|
|
|
|
} else if (versions.size() != task2.versions.size()) {
|
|
|
|
|
|
System.out.println("Не совпадение длины цепочки версий в задаче " + getUniqueKey());
|
|
|
|
|
|
} else if (variants.size() != task2.variants.size()) {
|
|
|
|
|
|
System.out.println("Не совпадение длины цепочки вариантов в задаче " + getUniqueKey());
|
|
|
|
|
|
} else {
|
|
|
|
|
|
LinkedHashMap<String, SapforVersion_json> versions1 = getSortedVersions();
|
|
|
|
|
|
LinkedHashMap<String, SapforVersion_json> versions2 = task2.getSortedVersions();
|
|
|
|
|
|
//---
|
|
|
|
|
|
for (String name1 : versions1.keySet()) {
|
|
|
|
|
|
if (!versions2.containsKey(name1)) {
|
|
|
|
|
|
System.out.println("Не совпадение имен версий в задаче " + getUniqueKey());
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2023-10-24 23:19:13 +03:00
|
|
|
|
}
|
2023-11-09 15:20:34 +03:00
|
|
|
|
System.out.println("сравнение версий.");
|
2023-10-24 23:19:13 +03:00
|
|
|
|
//--
|
2023-11-08 03:05:29 +03:00
|
|
|
|
for (String name1 : versions1.keySet()) {
|
2023-11-12 02:14:20 +03:00
|
|
|
|
System.out.println("version name=" + name1);
|
2023-11-08 03:05:29 +03:00
|
|
|
|
SapforVersion_json version1 = versions1.get(name1);
|
|
|
|
|
|
SapforVersion_json version2 = versions2.get(name1);
|
|
|
|
|
|
//---
|
|
|
|
|
|
if (!version1.isMatch(version2)) {
|
|
|
|
|
|
System.out.println("Не совпадение версий в задаче " + getUniqueKey());
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
match = MatchState.Match;
|
2023-11-09 01:47:46 +03:00
|
|
|
|
task2.match = MatchState.Match;
|
2023-10-24 23:19:13 +03:00
|
|
|
|
}
|
2023-10-25 20:46:17 +03:00
|
|
|
|
}
|
2023-11-14 17:35:59 +03:00
|
|
|
|
public Date getStartDate(){
|
|
|
|
|
|
return new Date(StartDate);
|
|
|
|
|
|
}
|
|
|
|
|
|
public Date getChangeDate(){
|
|
|
|
|
|
return new Date(ChangeDate);
|
|
|
|
|
|
}
|
2023-09-17 22:13:42 +03:00
|
|
|
|
}
|