133 lines
5.9 KiB
Java
133 lines
5.9 KiB
Java
package net.gepafin.tendermanagement.service.impl;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import net.gepafin.tendermanagement.config.Translator;
|
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
|
import net.gepafin.tendermanagement.dao.ApplicationDao;
|
|
import net.gepafin.tendermanagement.dao.FlowFormDao;
|
|
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
|
import net.gepafin.tendermanagement.entities.CompanyEntity;
|
|
import net.gepafin.tendermanagement.entities.UserEntity;
|
|
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
|
|
import net.gepafin.tendermanagement.enums.ApplicationStatusTypeEnum;
|
|
import net.gepafin.tendermanagement.enums.FormActionEnum;
|
|
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
|
|
import net.gepafin.tendermanagement.model.response.ApplicationGetResponseBean;
|
|
import net.gepafin.tendermanagement.model.response.ApplicationResponse;
|
|
import net.gepafin.tendermanagement.model.response.ApplicationResponseBean;
|
|
import net.gepafin.tendermanagement.model.response.ApplicationSignedDocumentResponse;
|
|
import net.gepafin.tendermanagement.model.response.NextOrPreviousFormResponse;
|
|
import net.gepafin.tendermanagement.service.ApplicationService;
|
|
import net.gepafin.tendermanagement.util.Validator;
|
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import java.util.List;
|
|
|
|
@Service
|
|
public class ApplicationServiceImpl implements ApplicationService {
|
|
|
|
@Autowired
|
|
private ApplicationDao applicationDao;
|
|
|
|
@Autowired
|
|
private FlowFormDao flowFormDao;
|
|
|
|
@Autowired
|
|
private Validator validator;
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public ApplicationResponseBean createApplication(HttpServletRequest request,
|
|
ApplicationRequestBean applicationRequestBean, Long applicationId, Long formId) {
|
|
return applicationDao.createApplication(request, applicationRequestBean, formId, applicationId);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(readOnly = true)
|
|
public ApplicationGetResponseBean getApplicationByFormId(HttpServletRequest request, Long applicationId,Long formId) {
|
|
return applicationDao.getApplicationByFormId(request, applicationId,formId);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void deleteApplication(HttpServletRequest request, Long applicationId) {
|
|
applicationDao.deleteById(request, applicationId);
|
|
}
|
|
|
|
@Override
|
|
public ApplicationEntity validateApplication(Long applicationId) {
|
|
return applicationDao.validateApplication(applicationId);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public ApplicationResponse createApplication(HttpServletRequest request, Long companyId, ApplicationRequest applicationRequest, Long callId) {
|
|
UserEntity userEntity = validator.validateUser(request);
|
|
if(companyId==null){
|
|
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.USER_MUST_BE_ASSOCIATED_WITH_COMPANY));
|
|
}
|
|
CompanyEntity companyEntity = validator.validateUserWithCompany(request, companyId);
|
|
validator.validateUserWithCall(userEntity, callId);
|
|
return applicationDao.createApplicationByCallId(companyEntity, applicationRequest, callId, userEntity);
|
|
}
|
|
|
|
@Override
|
|
public NextOrPreviousFormResponse getNextOrPreviousForm(HttpServletRequest request, Long applicationId, Long formId,
|
|
FormActionEnum action) {
|
|
ApplicationEntity applicationEntity = validateApplication(applicationId);
|
|
validator.validateUserWithCompany(request, applicationEntity.getCompanyId());
|
|
return flowFormDao.getNextOrPreviousForm(applicationEntity, formId, action);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public ApplicationResponse updateApplicationStatus(HttpServletRequest request, Long applicationId, ApplicationStatusTypeEnum status) {
|
|
|
|
return applicationDao.updateApplicationStatus(request, applicationId, status);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(readOnly = true)
|
|
public List<ApplicationResponse> getAllApplications(HttpServletRequest request, Long callId, Long companyId ,List<ApplicationStatusTypeEnum> statusList) {
|
|
UserEntity userEntity = validator.validateUser(request);
|
|
if (companyId != null) {
|
|
validator.validateUserWithCompany(request, companyId);
|
|
}
|
|
return applicationDao.getAllApplications(userEntity, callId, companyId , statusList);
|
|
}
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public ApplicationSignedDocumentResponse uploadSignedDocument(HttpServletRequest request, Long applicationId, MultipartFile file) {
|
|
return applicationDao.uploadSignedDocument(request, applicationId, file);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(readOnly = true)
|
|
public ApplicationSignedDocumentResponse getSignedDocument(HttpServletRequest request, Long applicationId) {
|
|
return applicationDao.getSignedDocument(request, applicationId);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void deleteSignedDocument(HttpServletRequest request, Long applicationId) {
|
|
applicationDao.deleteSignedDocument(request, applicationId);
|
|
}
|
|
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public ApplicationResponse validateApplication(HttpServletRequest request, Long applicationId) {
|
|
return applicationDao.validateApplication(request, applicationId);
|
|
}
|
|
@Override
|
|
@Transactional(readOnly = true)
|
|
public byte[] downloadApplicationDocumentsAsZip(HttpServletRequest request, Long applicationId) {
|
|
return applicationDao.downloadApplicationDocumentsAsZip(request,applicationId);
|
|
}
|
|
|
|
}
|