Resolved conflicts
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
package net.gepafin.tendermanagement.dao;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
@@ -8,7 +7,6 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import net.gepafin.tendermanagement.enums.UserStatusEnum;
|
||||
import net.gepafin.tendermanagement.model.response.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -78,8 +76,10 @@ public class CallDao {
|
||||
private UserService userService;
|
||||
|
||||
public CallResponse createCallStep1(CreateCallRequestStep1 createCallRequest, Long userId) {
|
||||
UserEntity userEntity = userService.validateUser(userId);
|
||||
createCallRequest.setRegionId(userEntity.getRoleEntity().getRegion().getId());
|
||||
CallEntity callEntity = convertToCallEntity(createCallRequest);
|
||||
convertToFaqEntities(createCallRequest.getFaq(), callEntity, userId);
|
||||
convertToFaqEntities(createCallRequest.getFaq(), callEntity, userEntity,LookUpDataTypeEnum.FAQ);
|
||||
convertLookUpDataEntities(createCallRequest.getAimedTo(), callEntity,
|
||||
LookUpDataTypeEnum.AIMED_TO);
|
||||
// createCallResponseBean = assembleCreateCallResponseBean(callEntity, Collections.emptyList(),
|
||||
@@ -94,7 +94,7 @@ public class CallDao {
|
||||
|
||||
public CallEntity convertToCallEntity(CreateCallRequestStep1 createCallRequest) {
|
||||
CallEntity callEntity = new CallEntity();
|
||||
validateCallEntity(createCallRequest);
|
||||
// validateCallEntity(createCallRequest);
|
||||
RegionEntity region = regionRepository.findById(createCallRequest.getRegionId())
|
||||
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.REGION_NOT_FOUND)));
|
||||
@@ -102,8 +102,13 @@ public class CallDao {
|
||||
callEntity.setName(createCallRequest.getName());
|
||||
callEntity.setDescriptionShort(createCallRequest.getDescriptionShort());
|
||||
callEntity.setDescriptionLong(createCallRequest.getDescriptionLong());
|
||||
callEntity.setStartDate(createCallRequest.getStartDate());
|
||||
callEntity.setEndDate(createCallRequest.getEndDate());
|
||||
List<LocalDateTime> dates = createCallRequest.getDates();
|
||||
if(dates!=null) {
|
||||
if(dates.size()>1) {
|
||||
callEntity.setStartDate(dates.get(0));
|
||||
callEntity.setEndDate(dates.get(1));
|
||||
}
|
||||
}
|
||||
callEntity.setStatus(CallStatusEnum.DRAFT.getValue());
|
||||
callEntity.setAmountMax(createCallRequest.getAmountMax());
|
||||
callEntity.setAmount(createCallRequest.getAmountMax());
|
||||
@@ -143,7 +148,7 @@ public class CallDao {
|
||||
CallEntity callEntity, LookUpDataTypeEnum type) {
|
||||
EvaluationCriteriaEntity criteriaEntity = null;
|
||||
LookUpDataEntity lookupDataEntity = convertLookUpDataRequestIntoLookUpDataEntity(criteriaReq, type);
|
||||
if (criteriaReq.getId() == null && criteriaReq.getId().equals(0l)) {
|
||||
if (criteriaReq.getId() != null && criteriaReq.getId() > 0) {
|
||||
criteriaEntity = evaluationCriteriaRepository.findById(criteriaReq.getId())
|
||||
.orElseThrow(() -> new ResourceNotFoundException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.EVALUATION_CRITERIA_NOT_FOUND)));
|
||||
@@ -194,22 +199,33 @@ public class CallDao {
|
||||
return documentEntity;
|
||||
}
|
||||
|
||||
public List<FaqEntity> convertToFaqEntities(List<FaqReq> faqReqList, CallEntity callEntity, Long userId) {
|
||||
public List<FaqEntity> convertToFaqEntities(List<FaqReq> faqReqList, CallEntity callEntity, UserEntity userEntity, LookUpDataTypeEnum type) {
|
||||
if (faqReqList == null) {
|
||||
return null;
|
||||
}
|
||||
List<FaqEntity> faqEntities = faqReqList.stream().map(req -> convertToFaqEntity(req, callEntity, userId))
|
||||
List<FaqEntity> existingFaqEntities = faqRepository.findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), type.getValue());
|
||||
List<Long> incomingIds = faqReqList.stream()
|
||||
.map(FaqReq::getId)
|
||||
.filter(id -> id != null && id > 0)
|
||||
.collect(Collectors.toList());
|
||||
existingFaqEntities.stream()
|
||||
.filter(entity -> !incomingIds.contains(entity.getId()))
|
||||
.forEach(this::softDeleteFaq);
|
||||
List<FaqEntity> faqEntities = faqReqList.stream()
|
||||
.map(req -> convertToFaqEntity(req, callEntity, userEntity, type))
|
||||
.collect(Collectors.toList());
|
||||
faqRepository.saveAll(faqEntities);
|
||||
return faqEntities;
|
||||
}
|
||||
|
||||
public FaqEntity convertToFaqEntity(FaqReq faqReq, CallEntity callEntity, Long userId) {
|
||||
|
||||
public FaqEntity convertToFaqEntity(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity,LookUpDataTypeEnum type) {
|
||||
FaqEntity faqEntity = new FaqEntity();
|
||||
LookUpDataEntity lookupDataEntity = convertLookUpDataRequestIntoLookUpDataEntity(faqReq, type);
|
||||
validateFaqEntity(faqReq.getQuestion());
|
||||
UserEntity userEntity = userService.validateUser(userId);
|
||||
faqEntity.setUser(userEntity);
|
||||
faqEntity.setIsVisible(true);
|
||||
faqEntity.setIsVisible(false);
|
||||
faqEntity.setLookupData(lookupDataEntity);
|
||||
if (faqReq.getIsVisible() != null) {
|
||||
faqEntity.setIsVisible(faqReq.getIsVisible());
|
||||
}
|
||||
@@ -233,7 +249,7 @@ public class CallDao {
|
||||
}
|
||||
|
||||
public void validateDocumentEntity(Long documentId) {
|
||||
if (documentId == null) {
|
||||
if (documentId == null || documentId < 1) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.DOCUMENT_ID_NOT_FOUND));
|
||||
}
|
||||
@@ -246,32 +262,34 @@ public class CallDao {
|
||||
}
|
||||
}
|
||||
|
||||
public void validateCallEntity(CreateCallRequestStep1 createCallRequest) {
|
||||
if (createCallRequest.getRegionId() == null) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.REGION_NOT_FOUND_MSG));
|
||||
}
|
||||
|
||||
if (createCallRequest.getAmount().compareTo(BigDecimal.ZERO) <= 0
|
||||
|| createCallRequest.getAmountMax().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.AMOUNT_GREATER_THAN_ZERO_MSG));
|
||||
}
|
||||
if (createCallRequest.getStartDate().toLocalDate().isBefore(LocalDate.now())
|
||||
|| createCallRequest.getEndDate().toLocalDate().isBefore(LocalDate.now()) || createCallRequest
|
||||
.getStartDate().toLocalDate().isAfter(createCallRequest.getEndDate().toLocalDate())) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.INVALID_DATE_MSG));
|
||||
}
|
||||
|
||||
}
|
||||
// public void validateCallEntity(CreateCallRequestStep1 createCallRequest) {
|
||||
// if (createCallRequest.getRegionId() == null) {
|
||||
// throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
// Translator.toLocale(GepafinConstant.REGION_NOT_FOUND_MSG));
|
||||
// }
|
||||
//
|
||||
// if (createCallRequest.getAmount().compareTo(BigDecimal.ZERO) <= 0
|
||||
// || createCallRequest.getAmountMax().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
// throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
// Translator.toLocale(GepafinConstant.AMOUNT_GREATER_THAN_ZERO_MSG));
|
||||
// }
|
||||
// if (createCallRequest.getStartDate().toLocalDate().isBefore(LocalDate.now())
|
||||
// || createCallRequest.getEndDate().toLocalDate().isBefore(LocalDate.now()) || createCallRequest
|
||||
// .getStartDate().toLocalDate().isAfter(createCallRequest.getEndDate().toLocalDate())) {
|
||||
// throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
// Translator.toLocale(GepafinConstant.INVALID_DATE_MSG));
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
public CallResponse convertToCallResponseBean(CallEntity callEntity) {
|
||||
CallResponse createCallResponseBean = new CallResponse();
|
||||
createCallResponseBean.setId(callEntity.getId());
|
||||
createCallResponseBean.setName(callEntity.getName());
|
||||
createCallResponseBean.setStartDate(callEntity.getStartDate());
|
||||
createCallResponseBean.setEndDate(callEntity.getEndDate());
|
||||
List<LocalDateTime> dates = new ArrayList<>();
|
||||
dates.add(callEntity.getStartDate());
|
||||
dates.add(callEntity.getEndDate());
|
||||
createCallResponseBean.setDates(dates);
|
||||
createCallResponseBean.setDescriptionShort(callEntity.getDescriptionShort());
|
||||
createCallResponseBean.setDescriptionLong(callEntity.getDescriptionLong());
|
||||
createCallResponseBean.setStatus(CallStatusEnum.valueOf(callEntity.getStatus()));
|
||||
@@ -281,7 +299,7 @@ public class CallDao {
|
||||
createCallResponseBean.setContactInfo(callEntity.getContactInfo());
|
||||
createCallResponseBean.setSubmissionMethod(callEntity.getSubmissionMethod());
|
||||
createCallResponseBean.setThreshold(callEntity.getThreshold());
|
||||
createCallResponseBean.setDocumentationReqested(callEntity.getDocumentationRequested());
|
||||
createCallResponseBean.setDocumentationRequested(callEntity.getDocumentationRequested());
|
||||
createCallResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
||||
createCallResponseBean.setConfidi(callEntity.getConfidi());
|
||||
createCallResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
||||
@@ -315,6 +333,9 @@ public class CallDao {
|
||||
public FaqResponseBean convertToFaqResponseBean(FaqEntity entity) {
|
||||
FaqResponseBean responseBean = new FaqResponseBean();
|
||||
responseBean.setId(entity.getId());
|
||||
responseBean.setLookUpDataId(entity.getLookupData().getId());
|
||||
responseBean.setValue(entity.getLookupData().getValue());
|
||||
responseBean.setTitle(entity.getLookupData().getTitle());
|
||||
responseBean.setQuestionShort(entity.getQuestionShort());
|
||||
responseBean.setResponseShort(entity.getResponseShort());
|
||||
responseBean.setResponse(entity.getResponse());
|
||||
@@ -353,6 +374,9 @@ public class CallDao {
|
||||
|
||||
public List<LookUpDataResponse> convertLookUpDataEntities(List<LookUpDataReq> lookUpData, CallEntity callEntity,
|
||||
LookUpDataEntity.LookUpDataTypeEnum type) {
|
||||
if(lookUpData == null) {
|
||||
return null;
|
||||
}
|
||||
List<LookUpDataEntity> lookUpDataEntities = lookUpData.stream()
|
||||
.map(req -> convertLookUpDataRequestIntoLookUpDataEntity(req, type)).collect(Collectors.toList());
|
||||
|
||||
@@ -418,7 +442,7 @@ public class CallDao {
|
||||
CallEntity callEntity = callRepository.findById(callId)
|
||||
.orElseThrow(() -> new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.CALL_NOT_FOUND)));
|
||||
|
||||
validateUpdate(callEntity);
|
||||
setIfUpdated(callEntity::getThreshold, callEntity::setThreshold, createCallRequest.getThreshold());
|
||||
callRepository.save(callEntity);
|
||||
convertToEvaluationCriteriaEntities(createCallRequest.getCriteria(), callEntity, LookUpDataTypeEnum.EVALUATION_CRITERIA);
|
||||
@@ -442,11 +466,24 @@ public class CallDao {
|
||||
return createCallResponseBean;
|
||||
}
|
||||
|
||||
private void validateUpdate(CallEntity callEntity) {
|
||||
if(callEntity.getStatus().equals(CallStatusEnum.PUBLISH.getValue())) {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.PUBLISHED_CALL_NOT_UPDATE));
|
||||
}
|
||||
}
|
||||
|
||||
public void isValidDateRange(UpdateCallRequestStep1 updateCallRequest, CallEntity callEntity) {
|
||||
LocalDate startDate = updateCallRequest.getStartDate() != null ? updateCallRequest.getStartDate().toLocalDate()
|
||||
: null;
|
||||
LocalDate endDate = updateCallRequest.getEndDate() != null ? updateCallRequest.getEndDate().toLocalDate()
|
||||
: null;
|
||||
List<LocalDateTime> dates = updateCallRequest.getDates();
|
||||
|
||||
LocalDate startDate = (dates != null && dates.size() > 0 && dates.get(0) != null)
|
||||
? dates.get(0).toLocalDate()
|
||||
: null;
|
||||
|
||||
LocalDate endDate = (dates != null && dates.size() > 1 && dates.get(1) != null)
|
||||
? dates.get(1).toLocalDate()
|
||||
: null;
|
||||
|
||||
Boolean isValid = true;
|
||||
if (startDate != null && endDate != null && startDate.isAfter(endDate)) {
|
||||
isValid = false;
|
||||
@@ -473,21 +510,31 @@ public class CallDao {
|
||||
updateCallRequest.getDescriptionShort());
|
||||
setIfUpdated(callEntity::getDescriptionLong, callEntity::setDescriptionLong,
|
||||
updateCallRequest.getDescriptionLong());
|
||||
setIfUpdated(callEntity::getStartDate, callEntity::setStartDate, updateCallRequest.getStartDate());
|
||||
setIfUpdated(callEntity::getEndDate, callEntity::setEndDate, updateCallRequest.getEndDate());
|
||||
List<LocalDateTime> dates=updateCallRequest.getDates();
|
||||
|
||||
if (dates != null && dates.size()>1) {
|
||||
if (dates.size() > 0) {
|
||||
setIfUpdated(callEntity::getStartDate, callEntity::setStartDate, dates.get(0));
|
||||
}
|
||||
if (dates.size() > 1) {
|
||||
setIfUpdated(callEntity::getEndDate, callEntity::setEndDate, dates.get(1));
|
||||
}
|
||||
}
|
||||
// setIfUpdated(callEntity::getStartDate, callEntity::setStartDate, updateCallRequest.getStartDate());
|
||||
// setIfUpdated(callEntity::getEndDate, callEntity::setEndDate, updateCallRequest.getEndDate());
|
||||
setIfUpdated(callEntity::getAmount, callEntity::setAmount, updateCallRequest.getAmount());
|
||||
setIfUpdated(callEntity::getAmountMax, callEntity::setAmountMax, updateCallRequest.getAmountMax());
|
||||
setIfUpdated(callEntity::getDocumentationRequested, callEntity::setDocumentationRequested,
|
||||
updateCallRequest.getDocumentationRequested());
|
||||
setIfUpdated(callEntity::getConfidi, callEntity::setConfidi, updateCallRequest.getConfidi());
|
||||
updateLookUpData(callEntity, updateCallRequest.getAimedTo(), LookUpDataTypeEnum.AIMED_TO);
|
||||
updateFaq(callEntity, updateCallRequest.getFaq(), userEntity);
|
||||
updateFaq(callEntity, updateCallRequest.getFaq(), userEntity, LookUpDataTypeEnum.FAQ);
|
||||
CallResponse createCallResponseBean = getCallResponseBean(callEntity);
|
||||
createCallResponseBean.setCurrentStep(GepafinConstant.STEP_1);
|
||||
return createCallResponseBean;
|
||||
}
|
||||
|
||||
private void updateFaq(CallEntity callEntity, List<FaqReq> faqReqList, UserEntity userEntity) {
|
||||
private void updateFaq(CallEntity callEntity, List<FaqReq> faqReqList, UserEntity userEntity, LookUpDataTypeEnum type) {
|
||||
if (faqReqList == null) {
|
||||
return;
|
||||
}
|
||||
@@ -495,7 +542,7 @@ public class CallDao {
|
||||
List<Long> incomingIds = faqReqList.stream().map(FaqReq::getId).filter(Objects::nonNull).filter(id -> id > 0)
|
||||
.collect(Collectors.toList());
|
||||
existingFaqs.stream().filter(faq -> !incomingIds.contains(faq.getId())).forEach(this::softDeleteFaq);
|
||||
faqReqList.forEach(faqReq -> createOrUpdateFaq(faqReq, callEntity, userEntity));
|
||||
faqReqList.forEach(faqReq -> createOrUpdateFaq(faqReq, callEntity, userEntity, type));
|
||||
|
||||
}
|
||||
|
||||
@@ -504,8 +551,10 @@ public class CallDao {
|
||||
faqRepository.save(faqEntity);
|
||||
}
|
||||
|
||||
private void createOrUpdateFaq(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity) {
|
||||
private void createOrUpdateFaq(FaqReq faqReq, CallEntity callEntity, UserEntity userEntity, LookUpDataTypeEnum type) {
|
||||
FaqEntity faqEntity = null;
|
||||
|
||||
LookUpDataEntity lookupDataEntity = convertLookUpDataRequestIntoLookUpDataEntity(faqReq, type);
|
||||
|
||||
if (isExistingFaq(faqReq)) {
|
||||
faqEntity = faqRepository.findById(faqReq.getId())
|
||||
@@ -515,9 +564,14 @@ public class CallDao {
|
||||
faqEntity = new FaqEntity();
|
||||
faqEntity.setCall(callEntity);
|
||||
faqEntity.setUser(userEntity);
|
||||
faqEntity.setLookupData(lookupDataEntity);
|
||||
faqEntity.setIsVisible(false);
|
||||
faqEntity.setIsDeleted(false);
|
||||
}
|
||||
|
||||
|
||||
if (Boolean.FALSE.equals(faqEntity.getLookupData().getId().equals(lookupDataEntity.getId()))) {
|
||||
faqEntity.setLookupData(lookupDataEntity);
|
||||
}
|
||||
setIfUpdated(faqEntity::getQuestionShort, faqEntity::setQuestionShort, faqReq.getQuestionShort());
|
||||
setIfUpdated(faqEntity::getQuestion, faqEntity::setQuestion, faqReq.getQuestion());
|
||||
setIfUpdated(faqEntity::getResponseShort, faqEntity::setResponseShort, faqReq.getResponseShort());
|
||||
@@ -577,7 +631,10 @@ public class CallDao {
|
||||
CallDetailsResponseBean callDetailsResponseBean = new CallDetailsResponseBean();
|
||||
callDetailsResponseBean.setId(callEntity.getId());
|
||||
callDetailsResponseBean.setName(callEntity.getName());
|
||||
callDetailsResponseBean.setDates(List.of(callEntity.getStartDate(), callEntity.getEndDate()));
|
||||
List<LocalDateTime> dates = new ArrayList<>();
|
||||
dates.add(callEntity.getStartDate());
|
||||
dates.add(callEntity.getEndDate());
|
||||
callDetailsResponseBean.setDates(dates);
|
||||
callDetailsResponseBean.setDescriptionShort(callEntity.getDescriptionShort());
|
||||
callDetailsResponseBean.setDescriptionLong(callEntity.getDescriptionLong());
|
||||
callDetailsResponseBean.setStatus(CallStatusEnum.valueOf(callEntity.getStatus()));
|
||||
@@ -587,7 +644,7 @@ public class CallDao {
|
||||
callDetailsResponseBean.setContactInfo(callEntity.getContactInfo());
|
||||
callDetailsResponseBean.setSubmissionMethod(callEntity.getSubmissionMethod());
|
||||
callDetailsResponseBean.setThreshold(callEntity.getThreshold());
|
||||
callDetailsResponseBean.setDocumentationReqested(callEntity.getDocumentationRequested());
|
||||
callDetailsResponseBean.setDocumentationRequested(callEntity.getDocumentationRequested());
|
||||
callDetailsResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
||||
callDetailsResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
||||
callDetailsResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
||||
@@ -598,7 +655,7 @@ public class CallDao {
|
||||
List<DocumentEntity> documentEntities = documentRepository.findByCallIdAndTypeAndIsDeletedFalse(callEntity.getId(),
|
||||
DocumentTypeEnum.DOCUMENT.getValue());
|
||||
List<DocumentEntity> imageEntities = documentRepository.findByCallIdAndTypeAndIsDeletedFalse(callEntity.getId(),
|
||||
DocumentTypeEnum.DOCUMENT.getValue());
|
||||
DocumentTypeEnum.IMAGES.getValue());
|
||||
List<FaqEntity> faqEntities = faqRepository.findByCallIdAndIsDeletedFalse(callEntity.getId());
|
||||
List<LookUpDataResponse> amiedTo = callTargetAudienceChecklistRepository
|
||||
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(callEntity.getId(), LookUpDataTypeEnum.AIMED_TO.getValue()).stream()
|
||||
@@ -630,6 +687,7 @@ public class CallDao {
|
||||
callEntity.setStatus(CallStatusEnum.READY_TO_PUBLISH.getValue());
|
||||
callRepository.save(callEntity);
|
||||
callResponseBean.setCurrentStep(GepafinConstant.VALIDATE_REQUEST);
|
||||
callResponseBean.setStatus(CallStatusEnum.READY_TO_PUBLISH);
|
||||
return callResponseBean;
|
||||
}
|
||||
public CallEntity getCallEntityById(Long id){
|
||||
@@ -664,12 +722,9 @@ public class CallDao {
|
||||
}
|
||||
break;
|
||||
case PUBLISH:
|
||||
case EXPIRE:
|
||||
case EXPIRED:
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.STATUS_CANNOT_BE_CHANGED));
|
||||
default:
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,
|
||||
Translator.toLocale(GepafinConstant.INVALID_STATUS_TRANSITION));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user