diff --git a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java index b9e52c8..acdc3aa 100644 --- a/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java +++ b/backend/src/main/java/com/nttdata/calender/api/KalenderRestController.java @@ -283,13 +283,16 @@ public class KalenderRestController { public ChangeUpdateRequest updateChange(@RequestBody ChangeUpdateRequest request, HttpServletRequest httpRequest) throws ARException, ValidationError { httpRequest.setAttribute("requestBody", request); - + String formName = (request.getState() == 0) ? "ASF:WI_TAS_Paket" : "CHG:Infrastructure Change"; httpRequest.setAttribute("formName", formName); - + change.modifyTimestamp(request); + httpRequest.setAttribute("listOfFieldValues", change.getListOfFieldValues()); + return request; } + /** * Updates the state based on the provided {@link StateChangeRequest} object. diff --git a/backend/src/main/java/com/nttdata/calender/changes/Change.java b/backend/src/main/java/com/nttdata/calender/changes/Change.java index 66947c8..f0a0dfb 100644 --- a/backend/src/main/java/com/nttdata/calender/changes/Change.java +++ b/backend/src/main/java/com/nttdata/calender/changes/Change.java @@ -4,6 +4,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; +import java.util.List; import java.util.Optional; import java.util.TimeZone; @@ -32,6 +33,7 @@ public class Change { private Query queryChange; private RemedyJavaAPI api; private final static String formName = "ASF:WI_TAS_Paket"; + private ArrayList listOfFieldValues; /** * Constructor for the {@link Change} class which gets autowired with the @@ -72,6 +74,17 @@ public class Change { .addFieldId("CurrentStageNumber", 301541700) .addFieldId("Plantime", 666000001) .build(); + this.listOfFieldValues = new ArrayList<>(); + + } + + /** + * Returns the list of field values. + * + * @return listOfFieldValues + */ + public List getListOfFieldValues() { + return new ArrayList<>(listOfFieldValues); // Return a copy to ensure immutability } /** @@ -122,7 +135,7 @@ public class Change { + "\") AND (\'10000\' = \"" + getValueStringByID(entry, "ApprovalProcessName") + "\") AND (\'13207\' LIKE \"%" + api.getUser() + "%\")"; - + var queryApprovalProcessName = api.queryFieldsById(qual, queryApproval.getFieldIds(), queryApproval.getFormName(), sort, 0, 0); @@ -138,28 +151,32 @@ public class Change { 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){ - if(getValueStringByID(entry, "CurrentStageNumber").equals("1")){ + if (Optional.ofNullable(getValue(entry, "State")).map(Value::getIntValue) + .orElse(-1) == 9) { + 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)); } - + change.setPackageInstanceId(getValueStringByID(entry, "PackageInstanceId")); change.setResourceName(getValueStringByID(entry, "ResourceName")); change.setD1(timestampToDateById(entry, "D1")); @@ -246,7 +263,6 @@ public class Change { return totalHours; } - /** * Returns the {@link Value} of an entry based on the provided description. * @@ -302,27 +318,37 @@ public class Change { * @throws ValidationError */ public void modifyTimestamp(ChangeUpdateRequest request) throws ARException, ValidationError { + // Clear the list before processing a new request + listOfFieldValues.clear(); + String entryId = request.getResourceId(); String d2 = request.getD2(); var dateConverter = new DateConverter(); int state = request.getState(); String changeNr = request.getChangeNr(); - + var ts = dateConverter.convertTimestamp(d2); if (state == 0) { - Query query = new Query.QueryBuilder("ASF:WI_TAS_Paket") - .addFieldValue("d2", 1000000350, new Value(ts)).build(); - api.modifyEntry(entryId, query); + Query query = new Query.QueryBuilder("ASF:WI_TAS_Paket") + .addFieldValue("d2", 1000000350, new Value(ts)).build(); + collectFieldValues(query); // Collect field values + api.modifyEntry(entryId, query); } else { - Query queryInfrastructureChange = new Query.QueryBuilder("CHG:Infrastructure Change") - .addFieldValue("d2", 1000000350, new Value(ts)).build(); - - var change = api.queryFieldsById("\'Infrastructure Change ID\' = \"" + changeNr + "\"", - queryInfrastructureChange.getFieldIds(), - queryInfrastructureChange.getFormName(), null, 0, 0); - - api.modifyEntry(change.get(0).getEntryId(), queryInfrastructureChange); + Query queryInfrastructureChange = new Query.QueryBuilder("CHG:Infrastructure Change") + .addFieldValue("d2", 1000000350, new Value(ts)).build(); + collectFieldValues(queryInfrastructureChange); // Collect field values + + var change = api.queryFieldsById("\'Infrastructure Change ID\' = \"" + changeNr + "\"", + queryInfrastructureChange.getFieldIds(), + queryInfrastructureChange.getFormName(), null, 0, 0); + + api.modifyEntry(change.get(0).getEntryId(), queryInfrastructureChange); } - - } + } + + private void collectFieldValues(Query query) { + for (var entry : query.getFieldValues()) { + listOfFieldValues.add(entry.getFieldId() + ": " + entry.getValue()); + } + } } \ No newline at end of file