Merge branch 'performance'

main
Manuel Tauber 2024-06-04 12:26:25 +02:00
commit 6b742e9f13
1 changed files with 64 additions and 70 deletions

View File

@ -31,7 +31,7 @@ import com.nttdata.calender.errorhandling.ErrorTypes.ValidationError;
public class Change {
private Query queryChange;
private RemedyJavaAPI api;
private final static String formName = "ASF:WI_TAS_Paket";
private final static String formName = "ASF:WI_TAS_PaketJChangeJPackage";
/**
* Constructor for the {@link Change} class which gets autowired with the
@ -43,33 +43,35 @@ public class Change {
public Change(RemedyJavaAPI api) {
this.api = api;
this.queryChange = new Query.QueryBuilder(formName)
.addFieldId("ChangeNr", 1000000182)
.addFieldId("SupportGroup", 1000000015)
.addFieldId("ChangeNr", 1100000182)
.addFieldId("SupportGroup", 1100000015)
.addFieldId("ManagerGroup", 1000003229)
.addFieldId("State", 7)
.addFieldId("PackageInstanceId", 179)
.addFieldId("ResourceName", 1000000000)
.addFieldId("D1", 1000000349)
.addFieldId("D2", 1000000350)
.addFieldId("D3", 666000350)
.addFieldId("D4", 1000000364)
.addFieldId("StatusReason", 1000000150)
.addFieldId("State", 666100007)
.addFieldId("PackageInstanceId", 666100179)
.addFieldId("ResourceName", 1100000000)
.addFieldId("D1", 1000000349)
.addFieldId("D2", 1100000350)
.addFieldId("D3", 666100350)
.addFieldId("D4", 1100000364)
.addFieldId("StatusReason", 1000000150)
.addFieldId("ApprovalStatus", 1000003264)
.addFieldId("CoordinatorSg", 1000003229)
.addFieldId("CoordinatorSg", 1000003229) // ?
.addFieldId("CoordinatorSgId", 1000003234)
.addFieldId("ChangeCoordinator", 1000003230)
.addFieldId("SupportGroupId", 1000000079)
.addFieldId("SupportGroupId", 1100000079)
.addFieldId("ProviderCluster", 610020002)
.addFieldId("ChangeImplementer", 610023230)
.addFieldId("ChangeImplementerLogin", 610023231)
.addFieldId("ChangeImplementerPersonId", 610023232)
.addFieldId("ChangeImplementerPersonId", 610023232)
.addFieldId("PackageType", 670031016)
.addFieldId("Contract", 670031002)
.addFieldId("PlanTimeHours", 666000009)
.addFieldId("PlanTimeMinutes", 666000010)
.addFieldId("Approval", 1000003278)
.addFieldId("PlanTimeHours", 666100009)
.addFieldId("PlanTimeMinutes", 666100001)
.addFieldId("Approval", 1000003278)
.addFieldId("ApprovalProcessName", 301322300)
.addFieldId("CurrentStageNumber", 301541700)
.addFieldId("PackageName", 200000020)
.addFieldId("OriginalRequestID", 666100000)
.build();
}
@ -87,95 +89,85 @@ public class Change {
*/
public ChangeResponse get(ChangeRequest request) throws ARException, NotFoundError, ValidationError {
long startTime = System.currentTimeMillis();
LoggerTemplates log = new LoggerTemplates(api);
var peopleFullName = processPeopleInfo(request);
var filter = request.getFilter();
for (var v : filter.getFilterElement()) {
System.out.println(v.getFilter() + ", " + v.getColumn() +", " + v.getCriteria());
System.out.println(v.getFilter() + ", " + v.getColumn() + ", " + v.getCriteria());
}
var qualifier = filter.constructQualifier(queryChange, api);
SortInfo sort = request.constructSortInfo(queryChange);
log.initLog("getChanges", api.getUser()); // Logging
var entries = api.queryFieldsById(qualifier, this.queryChange.getFieldIds(),
this.queryChange.getFormName(),
sort, request.getSliceStart(),
request.getSliceEnd());
log.qualifierLog(queryChange.getFormName(), qualifier); // Logging
System.out.println(qualifier);
var entriesSize = api.getFormSize(qualifier, this.queryChange.getFormName());
var changes = new ArrayList<ChangeItem>();
System.out.println("###ABGERUFEN");
for (var entry : entries) {
var change = new ChangeItem(entry.getEntryId());
for (var entry : entries) {
var change = new ChangeItem(getValueStringByID(entry, "OriginalRequestID"));
boolean approval = getValueStringByID(entry, "Approval").equals("0") ? true : false;
// if (approval) {
// var queryApproval = new Query.QueryBuilder("CHG:ChangeAPDetailSignature")
// .addFieldId("Approvers", 13207).build();
if (approval) {
var queryApproval = new Query.QueryBuilder("CHG:ChangeAPDetailSignature")
.addFieldId("Approvers", 13207).build();
// String qual = "(\'1000000182\' = \"" + getValueStringByID(entry, "ChangeNr")
// + "\") AND (\'10000\' = \""
// + getValueStringByID(entry, "ApprovalProcessName")
// + "\") AND (\'13207\' LIKE \"%" + api.getUser() + "%\")";
// var queryApprovalProcessName = api.queryFieldsById(qual,
// queryApproval.getFieldIds(), queryApproval.getFormName(), sort, 0, 0);
String qual = "(\'1000000182\' = \"" + getValueStringByID(entry, "ChangeNr")
+ "\") AND (\'10000\' = \""
+ getValueStringByID(entry, "ApprovalProcessName")
+ "\") AND (\'13207\' LIKE \"%" + api.getUser() + "%\")";
// log.qualifierLog(queryApproval.getFormName(), qual);
var queryApprovalProcessName = api.queryFieldsById(qual,
queryApproval.getFieldIds(), queryApproval.getFormName(), sort, 0, 0);
log.qualifierLog(queryApproval.getFormName(), qual);
// if (!queryApprovalProcessName.isEmpty() && queryApprovalProcessName != null
// && queryApprovalProcessName.size() > 0)
// change.setApproval(true);
// else
// change.setApproval(false);
if (!queryApprovalProcessName.isEmpty() && queryApprovalProcessName != null
&& queryApprovalProcessName.size() > 0)
change.setApproval(true);
else
change.setApproval(false);
// }
if(approval){
change.setApproval(true);
}else{
change.setApproval(false);
}
change.setChangeNr(getValueStringByID(entry, "ChangeNr"));
change.setSupportGroup(getValueStringByID(entry, "SupportGroup"));
change.setStatusReason(getValueStringByID(entry, "StatusReason"));
if(Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 10 || Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 9){
if(Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 10){
if(change.getStatusReason().equals("9000")){
if (Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1) == 10
|| Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue)
.orElse(-1) == 9) {
if (Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue)
.orElse(-1) == 10) {
if (change.getStatusReason().equals("9000")) {
change.setState(10);
}else{
} else {
change.setState(101);
}
}
if(Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue).orElse(-1)== 9){
// System.out.println("\n++++++++"+getValueStringByID(entry, "CurrentStageNumber"));
if(getValueStringByID(entry, "CurrentStageNumber").equals("1")){
if (Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue)
.orElse(-1) == 9) {
// System.out.println("\n++++++++"+getValueStringByID(entry,
// "CurrentStageNumber"));
if (getValueStringByID(entry, "CurrentStageNumber").equals("1")) {
change.setState(9);
}else{
} else {
change.setState(91);
}
}
}else{
} else {
change.setState(Optional.ofNullable(getValue(entry, "State"))
.map(Value::getIntValue)
.orElse(-1));
.map(Value::getIntValue)
.orElse(-1));
}
// System.out.println("\nStatus: "+change.getState());
change.setPackageInstanceId(getValueStringByID(entry, "PackageInstanceId"));
change.setResourceName(getValueStringByID(entry, "ResourceName"));
change.setD1(timestampToDateById(entry, "D1"));
change.setD2(timestampToDateById(entry, "D2"));
@ -196,21 +188,23 @@ public class Change {
.map(Object::toString)
.filter(peopleFullName::equals)
.isPresent());
// change.setPackageName(queryPackageName(getValueStringByID(entry, "PackageType").toString()));
var ptMinutes = getValueStringByID(entry, "PlanTimeMinutes").isEmpty() ? "00"
: getValueStringByID(entry, "PlanTimeMinutes");
var ptHours = getValueStringByID(entry, "PlanTimeHours").isEmpty() ? "00"
: getValueStringByID(entry, "PlanTimeHours");
change.setPlanTime(convertPlanTime(ptHours, ptMinutes));
// change.setPackageName(queryPackageName(getValueStringByID(entry, "PackageType").toString()));
change.setPackageName(getValueStringByID(entry, "PackageName"));
changes.add(change);
}
System.out.println("###FERTIG");
System.out.println(entries.size());
api.freeImpersonatedUser();
long endTime = System.currentTimeMillis();
long duration = (endTime - startTime);
double durationInSeconds = duration / 1000.0;
System.out.println("\n\nFetching Changes took " + durationInSeconds + " seconds.");
return new ChangeResponse(entriesSize, changes);
}
@ -360,12 +354,12 @@ public class Change {
.queryFieldsById("\'InstanceId_Package\' = \"" + packageType + "\"",
queryPackage.getFieldIds(), queryPackage.getFormName(), null, 0, 0);
Entry packageName = null;
if (packageNameList != null && !packageNameList.isEmpty()) {
packageName = packageNameList.get(0);
return packageName.get(queryPackage.getFieldId("PackageName")).toString();
}
return "";
}