main
Said Gedik 2024-06-04 14:35:28 +02:00
parent 40d3e063df
commit 196a49de79
1 changed files with 70 additions and 64 deletions

View File

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