diff --git a/municipal-services/property-services/src/main/java/org/egov/pt/service/WorkflowService.java b/municipal-services/property-services/src/main/java/org/egov/pt/service/WorkflowService.java index ca3b7de1cd9..d10d417af36 100644 --- a/municipal-services/property-services/src/main/java/org/egov/pt/service/WorkflowService.java +++ b/municipal-services/property-services/src/main/java/org/egov/pt/service/WorkflowService.java @@ -1,10 +1,11 @@ package org.egov.pt.service; +import java.util.Iterator; +import java.util.Map; import java.util.Optional; import org.egov.common.contract.request.RequestInfo; import org.egov.pt.config.PropertyConfiguration; -import org.egov.pt.models.Assessment; import org.egov.pt.models.Property; import org.egov.pt.models.enums.CreationReason; import org.egov.pt.models.enums.Status; @@ -22,7 +23,9 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; @Service public class WorkflowService { @@ -126,7 +129,32 @@ public State updateWorkflow(PropertyRequest request, CreationReason creationReas request.getProperty().setStatus(Status.INACTIVE); } else + { request.getProperty().setStatus(Status.fromValue(state.getApplicationStatus())); + ObjectNode objectNodeDetail; + + JsonNode additionalDetails = request.getProperty().getAdditionalDetails(); + if (null == additionalDetails || (null != additionalDetails && additionalDetails.isNull())) { + objectNodeDetail = mapper.createObjectNode(); + + } else { + + objectNodeDetail = (ObjectNode) additionalDetails; + } + + if(!objectNodeDetail.has("applicationStatus")) + { + objectNodeDetail.put("applicationStatus",state.getState()); + } + else + { + objectNodeDetail.remove("applicationStatus"); + objectNodeDetail.put("applicationStatus",state.getState()); + + } + request.getProperty().setAdditionalDetails(objectNodeDetail); + + } request.getProperty().getWorkflow().setState(state); return state; }