field values date change

main
Said Gedik 2024-07-05 20:31:52 +02:00
parent e643c6c71a
commit 99907146ad
2 changed files with 58 additions and 29 deletions

View File

@ -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.

View File

@ -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<String> 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<String> 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());
}
}
}