Resolve Conflict
This commit is contained in:
@@ -241,7 +241,7 @@ public class GepafinConstant {
|
|||||||
public static final String APPLICATION_EVALUATION_NOT_FOUND = "application.evaluation.not.found";
|
public static final String APPLICATION_EVALUATION_NOT_FOUND = "application.evaluation.not.found";
|
||||||
public static final String APPLICATION_EVALUATION_STATUS_UPDATED_SUCCESSFULLY = "application.evaluation.status.updated.successfully";
|
public static final String APPLICATION_EVALUATION_STATUS_UPDATED_SUCCESSFULLY = "application.evaluation.status.updated.successfully";
|
||||||
public static final String ASSIGNED_APPLICATION_NOT_FOUND_WITH_ID_MSG = "assigned.application.not.found.with.id";
|
public static final String ASSIGNED_APPLICATION_NOT_FOUND_WITH_ID_MSG = "assigned.application.not.found.with.id";
|
||||||
|
public static final String EITHER_APPLICATION_OR_ASSIGNED_APPLICATION_ID_REQUIRED_MSG = "either.application.or.assigned.application.id.required";
|
||||||
|
|
||||||
public static final String APPLICATION_ASSIGNED= "application.assigned.success.msg";
|
public static final String APPLICATION_ASSIGNED= "application.assigned.success.msg";
|
||||||
public static final String APPLICATION_ALREADY_ASSIGNED = "application.already.assigned.msg";
|
public static final String APPLICATION_ALREADY_ASSIGNED = "application.already.assigned.msg";
|
||||||
|
|||||||
@@ -4,9 +4,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
|
|||||||
import net.gepafin.tendermanagement.config.Translator;
|
import net.gepafin.tendermanagement.config.Translator;
|
||||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
import net.gepafin.tendermanagement.entities.*;
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
import net.gepafin.tendermanagement.enums.ApplicationEvaluationStatusTypeEnum;
|
import net.gepafin.tendermanagement.enums.*;
|
||||||
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
|
||||||
import net.gepafin.tendermanagement.enums.DocumentTypeEnum;
|
|
||||||
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
|
import net.gepafin.tendermanagement.model.request.ApplicationEvaluationRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.ChecklistRequest;
|
import net.gepafin.tendermanagement.model.request.ChecklistRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.CriteriaRequest;
|
import net.gepafin.tendermanagement.model.request.CriteriaRequest;
|
||||||
@@ -57,10 +55,11 @@ public class ApplicationEvaluationDao {
|
|||||||
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
private CriteriaFormFieldRepository criteriaFormFieldRepository;
|
||||||
|
|
||||||
|
|
||||||
private ApplicationEvaluationEntity convertToEntity(UserEntity user, ApplicationEvaluationRequest req,Long applicationId) {
|
private ApplicationEvaluationEntity convertToEntity(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
||||||
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
||||||
ApplicationEntity application = applicationService.validateApplication(applicationId);
|
|
||||||
AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
|
AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplciationId).orElse(null);
|
||||||
|
ApplicationEntity application = applicationService.validateApplication(assignedApplications.getApplication().getId());
|
||||||
entity.setApplicationId(application.getId());
|
entity.setApplicationId(application.getId());
|
||||||
entity.setAssignedApplicationsEntity(assignedApplications);
|
entity.setAssignedApplicationsEntity(assignedApplications);
|
||||||
entity.setUserId(user.getId());
|
entity.setUserId(user.getId());
|
||||||
@@ -94,21 +93,32 @@ public class ApplicationEvaluationDao {
|
|||||||
private void populateBasicDetails(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response) {
|
private void populateBasicDetails(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response) {
|
||||||
response.setId(entity.getId());
|
response.setId(entity.getId());
|
||||||
response.setApplicationId(entity.getApplicationId());
|
response.setApplicationId(entity.getApplicationId());
|
||||||
AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(entity.getApplicationId()).orElse(null);
|
|
||||||
|
List<AssignedApplicationsEntity> assignedApplicationsList =
|
||||||
|
assignedApplicationsRepository.findAllByApplicationId(entity.getApplicationId());
|
||||||
|
|
||||||
|
if (assignedApplicationsList.isEmpty()) {
|
||||||
|
response.setAssignedApplicationId(null);
|
||||||
|
} else {
|
||||||
|
AssignedApplicationsEntity assignedApplications = assignedApplicationsList.get(0);
|
||||||
response.setAssignedApplicationId(assignedApplications.getId());
|
response.setAssignedApplicationId(assignedApplications.getId());
|
||||||
|
}
|
||||||
|
|
||||||
response.setNote(entity.getNote());
|
response.setNote(entity.getNote());
|
||||||
response.setStatus(ApplicationEvaluationStatusTypeEnum.valueOf(entity.getStatus()));
|
response.setStatus(ApplicationEvaluationStatusTypeEnum.valueOf(entity.getStatus()));
|
||||||
response.setCreatedDate(entity.getCreatedDate());
|
response.setCreatedDate(entity.getCreatedDate());
|
||||||
response.setUpdatedDate(entity.getUpdatedDate());
|
response.setUpdatedDate(entity.getUpdatedDate());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void setCriteriaResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
private void setCriteriaResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
||||||
List<CriteriaResponse> criteriaResponsesFromEntity = entity.getCriteria() != null
|
List<CriteriaResponse> criteriaResponsesFromEntity = entity.getCriteria() != null
|
||||||
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {})
|
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
||||||
|
})
|
||||||
: new ArrayList<>();
|
: new ArrayList<>();
|
||||||
|
|
||||||
List<CriteriaResponse> criteriaResponsesFromDB = getCriteriaResponse(entity.getApplicationId());
|
List<CriteriaResponse> criteriaResponsesFromDB = getCriteriaResponse(entity.getApplicationId());
|
||||||
addMissingCriteriaResponses(criteriaResponsesFromEntity, criteriaResponsesFromDB,entity.getApplicationId());
|
addMissingCriteriaResponses(criteriaResponsesFromEntity, criteriaResponsesFromDB, entity.getApplicationId());
|
||||||
criteriaResponsesFromEntity.forEach(criteriaResponse -> {
|
criteriaResponsesFromEntity.forEach(criteriaResponse -> {
|
||||||
EvaluationCriteriaEntity matchingEvaluationCriteria = evaluationCriterias.stream()
|
EvaluationCriteriaEntity matchingEvaluationCriteria = evaluationCriterias.stream()
|
||||||
.filter(evaluationCriteria -> evaluationCriteria.getId().equals(criteriaResponse.getId()))
|
.filter(evaluationCriteria -> evaluationCriteria.getId().equals(criteriaResponse.getId()))
|
||||||
@@ -126,7 +136,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
response.setCriteria(criteriaResponsesFromEntity);
|
response.setCriteria(criteriaResponsesFromEntity);
|
||||||
}
|
}
|
||||||
private void addMissingCriteriaResponses(List<CriteriaResponse> criteriaResponsesFromEntity, List<CriteriaResponse> criteriaResponsesFromDB,Long applicationId) {
|
|
||||||
|
private void addMissingCriteriaResponses(List<CriteriaResponse> criteriaResponsesFromEntity, List<CriteriaResponse> criteriaResponsesFromDB, Long applicationId) {
|
||||||
Set<Long> existingCriteriaIds = criteriaResponsesFromEntity.stream()
|
Set<Long> existingCriteriaIds = criteriaResponsesFromEntity.stream()
|
||||||
.map(CriteriaResponse::getId)
|
.map(CriteriaResponse::getId)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
@@ -139,6 +150,7 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<CriteriaMappedField> getMappedFieldsForCriteria(Long evaluationCriteriaId, Long applicationId) {
|
private List<CriteriaMappedField> getMappedFieldsForCriteria(Long evaluationCriteriaId, Long applicationId) {
|
||||||
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository
|
List<CriteriaFormFieldEntity> criteriaFormFields = criteriaFormFieldRepository
|
||||||
.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaId);
|
.findByEvaluationCriteriaIdAndIsDeletedFalse(evaluationCriteriaId);
|
||||||
@@ -190,7 +202,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
private void setChecklistResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
private void setChecklistResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
||||||
List<ChecklistResponse> checklistResponsesFromEntity = entity.getChecklist() != null
|
List<ChecklistResponse> checklistResponsesFromEntity = entity.getChecklist() != null
|
||||||
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {})
|
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||||
|
})
|
||||||
: new ArrayList<>();
|
: new ArrayList<>();
|
||||||
|
|
||||||
List<ChecklistResponse> checklistResponsesFromDB = getChecklistResponse(entity.getApplicationId());
|
List<ChecklistResponse> checklistResponsesFromDB = getChecklistResponse(entity.getApplicationId());
|
||||||
@@ -224,7 +237,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
private void setFieldResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<ApplicationFormEntity> applicationFormEntities) {
|
private void setFieldResponses(ApplicationEvaluationEntity entity, ApplicationEvaluationResponse response, List<ApplicationFormEntity> applicationFormEntities) {
|
||||||
List<FieldResponse> fieldResponsesFromEntity = entity.getFile() != null
|
List<FieldResponse> fieldResponsesFromEntity = entity.getFile() != null
|
||||||
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {})
|
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
||||||
|
})
|
||||||
: new ArrayList<>();
|
: new ArrayList<>();
|
||||||
List<FieldResponse> fieldResponsesFromDB = getFieldResponses(entity.getApplicationId());
|
List<FieldResponse> fieldResponsesFromDB = getFieldResponses(entity.getApplicationId());
|
||||||
addMissingFieldResponses(fieldResponsesFromEntity, fieldResponsesFromDB);
|
addMissingFieldResponses(fieldResponsesFromEntity, fieldResponsesFromDB);
|
||||||
@@ -305,46 +319,67 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void setApplicationDetails(ApplicationEvaluationResponse response, ApplicationEvaluationEntity entity) {
|
private void setApplicationDetails(ApplicationEvaluationResponse response, ApplicationEvaluationEntity entity) {
|
||||||
ApplicationEntity application = applicationService.validateApplication(entity.getApplicationId() != null ? entity.getApplicationId(): null);
|
ApplicationEntity application = applicationService.validateApplication(entity.getApplicationId() != null ? entity.getApplicationId() : null);
|
||||||
UserEntity user = userService.validateUser(application.getUserId());
|
UserEntity user = userService.validateUser(application.getUserId());
|
||||||
|
|
||||||
CallEntity call = callRepository.findCallEntityByApplicationId(entity.getApplicationId());
|
CallEntity call = callRepository.findCallEntityByApplicationId(entity.getApplicationId());
|
||||||
|
|
||||||
String firstName = user.getFirstName() != null ? user.getFirstName() : "";
|
String firstName = user.getFirstName() != null ? user.getFirstName() : "";
|
||||||
String lastName = user.getLastName() != null ? user.getLastName() : "";
|
String lastName = user.getLastName() != null ? user.getLastName() : "";
|
||||||
|
|
||||||
String beneficiary = String.join(" ", firstName, lastName).trim();
|
String beneficiary = String.join(" ", firstName, lastName).trim();
|
||||||
|
response.setApplicationStatus(ApplicationStatusTypeEnum.valueOf(application.getStatus()));
|
||||||
response.setBeneficiary(beneficiary);
|
response.setBeneficiary(beneficiary);
|
||||||
response.setMinScore(call.getThreshold());
|
response.setMinScore(call.getThreshold()!=null?call.getThreshold():null);
|
||||||
response.setCallName(application.getCall().getName());
|
response.setCallName(application.getCall().getName()!=null?application.getCall().getName():null);
|
||||||
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
||||||
response.setSubmissionDate(application.getSubmissionDate()!= null ? application.getSubmissionDate(): null);
|
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
||||||
response.setEvaluationDate(application.getSubmissionDate()!= null ? application.getSubmissionDate().plusDays(30):null);
|
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ApplicationEvaluationResponse createOrUpdateApplicationEvaluation(UserEntity user, ApplicationEvaluationRequest req,Long applicationId) {
|
public ApplicationEvaluationResponse createOrUpdateApplicationEvaluation(UserEntity user, ApplicationEvaluationRequest req, Long assignedApplciationId) {
|
||||||
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationId);
|
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplciationId);
|
||||||
ApplicationEvaluationEntity entity;
|
ApplicationEvaluationEntity entity;
|
||||||
|
|
||||||
if (existingEntityOptional.isPresent()) {
|
if (existingEntityOptional.isPresent()) {
|
||||||
entity = existingEntityOptional.get();
|
entity = existingEntityOptional.get();
|
||||||
entity.setCriteria(Utils.convertObjectToJson(processCriteria(entity, req)));
|
entity.setCriteria(Utils.convertObjectToJson(filterNonNullCriteria(processCriteria(entity, req))));
|
||||||
entity.setChecklist(Utils.convertObjectToJson(processChecklist(entity, req)));
|
entity.setChecklist(Utils.convertObjectToJson(filterNonNullChecklist(processChecklist(entity, req))));
|
||||||
entity.setFile(Utils.convertObjectToJson(processField(entity, req)));
|
entity.setFile(Utils.convertObjectToJson(filterNonNullFields(processField(entity, req))));
|
||||||
entity.setIsDeleted(false);
|
entity.setIsDeleted(false);
|
||||||
setIfUpdated(entity::getNote, entity::setNote, req.getNote());
|
setIfUpdated(entity::getNote, entity::setNote, req.getNote());
|
||||||
} else {
|
} else {
|
||||||
entity = convertToEntity(user, req,applicationId);
|
entity = convertToEntity(user, req, assignedApplciationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationEvaluationEntity savedEntity = applicationEvaluationRepository.save(entity);
|
ApplicationEvaluationEntity savedEntity = applicationEvaluationRepository.save(entity);
|
||||||
return convertToResponse(savedEntity);
|
return convertToResponse(savedEntity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<ChecklistRequest> filterNonNullChecklist(List<ChecklistRequest> checklistRequests) {
|
||||||
|
return checklistRequests.stream()
|
||||||
|
.filter(request -> request.getValid() != null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<CriteriaRequest> filterNonNullCriteria(List<CriteriaRequest> criteriaRequests) {
|
||||||
|
return criteriaRequests.stream()
|
||||||
|
.filter(request -> request.getScore() != null && request.getValid() != null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FieldRequest> filterNonNullFields(List<FieldRequest> fieldRequests) {
|
||||||
|
return fieldRequests.stream()
|
||||||
|
.filter(request -> request.getValid() != null)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
private List<CriteriaRequest> processCriteria(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<CriteriaRequest> processCriteria(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
List<CriteriaResponse> existingCriteriaList = entity.getCriteria() != null ?
|
List<CriteriaResponse> existingCriteriaList = entity.getCriteria() != null
|
||||||
Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {}) : new ArrayList<>();
|
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
||||||
|
})
|
||||||
|
: new ArrayList<>();
|
||||||
|
|
||||||
Map<Long, CriteriaResponse> existingCriteriaMap = existingCriteriaList.stream()
|
Map<Long, CriteriaResponse> existingCriteriaMap = existingCriteriaList.stream()
|
||||||
.collect(Collectors.toMap(CriteriaResponse::getId, criteria -> criteria));
|
.collect(Collectors.toMap(CriteriaResponse::getId, criteria -> criteria));
|
||||||
@@ -358,8 +393,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
CriteriaResponse existingCriteria = existingCriteriaMap.get(incoming.getId());
|
CriteriaResponse existingCriteria = existingCriteriaMap.get(incoming.getId());
|
||||||
if (existingCriteria != null) {
|
if (existingCriteria != null) {
|
||||||
request.setScore(incoming.getScore() != null ? incoming.getScore() : existingCriteria.getScore());
|
request.setScore(incoming.getScore() != null ? incoming.getScore() : null);
|
||||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : existingCriteria.getValid());
|
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
})
|
})
|
||||||
@@ -384,8 +419,10 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<ChecklistRequest> processChecklist(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<ChecklistRequest> processChecklist(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
List<ChecklistResponse> existingChecklistList = entity.getChecklist() != null ?
|
List<ChecklistResponse> existingChecklistList = entity.getChecklist() != null
|
||||||
Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {}) : new ArrayList<>();
|
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||||
|
})
|
||||||
|
: new ArrayList<>();
|
||||||
|
|
||||||
Map<Long, ChecklistResponse> existingChecklistMap = existingChecklistList.stream()
|
Map<Long, ChecklistResponse> existingChecklistMap = existingChecklistList.stream()
|
||||||
.collect(Collectors.toMap(ChecklistResponse::getId, checklist -> checklist));
|
.collect(Collectors.toMap(ChecklistResponse::getId, checklist -> checklist));
|
||||||
@@ -397,8 +434,8 @@ public class ApplicationEvaluationDao {
|
|||||||
request.setValid(incoming.getValid());
|
request.setValid(incoming.getValid());
|
||||||
|
|
||||||
ChecklistResponse existingChecklist = existingChecklistMap.get(incoming.getId());
|
ChecklistResponse existingChecklist = existingChecklistMap.get(incoming.getId());
|
||||||
if (existingChecklist != null) {
|
if (existingChecklist != null && incoming.getValid() == null) {
|
||||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : existingChecklist.getValid());
|
request.setValid(null);
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
})
|
})
|
||||||
@@ -412,7 +449,7 @@ public class ApplicationEvaluationDao {
|
|||||||
.map(existing -> {
|
.map(existing -> {
|
||||||
ChecklistRequest request = new ChecklistRequest();
|
ChecklistRequest request = new ChecklistRequest();
|
||||||
request.setId(existing.getId());
|
request.setId(existing.getId());
|
||||||
request.setValid(existing.getValid());
|
request.setValid(existing.getValid() != null ? existing.getValid() : null);
|
||||||
return request;
|
return request;
|
||||||
})
|
})
|
||||||
.toList();
|
.toList();
|
||||||
@@ -422,8 +459,10 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private List<FieldRequest> processField(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<FieldRequest> processField(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
List<FieldResponse> existingFieldList = entity.getFile() != null ?
|
List<FieldResponse> existingFieldList = entity.getFile() != null
|
||||||
Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {}) : new ArrayList<>();
|
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
||||||
|
})
|
||||||
|
: new ArrayList<>();
|
||||||
|
|
||||||
Map<String, FieldResponse> existingFieldMap = existingFieldList.stream()
|
Map<String, FieldResponse> existingFieldMap = existingFieldList.stream()
|
||||||
.collect(Collectors.toMap(FieldResponse::getId, field -> field));
|
.collect(Collectors.toMap(FieldResponse::getId, field -> field));
|
||||||
@@ -436,7 +475,7 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
FieldResponse existingField = existingFieldMap.get(incoming.getId());
|
FieldResponse existingField = existingFieldMap.get(incoming.getId());
|
||||||
if (existingField != null) {
|
if (existingField != null) {
|
||||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : existingField.getValid());
|
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
})
|
})
|
||||||
@@ -460,7 +499,7 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationEntity validateApplicationEvaluation(Long id) {
|
public ApplicationEvaluationEntity validateApplicationEvaluation(Long id) {
|
||||||
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findById(id);
|
Optional<ApplicationEvaluationEntity> entityOptional = applicationEvaluationRepository.findByIdAndIsDeletedFalse(id);
|
||||||
if (entityOptional.isEmpty()) {
|
if (entityOptional.isEmpty()) {
|
||||||
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
throw new ResourceNotFoundException(Status.NOT_FOUND,
|
||||||
Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND, id));
|
Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_NOT_FOUND, id));
|
||||||
@@ -469,63 +508,68 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public ApplicationEvaluationResponse getApplicationEvaluationByApplicationId(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
public List<ApplicationEvaluationResponse> getApplicationEvaluationByApplicationId(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
||||||
|
if (applicationId != null && assignedApplicationId == null) {
|
||||||
applicationService.validateApplication(applicationId);
|
applicationService.validateApplication(applicationId);
|
||||||
|
List<ApplicationEvaluationEntity> evaluationEntities = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationId);
|
||||||
Optional<ApplicationEvaluationEntity> entityOptional;
|
return evaluationEntities.stream()
|
||||||
|
.map(this::convertToResponse)
|
||||||
if (applicationId != null && assignedApplicationId != null) {
|
.collect(Collectors.toList());
|
||||||
entityOptional = applicationEvaluationRepository.findByApplicationIdAndAssignedApplicationsEntity_IdAndIsDeletedFalse(applicationId, assignedApplicationId);
|
|
||||||
} else if (applicationId != null) {
|
|
||||||
entityOptional = applicationEvaluationRepository.findByApplicationIdAndIsDeletedFalse(applicationId);
|
|
||||||
} else if (assignedApplicationId != null) {
|
|
||||||
entityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
|
||||||
} else {
|
|
||||||
entityOptional = applicationEvaluationRepository.findFirstByIsDeletedFalseOrderByCreatedDateDesc();
|
|
||||||
}
|
|
||||||
return entityOptional.map(this::convertToResponse)
|
|
||||||
.orElseGet(() -> {
|
|
||||||
return getEvaluationResponseByApplicationid(user, applicationId, assignedApplicationId);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationResponse getEvaluationResponseByApplicationid(UserEntity user, Long applicationId,Long assignedApplicationId) {
|
Optional<ApplicationEvaluationEntity> entityOptional =
|
||||||
|
(applicationId != null && assignedApplicationId != null)
|
||||||
|
? applicationEvaluationRepository.findByApplicationIdAndAssignedApplicationsEntity_IdAndIsDeletedFalse(applicationId, assignedApplicationId)
|
||||||
|
: applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationId);
|
||||||
|
|
||||||
|
return entityOptional
|
||||||
|
.map(entity -> Collections.singletonList(convertToResponse(entity)))
|
||||||
|
.orElseGet(() -> Collections.singletonList(getEvaluationResponseByApplicationid(user, applicationId, assignedApplicationId)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public ApplicationEvaluationResponse getEvaluationResponseByApplicationid(UserEntity user, Long applicationId, Long assignedApplicationId) {
|
||||||
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
ApplicationEvaluationEntity entity = new ApplicationEvaluationEntity();
|
||||||
ApplicationEvaluationResponse response = new ApplicationEvaluationResponse();
|
ApplicationEvaluationResponse response = new ApplicationEvaluationResponse();
|
||||||
CallEntity call=null;
|
CallEntity call = null;
|
||||||
AssignedApplicationsEntity assignedApplications=null;
|
ApplicationEntity application=null;
|
||||||
if (applicationId != null) {
|
AssignedApplicationsEntity assignedApplications = null;
|
||||||
|
if (applicationId != null && assignedApplicationId==null) {
|
||||||
|
application = applicationService.validateApplication(applicationId);
|
||||||
call = callRepository.findCallEntityByApplicationId(applicationId);
|
call = callRepository.findCallEntityByApplicationId(applicationId);
|
||||||
assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
|
assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
|
||||||
} else if (assignedApplicationId != null) {
|
} else if (assignedApplicationId != null) {
|
||||||
call = callRepository.findCallEntityByApplicationId(assignedApplicationId);
|
assignedApplications = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId).orElseThrow(() ->
|
||||||
assignedApplications = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId).orElseThrow(()->
|
new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG)));
|
||||||
new ResourceNotFoundException(Status.NOT_FOUND,Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG)));
|
application = applicationService.validateApplication(assignedApplications.getApplication().getId());
|
||||||
}
|
call = callRepository.findCallEntityByApplicationId(application.getId());
|
||||||
else {
|
|
||||||
|
} else {
|
||||||
call = callRepository.findCallEntityByApplicationId(applicationId);
|
call = callRepository.findCallEntityByApplicationId(applicationId);
|
||||||
assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);}
|
assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
|
||||||
|
}
|
||||||
List<EvaluationCriteriaEntity> evaluationCriterias = evaluationCriteriaRepository.findByCallId(call.getId());
|
List<EvaluationCriteriaEntity> evaluationCriterias = evaluationCriteriaRepository.findByCallId(call.getId());
|
||||||
List<CallTargetAudienceChecklistEntity> checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId());
|
List<CallTargetAudienceChecklistEntity> checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId());
|
||||||
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationId);
|
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationId);
|
||||||
response.setApplicationId(applicationId);
|
response.setApplicationId(application.getId());
|
||||||
response.setAssignedApplicationId(assignedApplications.getId());
|
response.setAssignedApplicationId(assignedApplications.getId());
|
||||||
response.setNote(null);
|
response.setNote(null);
|
||||||
|
response.setApplicationStatus(ApplicationStatusTypeEnum.valueOf(application.getStatus()));
|
||||||
response.setStatus(ApplicationEvaluationStatusTypeEnum.valueOf(ApplicationEvaluationStatusTypeEnum.OPEN.getValue()));
|
response.setStatus(ApplicationEvaluationStatusTypeEnum.valueOf(ApplicationEvaluationStatusTypeEnum.OPEN.getValue()));
|
||||||
response.setMinScore(call.getThreshold());
|
response.setMinScore(call.getThreshold()!=null?call.getThreshold():null);
|
||||||
setCriteriaResponses(entity, applicationId, response, evaluationCriterias);
|
setCriteriaResponses(entity, application.getId(), response, evaluationCriterias);
|
||||||
setChecklistResponses(entity, applicationId, response, checklistEntities);
|
setChecklistResponses(entity, application.getId(), response, checklistEntities);
|
||||||
setFileResponses(entity, applicationId, response, applicationFormEntities);
|
setFileResponses(entity, application.getId(), response, applicationFormEntities);
|
||||||
|
|
||||||
setApplicationDetails(response, applicationId, user);
|
setApplicationDetails(response, application.getId(), user);
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setCriteriaResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
private void setCriteriaResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<EvaluationCriteriaEntity> evaluationCriterias) {
|
||||||
List<CriteriaResponse> criteriaResponses = entity.getCriteria() != null
|
List<CriteriaResponse> criteriaResponses = entity.getCriteria() != null
|
||||||
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {})
|
? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
||||||
|
})
|
||||||
: getCriteriaResponse(applicationId);
|
: getCriteriaResponse(applicationId);
|
||||||
|
|
||||||
criteriaResponses.forEach(criteriaResponse -> {
|
criteriaResponses.forEach(criteriaResponse -> {
|
||||||
@@ -587,7 +631,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
private void setChecklistResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
private void setChecklistResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<CallTargetAudienceChecklistEntity> checklistEntities) {
|
||||||
List<ChecklistResponse> checklistResponses = entity.getChecklist() != null
|
List<ChecklistResponse> checklistResponses = entity.getChecklist() != null
|
||||||
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {})
|
? Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||||
|
})
|
||||||
: getChecklistResponse(applicationId);
|
: getChecklistResponse(applicationId);
|
||||||
|
|
||||||
checklistResponses.forEach(checklistResponse -> {
|
checklistResponses.forEach(checklistResponse -> {
|
||||||
@@ -603,9 +648,11 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
response.setChecklist(checklistResponses);
|
response.setChecklist(checklistResponses);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setFileResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<ApplicationFormEntity> applicationFormEntities) {
|
private void setFileResponses(ApplicationEvaluationEntity entity, Long applicationId, ApplicationEvaluationResponse response, List<ApplicationFormEntity> applicationFormEntities) {
|
||||||
List<FieldResponse> fieldResponses = entity.getFile() != null
|
List<FieldResponse> fieldResponses = entity.getFile() != null
|
||||||
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {})
|
? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
||||||
|
})
|
||||||
: getFieldResponses(applicationId);
|
: getFieldResponses(applicationId);
|
||||||
Set<String> processedFieldIds = new HashSet<>();
|
Set<String> processedFieldIds = new HashSet<>();
|
||||||
|
|
||||||
@@ -678,10 +725,10 @@ public class ApplicationEvaluationDao {
|
|||||||
String beneficiary = String.join(" ", firstName, lastName).trim();
|
String beneficiary = String.join(" ", firstName, lastName).trim();
|
||||||
response.setBeneficiary(beneficiary);
|
response.setBeneficiary(beneficiary);
|
||||||
|
|
||||||
response.setCallName(application.getCall().getName());
|
response.setCallName(application.getCall().getName()!=null?application.getCall().getName():null);
|
||||||
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
response.setProtocolNumber(application.getProtocol() != null ? application.getProtocol().getProtocolNumber() : null);
|
||||||
response.setSubmissionDate(application.getSubmissionDate()!= null ? application.getSubmissionDate(): null);
|
response.setSubmissionDate(application.getSubmissionDate() != null ? application.getSubmissionDate() : null);
|
||||||
response.setEvaluationDate(application.getSubmissionDate()!= null ? application.getSubmissionDate().plusDays(30):null);
|
response.setEvaluationDate(application.getSubmissionDate() != null ? application.getSubmissionDate().plusDays(30) : null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -751,7 +798,8 @@ public class ApplicationEvaluationDao {
|
|||||||
return criteriaResponses;
|
return criteriaResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ChecklistResponse> getChecklistResponse(Long applicationId){ CallEntity call = callRepository.findCallEntityByApplicationId(applicationId);
|
List<ChecklistResponse> getChecklistResponse(Long applicationId) {
|
||||||
|
CallEntity call = callRepository.findCallEntityByApplicationId(applicationId);
|
||||||
List<CallTargetAudienceChecklistEntity> checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId());
|
List<CallTargetAudienceChecklistEntity> checklistEntities = callTargetAudienceChecklistRepository.findByCallId(call.getId());
|
||||||
List<ChecklistResponse> checklistResponses = checklistEntities.stream().map(checklist -> {
|
List<ChecklistResponse> checklistResponses = checklistEntities.stream().map(checklist -> {
|
||||||
ChecklistResponse response = new ChecklistResponse();
|
ChecklistResponse response = new ChecklistResponse();
|
||||||
@@ -764,6 +812,7 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
return checklistResponses;
|
return checklistResponses;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<FieldResponse> getFieldResponses(Long applicationId) {
|
public List<FieldResponse> getFieldResponses(Long applicationId) {
|
||||||
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationId);
|
List<ApplicationFormEntity> applicationFormEntities = applicationFormRepository.findByApplicationId(applicationId);
|
||||||
List<FieldResponse> fieldResponses = new ArrayList<>();
|
List<FieldResponse> fieldResponses = new ArrayList<>();
|
||||||
@@ -832,21 +881,34 @@ public class ApplicationEvaluationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteById(Long id) {
|
public void deleteById(Long id) {
|
||||||
ApplicationEvaluationEntity applicationEvaluationEntity= validateApplicationEvaluation(id);
|
ApplicationEvaluationEntity applicationEvaluationEntity = validateApplicationEvaluation(id);
|
||||||
applicationEvaluationEntity.setIsDeleted(true);
|
applicationEvaluationEntity.setIsDeleted(true);
|
||||||
applicationEvaluationEntity=saveApplicationEvaluationEntity(applicationEvaluationEntity);
|
applicationEvaluationEntity = saveApplicationEvaluationEntity(applicationEvaluationEntity);
|
||||||
}
|
}
|
||||||
public ApplicationEvaluationEntity saveApplicationEvaluationEntity(ApplicationEvaluationEntity applicationEvaluationEntityData){
|
|
||||||
|
public ApplicationEvaluationEntity saveApplicationEvaluationEntity(ApplicationEvaluationEntity applicationEvaluationEntityData) {
|
||||||
return applicationEvaluationRepository.save(applicationEvaluationEntityData);
|
return applicationEvaluationRepository.save(applicationEvaluationEntityData);
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(Long applicationId, ApplicationEvaluationStatusTypeEnum status) {
|
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(ApplicationEntity application, AssignedApplicationsEntity assignedApplicationsEntity) {
|
||||||
ApplicationEvaluationEntity existingEntity = validateApplicationEvaluation(applicationId);
|
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(assignedApplicationsEntity.getId());
|
||||||
if (status != null && !status.getValue().equals(existingEntity.getStatus())) {
|
ApplicationEvaluationEntity entity = null;
|
||||||
existingEntity.setStatus(status.getValue());
|
|
||||||
}
|
|
||||||
ApplicationEvaluationEntity updatedEntity = applicationEvaluationRepository.save(existingEntity);
|
|
||||||
return convertToResponse(updatedEntity);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (existingEntityOptional.isPresent()) {
|
||||||
|
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
||||||
|
if (Boolean.TRUE.equals(
|
||||||
|
application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) ||
|
||||||
|
application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue())
|
||||||
|
)) {
|
||||||
|
existingEntity.setStatus(ApplicationEvaluationStatusTypeEnum.CLOSE.getValue());
|
||||||
|
assignedApplicationsEntity.setStatus(AssignedApplicationEnum.CLOSE.getValue());
|
||||||
|
} entity = applicationEvaluationRepository.save(existingEntity);
|
||||||
|
assignedApplicationsEntity=assignedApplicationsRepository.save(assignedApplicationsEntity);
|
||||||
|
|
||||||
|
return convertToResponse(entity);}return null;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.model.response;
|
|||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import net.gepafin.tendermanagement.enums.ApplicationEvaluationStatusTypeEnum;
|
import net.gepafin.tendermanagement.enums.ApplicationEvaluationStatusTypeEnum;
|
||||||
|
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -12,6 +13,7 @@ public class ApplicationEvaluationResponse {
|
|||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
private Long applicationId;
|
private Long applicationId;
|
||||||
|
private ApplicationStatusTypeEnum applicationStatus;
|
||||||
private Long assignedApplicationId;
|
private Long assignedApplicationId;
|
||||||
private String note;
|
private String note;
|
||||||
private ApplicationEvaluationStatusTypeEnum status;
|
private ApplicationEvaluationStatusTypeEnum status;
|
||||||
|
|||||||
@@ -6,13 +6,14 @@ import org.springframework.data.jpa.repository.Query;
|
|||||||
import org.springframework.data.repository.query.Param;
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface ApplicationEvaluationRepository extends JpaRepository<ApplicationEvaluationEntity, Long> {
|
public interface ApplicationEvaluationRepository extends JpaRepository<ApplicationEvaluationEntity, Long> {
|
||||||
|
|
||||||
Optional<ApplicationEvaluationEntity> findByApplicationIdAndIsDeletedFalse(Long applicationId);
|
List<ApplicationEvaluationEntity> findByApplicationIdAndIsDeletedFalse(Long applicationId);
|
||||||
|
Optional<ApplicationEvaluationEntity> findByIdAndIsDeletedFalse(Long id);
|
||||||
Optional<ApplicationEvaluationEntity> findByAssignedApplicationsEntity_IdAndIsDeletedFalse(Long assignedApplicationId);
|
Optional<ApplicationEvaluationEntity> findByAssignedApplicationsEntity_IdAndIsDeletedFalse(Long assignedApplicationId);
|
||||||
|
|
||||||
Optional<ApplicationEvaluationEntity> findByApplicationIdAndAssignedApplicationsEntity_IdAndIsDeletedFalse(Long applicationId, Long assignedApplicationId);
|
Optional<ApplicationEvaluationEntity> findByApplicationIdAndAssignedApplicationsEntity_IdAndIsDeletedFalse(Long applicationId, Long assignedApplicationId);
|
||||||
|
|||||||
@@ -5,17 +5,23 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
|||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
import org.springframework.data.repository.query.Param;
|
import org.springframework.data.repository.query.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface AssignedApplicationsRepository extends JpaRepository<AssignedApplicationsEntity,Long>, JpaSpecificationExecutor<AssignedApplicationsEntity>{
|
public interface AssignedApplicationsRepository extends JpaRepository<AssignedApplicationsEntity,Long>, JpaSpecificationExecutor<AssignedApplicationsEntity>{
|
||||||
Optional<AssignedApplicationsEntity> findByApplicationIdAndIsDeletedFalse(Long applicationId);
|
Optional<AssignedApplicationsEntity> findByApplicationIdAndIsDeletedFalse(Long applicationId);
|
||||||
Optional<AssignedApplicationsEntity> findByIdAndIsDeletedFalse(Long id);
|
Optional<AssignedApplicationsEntity> findByIdAndIsDeletedFalse(Long id);
|
||||||
@Query("SELECT aa FROM AssignedApplicationsEntity aa WHERE aa.isDeleted = false " +
|
@Query("SELECT aa FROM AssignedApplicationsEntity aa WHERE aa.isDeleted = false AND aa.application.id = :applicationId")
|
||||||
"AND (:applicationId IS NULL OR aa.application.id = :applicationId) " +
|
List<AssignedApplicationsEntity> findAllByApplicationId(@Param("applicationId") Long applicationId);
|
||||||
"AND (:id IS NULL OR aa.id = :id)")
|
|
||||||
Optional<AssignedApplicationsEntity> findByApplicationIdOrId(@Param("applicationId") Long applicationId,
|
@Query("SELECT aa FROM AssignedApplicationsEntity aa WHERE aa.isDeleted = false AND aa.application.id = :applicationId AND aa.id = :assignedApplicationId")
|
||||||
@Param("id") Long id);
|
Optional<AssignedApplicationsEntity> findByApplicationIdAndAssignedApplicationId(
|
||||||
|
@Param("applicationId") Long applicationId,
|
||||||
|
@Param("assignedApplicationId") Long assignedApplicationId);
|
||||||
|
@Query("SELECT aa FROM AssignedApplicationsEntity aa WHERE aa.isDeleted = false AND aa.id = :assignedApplicationId")
|
||||||
|
Optional<AssignedApplicationsEntity> findByAssignedApplicationId(@Param("assignedApplicationId") Long assignedApplicationId);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ public interface ApplicationEvaluationService {
|
|||||||
ApplicationEvaluationResponse createOrUpdateApplicationEvaluation(HttpServletRequest request, ApplicationEvaluationRequest applicationEvaluationRequest,Long assignedApplicationsId);
|
ApplicationEvaluationResponse createOrUpdateApplicationEvaluation(HttpServletRequest request, ApplicationEvaluationRequest applicationEvaluationRequest,Long assignedApplicationsId);
|
||||||
void deleteApplicationEvaluation(HttpServletRequest request,Long id);
|
void deleteApplicationEvaluation(HttpServletRequest request,Long id);
|
||||||
|
|
||||||
ApplicationEvaluationResponse getApplicationEvaluationByApplicationId(HttpServletRequest request,Long applicationId,Long assignedApplicationId);
|
List<ApplicationEvaluationResponse> getApplicationEvaluationByApplicationId(HttpServletRequest request,Long applicationId,Long assignedApplicationId);
|
||||||
ApplicationEvaluationResponse updateApplicationEvaluationStatus(HttpServletRequest request, Long applicationEvaluationId, ApplicationEvaluationStatusTypeEnum status);
|
ApplicationEvaluationResponse updateApplicationEvaluationStatus(HttpServletRequest request, Long assignedApplicationId);
|
||||||
|
|
||||||
|
|
||||||
ApplicationEvaluationEntity validateApplicationEvaluation(Long applicationEvaluationId);
|
ApplicationEvaluationEntity validateApplicationEvaluation(Long applicationEvaluationId);
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -41,30 +42,61 @@ public class ApplicationEvaluationServiceImpl implements ApplicationEvaluationSe
|
|||||||
AssignedApplicationsEntity assignedApplication = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationsId).orElseThrow(()->
|
AssignedApplicationsEntity assignedApplication = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationsId).orElseThrow(()->
|
||||||
new ResourceNotFoundException(Status.NOT_FOUND,Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG)));
|
new ResourceNotFoundException(Status.NOT_FOUND,Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG)));
|
||||||
UserEntity user=validator.validatePreInstructor(request,assignedApplication.getUserId());
|
UserEntity user=validator.validatePreInstructor(request,assignedApplication.getUserId());
|
||||||
return applicationEvaluationDao.createOrUpdateApplicationEvaluation(user,req,assignedApplication.getApplication().getId());
|
return applicationEvaluationDao.createOrUpdateApplicationEvaluation(user,req,assignedApplication.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public ApplicationEvaluationResponse getApplicationEvaluationByApplicationId(
|
public List<ApplicationEvaluationResponse> getApplicationEvaluationByApplicationId(
|
||||||
HttpServletRequest request, Long applicationId, Long assignedApplicationId) {
|
HttpServletRequest request, Long applicationId, Long assignedApplicationId) {
|
||||||
|
if (applicationId == null && assignedApplicationId == null) {
|
||||||
|
throw new CustomValidationException(
|
||||||
|
Status.BAD_REQUEST,
|
||||||
|
Translator.toLocale(GepafinConstant.EITHER_APPLICATION_OR_ASSIGNED_APPLICATION_ID_REQUIRED_MSG)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
AssignedApplicationsEntity assignedApplications;
|
||||||
|
|
||||||
Optional<AssignedApplicationsEntity> assignedApplicationsOptional =
|
if (applicationId != null && assignedApplicationId != null) {
|
||||||
assignedApplicationsRepository.findByApplicationIdOrId(applicationId, assignedApplicationId);
|
assignedApplications = assignedApplicationsRepository
|
||||||
|
.findByApplicationIdAndAssignedApplicationId(applicationId, assignedApplicationId)
|
||||||
AssignedApplicationsEntity assignedApplications = assignedApplicationsOptional
|
|
||||||
.orElseThrow(() -> new CustomValidationException(
|
.orElseThrow(() -> new CustomValidationException(
|
||||||
Status.BAD_REQUEST,
|
Status.BAD_REQUEST,
|
||||||
Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_WITH_ID_MSG)
|
Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_WITH_ID_MSG)
|
||||||
));
|
));
|
||||||
UserEntity user = validator.validatePreInstructor(request, assignedApplications.getUserId());
|
} else if (assignedApplicationId != null) {
|
||||||
return applicationEvaluationDao.getApplicationEvaluationByApplicationId(
|
assignedApplications = assignedApplicationsRepository
|
||||||
user,
|
.findByAssignedApplicationId(assignedApplicationId)
|
||||||
assignedApplications.getApplication().getId(),
|
.orElseThrow(() -> new CustomValidationException(
|
||||||
assignedApplications.getId()
|
Status.BAD_REQUEST,
|
||||||
|
Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_WITH_ID_MSG)
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
List<AssignedApplicationsEntity> assignedApplicationsList = assignedApplicationsRepository
|
||||||
|
.findAllByApplicationId(applicationId);
|
||||||
|
|
||||||
|
if (assignedApplicationsList.isEmpty()) {
|
||||||
|
throw new CustomValidationException(
|
||||||
|
Status.BAD_REQUEST,
|
||||||
|
Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_WITH_ID_MSG)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
assignedApplications = assignedApplicationsList.get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
UserEntity user = validator.validatePreInstructor(request, assignedApplications.getUserId());
|
||||||
|
if (applicationId != null && assignedApplicationId == null) {
|
||||||
|
return applicationEvaluationDao.getApplicationEvaluationByApplicationId(user, assignedApplications.getApplication().getId(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (applicationId != null && assignedApplicationId != null) {
|
||||||
|
return applicationEvaluationDao.getApplicationEvaluationByApplicationId(user, assignedApplications.getApplication().getId(), assignedApplications.getId());
|
||||||
|
}
|
||||||
|
return applicationEvaluationDao.getApplicationEvaluationByApplicationId(user, null, assignedApplications.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void deleteApplicationEvaluation(HttpServletRequest request,Long id) {
|
public void deleteApplicationEvaluation(HttpServletRequest request,Long id) {
|
||||||
@@ -74,13 +106,11 @@ public class ApplicationEvaluationServiceImpl implements ApplicationEvaluationSe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(HttpServletRequest request, Long applicationId, ApplicationEvaluationStatusTypeEnum status) {
|
public ApplicationEvaluationResponse updateApplicationEvaluationStatus(HttpServletRequest request, Long assignedApplicationId) {
|
||||||
AssignedApplicationsEntity assignedApplications = assignedApplicationsRepository.findByApplicationIdAndIsDeletedFalse(applicationId).orElse(null);
|
AssignedApplicationsEntity assignedApplication = assignedApplicationsRepository.findByIdAndIsDeletedFalse(assignedApplicationId).orElseThrow(()->
|
||||||
if(assignedApplications==null){
|
new ResourceNotFoundException(Status.NOT_FOUND,Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_MSG)));
|
||||||
throw new CustomValidationException(Status.BAD_REQUEST, Translator.toLocale(GepafinConstant.ASSIGNED_APPLICATION_NOT_FOUND_WITH_ID_MSG));
|
validator.validatePreInstructor(request,assignedApplication.getUserId());
|
||||||
}
|
return applicationEvaluationDao.updateApplicationEvaluationStatus(assignedApplication.getApplication(),assignedApplication);
|
||||||
validator.validatePreInstructor(request, assignedApplications.getUserId());
|
|
||||||
return applicationEvaluationDao.updateApplicationEvaluationStatus(applicationId, status);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,18 +38,20 @@ public interface ApplicationEvaluationApi {
|
|||||||
@Parameter(required = true) @PathVariable("assignedApplicationsId") Long assignedApplicationsId,
|
@Parameter(required = true) @PathVariable("assignedApplicationsId") Long assignedApplicationsId,
|
||||||
@Parameter( required = true) @Valid @RequestBody ApplicationEvaluationRequest evaluationRequest);
|
@Parameter( required = true) @Valid @RequestBody ApplicationEvaluationRequest evaluationRequest);
|
||||||
|
|
||||||
@Operation(summary = "API to get ApplicationEvaluation data for evaluation process",
|
@Operation(
|
||||||
|
summary = "API to get ApplicationEvaluation data for evaluation process",
|
||||||
responses = {
|
responses = {
|
||||||
@ApiResponse(responseCode = "200", description = "OK"),
|
@ApiResponse(responseCode = "200", description = "OK"),
|
||||||
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE) }))
|
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE) })),
|
||||||
|
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
|
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) }))
|
||||||
})
|
})
|
||||||
@GetMapping(value = "/application", produces = MediaType.APPLICATION_JSON_VALUE)
|
@GetMapping(value = "/application", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
ResponseEntity<Response<ApplicationEvaluationResponse>> getApplicationEvaluationByApplicationId(
|
ResponseEntity<Response<List<ApplicationEvaluationResponse>>> getApplicationEvaluationByApplicationId(
|
||||||
HttpServletRequest request,
|
HttpServletRequest request,
|
||||||
@Parameter(description = "Application ID", required = false) @RequestParam(value = "applicationId", required = false) Long applicationId,
|
@Parameter(required = false) @RequestParam(value = "applicationId", required = false) Long applicationId,
|
||||||
@Parameter(description = "Assigned Application ID", required = false) @RequestParam(value = "assignedApplicationId", required = false) Long assignedApplicationId);
|
@Parameter(required = false) @RequestParam(value = "assignedApplicationId", required = false) Long assignedApplicationId);
|
||||||
|
|
||||||
|
|
||||||
@Operation(summary = "API to delete ApplicationEvaluation",
|
@Operation(summary = "API to delete ApplicationEvaluation",
|
||||||
responses = {
|
responses = {
|
||||||
@@ -59,7 +61,7 @@ public interface ApplicationEvaluationApi {
|
|||||||
})
|
})
|
||||||
@DeleteMapping(value = "/{id}")
|
@DeleteMapping(value = "/{id}")
|
||||||
ResponseEntity<Response<Void>> deleteApplicationEvaluation(HttpServletRequest request,
|
ResponseEntity<Response<Void>> deleteApplicationEvaluation(HttpServletRequest request,
|
||||||
@Parameter(description = "The evaluation ID", required = true) @PathVariable("id") Long id);
|
@Parameter( required = true) @PathVariable("id") Long id);
|
||||||
|
|
||||||
@Operation(summary = "Api to update application evaluation status",
|
@Operation(summary = "Api to update application evaluation status",
|
||||||
responses = {
|
responses = {
|
||||||
@@ -70,9 +72,8 @@ public interface ApplicationEvaluationApi {
|
|||||||
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
|
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
|
||||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||||
@PutMapping(value = "/{applicationId}/status", produces = MediaType.APPLICATION_JSON_VALUE)
|
@PutMapping(value = "/{assignedApplicationId}/status", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||||
ResponseEntity<Response<ApplicationEvaluationResponse>> updateApplicationEvaluationStatus(HttpServletRequest request,
|
ResponseEntity<Response<ApplicationEvaluationResponse>> updateApplicationEvaluationStatus(HttpServletRequest request,
|
||||||
@Parameter( required = true) @PathVariable("applicationId") Long applicationId,
|
@Parameter( required = true) @PathVariable("assignedApplicationId") Long assignedApplicationId);
|
||||||
@Parameter(description = "status", required = true)@RequestParam(value = "status", required = true) ApplicationEvaluationStatusTypeEnum status);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,15 +37,17 @@ public class ApplicationEvaluationApiController implements ApplicationEvaluation
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationEvaluationResponse>> getApplicationEvaluationByApplicationId(
|
public ResponseEntity<Response<List<ApplicationEvaluationResponse>>> getApplicationEvaluationByApplicationId(
|
||||||
HttpServletRequest request, Long applicationId, Long assignedApplicationId) {
|
HttpServletRequest request, Long applicationId, Long assignedApplicationId) {
|
||||||
|
|
||||||
ApplicationEvaluationResponse response = null;
|
List<ApplicationEvaluationResponse> responseList =
|
||||||
response = applicationEvaluationService.getApplicationEvaluationByApplicationId(request, applicationId,assignedApplicationId);
|
applicationEvaluationService.getApplicationEvaluationByApplicationId(request, applicationId, assignedApplicationId);
|
||||||
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_FETCHED_SUCCESSFULLY)));
|
.body(new Response<>(responseList, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_FETCHED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<Void>> deleteApplicationEvaluation(HttpServletRequest request,
|
public ResponseEntity<Response<Void>> deleteApplicationEvaluation(HttpServletRequest request,
|
||||||
Long id) {
|
Long id) {
|
||||||
@@ -55,9 +57,8 @@ public class ApplicationEvaluationApiController implements ApplicationEvaluation
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseEntity<Response<ApplicationEvaluationResponse>> updateApplicationEvaluationStatus(HttpServletRequest request, Long applicationId,
|
public ResponseEntity<Response<ApplicationEvaluationResponse>> updateApplicationEvaluationStatus(HttpServletRequest request, Long assignedApplicationId) {
|
||||||
ApplicationEvaluationStatusTypeEnum status) {
|
ApplicationEvaluationResponse applicationEvaluationResponse = applicationEvaluationService.updateApplicationEvaluationStatus(request, assignedApplicationId);
|
||||||
ApplicationEvaluationResponse applicationEvaluationResponse = applicationEvaluationService.updateApplicationEvaluationStatus(request, applicationId, status);
|
|
||||||
return ResponseEntity.status(HttpStatus.OK)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(applicationEvaluationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_STATUS_UPDATED_SUCCESSFULLY)));
|
.body(new Response<>(applicationEvaluationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.APPLICATION_EVALUATION_STATUS_UPDATED_SUCCESSFULLY)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -262,7 +262,7 @@ evaluations.fetched.successfully = All application evaluations fetched successfu
|
|||||||
application.evaluation.status.updated.successfully=Application evaluation status updated successfully.
|
application.evaluation.status.updated.successfully=Application evaluation status updated successfully.
|
||||||
evaluationCriteria.invalid=This evaluation criterion does not belong to the current call.
|
evaluationCriteria.invalid=This evaluation criterion does not belong to the current call.
|
||||||
assigned.application.not.found.with.id=Assigned application with this application ID not found
|
assigned.application.not.found.with.id=Assigned application with this application ID not found
|
||||||
|
either.application.or.assigned.application.id.required=Either applicationId or assignedApplicationId is required.
|
||||||
|
|
||||||
# Hub Messages
|
# Hub Messages
|
||||||
hub_create_success=Hub created successfully
|
hub_create_success=Hub created successfully
|
||||||
|
|||||||
@@ -260,6 +260,7 @@ evaluation.deleted.successfully = Valutazione dell'applicazione eliminata con su
|
|||||||
evaluations.fetched.successfully = Tutte le valutazioni delle applicazioni recuperate con successo.
|
evaluations.fetched.successfully = Tutte le valutazioni delle applicazioni recuperate con successo.
|
||||||
application.evaluation.status.updated.successfully=Stato della valutazione dell'applicazione aggiornato con successo.
|
application.evaluation.status.updated.successfully=Stato della valutazione dell'applicazione aggiornato con successo.
|
||||||
assigned.application.not.found.with.id=Applicazione assegnata con questo ID dell'applicazione non trovata
|
assigned.application.not.found.with.id=Applicazione assegnata con questo ID dell'applicazione non trovata
|
||||||
|
either.application.or.assigned.application.id.required=È richiesto almeno uno tra applicationId o assignedApplicationId.
|
||||||
|
|
||||||
application.assigned.success.msg =Domanda assegnata con successo
|
application.assigned.success.msg =Domanda assegnata con successo
|
||||||
application.already.assigned.msg =La domanda � gi� assegnata
|
application.already.assigned.msg =La domanda � gi� assegnata
|
||||||
|
|||||||
Reference in New Issue
Block a user