Merge pull request #84 from Kitzanos/feature/GEPAFINBE-88
GEPAFINBE-88 (Issue with Application Approval & Need Form Field name in Application Evaluation Data)
This commit is contained in:
@@ -15,6 +15,7 @@ import net.gepafin.tendermanagement.model.request.FieldRequest;
|
|||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.response.*;
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.repositories.*;
|
||||||
import net.gepafin.tendermanagement.service.ApplicationService;
|
import net.gepafin.tendermanagement.service.ApplicationService;
|
||||||
|
import net.gepafin.tendermanagement.service.CallService;
|
||||||
import net.gepafin.tendermanagement.service.UserService;
|
import net.gepafin.tendermanagement.service.UserService;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||||
@@ -46,6 +47,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
// @Autowired
|
||||||
|
// private CallService callService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EvaluationCriteriaRepository evaluationCriteriaRepository;
|
private EvaluationCriteriaRepository evaluationCriteriaRepository;
|
||||||
@@ -193,6 +196,7 @@ public class ApplicationEvaluationDao {
|
|||||||
.findFirst()
|
.findFirst()
|
||||||
.ifPresent(contentBean -> {
|
.ifPresent(contentBean -> {
|
||||||
mappedField.setFieldLabel(getLabelForField(contentBean));
|
mappedField.setFieldLabel(getLabelForField(contentBean));
|
||||||
|
mappedField.setFieldName(contentBean.getName());
|
||||||
switch (contentBean.getName()) {
|
switch (contentBean.getName()) {
|
||||||
case "fileupload":
|
case "fileupload":
|
||||||
mapFileFieldDetails(mappedField, formFieldId, applicationForm.getId(), applicationId);
|
mapFileFieldDetails(mappedField, formFieldId, applicationForm.getId(), applicationId);
|
||||||
@@ -458,12 +462,16 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
private List<CriteriaRequest> processCriteria(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<CriteriaRequest> processCriteria(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
|
|
||||||
List<CriteriaResponse> existingCriteriaList = entity.getCriteria() != null ? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
List<CriteriaRequest> incomingCriteriaList = Optional.ofNullable(req.getCriteria()).orElse(new ArrayList<>());
|
||||||
}) : new ArrayList<>();
|
|
||||||
|
|
||||||
Map<Long, CriteriaResponse> existingCriteriaMap = existingCriteriaList.stream().collect(Collectors.toMap(CriteriaResponse::getId, criteria -> criteria));
|
List<CriteriaResponse> existingCriteriaList = entity.getCriteria() != null ?
|
||||||
|
Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {}) :
|
||||||
|
new ArrayList<>();
|
||||||
|
|
||||||
List<CriteriaRequest> updatedCriteriaList = req.getCriteria().stream().map(incoming -> {
|
Map<Long, CriteriaResponse> existingCriteriaMap = existingCriteriaList.stream()
|
||||||
|
.collect(Collectors.toMap(CriteriaResponse::getId, criteria -> criteria));
|
||||||
|
|
||||||
|
List<CriteriaRequest> updatedCriteriaList = incomingCriteriaList.stream().map(incoming -> {
|
||||||
CriteriaRequest request = new CriteriaRequest();
|
CriteriaRequest request = new CriteriaRequest();
|
||||||
request.setId(incoming.getId());
|
request.setId(incoming.getId());
|
||||||
request.setScore(incoming.getScore());
|
request.setScore(incoming.getScore());
|
||||||
@@ -471,14 +479,15 @@ 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() : null);
|
request.setScore(incoming.getScore() != null ? incoming.getScore() : existingCriteria.getScore());
|
||||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
request.setValid(incoming.getValid() != null ? incoming.getValid() : existingCriteria.getValid());
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
List<CriteriaRequest> missingCriteriaRequests = existingCriteriaList.stream()
|
List<CriteriaRequest> missingCriteriaRequests = existingCriteriaList.stream()
|
||||||
.filter(existing -> !updatedCriteriaList.stream().map(CriteriaRequest::getId).toList().contains(existing.getId())).map(existing -> {
|
.filter(existing -> !updatedCriteriaList.stream().map(CriteriaRequest::getId).toList().contains(existing.getId()))
|
||||||
|
.map(existing -> {
|
||||||
CriteriaRequest request = new CriteriaRequest();
|
CriteriaRequest request = new CriteriaRequest();
|
||||||
request.setId(existing.getId());
|
request.setId(existing.getId());
|
||||||
request.setScore(existing.getScore());
|
request.setScore(existing.getScore());
|
||||||
@@ -492,58 +501,65 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
private List<ChecklistRequest> processChecklist(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<ChecklistRequest> processChecklist(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
|
|
||||||
|
List<ChecklistRequest> incomingChecklistList = Optional.ofNullable(req.getChecklist()).orElse(new ArrayList<>());
|
||||||
|
|
||||||
List<ChecklistResponse> existingChecklistList = entity.getChecklist() != null ?
|
List<ChecklistResponse> existingChecklistList = entity.getChecklist() != null ?
|
||||||
Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {}) :
|
||||||
}) :
|
|
||||||
new ArrayList<>();
|
new ArrayList<>();
|
||||||
|
|
||||||
Map<Long, ChecklistResponse> existingChecklistMap = existingChecklistList.stream().collect(Collectors.toMap(ChecklistResponse::getId, checklist -> checklist));
|
Map<Long, ChecklistResponse> existingChecklistMap = existingChecklistList.stream()
|
||||||
|
.collect(Collectors.toMap(ChecklistResponse::getId, checklist -> checklist));
|
||||||
|
|
||||||
List<ChecklistRequest> updatedChecklistList = req.getChecklist().stream().map(incoming -> {
|
List<ChecklistRequest> updatedChecklistList = incomingChecklistList.stream().map(incoming -> {
|
||||||
ChecklistRequest request = new ChecklistRequest();
|
ChecklistRequest request = new ChecklistRequest();
|
||||||
request.setId(incoming.getId());
|
request.setId(incoming.getId());
|
||||||
request.setValid(incoming.getValid());
|
request.setValid(incoming.getValid());
|
||||||
|
|
||||||
ChecklistResponse existingChecklist = existingChecklistMap.get(incoming.getId());
|
ChecklistResponse existingChecklist = existingChecklistMap.get(incoming.getId());
|
||||||
if (existingChecklist != null && incoming.getValid() == null) {
|
if (existingChecklist != null && incoming.getValid() == null) {
|
||||||
request.setValid(null);
|
request.setValid(existingChecklist.getValid());
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
List<ChecklistRequest> missingChecklistRequests = existingChecklistList.stream()
|
List<ChecklistRequest> missingChecklistRequests = existingChecklistList.stream()
|
||||||
.filter(existing -> !updatedChecklistList.stream().map(ChecklistRequest::getId).toList().contains(existing.getId())).map(existing -> {
|
.filter(existing -> !updatedChecklistList.stream().map(ChecklistRequest::getId).toList().contains(existing.getId()))
|
||||||
|
.map(existing -> {
|
||||||
ChecklistRequest request = new ChecklistRequest();
|
ChecklistRequest request = new ChecklistRequest();
|
||||||
request.setId(existing.getId());
|
request.setId(existing.getId());
|
||||||
request.setValid(existing.getValid() != null ? existing.getValid() : null);
|
request.setValid(existing.getValid());
|
||||||
return request;
|
return request;
|
||||||
}).toList();
|
}).toList();
|
||||||
|
|
||||||
updatedChecklistList.addAll(missingChecklistRequests);
|
updatedChecklistList.addAll(missingChecklistRequests);
|
||||||
return updatedChecklistList;
|
return updatedChecklistList;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<FieldRequest> processField(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
private List<FieldRequest> processField(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||||
|
|
||||||
List<FieldResponse> existingFieldList = entity.getFile() != null ? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
List<FieldRequest> incomingFieldList = Optional.ofNullable(req.getFiles()).orElse(new ArrayList<>());
|
||||||
}) : new ArrayList<>();
|
|
||||||
|
|
||||||
Map<String, FieldResponse> existingFieldMap = existingFieldList.stream().collect(Collectors.toMap(FieldResponse::getId, field -> field));
|
List<FieldResponse> existingFieldList = entity.getFile() != null ?
|
||||||
|
Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {}) :
|
||||||
|
new ArrayList<>();
|
||||||
|
|
||||||
List<FieldRequest> updatedFieldList = req.getFiles().stream().map(incoming -> {
|
Map<String, FieldResponse> existingFieldMap = existingFieldList.stream()
|
||||||
|
.collect(Collectors.toMap(FieldResponse::getId, field -> field));
|
||||||
|
|
||||||
|
List<FieldRequest> updatedFieldList = incomingFieldList.stream().map(incoming -> {
|
||||||
FieldRequest request = new FieldRequest();
|
FieldRequest request = new FieldRequest();
|
||||||
request.setId(incoming.getId());
|
request.setId(incoming.getId());
|
||||||
request.setValid(incoming.getValid());
|
request.setValid(incoming.getValid());
|
||||||
|
|
||||||
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() : null);
|
request.setValid(incoming.getValid() != null ? incoming.getValid() : existingField.getValid());
|
||||||
}
|
}
|
||||||
return request;
|
return request;
|
||||||
}).collect(Collectors.toList());
|
}).collect(Collectors.toList());
|
||||||
|
|
||||||
List<FieldRequest> missingFieldRequests = existingFieldList.stream()
|
List<FieldRequest> missingFieldRequests = existingFieldList.stream()
|
||||||
.filter(existing -> !updatedFieldList.stream().map(FieldRequest::getId).toList().contains(existing.getId())).map(existing -> {
|
.filter(existing -> !updatedFieldList.stream().map(FieldRequest::getId).toList().contains(existing.getId()))
|
||||||
|
.map(existing -> {
|
||||||
FieldRequest request = new FieldRequest();
|
FieldRequest request = new FieldRequest();
|
||||||
request.setId(existing.getId());
|
request.setId(existing.getId());
|
||||||
request.setValid(existing.getValid());
|
request.setValid(existing.getValid());
|
||||||
@@ -700,6 +716,7 @@ public class ApplicationEvaluationDao {
|
|||||||
List<ContentResponseBean> contentResponseBeans = formDao.convertFormEntityToFormResponseBean(formEntity).getContent();
|
List<ContentResponseBean> contentResponseBeans = formDao.convertFormEntityToFormResponseBean(formEntity).getContent();
|
||||||
contentResponseBeans.stream().filter(bean -> bean.getId().equals(formFieldId)).findFirst().ifPresent(contentResponseBean -> {
|
contentResponseBeans.stream().filter(bean -> bean.getId().equals(formFieldId)).findFirst().ifPresent(contentResponseBean -> {
|
||||||
String label = getLabel(contentResponseBean);
|
String label = getLabel(contentResponseBean);
|
||||||
|
mappedField.setFieldName(contentResponseBean.getName());
|
||||||
mappedField.setFieldLabel(label);
|
mappedField.setFieldLabel(label);
|
||||||
switch (contentResponseBean.getName()) {
|
switch (contentResponseBean.getName()) {
|
||||||
case "fileupload":
|
case "fileupload":
|
||||||
@@ -995,7 +1012,7 @@ public class ApplicationEvaluationDao {
|
|||||||
String label = getLabelFromSettings(contentResponseBean);
|
String label = getLabelFromSettings(contentResponseBean);
|
||||||
|
|
||||||
mappedField.setFieldLabel(label);
|
mappedField.setFieldLabel(label);
|
||||||
|
mappedField.setFieldName(contentResponseBean.getName());
|
||||||
boolean isCheckbox = "checkboxes".equals(contentResponseBean.getName());
|
boolean isCheckbox = "checkboxes".equals(contentResponseBean.getName());
|
||||||
boolean isFileUpload = "fileupload".equals(contentResponseBean.getName());
|
boolean isFileUpload = "fileupload".equals(contentResponseBean.getName());
|
||||||
boolean isParagraph = "paragraph".equals(contentResponseBean.getName());
|
boolean isParagraph = "paragraph".equals(contentResponseBean.getName());
|
||||||
@@ -1278,6 +1295,8 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
if (existingEntityOptional.isPresent()) {
|
if (existingEntityOptional.isPresent()) {
|
||||||
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
||||||
|
// UserEntity userEntity = userService.validateUser(application.getUserId());
|
||||||
|
// callService.validatePublishedCall(application.getCall().getId(), userEntity.getHub().getId());
|
||||||
application.setStatus(newStatus.getValue());
|
application.setStatus(newStatus.getValue());
|
||||||
application = applicationRepository.save(application);
|
application = applicationRepository.save(application);
|
||||||
String statusType = application.getStatus();
|
String statusType = application.getStatus();
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
public class CriteriaMappedField {
|
public class CriteriaMappedField {
|
||||||
private String id;
|
private String id;
|
||||||
|
private String fieldName;
|
||||||
private String fieldLabel;
|
private String fieldLabel;
|
||||||
private Object fieldValue;
|
private Object fieldValue;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user