updated code

This commit is contained in:
rajesh
2024-11-13 11:27:41 +05:30
parent 6594359055
commit c1fa10d37e
2 changed files with 86 additions and 50 deletions

View File

@@ -9,6 +9,7 @@ import jakarta.servlet.http.HttpServletRequest;
import net.gepafin.tendermanagement.config.Translator;
import net.gepafin.tendermanagement.constants.GepafinConstant;
import net.gepafin.tendermanagement.entities.*;
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
import net.gepafin.tendermanagement.enums.*;
import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequest;
import net.gepafin.tendermanagement.model.request.ApplicationAmendmentRequestBean;
@@ -18,9 +19,8 @@ import net.gepafin.tendermanagement.model.response.*;
import net.gepafin.tendermanagement.repositories.*;
import net.gepafin.tendermanagement.service.*;
import net.gepafin.tendermanagement.util.DateTimeUtil;
import net.gepafin.tendermanagement.util.Validator;
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
import net.gepafin.tendermanagement.util.Utils;
import net.gepafin.tendermanagement.util.Validator;
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
@@ -29,10 +29,8 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Component;
import java.time.temporal.ChronoUnit;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
@@ -175,7 +173,8 @@ public class ApplicationAmendmentRequestDao {
try {
List<Map<String, Object>> dataList = objectMapper.readValue(
content, new TypeReference<List<Map<String, Object>>>() {});
content, new TypeReference<List<Map<String, Object>>>() {
});
for (Map<String, Object> data : dataList) {
if (target.equals(data.get("name"))) {
@@ -294,26 +293,54 @@ public class ApplicationAmendmentRequestDao {
applicationAmendmentRequestResponse.setProtocolNumber(protocolNumber);
applicationAmendmentRequestResponse.setBeneficiaryName(beneficiaryName);
List<ApplicationFormEntity> forms = applicationFormRepository.findByApplicationId(applicationId);
List<AmendmentFormFieldResponse> allFormFields = new ArrayList<>();
for (ApplicationFormEntity form : forms) {
String content = form.getForm().getContent();
List<Map<String, Object>> result = filterByName(content, "fileupload");
allFormFields.addAll(getIdAndLabelFromResult(result));
}
Map<String, String> fieldIdToLabelMap = allFormFields.stream()
.collect(Collectors.toMap(AmendmentFormFieldResponse::getFieldId, AmendmentFormFieldResponse::getLabel));
String formFieldsJson = applicationAmendmentRequestEntity.getFormFields();
List<AmendmentFormFieldResponse> formFields = Utils.convertJsonToList(
formFieldsJson, new TypeReference<List<AmendmentFormFieldResponse>>() {});
formFieldsJson, new TypeReference<List<AmendmentFormFieldResponse>>() {
});
for (AmendmentFormFieldResponse formField : formFields) {
String label = fieldIdToLabelMap.get(formField.getFieldId());
formField.setLabel(label);
formField.setSelected(true);
}
// Set the filtered formFields in the response
applicationAmendmentRequestResponse.setFormFields(formFields);
String applicationFormFieldsJson = applicationAmendmentRequestEntity.getFormFields();
List<ApplicationFormFieldResponseBean> applicationFormFields = Utils.convertJsonToList(
formFieldsJson, new TypeReference<List<ApplicationFormFieldResponseBean>>() {});
formFieldsJson, new TypeReference<List<ApplicationFormFieldResponseBean>>() {
});
List<ApplicationFormFieldResponseBean> fileDetailResponses = new ArrayList<>();
for (ApplicationFormFieldResponseBean field : applicationFormFields) {
ApplicationFormFieldResponseBean responseBean = new ApplicationFormFieldResponseBean();
responseBean.setFieldId(field.getFieldId());
responseBean.setApplicationFormId(field.getApplicationFormId());
responseBean.setId(field.getId());
responseBean.setCreatedDate(field.getCreatedDate());
responseBean.setUpdatedDate(field.getUpdatedDate());
Optional<ApplicationFormFieldEntity> formFieldEntity = Optional.empty();
for (ApplicationFormEntity form : forms) {
formFieldEntity = applicationFormFieldRepository
.findByApplicationFormIdAndFieldId(form.getId(), field.getFieldId());
if (formFieldEntity.isPresent()) {
// Set the applicationFormId from the matching form
responseBean.setApplicationFormId(form.getId());
responseBean.setId(formFieldEntity.get().getId());
responseBean.setCreatedDate(formFieldEntity.get().getCreatedDate());
responseBean.setUpdatedDate(formFieldEntity.get().getUpdatedDate());
break;
}
}
// Check if fieldValue is not null and is a String
if (field.getFieldValue() instanceof String && field.getFieldValue() != null && !((String) field.getFieldValue()).isBlank()) {
@@ -563,7 +590,8 @@ public class ApplicationAmendmentRequestDao {
formFieldsList = new ArrayList<>(); // If no existing data, start with an empty list
} else {
// Step 2: Deserialize the existing JSON into a list of objects
formFieldsList = new ObjectMapper().readValue(existingFormFieldsJson, new TypeReference<List<ApplicationFormFieldRequestBean>>() {});
formFieldsList = new ObjectMapper().readValue(existingFormFieldsJson, new TypeReference<List<ApplicationFormFieldRequestBean>>() {
});
}
// Step 3: Check if the field ID already exists in the list and update it
@@ -643,7 +671,8 @@ public class ApplicationAmendmentRequestDao {
if (statuses != null && !statuses.isEmpty()) {
List<String> statusStrings = statuses.stream().map(Enum::name).collect(Collectors.toList());
applicationAmendmentRequestEntity = applicationAmendmentRequestRepository.findByApplicationIdAndStatusInAndIsDeletedFalse(application.getId(), statusStrings);
} if(!applicationAmendmentRequestEntity.isEmpty()) {
}
if (!applicationAmendmentRequestEntity.isEmpty()) {
ApplicationAmendmentRequestEntity applicationAmendmentRequest = applicationAmendmentRequestEntity.get(0);
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(applicationAmendmentRequest.getApplicationEvaluationEntity().getId());
if (entityOptional.isPresent()) {
@@ -652,7 +681,8 @@ public class ApplicationAmendmentRequestDao {
} else {
validator.validateUserId(request, entityOptional.get().getAssignedApplicationsEntity().getApplication().getUserId());
}
}}
}
}
List<ApplicationAmendmentRequestResponse> response = new ArrayList<>();
if (applicationAmendmentRequestEntity != null) {
response = applicationAmendmentRequestEntity.stream()
@@ -661,6 +691,7 @@ public class ApplicationAmendmentRequestDao {
}
return response;
}
public ApplicationAmendmentRequestResponse updateApplicationAmendmentStatus(
Long id, ApplicationAmendmentRequestEnum statusTypeEnum) {
@@ -675,6 +706,7 @@ public class ApplicationAmendmentRequestDao {
log.info("Amendment status updated successfully: {}", response);
return response;
}
public void sendReminderEmail(Long amendmentId) {
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(amendmentId)
.orElseThrow(() -> new ResourceNotFoundException(Status.NOT_FOUND,

View File

@@ -1720,4 +1720,8 @@
<sqlFile dbms="postgresql"
path="db/dump/update_system_email_template_for_notification_mail_05_11_2024_4.sql"/>
</changeSet>
<changeSet id="13-11-2024_1" author="Rajesh Khore">
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_email"/>
<dropNotNullConstraint tableName="application_amendment_request" columnName="is_notification"/>
</changeSet>
</databaseChangeLog>