Fixed issue with application approval in application evaluation
This commit is contained in:
@@ -458,12 +458,16 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
private List<CriteriaRequest> processCriteria(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||
|
||||
List<CriteriaResponse> existingCriteriaList = entity.getCriteria() != null ? Utils.convertJsonToList(entity.getCriteria(), new TypeReference<List<CriteriaResponse>>() {
|
||||
}) : new ArrayList<>();
|
||||
List<CriteriaRequest> incomingCriteriaList = Optional.ofNullable(req.getCriteria()).orElse(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();
|
||||
request.setId(incoming.getId());
|
||||
request.setScore(incoming.getScore());
|
||||
@@ -471,14 +475,15 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
CriteriaResponse existingCriteria = existingCriteriaMap.get(incoming.getId());
|
||||
if (existingCriteria != null) {
|
||||
request.setScore(incoming.getScore() != null ? incoming.getScore() : null);
|
||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
||||
request.setScore(incoming.getScore() != null ? incoming.getScore() : existingCriteria.getScore());
|
||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : existingCriteria.getValid());
|
||||
}
|
||||
return request;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
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();
|
||||
request.setId(existing.getId());
|
||||
request.setScore(existing.getScore());
|
||||
@@ -492,58 +497,65 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
private List<ChecklistRequest> processChecklist(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||
|
||||
List<ChecklistRequest> incomingChecklistList = Optional.ofNullable(req.getChecklist()).orElse(new ArrayList<>());
|
||||
|
||||
List<ChecklistResponse> existingChecklistList = entity.getChecklist() != null ?
|
||||
Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {
|
||||
}) :
|
||||
Utils.convertJsonToList(entity.getChecklist(), new TypeReference<List<ChecklistResponse>>() {}) :
|
||||
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();
|
||||
request.setId(incoming.getId());
|
||||
request.setValid(incoming.getValid());
|
||||
|
||||
ChecklistResponse existingChecklist = existingChecklistMap.get(incoming.getId());
|
||||
if (existingChecklist != null && incoming.getValid() == null) {
|
||||
request.setValid(null);
|
||||
request.setValid(existingChecklist.getValid());
|
||||
}
|
||||
return request;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
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();
|
||||
request.setId(existing.getId());
|
||||
request.setValid(existing.getValid() != null ? existing.getValid() : null);
|
||||
request.setValid(existing.getValid());
|
||||
return request;
|
||||
}).toList();
|
||||
|
||||
updatedChecklistList.addAll(missingChecklistRequests);
|
||||
return updatedChecklistList;
|
||||
}
|
||||
|
||||
private List<FieldRequest> processField(ApplicationEvaluationEntity entity, ApplicationEvaluationRequest req) {
|
||||
|
||||
List<FieldResponse> existingFieldList = entity.getFile() != null ? Utils.convertJsonToList(entity.getFile(), new TypeReference<List<FieldResponse>>() {
|
||||
}) : new ArrayList<>();
|
||||
List<FieldRequest> incomingFieldList = Optional.ofNullable(req.getFiles()).orElse(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();
|
||||
request.setId(incoming.getId());
|
||||
request.setValid(incoming.getValid());
|
||||
|
||||
FieldResponse existingField = existingFieldMap.get(incoming.getId());
|
||||
if (existingField != null) {
|
||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : null);
|
||||
request.setValid(incoming.getValid() != null ? incoming.getValid() : existingField.getValid());
|
||||
}
|
||||
return request;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
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();
|
||||
request.setId(existing.getId());
|
||||
request.setValid(existing.getValid());
|
||||
|
||||
Reference in New Issue
Block a user