Merge branch 'develop' of https://github.com/Kitzanos/GEPAFIN-BE into feature/GEPAFINBE-143

This commit is contained in:
rajesh
2025-01-24 11:53:37 +05:30
2 changed files with 46 additions and 8 deletions

View File

@@ -8,7 +8,6 @@ import net.gepafin.tendermanagement.entities.ApplicationEntity;
import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity; import net.gepafin.tendermanagement.entities.ApplicationEvaluationEntity;
import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity; import net.gepafin.tendermanagement.entities.AssignedApplicationsEntity;
import net.gepafin.tendermanagement.entities.CompanyEntity; import net.gepafin.tendermanagement.entities.CompanyEntity;
import net.gepafin.tendermanagement.entities.FaqEntity;
import net.gepafin.tendermanagement.entities.UserEntity; import net.gepafin.tendermanagement.entities.UserEntity;
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum; import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
import net.gepafin.tendermanagement.enums.AssignedApplicationEnum; import net.gepafin.tendermanagement.enums.AssignedApplicationEnum;
@@ -80,8 +79,13 @@ public class AssignedApplicationsDao {
log.info("Assigning application to pre-Instructor with details: {}", applicationId, userId); log.info("Assigning application to pre-Instructor with details: {}", applicationId, userId);
AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null); AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
if (assignedApplications != null) { if (assignedApplications != null && assignedApplications.getUserId().equals(userId)) {
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_ALREADY_ASSIGNED)); throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.APPLICATION_ALREADY_ASSIGNED));
} else if(assignedApplications != null) {
assignedApplications = reassignApplication(userId, assignedByUser, assignedApplications);
AssignedApplicationsResponse assignApplicationToInstructorResponse = convertEntityToResponse(assignedApplications);
log.info("Application re-assigned succesfully {}", assignApplicationToInstructorResponse);
return assignApplicationToInstructorResponse;
} }
ApplicationEntity application = applicationService.validateApplication(applicationId); ApplicationEntity application = applicationService.validateApplication(applicationId);
@@ -107,6 +111,30 @@ public class AssignedApplicationsDao {
return assignApplicationToInstructorResponse; return assignApplicationToInstructorResponse;
} }
private AssignedApplicationsEntity reassignApplication(Long userId, UserEntity assignedByUser,
AssignedApplicationsEntity assignedApplication) {
AssignedApplicationsEntity oldAssignedApplicationEntity = Utils.getClonedEntityForData(assignedApplication);
setIfUpdated(assignedApplication::getAssignedBy, assignedApplication::setAssignedBy, assignedByUser.getId());
setIfUpdated(assignedApplication::getUserId, assignedApplication::setUserId, userId);
assignedApplication.setAssignedAt(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplication.getId());
if(entityOptional.isPresent()) {
ApplicationEvaluationEntity oldApplicationEvaluationEntity = Utils.getClonedEntityForData(entityOptional.get());
setIfUpdated(entityOptional.get()::getUserId, entityOptional.get()::setUserId, userId);
applicationEvaluationRepository.save(entityOptional.get());
/** This code is responsible for adding a version history log for the "Create Application" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEvaluationEntity).newData(entityOptional.get()).build());
};
assignedApplication = assignedApplicationsRepository.save(assignedApplication);
/** This code is responsible for adding a version history log for the "Create Application" operation. **/
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldAssignedApplicationEntity).newData(assignedApplication).build());
return assignedApplication;
}
public AssignedApplicationsEntity createAssignmentEntity(ApplicationEntity application, Long userId, UserEntity assignedByUser, AssignedApplicationsRequest assignedApplicationsRequest) { public AssignedApplicationsEntity createAssignmentEntity(ApplicationEntity application, Long userId, UserEntity assignedByUser, AssignedApplicationsRequest assignedApplicationsRequest) {
AssignedApplicationsEntity assignApplication = new AssignedApplicationsEntity(); AssignedApplicationsEntity assignApplication = new AssignedApplicationsEntity();
assignApplication.setApplication(application); assignApplication.setApplication(application);

View File

@@ -465,17 +465,27 @@ public class FormDao {
String value = (String) formFieldMap.get(fieldId); String value = (String) formFieldMap.get(fieldId);
FieldValidatorBean fieldValidatorBean = Utils.convertSourceObjectToDestinationObject(contentResponseBean.getValidators(), FieldValidatorBean.class); FieldValidatorBean fieldValidatorBean = Utils.convertSourceObjectToDestinationObject(contentResponseBean.getValidators(), FieldValidatorBean.class);
validator String fieldValue = getFieldValue(contentResponseBean);
.isRequired(value,fieldValidatorBean.getIsRequired(),contentResponseBean.getLabel()); validator.isRequired(value, fieldValidatorBean.getIsRequired(), fieldValue);
}); });
if (Boolean.TRUE.equals(isSendValidationError)) { if (Boolean.TRUE.equals(isSendValidationError)) {
validator.validate(); validator.validate();
} }
if (validator.hasErrors()) { return !validator.hasErrors();
return false;
}
return true;
} }
private String getFieldValue(ContentResponseBean contentResponseBean) {
// Use Optional with pattern matching for type checks
return contentResponseBean.getSettings().stream().filter(setting -> "label".equals(setting.getName()) && setting.getValue() != null)
.map(setting -> {
if (setting.getValue() instanceof String value) {
return value.trim();
} else {
return String.valueOf(setting.getValue()).trim();
}
}).filter(value -> !value.isEmpty()).findFirst().orElse(contentResponseBean.getId());
}
public String validateVatNumber(String value,String customRule,String fieldId){ public String validateVatNumber(String value,String customRule,String fieldId){
String error=null; String error=null;