Resolved conflict
This commit is contained in:
@@ -18,7 +18,7 @@ public class AppointmentApiConstant {
|
||||
public static final boolean CREA_ANAGRAFICA = Boolean.TRUE;
|
||||
public static final boolean SALVA_DOCUMENTI = Boolean.TRUE;
|
||||
public static final String VISURA_PROVIDER = "cerved";
|
||||
public static final String VISURA_TYPE = "StandardReport";
|
||||
public static final String VISURA_TYPE = "FullReport";
|
||||
public static final String VISURA_MODE = "visure";
|
||||
public static final String COD_AGENTE = "UtenzaAPIPortal";
|
||||
public static final boolean IS_FROM_RATING = Boolean.FALSE;
|
||||
@@ -38,4 +38,7 @@ public class AppointmentApiConstant {
|
||||
public static final String COD_OPERAZIONE = "codOperazione";
|
||||
public static final String MOTIVAZIONE_ID = "id";
|
||||
public static final String PRODOTTO_CODE = "code";
|
||||
|
||||
public static final String WS_ANAGRAFICA_URL= "/WSAnagrafica.getList";
|
||||
|
||||
}
|
||||
|
||||
@@ -568,10 +568,14 @@ public class GepafinConstant {
|
||||
public static final String PROTOCOL_MITTENTE="mittente";
|
||||
public static final String PROTOCOL_DESTINATARI="destinatari";
|
||||
public static final String PROTOCOL_EXTERNAL_YEAR="ANNO_PG";
|
||||
public static final String PROTOCOL_EXTERNAL_NUMBER="";
|
||||
public static final String PROTOCOL_EXTERNAL_DATE="";
|
||||
|
||||
|
||||
public static final String PROTOCOL_EXTERNAL_NUMBER="NUM_PG";
|
||||
public static final String PROTOCOL_EXTERNAL_DATE="DATA_PG_DT";
|
||||
public static final String PROTOCOL_DOC_SUFFIX="#noauth";
|
||||
public static final String CREATE_NDG="CHECK_OR_CREATE_NDG_CODE";
|
||||
public static final String NDG_NOT_FOUND="ndg.not.found";
|
||||
public static final String EMAIL_PEC_REQUIRED="email.pec.cannot.null";
|
||||
public static final String USER_REQUEST_COMPLETED="user.request.completed";
|
||||
public static final String END_DATE_GREATER_THAN_NOW="end.date.greater.than.now";
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -803,7 +803,7 @@ public class ApplicationAmendmentRequestDao {
|
||||
}
|
||||
|
||||
|
||||
private List<ApplicationFormFieldEntity> getApplicationFormFieldList(
|
||||
public List<ApplicationFormFieldEntity> getApplicationFormFieldList(
|
||||
ApplicationAmendmentRequestEntity applicationAmendment,
|
||||
List<String> fieldIds) {
|
||||
List<ApplicationFormEntity> applicationFormList = applicationFormRepository
|
||||
@@ -1146,6 +1146,7 @@ public class ApplicationAmendmentRequestDao {
|
||||
public ApplicationAmendmentRequestResponse extendResponseDays(Long id, Long newResponseDays) {
|
||||
log.info("Extending response days for Application Amendment ID: {}, Additional Days: {}", id, newResponseDays);
|
||||
ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = validatApplicationAmendmentRequestByStatus(id,ApplicationAmendmentRequestEnum.EXPIRED.getValue());
|
||||
log.info("Extending response days for Application Amendment ID: {}, Additional Days: {}", id, newResponseDays);
|
||||
|
||||
if (newResponseDays != null && newResponseDays > 0) {
|
||||
ApplicationAmendmentRequestEntity oldApplicationAmendmentEntity = Utils.getClonedEntityForData(applicationAmendmentRequestEntity);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package net.gepafin.tendermanagement.dao;
|
||||
|
||||
import com.amazonaws.services.dynamodbv2.xspec.S;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
@@ -16,6 +17,11 @@ import net.gepafin.tendermanagement.entities.*;
|
||||
import net.gepafin.tendermanagement.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
|
||||
import net.gepafin.tendermanagement.enums.*;
|
||||
import net.gepafin.tendermanagement.model.request.*;
|
||||
import net.gepafin.tendermanagement.model.request.ApplicationFormFieldRequestBean;
|
||||
import net.gepafin.tendermanagement.model.request.ApplicationRequest;
|
||||
import net.gepafin.tendermanagement.model.request.ApplicationRequestBean;
|
||||
import net.gepafin.tendermanagement.model.request.EmailLogRequest;
|
||||
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||
import net.gepafin.tendermanagement.model.response.*;
|
||||
import net.gepafin.tendermanagement.model.util.SortBy;
|
||||
import net.gepafin.tendermanagement.repositories.*;
|
||||
@@ -50,15 +56,14 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStreamWriter;
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Method;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.MessageFormat;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -211,6 +216,12 @@ public class ApplicationDao {
|
||||
@Autowired
|
||||
private ApplicationEvaluationDao applicationEvaluationDao;
|
||||
|
||||
@Autowired
|
||||
private EvaluationCriteriaRepository evaluationCriteriaRepository;
|
||||
|
||||
@Autowired
|
||||
private CallRepository callRepository;
|
||||
|
||||
public final Random random = new Random();
|
||||
|
||||
public ApplicationResponseBean createApplication(HttpServletRequest request, ApplicationRequestBean applicationRequestBean, Long formId, Long applicationId) {
|
||||
@@ -551,25 +562,68 @@ public class ApplicationDao {
|
||||
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||
List<ContentResponseBean> contentResponseBeans = formDao.convertFormEntityToFormResponseBean(formEntity).getContent();
|
||||
|
||||
contentResponseBeans.stream()
|
||||
.filter(content -> "numberinput".equals(content.getName()) && content.getId().toString().equals(applicationFormFieldRequestBean.getFieldId()))
|
||||
.map(ContentResponseBean::getSettings)
|
||||
.flatMap(List::stream)
|
||||
.filter(setting -> "isRequestedAmount".equals(setting.getName()) && Boolean.TRUE.equals(setting.getValue()))
|
||||
.findFirst()
|
||||
.ifPresent(setting -> {
|
||||
Object fieldValue = applicationFormFieldRequestBean.getFieldValue();
|
||||
if(fieldValue!=null) {
|
||||
try {
|
||||
BigDecimal amountRequested = new BigDecimal(fieldValue.toString());
|
||||
applicationFormEntity.getApplication().setAmountRequested(amountRequested);
|
||||
log.info("Set amountRequested to {} for Application ID: {}", amountRequested, applicationFormEntity.getApplication().getId());
|
||||
} catch (NumberFormatException e) {
|
||||
log.error("Invalid number format for requested amount: {}", fieldValue, e);
|
||||
throw new IllegalArgumentException("Field value is not a valid number: " + fieldValue, e);
|
||||
}
|
||||
}
|
||||
});
|
||||
// contentResponseBeans.stream()
|
||||
// .filter(content -> "numberinput".equals(content.getName()) && content.getId().toString().equals(applicationFormFieldRequestBean.getFieldId()))
|
||||
// .map(ContentResponseBean::getSettings)
|
||||
// .flatMap(List::stream)
|
||||
// .filter(setting -> "isRequestedAmount".equals(setting.getName()) && Boolean.TRUE.equals(setting.getValue()))
|
||||
// .findFirst()
|
||||
// .ifPresent(setting -> {
|
||||
// Object fieldValue = applicationFormFieldRequestBean.getFieldValue();
|
||||
// if(fieldValue!=null) {
|
||||
// try {
|
||||
// BigDecimal amountRequested = new BigDecimal(fieldValue.toString());
|
||||
// applicationFormEntity.getApplication().setAmountRequested(amountRequested);
|
||||
// log.info("Set amountRequested to {} for Application ID: {}", amountRequested, applicationFormEntity.getApplication().getId());
|
||||
// } catch (NumberFormatException e) {
|
||||
// log.error("Invalid number format for requested amount: {}", fieldValue, e);
|
||||
// throw new IllegalArgumentException("Field value is not a valid number: " + fieldValue, e);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
contentResponseBeans.stream()
|
||||
.filter(content -> content.getId().toString().equals(applicationFormFieldRequestBean.getFieldId()))
|
||||
.findFirst()
|
||||
.ifPresent(content -> {
|
||||
Object fieldValue = applicationFormFieldRequestBean.getFieldValue();
|
||||
if (fieldValue == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Convert settings list to a map
|
||||
Map<String, Object> settingMap = content.getSettings().stream()
|
||||
.collect(Collectors.toMap(SettingResponseBean::getName, SettingResponseBean::getValue, (v1, v2) -> v1));
|
||||
|
||||
String fieldType = content.getName();
|
||||
|
||||
// Define handlers for different (fieldType + settingName) combinations
|
||||
|
||||
// Add handler for isRequestedAmount
|
||||
if ("numberinput".equals(fieldType) && Boolean.TRUE.equals(settingMap.get("isRequestedAmount"))) {
|
||||
try {
|
||||
BigDecimal amountRequested = new BigDecimal(fieldValue.toString());
|
||||
applicationFormEntity.getApplication().setAmountRequested(amountRequested);
|
||||
log.info("Set amountRequested to {} for Application ID: {}", amountRequested, applicationFormEntity.getApplication().getId());
|
||||
} catch (NumberFormatException e) {
|
||||
log.error("Invalid number format for requested amount: {}", fieldValue, e);
|
||||
throw new IllegalArgumentException("Field value is not a valid number: " + fieldValue, e);
|
||||
}
|
||||
}
|
||||
|
||||
// Add handler for isPecEmail
|
||||
if ("textinput".equals(fieldType) && Boolean.TRUE.equals(settingMap.get("isPecEmail"))) {
|
||||
applicationFormEntity.getApplication().setPecEmail(fieldValue.toString());
|
||||
log.info("Set PEC to {} for Application ID: {}", fieldValue, applicationFormEntity.getApplication().getId());
|
||||
}
|
||||
|
||||
if ("textinput".equals(fieldType) && Boolean.TRUE.equals(settingMap.get("isPIVA"))) {
|
||||
applicationFormEntity.getApplication().setVatNumber(fieldValue.toString());
|
||||
log.info("Set PEC to {} for Application ID: {}", fieldValue, applicationFormEntity.getApplication().getId());
|
||||
}
|
||||
|
||||
// Run all applicable handlers
|
||||
});
|
||||
|
||||
|
||||
ApplicationFormFieldEntity oldApplicationFormFieldData = null;
|
||||
@@ -938,10 +992,12 @@ public class ApplicationDao {
|
||||
// call = callService.validatePublishedCall(call.getId());
|
||||
// checkIfApplicationExists(call, userWithCompanyEntity, userEntity);
|
||||
HubEntity hubEntity = hubService.valdateHub(call.getHub().getId());
|
||||
if(hubEntity.getUniqueUuid().equals(defaultHubUuid)){
|
||||
checkIfApplicationExists(call, userWithCompanyEntity, userEntity);
|
||||
if(call.getAllowMultipleApplications() == null || Boolean.FALSE.equals(call.getAllowMultipleApplications())){
|
||||
if(hubEntity.getUniqueUuid().equals(defaultHubUuid)){
|
||||
checkIfApplicationExists(call, userWithCompanyEntity, userEntity);
|
||||
}
|
||||
}
|
||||
ApplicationEntity applicationEntity = createApplicationEntity(userEntity, call, userWithCompanyEntity);
|
||||
ApplicationEntity applicationEntity = createApplicationEntity(userEntity, call, userWithCompanyEntity);
|
||||
applicationEntity.setComments(applicationRequest.getComments());
|
||||
applicationEntity = saveApplicationEntity(applicationEntity);
|
||||
return getApplicationResponse(applicationEntity);
|
||||
@@ -1153,8 +1209,16 @@ public class ApplicationDao {
|
||||
// Create the map for body placeholders
|
||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocol.getProtocolNumber().toString());
|
||||
bodyPlaceholders.put("{{date}}", DateTimeUtil.formatLocalDateTime(protocol.getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
||||
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(applicationEntity.getProtocol().getProtocolNumber());
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_number}}",protocolNumber);
|
||||
String protocolDate= DateTimeUtil.formatLocalDateTime(protocol.getCreatedDate(), GepafinConstant.DD_MM_YYYY);
|
||||
if(protocol.getExternalProtocolDate()!=null){
|
||||
protocolDate= DateTimeUtil.formatLocalDateTime(protocol.getExternalProtocolDate(), GepafinConstant.DD_MM_YYYY);
|
||||
}
|
||||
bodyPlaceholders.put("{{date}}", protocolDate);
|
||||
bodyPlaceholders.put("{{time}}", DateTimeUtil.parseLocalTimeToString(protocol.getTime(), GepafinConstant.HH_MM_SS));
|
||||
|
||||
// Replace placeholders in the subject and body
|
||||
@@ -1164,26 +1228,39 @@ public class ApplicationDao {
|
||||
String email = userEntity.getEmail();
|
||||
if (userEntity.getBeneficiary() != null) {
|
||||
emailLogRequest.setRecipientType(RecipientTypeEnum.BENEFICIARY);
|
||||
email = userEntity.getBeneficiary().getEmail();
|
||||
emailLogRequest.setRecipientId(userEntity.getBeneficiary().getId());
|
||||
|
||||
if(Boolean.TRUE.equals(hub.getUniqueUuid().equals(defaultHubUuid))){
|
||||
email=applicationEntity.getPecEmail();
|
||||
}else {
|
||||
email = userEntity.getBeneficiary().getEmail();
|
||||
}
|
||||
emailLogRequest.setRecipientId(userEntity.getBeneficiary().getId());
|
||||
}
|
||||
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email),emailLogRequest);
|
||||
List<String> recipientEmails = new ArrayList<>();
|
||||
// recipientEmails.add(email);
|
||||
String companyEmail = userWithCompany.getEmail();
|
||||
String contactEmail = userWithCompany.getContactEmail();
|
||||
if(Boolean.TRUE.equals(hub.getUniqueUuid().equals(defaultHubUuid))){
|
||||
if (company.getPec()!=null) {
|
||||
recipientEmails.add(company.getPec());
|
||||
}else {
|
||||
recipientEmails.add(userWithCompany.getPec());
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (companyEmail != null && !companyEmail.isEmpty()) {
|
||||
recipientEmails.add(companyEmail);
|
||||
}
|
||||
|
||||
if (companyEmail != null && !companyEmail.isEmpty()) {
|
||||
recipientEmails.add(companyEmail);
|
||||
}
|
||||
|
||||
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
||||
recipientEmails.add(contactEmail);
|
||||
}
|
||||
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
||||
recipientEmails.add(contactEmail);
|
||||
}
|
||||
}
|
||||
if(Boolean.FALSE.equals(recipientEmails.isEmpty())){
|
||||
emailLogRequest.setRecipientId(applicationEntity.getCompanyId());
|
||||
emailLogRequest.setRecipientType(RecipientTypeEnum.COMPANY);
|
||||
emailLogRequest.setRecipientEmails(companyEmail);
|
||||
emailLogRequest.setRecipientEmails(String.valueOf(recipientEmails));
|
||||
}
|
||||
emailNotificationDao.sendMail(hub.getId(), subject, body, recipientEmails,emailLogRequest);
|
||||
}
|
||||
@@ -1204,8 +1281,17 @@ public class ApplicationDao {
|
||||
// Create the map for body placeholders
|
||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocol.getProtocolNumber().toString());
|
||||
bodyPlaceholders.put("{{date}}", DateTimeUtil.formatLocalDateTime(protocol.getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
||||
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(applicationEntity.getProtocol().getProtocolNumber());
|
||||
}
|
||||
String protocolDate= DateTimeUtil.formatLocalDateTime(protocol.getCreatedDate(), GepafinConstant.DD_MM_YYYY);
|
||||
if(protocol.getExternalProtocolDate()!=null){
|
||||
protocolDate= DateTimeUtil.formatLocalDateTime(protocol.getExternalProtocolDate(), GepafinConstant.DD_MM_YYYY);
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocolNumber);
|
||||
bodyPlaceholders.put("{{date}}",protocolDate);
|
||||
bodyPlaceholders.put("{{time}}", DateTimeUtil.parseLocalTimeToString(protocol.getTime(), GepafinConstant.HH_MM_SS));
|
||||
|
||||
// Replace placeholders in the subject and body
|
||||
@@ -1972,7 +2058,7 @@ public class ApplicationDao {
|
||||
}
|
||||
|
||||
// Wrap it in ="..." to make Excel treat it as a literal string
|
||||
return "=\"" + stringValue.replace("\"", "\"\"") + "\"";
|
||||
return stringValue;
|
||||
|
||||
} catch (Exception e) {
|
||||
return "";
|
||||
@@ -2323,7 +2409,11 @@ public class ApplicationDao {
|
||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
||||
bodyPlaceholders.put("{{application_id}}", applicationEntity.getId().toString());
|
||||
bodyPlaceholders.put("{{company_name}}", company.getCompanyName());
|
||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
||||
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(applicationEntity.getProtocol().getProtocolNumber());
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocolNumber);
|
||||
bodyPlaceholders.put("{{user_action_id}}",emailLogRequest.getUserActionId().toString());
|
||||
|
||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||
@@ -2335,4 +2425,128 @@ public class ApplicationDao {
|
||||
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(GepafinConstant.RINALDO_EMAIL),emailLogRequest);
|
||||
}
|
||||
|
||||
public byte[] downloadRankingCsv(Long callId,UserEntity userEntity) {
|
||||
|
||||
CallEntity callEntity = validator.validateUserWithCall(userEntity,callId);
|
||||
|
||||
List<ApplicationEntity> applications =
|
||||
applicationRepository.findByCallIdAndIsDeletedFalseAndStatusIn(
|
||||
callId,
|
||||
List.of(
|
||||
ApplicationStatusForEvaluation.APPROVED.getValue(),
|
||||
ApplicationStatusForEvaluation.ADMISSIBLE.getValue(),
|
||||
ApplicationStatusForEvaluation.TECHNICAL_EVALUATION.getValue()
|
||||
));
|
||||
|
||||
List<String> dynamicLabels = new ArrayList<>(); // Maintain insertion order, allow duplicates only once
|
||||
Map<Long, Map<String, String>> appLabelScoresMap = new HashMap<>();
|
||||
|
||||
Map<Long, ApplicationEntity> applicationMap = new HashMap<>();
|
||||
Map<Long, String> appTotalScoreMap = new HashMap<>();
|
||||
Map<Long, String> appInstructorMap = new HashMap<>(); // New map to store instructor name per app
|
||||
|
||||
for (ApplicationEntity app : applications) {
|
||||
Long appId = app.getId();
|
||||
applicationMap.put(appId, app);
|
||||
|
||||
ApplicationEvaluationEntity evaluation =
|
||||
applicationEvaluationRepository.findByApplicationId(appId);
|
||||
|
||||
if (evaluation != null && evaluation.getAssignedApplicationsEntity() != null) {
|
||||
Long userId = evaluation.getAssignedApplicationsEntity().getUserId();
|
||||
if (userId != null) {
|
||||
userRepository.findById(userId).ifPresent(user -> {
|
||||
String firstName = user.getFirstName() != null ? user.getFirstName() : "";
|
||||
String lastName = user.getLastName() != null ? user.getLastName() : "";
|
||||
appInstructorMap.put(appId, firstName + " " + lastName);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
BigDecimal totalScore = applicationEvaluationDao.calculateTotalScore(evaluation.getCriteria());
|
||||
appTotalScoreMap.put(appId, Utils.convertToItalianFormatWithOnlyDecimalValue(String.valueOf(totalScore)));
|
||||
|
||||
List<CriteriaResponse> criteriaList =
|
||||
evaluation.getCriteria() != null ?
|
||||
Utils.convertJsonToList(evaluation.getCriteria(), new TypeReference<List<CriteriaResponse>>() {}) :
|
||||
List.of();
|
||||
|
||||
List<CriteriaResponse> dbCriteriaList = applicationEvaluationDao.getCriteriaResponse(appId);
|
||||
|
||||
Map<String, String> scoreByLabel = new HashMap<>();
|
||||
|
||||
for (CriteriaResponse criteria : criteriaList) {
|
||||
Optional<CriteriaResponse> matchedDb = dbCriteriaList.stream()
|
||||
.filter(db -> Objects.equals(db.getId(), criteria.getId()))
|
||||
.findFirst();
|
||||
|
||||
String label = matchedDb.map(CriteriaResponse::getLabel).orElse("");
|
||||
|
||||
if (!dynamicLabels.contains(label)) {
|
||||
dynamicLabels.add(label);
|
||||
}
|
||||
String criteriaScore= String.valueOf(criteria.getScore() != null ? criteria.getScore() : BigDecimal.ZERO);
|
||||
|
||||
scoreByLabel.put(label, Utils.convertToItalianFormatWithOnlyDecimalValue(criteriaScore));
|
||||
}
|
||||
|
||||
appLabelScoresMap.put(appId, scoreByLabel);
|
||||
}
|
||||
|
||||
// Build headers dynamically
|
||||
List<String> headers = new ArrayList<>(List.of(
|
||||
"ApplicationID","Application VatNumber", "VatNumber", "Company Name", "Protocol", "Requested Amount", "Status","Instructor Name","Application PEC","Company PEC","Total Score"
|
||||
));
|
||||
headers.addAll(dynamicLabels);
|
||||
|
||||
// Prepare data rows
|
||||
List<List<Object>> rows = new ArrayList<>();
|
||||
|
||||
for (ApplicationEntity app : applications) {
|
||||
Long appId = app.getId();
|
||||
CompanyEntity company = companyService.validateCompany(app.getCompanyId());
|
||||
ProtocolEntity protocolEntity = app.getProtocol();
|
||||
|
||||
List<Object> row = new ArrayList<>();
|
||||
row.add(appId);
|
||||
row.add(app.getVatNumber());
|
||||
row.add(company.getVatNumber());
|
||||
row.add(company.getCompanyName());
|
||||
row.add(protocolEntity != null ? protocolEntity.getProtocolNumber() : 0L);
|
||||
String formattedAmount=Utils.convertToItalianFormatWithOnlyDecimalValue(String.valueOf(app.getAmountRequested()));
|
||||
row.add(formattedAmount);
|
||||
row.add(app.getStatus());
|
||||
row.add(appInstructorMap.getOrDefault(appId, ""));
|
||||
row.add(app.getPecEmail());
|
||||
row.add(company.getPec());
|
||||
row.add(appTotalScoreMap.get(appId));
|
||||
|
||||
Map<String, String> scores = appLabelScoresMap.getOrDefault(appId, Collections.emptyMap());
|
||||
|
||||
for (String label : dynamicLabels) {
|
||||
row.add(scores.getOrDefault(label, ""));
|
||||
}
|
||||
|
||||
rows.add(row);
|
||||
}
|
||||
|
||||
// Generate CSV
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
try (OutputStreamWriter writer = new OutputStreamWriter(out, StandardCharsets.UTF_8);
|
||||
CSVPrinter csvPrinter = new CSVPrinter(writer,
|
||||
CSVFormat.DEFAULT
|
||||
.withDelimiter(';')
|
||||
.withHeader(headers.toArray(new String[0])))) {
|
||||
|
||||
for (List<Object> row : rows) {
|
||||
csvPrinter.printRecord(row);
|
||||
}
|
||||
csvPrinter.flush();
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("Error while generating CSV", e);
|
||||
}
|
||||
|
||||
return out.toByteArray();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -710,7 +710,11 @@ public class ApplicationEvaluationDao {
|
||||
|
||||
Map<String, String> placeHolders = new HashMap<>();
|
||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
||||
placeHolders.put("{{protocol_number}}", String.valueOf(application.getProtocol().getProtocolNumber()));
|
||||
String protocolNumber=application.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(application.getProtocol().getProtocolNumber());
|
||||
}
|
||||
placeHolders.put("{{protocol_number}}", protocolNumber);
|
||||
notificationDao.sendNotificationToSuperUser(application,placeHolders,NotificationTypeEnum.EVALUATION_CREATION);
|
||||
notificationDao.sendNotificationToInstructor(placeHolders,entity,NotificationTypeEnum.EVALUATION_CREATION);
|
||||
|
||||
@@ -1151,7 +1155,7 @@ public class ApplicationEvaluationDao {
|
||||
applicationEvaluationResponse.setEmailSendResponse(entity.getEmailSendResponse());
|
||||
return applicationEvaluationResponse;
|
||||
}
|
||||
private List<EvaluationDocumentRequest> prepareEvaluationDocumentBeanList(ApplicationEvaluationEntity entity) {
|
||||
public List<EvaluationDocumentRequest> prepareEvaluationDocumentBeanList(ApplicationEvaluationEntity entity) {
|
||||
List<EvaluationDocumentRequest> docRequest = new ArrayList<>();
|
||||
|
||||
if (entity != null && entity.getEvaluationDocument() != null) {
|
||||
@@ -1545,13 +1549,13 @@ public class ApplicationEvaluationDao {
|
||||
return callRepository.findCallEntityByApplicationId(applicationId);
|
||||
}
|
||||
|
||||
private List<EvaluationCriteriaEntity> getEvaluationCriterias(CallEntity call) {
|
||||
public List<EvaluationCriteriaEntity> getEvaluationCriterias(CallEntity call) {
|
||||
log.info("Fetching evaluation criterias for callId: {}", call.getId());
|
||||
return evaluationCriteriaRepository
|
||||
.findByCallIdAndLookupDataTypeAndIsDeletedFalse(call.getId(), LookUpDataEntity.LookUpDataTypeEnum.EVALUATION_CRITERIA.getValue());
|
||||
}
|
||||
|
||||
private CriteriaResponse buildCriteriaResponse(Long applicationId, EvaluationCriteriaEntity criteria) {
|
||||
public CriteriaResponse buildCriteriaResponse(Long applicationId, EvaluationCriteriaEntity criteria) {
|
||||
CriteriaResponse response = new CriteriaResponse();
|
||||
response.setId(criteria.getId());
|
||||
response.setLabel(criteria.getLookupData().getValue());
|
||||
@@ -1906,7 +1910,8 @@ public class ApplicationEvaluationDao {
|
||||
Optional<ApplicationEvaluationEntity> existingEntityOptional = applicationEvaluationRepository.findByAssignedApplicationsEntity_IdAndIsDeletedFalse(
|
||||
assignedApplicationsEntity.getId());
|
||||
ApplicationEvaluationEntity entity;
|
||||
|
||||
UserEntity user=userService.validateUser(application.getUserId());
|
||||
HubEntity hub=user.getHub();
|
||||
EmailSendResponse emailSendResponse = new EmailSendResponse();
|
||||
if (existingEntityOptional.isPresent()) {
|
||||
ApplicationEvaluationEntity existingEntity = existingEntityOptional.get();
|
||||
@@ -1927,19 +1932,28 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
}
|
||||
|
||||
if(newStatus.equals(ApplicationStatusForEvaluation.TECHNICAL_EVALUATION) && Boolean.TRUE.equals(application.getStatus().equals(ApplicationStatusTypeEnum.ADMISSIBLE.getValue()))){
|
||||
if(newStatus.equals(ApplicationStatusForEvaluation.TECHNICAL_EVALUATION)){
|
||||
log.info("Processing technical evaluation for applicationId: {}", application.getId());
|
||||
processTechnicalEvaluation(application.getId(), application, newStatus);
|
||||
}
|
||||
|
||||
if((newStatus.equals(ApplicationStatusForEvaluation.APPROVED) || newStatus.equals(ApplicationStatusForEvaluation.REJECTED)) && application.getStatus().equals(ApplicationStatusTypeEnum.EVALUATION.getValue())) {
|
||||
if((newStatus.equals(ApplicationStatusForEvaluation.APPROVED) || newStatus.equals(ApplicationStatusForEvaluation.REJECTED))) {
|
||||
application.setStatus(newStatus.getValue());
|
||||
log.info("Application status updated to {} for applicationId: {}", newStatus, application.getId());
|
||||
}
|
||||
application = applicationRepository.save(application);
|
||||
|
||||
/** This code is responsible for adding a version history log for the "Update Application" operation. **/
|
||||
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(application).build());
|
||||
if(newStatus.equals(ApplicationStatusForEvaluation.TECHNICAL_EVALUATION_REJECTED)) {
|
||||
application.setStatus(newStatus.getValue());
|
||||
log.info("Application status updated to {} for applicationId: {}", newStatus, application.getId());
|
||||
emailNotificationDao.sendMailForApplicationTechnicalEvaluationRejected(application,hub,existingEntity);
|
||||
application.setDateRejected(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||
emailSendResponse = emailDao.buildEmailSendResponseFromRequest(request);
|
||||
responses = List.of(emailSendResponse);
|
||||
if (!Boolean.TRUE.equals(emailSendResponse.getIsEmailSend())) {
|
||||
saveEmailSendResponseToEvaluation(emailSendResponse, existingEntity);
|
||||
}
|
||||
}
|
||||
application = applicationRepository.save(application);
|
||||
|
||||
ApplicationEvaluationEntity oldApplicationEvaluation = Utils.getClonedEntityForData(existingEntity);
|
||||
AssignedApplicationsEntity oldAssignedApplication = Utils.getClonedEntityForData(assignedApplicationsEntity);
|
||||
@@ -1950,7 +1964,7 @@ public class ApplicationEvaluationDao {
|
||||
throw new CustomValidationException(Status.BAD_REQUEST,Translator.toLocale(GepafinConstant.APPLICATION_CANNOT_APPROVED_OR_REJECTED));
|
||||
}
|
||||
String statusType = application.getStatus();
|
||||
if (application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue())) {
|
||||
if (application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.TECHNICAL_EVALUATION_REJECTED.getValue())) {
|
||||
existingEntity.setStatus(ApplicationEvaluationStatusTypeEnum.CLOSE.getValue());
|
||||
existingEntity.setClosingDate(DateTimeUtil.DateServerToUTC(LocalDateTime.now()));
|
||||
assignedApplicationsEntity.setStatus(AssignedApplicationEnum.CLOSE.getValue());
|
||||
@@ -1965,7 +1979,7 @@ public class ApplicationEvaluationDao {
|
||||
entity = applicationEvaluationRepository.save(existingEntity);
|
||||
assignedApplicationsRepository.save(assignedApplicationsEntity);
|
||||
|
||||
if (application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue())) {
|
||||
if (application.getStatus().equals(ApplicationStatusTypeEnum.APPROVED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.REJECTED.getValue()) || application.getStatus().equals(ApplicationStatusTypeEnum.TECHNICAL_EVALUATION_REJECTED.getValue())) {
|
||||
|
||||
/** This code is responsible for adding a version history log for the "Update Application Evaluation" operation. **/
|
||||
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEvaluation).newData(entity).build());
|
||||
@@ -1995,9 +2009,16 @@ public class ApplicationEvaluationDao {
|
||||
notificationDao.sendNotificationToBeneficiary(application, NotificationTypeEnum.EVALUATION_RESULT);
|
||||
}
|
||||
|
||||
/** This code is responsible for adding a version history log for the "Update Application" operation. **/
|
||||
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(application).build());
|
||||
|
||||
Map<String, String> placeHolders = new HashMap<>();
|
||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
||||
placeHolders.put("{{protocol_number}}", String.valueOf(application.getProtocol().getProtocolNumber()));
|
||||
String protocolNumber=application.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(application.getProtocol().getProtocolNumber());
|
||||
}
|
||||
placeHolders.put("{{protocol_number}}", protocolNumber);
|
||||
notificationDao.sendNotificationToSuperUser(application,placeHolders,NotificationTypeEnum.EVALUATION_RESULT);
|
||||
notificationDao.sendNotificationToInstructor(placeHolders,existingEntity,NotificationTypeEnum.EVALUATION_RESULT);
|
||||
|
||||
@@ -2565,7 +2586,7 @@ public class ApplicationEvaluationDao {
|
||||
}
|
||||
}
|
||||
|
||||
private BigDecimal calculateTotalScore(String criteriaJson){
|
||||
public BigDecimal calculateTotalScore(String criteriaJson){
|
||||
try {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
// Convert JSON string to List of Maps
|
||||
@@ -2584,7 +2605,7 @@ public class ApplicationEvaluationDao {
|
||||
return totalScore;
|
||||
}
|
||||
catch (Exception e) {
|
||||
log.error(" Error parsing criteria JSON: {}", e.getMessage());
|
||||
log.error("Error parsing criteria JSON. Input: {}. Exception: {}", criteriaJson, e.getMessage(), e);
|
||||
return BigDecimal.ZERO;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -491,6 +491,7 @@ public class AssignedApplicationsDao {
|
||||
response.setCreatedDate(view.getCreatedDate());
|
||||
response.setUpdatedDate(view.getUpdatedDate());
|
||||
response.setEmailSendResponse(view.getEmailSendResponse());
|
||||
response.setAssignedUserName(view.getAssignedUserName());
|
||||
return response;
|
||||
}
|
||||
|
||||
|
||||
@@ -224,6 +224,10 @@ public class CallDao {
|
||||
callEntity.setHub(userEntity.getHub());
|
||||
callEntity.setNumberOfCheck(createCallRequest.getNumberOfCheck());
|
||||
callEntity.setAppointmentTemplateId(createCallRequest.getAppointmentTemplateId());
|
||||
callEntity.setAllowMultipleApplications(false);
|
||||
if (createCallRequest.getAllowMultipleApplications() != null) {
|
||||
callEntity.setAllowMultipleApplications(createCallRequest.getAllowMultipleApplications());
|
||||
}
|
||||
callEntity = callRepository.save(callEntity);
|
||||
log.info("CallEntity saved with ID: {} for call name: '{}'", callEntity.getId(), callEntity.getName());
|
||||
|
||||
@@ -406,6 +410,7 @@ public class CallDao {
|
||||
createCallResponseBean.setDocumentationRequested(callEntity.getDocumentationRequested());
|
||||
createCallResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
||||
createCallResponseBean.setConfidi(callEntity.getConfidi());
|
||||
createCallResponseBean.setAllowMultipleApplications(callEntity.getAllowMultipleApplications());
|
||||
createCallResponseBean.setAmountMin(callEntity.getAmountMin());
|
||||
createCallResponseBean.setPhoneNumber(callEntity.getPhoneNumber());
|
||||
createCallResponseBean.setEndTime(callEntity.getEndTime());
|
||||
@@ -623,19 +628,19 @@ public class CallDao {
|
||||
if (dates.size() > 0) {
|
||||
setIfUpdated(callEntity::getStartDate, callEntity::setStartDate, dates.get(0));
|
||||
}
|
||||
if (dates.size() > 1) {
|
||||
LocalDate requestEndDate = dates.get(1).toLocalDate(); // Extract only the date
|
||||
LocalDate storedEndDate = callEntity.getEndDate().toLocalDate(); // Extract only the date
|
||||
|
||||
if (!requestEndDate.equals(storedEndDate)) { // Check if dates are different
|
||||
|
||||
setIfUpdated(callEntity::getEndDate, callEntity::setEndDate, dates.get(1));
|
||||
// callEntity.setStatus(CallStatusEnum.PUBLISH.getValue());
|
||||
// callRepository.save(callEntity);
|
||||
isEndDateUpdated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (dates.size() > 1) {
|
||||
// LocalDate requestEndDate = dates.get(1).toLocalDate(); // Extract only the date
|
||||
// LocalDate storedEndDate = callEntity.getEndDate().toLocalDate(); // Extract only the date
|
||||
//
|
||||
// if (!requestEndDate.equals(storedEndDate)) { // Check if dates are different
|
||||
//
|
||||
// setIfUpdated(callEntity::getEndDate, callEntity::setEndDate, dates.get(1));
|
||||
//// callEntity.setStatus(CallStatusEnum.PUBLISH.getValue());
|
||||
//// callRepository.save(callEntity);
|
||||
// isEndDateUpdated = true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
if (updateCallRequest.getEndTime() != null) {
|
||||
LocalTime requestEndTime = DateTimeUtil.parseTime(updateCallRequest.getEndTime());
|
||||
@@ -648,6 +653,29 @@ public class CallDao {
|
||||
isEndTimeUpdated = true;
|
||||
}
|
||||
}
|
||||
if (dates.size() > 1) {
|
||||
LocalDate requestEndDate = dates.get(1).toLocalDate(); // Extract only the date
|
||||
LocalDate storedEndDate = callEntity.getEndDate().toLocalDate(); // Extract only the date
|
||||
|
||||
if (!requestEndDate.equals(storedEndDate)) {
|
||||
// Check if dates are different
|
||||
|
||||
setIfUpdated(callEntity::getEndDate, callEntity::setEndDate, dates.get(1));
|
||||
if(callEntity.getStatus().equals(CallStatusEnum.EXPIRED.getValue())) {
|
||||
LocalDateTime newEndDate = LocalDateTime.of(requestEndDate, callEntity.getEndTime());
|
||||
if(newEndDate.isBefore(LocalDateTime.now())){
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.END_DATE_GREATER_THAN_NOW));
|
||||
}
|
||||
|
||||
if (requestEndDate.isAfter(LocalDate.now()) || requestEndDate.isEqual(LocalDate.now())) {
|
||||
callEntity.setStatus(CallStatusEnum.PUBLISH.getValue());
|
||||
callRepository.save(callEntity);
|
||||
}
|
||||
}
|
||||
isEndDateUpdated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isEndDateUpdated || isEndTimeUpdated) {
|
||||
callRepository.save(callEntity);
|
||||
loggingUtil.logUserAction(UserActionRequest.builder()
|
||||
@@ -683,6 +711,7 @@ public class CallDao {
|
||||
setIfUpdated(callEntity::getEvaluationVersion, callEntity::setEvaluationVersion, updateCallRequest.getEvaluationVersion().getValue());
|
||||
setIfUpdated(callEntity::getNumberOfCheck, callEntity::setNumberOfCheck, updateCallRequest.getNumberOfCheck());
|
||||
setIfUpdated(callEntity::getAppointmentTemplateId, callEntity::setAppointmentTemplateId, updateCallRequest.getAppointmentTemplateId());
|
||||
setIfUpdated(callEntity::getAllowMultipleApplications, callEntity::setAllowMultipleApplications, updateCallRequest.getAllowMultipleApplications());
|
||||
callEntity = callRepository.save(callEntity);
|
||||
|
||||
/** This code is responsible for adding a version history log for the "update call step 1" operation **/
|
||||
@@ -792,6 +821,7 @@ public class CallDao {
|
||||
callDetailsResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
||||
callDetailsResponseBean.setNumberOfCheck(callEntity.getNumberOfCheck());
|
||||
callDetailsResponseBean.setAppointmentTemplateId(callEntity.getAppointmentTemplateId());
|
||||
callDetailsResponseBean.setAllowMultipleApplications(callEntity.getAllowMultipleApplications());
|
||||
return callDetailsResponseBean;
|
||||
}
|
||||
|
||||
@@ -1040,7 +1070,7 @@ public class CallDao {
|
||||
}
|
||||
|
||||
public PageableResponseBean<List<CallDetailsResponseBean>> getAllCallsByPagination(HttpServletRequest request,UserEntity user,Long companyId , Boolean onlyPreferredCall, Boolean onlyConfidiCall, CallPageableRequestBean callPageableRequestBean) {
|
||||
log.info("Fetching paginated calls for userId={}, companyId={}, onlyPreferredCall={}", user.getId(), companyId, onlyPreferredCall);
|
||||
log.info("Fetching paginated calls for userId={}, companyId={}, onlyPreferredCall={}", user.getId(), companyId, onlyPreferredCall);
|
||||
Integer pageNo = null;
|
||||
Integer pageLimit = null;
|
||||
if (callPageableRequestBean.getGlobalFilters() != null) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.dao;
|
||||
|
||||
import org.springframework.data.domain.Pageable; // Correct package
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -413,7 +414,7 @@ public class CompanyDao {
|
||||
Translator.toLocale(GepafinConstant.INVALID_LIMIT));
|
||||
}
|
||||
|
||||
int successfulUpdates = 0;
|
||||
int successfulUpdates = 0;
|
||||
int failedUpdates = 0;
|
||||
int invalidVatNumbers = 0;
|
||||
|
||||
@@ -531,7 +532,11 @@ public class CompanyDao {
|
||||
Map<String, Object> dataMap = Utils.extractMap(companyDataMap, "data");
|
||||
Object dataObj = companyDataMap.get("data");
|
||||
|
||||
if (dataMap == null) {
|
||||
if (dataObj instanceof Map<?, ?> singleMap) {
|
||||
dataMap = (Map<String, Object>) singleMap;
|
||||
} else if (dataObj instanceof List<?> list && !list.isEmpty() && list.get(0) instanceof Map<?, ?> firstMap) {
|
||||
dataMap = (Map<String, Object>) firstMap;
|
||||
} else {
|
||||
log.warn("Company ID {}: 'data' section is missing or invalid in the JSON.", company.getId());
|
||||
return;
|
||||
}
|
||||
@@ -540,11 +545,11 @@ public class CompanyDao {
|
||||
updateCodiceAtecoField(company);
|
||||
} else {
|
||||
|
||||
Object pecEmail = Utils.extractMap(dataMap, "pec");
|
||||
Object pecEmail = dataMap.get("pec");
|
||||
if (pecEmail == null) {
|
||||
log.warn("Company ID {}: 'pec' section is missing or invalid.", company.getId());
|
||||
company.setPec((String) pecEmail);
|
||||
}
|
||||
company.setPec((String) pecEmail);
|
||||
|
||||
// Extract 'atecoClassification' section
|
||||
Map<String, Object> atecoClassificationMap = Utils.extractMap(dataMap, "atecoClassification");
|
||||
@@ -577,49 +582,79 @@ public class CompanyDao {
|
||||
}
|
||||
|
||||
public void getCompanyEntity() {
|
||||
List<CompanyEntity> companyEntities=companyRepository.findAll();
|
||||
List<CompanyEntity> companyEntities=companyRepository.findByJsonIsNotNullAndPecIsNull();
|
||||
List<CompanyEntity> companyEntityList=new ArrayList<>();
|
||||
for (CompanyEntity company:companyEntities){
|
||||
if(company.getJson()!=null){
|
||||
if(company.getJson()!=null && company.getPec()==null){
|
||||
if (company == null || company.getJson() == null || company.getJson().isEmpty()) {
|
||||
log.warn("Company is null or JSON data is empty.");
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
Map<String, Object> vatCheckResponse = Utils.convertJsonStringToMap(company.getJson());
|
||||
|
||||
if (vatCheckResponse == null) {
|
||||
log.warn("Company ID {}: Invalid JSON response.", company.getId());
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
Map<String, Object> companyDataMap = Utils.convertJsonStringToMap(company.getJson());
|
||||
if (companyDataMap == null) {
|
||||
log.warn("Company ID {}: Failed to parse JSON data.", company.getId());
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Object dataObj = vatCheckResponse.get("data");
|
||||
if (!(dataObj instanceof Map<?, ?> dataMap)) {
|
||||
log.warn("Company ID {}: 'data' is missing or not a valid object.", company.getId());
|
||||
return;
|
||||
Map<String, Object> dataMap=null;
|
||||
// if (!(dataObj instanceof Map<?, ?> dataMap)) {
|
||||
// log.warn("Company ID {}: 'data' is missing or not a valid object.", company.getId());
|
||||
// continue;
|
||||
// }
|
||||
|
||||
if (dataObj instanceof Map<?, ?> singleMap) {
|
||||
dataMap = (Map<String, Object>) singleMap;
|
||||
} else if (dataObj instanceof List<?> list && !list.isEmpty() && list.get(0) instanceof Map<?, ?> firstMap) {
|
||||
dataMap = (Map<String, Object>) firstMap;
|
||||
} else {
|
||||
log.warn("Company ID {}: 'data' section is missing or invalid in the JSON.", company.getId());
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (dataMap.containsKey("pec")) {
|
||||
Object pecEmailObj = dataMap.get("pec");
|
||||
if (pecEmailObj instanceof String pec && !pec.isEmpty()) {
|
||||
company.setPec(pec); // Only set if valid string
|
||||
companyEntityList.add(company);
|
||||
} else {
|
||||
log.warn("Company ID {}: 'pec' is missing, empty, or not a string.", company.getId());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!dataMap.containsKey("dettaglio")) {
|
||||
log.warn("Company ID {}: 'dettaglio' not present inside 'data'. Skipping codiceAteco update.", company.getId());
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Object dettaglioObj = dataMap.get("dettaglio");
|
||||
if (!(dettaglioObj instanceof Map<?, ?> dettaglio)) {
|
||||
log.warn("Company ID {}: 'dettaglio' is not a valid object.", company.getId());
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
|
||||
Object pecEmailObj = dettaglio.get("pec");
|
||||
if (pecEmailObj instanceof String pec && !pec.isEmpty()) {
|
||||
company.setPec(pec); // Only set if valid string
|
||||
if(pec!=null) {
|
||||
company.setPec(pec); // Only set if valid string
|
||||
companyEntityList.add(company);
|
||||
}
|
||||
} else {
|
||||
log.warn("Company ID {}: 'pec' is missing, empty, or not a string.", company.getId());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
companyRepository.saveAll(companyEntityList);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
package net.gepafin.tendermanagement.dao;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import net.gepafin.tendermanagement.entities.*;
|
||||
import net.gepafin.tendermanagement.enums.*;
|
||||
import net.gepafin.tendermanagement.model.request.AmendmentFormField;
|
||||
import net.gepafin.tendermanagement.model.request.EvaluationDocumentRequest;
|
||||
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationEvaluationRepository;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationRepository;
|
||||
import net.gepafin.tendermanagement.model.response.ContentResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.SettingResponseBean;
|
||||
import net.gepafin.tendermanagement.repositories.*;
|
||||
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||
import net.gepafin.tendermanagement.util.Utils;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||
@@ -17,13 +23,8 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import net.gepafin.tendermanagement.config.Translator;
|
||||
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
||||
import net.gepafin.tendermanagement.entities.CallEntity;
|
||||
import net.gepafin.tendermanagement.entities.DocumentEntity;
|
||||
import net.gepafin.tendermanagement.model.response.DocumentResponseBean;
|
||||
import net.gepafin.tendermanagement.model.response.UploadFileOnAmazonS3Response;
|
||||
import net.gepafin.tendermanagement.repositories.ApplicationAmendmentRequestRepository;
|
||||
import net.gepafin.tendermanagement.repositories.DocumentRepository;
|
||||
import net.gepafin.tendermanagement.service.AmazonS3Service;
|
||||
import net.gepafin.tendermanagement.service.ApplicationAmendmentRequestService;
|
||||
import net.gepafin.tendermanagement.service.ApplicationService;
|
||||
@@ -31,8 +32,6 @@ import net.gepafin.tendermanagement.service.CallService;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@@ -78,6 +77,18 @@ public class DocumentDao {
|
||||
@Autowired
|
||||
private HttpServletRequest request;
|
||||
|
||||
@Autowired
|
||||
private ApplicationFormRepository applicationFormRepository;
|
||||
|
||||
@Autowired
|
||||
private ApplicationFormFieldRepository applicationFormFieldRepository;
|
||||
|
||||
@Autowired
|
||||
private ApplicationAmendmentRequestDao applicationAmendmentRequestDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationEvaluationDao applicationEvaluationDao;
|
||||
|
||||
// @Value("${aws.s3.url.folder}")
|
||||
// private String s3Folder;
|
||||
|
||||
@@ -224,18 +235,72 @@ public class DocumentDao {
|
||||
} else if (DocumentSourceTypeEnum.APPLICATION.getValue().equalsIgnoreCase(documentEntity.getSource())) {
|
||||
applicationId = documentEntity.getSourceId();
|
||||
ApplicationEntity applicationEntity = applicationService.validateApplication(applicationId);
|
||||
|
||||
List<ApplicationFormEntity> applicationFormEntity=applicationFormRepository.findByApplicationId(applicationId);
|
||||
for (ApplicationFormEntity applicationForm:applicationFormEntity){
|
||||
FormEntity formEntity=applicationForm.getForm();
|
||||
List<ContentResponseBean> contentList = Utils.convertJsonStringToList(formEntity.getContent(), ContentResponseBean.class);
|
||||
List<ApplicationFormFieldEntity> applicationFormFieldEntityList=applicationFormFieldRepository.findByApplicationFormId(applicationForm.getId());
|
||||
for (ApplicationFormFieldEntity applicationFormFieldEntity:applicationFormFieldEntityList) {
|
||||
contentList.forEach(contentResponseBean -> {
|
||||
if (("fileupload".equals(contentResponseBean.getName()) || GepafinConstant.FILE_SELECT.equals(contentResponseBean.getName()))
|
||||
&& contentResponseBean.getId().equals(applicationFormFieldEntity.getFieldId())) {
|
||||
String updatedValue = removeDocumentIdFromFieldValue(applicationFormFieldEntity.getFieldValue(), documentId);
|
||||
applicationFormFieldEntity.setFieldValue(updatedValue);
|
||||
applicationFormFieldRepository.save(applicationFormFieldEntity);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
callId = applicationEntity.getCall().getId();
|
||||
log.info("Processing document of type APPLICATION. Resolved applicationId={}, callId={}", applicationId, callId);
|
||||
}
|
||||
else if(DocumentSourceTypeEnum.AMENDMENT.getValue().equalsIgnoreCase(documentEntity.getSource())){
|
||||
amendmentId = documentEntity.getSourceId();
|
||||
ApplicationEntity applicationEntity = applicationAmendmentRequestRepository.findApplicationByAmendmentId(amendmentId);
|
||||
Optional<ApplicationAmendmentRequestEntity> applicationAmendmentRequestEntity=applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(amendmentId);
|
||||
Map<String, AmendmentFormField> amendmentFormFieldMap = Utils
|
||||
.convertJsonStringToList(applicationAmendmentRequestEntity.get().getFormFields(), AmendmentFormField.class)
|
||||
.stream().collect(Collectors.toMap(AmendmentFormField::getFieldId, Function.identity()));
|
||||
for (Map.Entry<String, AmendmentFormField> entry : amendmentFormFieldMap.entrySet()) {
|
||||
AmendmentFormField amendmentFormField=entry.getValue();
|
||||
String updatedValue = removeDocumentIdFromFieldValue(amendmentFormField.getFieldValue(), documentId);
|
||||
amendmentFormField.setFieldValue(updatedValue);
|
||||
}
|
||||
String amendmentDocs=applicationAmendmentRequestEntity.get().getAmendmentDocument();
|
||||
Map<String,Object> amendmentDocument=Utils.convertIntoJson(amendmentDocs);
|
||||
String amendmentDocuments= (String) amendmentDocument.get("amendmentDocuments");
|
||||
if(amendmentDocuments!=null){
|
||||
String updatedValue = removeDocumentIdFromFieldValue(amendmentDocuments, documentId);
|
||||
amendmentDocument.put("amendmentDocuments", updatedValue);
|
||||
|
||||
// Step 4: Convert map back to JSON string
|
||||
String updatedAmendmentDocs = Utils.convertMapIntoJsonString(amendmentDocument); // implement this if not available
|
||||
|
||||
// Step 5: Set it back to entity
|
||||
applicationAmendmentRequestEntity.get().setAmendmentDocument(updatedAmendmentDocs);
|
||||
}
|
||||
applicationAmendmentRequestEntity.get().setFormFields(Utils.convertListToJsonString(amendmentFormFieldMap.values().stream().toList()));
|
||||
applicationAmendmentRequestRepository.save(applicationAmendmentRequestEntity.get());
|
||||
|
||||
applicationId = applicationEntity.getId();
|
||||
callId = applicationEntity.getCall().getId();
|
||||
log.info("Processing document of type AMENDMENT. Resolved amendmentId={}, applicationId={}, callId={}", amendmentId, applicationId, callId);
|
||||
} else if(DocumentSourceTypeEnum.EVALUATION.getValue().equalsIgnoreCase(documentEntity.getSource())){
|
||||
evaluationId = documentEntity.getSourceId();
|
||||
ApplicationEntity applicationEntity = applicationEvaluationRepository.findApplicationByEvaluationId(evaluationId);
|
||||
ApplicationEvaluationEntity entity=applicationEvaluationRepository.findByApplicationId(applicationEntity.getId());
|
||||
List<EvaluationDocumentRequest> allDocs = applicationEvaluationDao.prepareEvaluationDocumentBeanList(entity);
|
||||
List<EvaluationDocumentRequest> updatedDocs=allDocs;
|
||||
allDocs = allDocs.stream()
|
||||
.filter(doc -> doc.getFileValue().equals(removeDocumentIdFromFieldValue(doc.getFileValue(), documentId)))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
|
||||
String updatedEvaluationDocJson = Utils.convertObjectToJson(allDocs);
|
||||
entity.setEvaluationDocument(updatedEvaluationDocJson);
|
||||
applicationEvaluationRepository.save(entity);
|
||||
applicationId = applicationEntity.getId();
|
||||
callId = applicationEntity.getCall().getId();
|
||||
log.info("Processing document of type EVALUATION. Resolved evaluationId={}, applicationId={}, callId={}", evaluationId, applicationId, callId);
|
||||
@@ -343,4 +408,19 @@ public class DocumentDao {
|
||||
throw new CustomValidationException(Status.VALIDATION_ERROR, Translator.toLocale(GepafinConstant.ERROR_MOVING_FILE_TO_DELETED_FOLDER));
|
||||
}
|
||||
}
|
||||
|
||||
public String removeDocumentIdFromFieldValue(String fieldValue, Long documentId) {
|
||||
if (fieldValue == null || fieldValue.isBlank()) {
|
||||
return fieldValue;
|
||||
}
|
||||
|
||||
List<String> documentIdList = new ArrayList<>(Arrays.asList(fieldValue.split(",")));
|
||||
documentIdList.replaceAll(String::trim); // Trim spaces for safety
|
||||
|
||||
boolean removed = documentIdList.removeIf(id -> id.equals(String.valueOf(documentId)));
|
||||
|
||||
// Return updated value only if modified, else return original
|
||||
return removed ? String.join(",", documentIdList) : fieldValue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -67,9 +67,15 @@ public class EmailNotificationDao {
|
||||
@Autowired
|
||||
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
||||
|
||||
@Value("${default.hub.uuid}")
|
||||
private String defaultHubUuid;
|
||||
|
||||
@Value("${rinaldo_email}")
|
||||
private String rinaldoEmail;
|
||||
|
||||
@Autowired
|
||||
private SystemEmailTemplatesDao systemEmailTemplatesDao;
|
||||
|
||||
private void sendEmail(ApplicationEntity applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum templateType, Map<String, String> bodyPlaceholders,
|
||||
List<String> additionalRecipients, Long amendmentId) {
|
||||
|
||||
@@ -109,20 +115,37 @@ public class EmailNotificationDao {
|
||||
UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId());
|
||||
String companyEmail = userWithCompany.getEmail();
|
||||
String contactEmail = userWithCompany.getContactEmail();
|
||||
|
||||
if (companyEmail != null && !companyEmail.isEmpty()) {
|
||||
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId() ,
|
||||
companyEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(companyEmail), emailLogRequest);
|
||||
}
|
||||
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
||||
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId(),
|
||||
contactEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(contactEmail), emailLogRequest);
|
||||
}
|
||||
if (Boolean.TRUE.equals(userEntity.getHub().getUniqueUuid().equals(defaultHubUuid))){
|
||||
List<String> recipientEmails=new ArrayList<>();
|
||||
if (company.getPec()!=null) {
|
||||
recipientEmails.add(company.getPec());
|
||||
}else {
|
||||
recipientEmails.add(userWithCompany.getPec());
|
||||
}
|
||||
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId() ,
|
||||
String.valueOf(recipientEmails), userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||
sendMail(applicationEntity.getHubId(), subject, body, recipientEmails, emailLogRequest);
|
||||
}
|
||||
else {
|
||||
if (companyEmail != null && !companyEmail.isEmpty()) {
|
||||
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY, company.getId(),
|
||||
companyEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(companyEmail), emailLogRequest);
|
||||
}
|
||||
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
||||
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY, company.getId(),
|
||||
contactEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(contactEmail), emailLogRequest);
|
||||
}
|
||||
}
|
||||
|
||||
if (userEntity.getBeneficiary().getEmail() != null) {
|
||||
String beneficiaryEmail = userEntity.getBeneficiary().getEmail();
|
||||
String beneficiaryEmail = null;
|
||||
if (Boolean.TRUE.equals(userEntity.getHub().getUniqueUuid().equals(defaultHubUuid))){
|
||||
beneficiaryEmail=applicationEntity.getPecEmail();
|
||||
}else {
|
||||
beneficiaryEmail=userEntity.getBeneficiary().getEmail();
|
||||
}
|
||||
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY,userEntity.getBeneficiary().getId() ,
|
||||
beneficiaryEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(beneficiaryEmail), emailLogRequest);
|
||||
@@ -174,8 +197,16 @@ public class EmailNotificationDao {
|
||||
public Map<String, String> prepareEmailPlaceholders(ApplicationEntity applicationEntity, ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity){
|
||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
||||
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(applicationEntity.getProtocol().getProtocolNumber());
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocolNumber);
|
||||
String protocolDate= DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY);
|
||||
if(applicationEntity.getProtocol().getExternalProtocolDate()!=null){
|
||||
protocolDate= DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getExternalProtocolDate(), GepafinConstant.DD_MM_YYYY);
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_date}}", protocolDate);
|
||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||
bodyPlaceholders.put("{{response_days}}", applicationAmendmentRequestEntity.getResponseDays().toString());
|
||||
|
||||
@@ -259,8 +290,16 @@ public class EmailNotificationDao {
|
||||
public void sendAdmissibilityNotificationEmailForAdmissibleApplication(ApplicationEntity applicationEntity) {
|
||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
|
||||
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(applicationEntity.getProtocol().getProtocolNumber());
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocolNumber);
|
||||
String protocolDate= DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY);
|
||||
if(applicationEntity.getProtocol().getExternalProtocolDate()!=null){
|
||||
protocolDate= DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getExternalProtocolDate(), GepafinConstant.DD_MM_YYYY);
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_date}}", protocolDate);
|
||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,null);
|
||||
@@ -269,8 +308,16 @@ public class EmailNotificationDao {
|
||||
public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
|
||||
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(applicationEntity.getProtocol().getProtocolNumber());
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocolNumber);
|
||||
String protocolDate= DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY);
|
||||
if(applicationEntity.getProtocol().getExternalProtocolDate()!=null){
|
||||
protocolDate= DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getExternalProtocolDate(), GepafinConstant.DD_MM_YYYY);
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_date}}", protocolDate);
|
||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||
bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getMotivation());
|
||||
|
||||
@@ -311,4 +358,30 @@ public class EmailNotificationDao {
|
||||
throw new IllegalArgumentException("Failed to parse email configuration JSON", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
public void sendMailForApplicationTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
||||
|
||||
Map<String, String> bodyPlaceholders = prepareEmailPlaceholdersForTechnicalEvaluationRejected(applicationEntity,hub,applicationEvaluationEntity);
|
||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.INADMISSIBILITY_NOTIFICATION_DUE_TO_TECHNICAL_EVALUATION_FAILURE, bodyPlaceholders, null,
|
||||
null);
|
||||
}
|
||||
public Map<String, String> prepareEmailPlaceholdersForTechnicalEvaluationRejected(ApplicationEntity applicationEntity,HubEntity hub,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||
String protocolNumber = applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||
if (protocolNumber == null) {
|
||||
protocolNumber = String.valueOf(applicationEntity.getProtocol().getProtocolNumber());
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_number}}", protocolNumber);
|
||||
String protocolDate = DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY);
|
||||
if (applicationEntity.getProtocol().getExternalProtocolDate() != null) {
|
||||
protocolDate = DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getExternalProtocolDate(), GepafinConstant.DD_MM_YYYY);
|
||||
}
|
||||
bodyPlaceholders.put("{{protocol_date}}", protocolDate);
|
||||
bodyPlaceholders.put("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||
bodyPlaceholders.put("{{email_signature}}", hub.getEmailSignature());
|
||||
bodyPlaceholders.put("{{platform_link}}", hub.getDomainName());
|
||||
bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getMotivation());
|
||||
|
||||
return bodyPlaceholders;
|
||||
}
|
||||
}
|
||||
@@ -174,7 +174,11 @@ public class NotificationDao {
|
||||
|
||||
Map<String, String> placeHolders = new HashMap<>();
|
||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
||||
placeHolders.put("{{protocol_number}}", String.valueOf(application.getProtocol().getProtocolNumber()));
|
||||
String protocolNumber=application.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(application.getProtocol().getProtocolNumber());
|
||||
}
|
||||
placeHolders.put("{{protocol_number}}", protocolNumber);
|
||||
NotificationReq notificationReq = createNotificationReq(notificationTypeEnum.getValue(), placeHolders, application.getUserId(), application.getUserWithCompany(),
|
||||
listOf(application.getCompanyId()));
|
||||
sendNotification(notificationReq);
|
||||
|
||||
@@ -89,6 +89,9 @@ public class ProtocolDao {
|
||||
@Value("${tipoCorrispondente}")
|
||||
private String tipoCorrispondente;
|
||||
|
||||
@Value("${isSviluppumbriaProtocolEnabled}")
|
||||
private String isSviluppUmbriaProtocolEnabled;
|
||||
|
||||
@Autowired
|
||||
private ApplicationSignedDocumentRepository applicationSignedDocumentRepository;
|
||||
|
||||
@@ -156,6 +159,11 @@ public class ProtocolDao {
|
||||
}
|
||||
|
||||
public ProtocolEntity createExternalProtocol(ApplicationEntity application, CompanyEntity company, ProtocolEntity protocol) {
|
||||
|
||||
if (Boolean.FALSE.equals(Boolean.parseBoolean(isSviluppUmbriaProtocolEnabled))) {
|
||||
return protocol;
|
||||
}
|
||||
|
||||
log.info("Starting createExternalProtocol for application ID: {}", application.getId());
|
||||
|
||||
log.debug("Successfully retrieved bearer token");
|
||||
@@ -170,26 +178,26 @@ public class ProtocolDao {
|
||||
vatNumber=company.getVatNumber();
|
||||
}else {
|
||||
mittenteValue = tipoCorrispondenteWithoutCompany;
|
||||
vatNumber = company.getCodiceFiscale();
|
||||
vatNumber = company.getCodiceFiscale();
|
||||
}
|
||||
String companyName = company.getCompanyName() + " " + vatNumber;
|
||||
String callName = application.getCall().getName()+" "+ application.getCall().getId();
|
||||
String callId = GepafinConstant.PROTOCOL_CALL_NAME+ String.valueOf(application.getCall().getId());
|
||||
String pecEmail=company.getPec();
|
||||
String docUrl=applicationSignedDocumentEntity.getFilePath();
|
||||
String docUrl=applicationSignedDocumentEntity.getFilePath()+GepafinConstant.PROTOCOL_DOC_SUFFIX;
|
||||
|
||||
|
||||
Map<String, Object> requestBody = new HashMap<>();
|
||||
requestBody.put(GepafinConstant.PROTOCOL_DOC_URL,docUrl);
|
||||
requestBody.put(GepafinConstant.PROTOCOL_COMPANY_NAME,companyName);
|
||||
requestBody.put(GepafinConstant.PROTOCOL_DOC_HASH,applicationSignedDocumentEntity.getFileHash());
|
||||
requestBody.put(GepafinConstant.PROTOCOL_TIPO_PROTOCOLLAZIONE,TIPO_PROTOCOLLAZIONE);
|
||||
requestBody.put(GepafinConstant.PROTOCOL_COMPANY_NAME_VAT_NUMBER,company.getCompanyName());
|
||||
Map<String, Object> mittente = new HashMap<>();
|
||||
mittente.put(GepafinConstant.PROTOCOL_TIPO_CORRISPONDENTE_COMPANY, mittenteValue);
|
||||
mittente.put(GepafinConstant.PROTOCOL_COMPANY_NAME_VAT_NUMBER,company.getCompanyName());
|
||||
mittente.put(GepafinConstant.PROTOCOL_TIPO_CORRISPONDENTE, mittenteValue);
|
||||
mittente.put(GepafinConstant.PROTOCOL_MEZZO,mezzo);
|
||||
mittente.put(GepafinConstant.PROTOCOL_INDIRIZZO_PEC,pecEmail);
|
||||
mittente.put(GepafinConstant.PROTOCOL_COMPANY_VAT_NUMBER,vatNumber);
|
||||
mittente.put(GepafinConstant.PROTOCOL_COMPANY_NAME,company.getCompanyName());
|
||||
List<Map<String,Object>> destinatariObject=new ArrayList<>();
|
||||
Map<String, Object> destinatari = new HashMap<>();
|
||||
destinatari.put(GepafinConstant.PROTOCOL_CODICE_UO,codiceUo);
|
||||
|
||||
@@ -116,7 +116,7 @@ public class SystemEmailTemplatesDao {
|
||||
return htmlContent;
|
||||
}
|
||||
|
||||
private String replaceEmailSignature(HubEntity hub, String htmlContent, Map<String, String> languageMap) {
|
||||
public String replaceEmailSignature(HubEntity hub, String htmlContent, Map<String, String> languageMap) {
|
||||
String emailSignature = defaultEmailSignature;
|
||||
if(hub != null && Boolean.FALSE.equals(StringUtils.isEmpty(hub.getEmailSignature()))){
|
||||
emailSignature = hub.getEmailSignature();
|
||||
@@ -124,7 +124,7 @@ public class SystemEmailTemplatesDao {
|
||||
return htmlContent.replace("{{email_signature}}", emailSignature);
|
||||
}
|
||||
|
||||
private String replacePlatformLinkPlaceholder(HubEntity hub, String htmlContent, Map<String, String> languageMap) {
|
||||
public String replacePlatformLinkPlaceholder(HubEntity hub, String htmlContent, Map<String, String> languageMap) {
|
||||
String platformLink = feBaseUrl;
|
||||
if(hub != null && Boolean.FALSE.equals(StringUtils.isEmpty(hub.getDomainName()))){
|
||||
platformLink = hub.getDomainName();
|
||||
|
||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -10,6 +11,7 @@ import java.util.List;
|
||||
@Entity
|
||||
@Table(name="application_amendment_request")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationAmendmentRequestEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "NOTE")
|
||||
@@ -33,9 +35,6 @@ public class ApplicationAmendmentRequestEntity extends BaseEntity {
|
||||
@Column(name = "FORM_FIELDS")
|
||||
private String formFields;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted=false;
|
||||
|
||||
@Column(name = "STATUS")
|
||||
private String status;
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -9,6 +10,7 @@ import java.time.LocalDateTime;
|
||||
@Entity
|
||||
@Table(name = "APPLICATION")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "USER_ID")
|
||||
@@ -29,9 +31,6 @@ public class ApplicationEntity extends BaseEntity {
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "CALL_ID", nullable = false)
|
||||
private CallEntity call;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@OneToOne
|
||||
@JoinColumn(name = "PROTOCOL_NUMBER")
|
||||
@@ -74,4 +73,10 @@ public class ApplicationEntity extends BaseEntity {
|
||||
@Column(name = "APPLICATION_EVALUATION_ID")
|
||||
private Long applicationEvaluationId;
|
||||
|
||||
@Column(name = "PEC_EMAIL")
|
||||
private String pecEmail;
|
||||
|
||||
@Column(name="VAT_NUMBER")
|
||||
private String vatNumber;
|
||||
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -10,6 +11,7 @@ import java.util.List;
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "application_evaluation")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationEvaluationEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "application_Id")
|
||||
@@ -39,9 +41,6 @@ public class ApplicationEvaluationEntity extends BaseEntity{
|
||||
@Column(name = "MOTIVATION")
|
||||
private String motivation;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "assigned_applications_id", nullable = true)
|
||||
private AssignedApplicationsEntity assignedApplicationsEntity;
|
||||
|
||||
@@ -2,16 +2,15 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name = "APPLICATION_EVALUATION_FORM")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationEvaluationFormEntity extends BaseEntity{
|
||||
private Long applicationId;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "EVALUATION_ID")
|
||||
private ApplicationEvaluationEntity applicationEvaluation;
|
||||
|
||||
@@ -2,10 +2,12 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name = "APPLICATION_EVALUATION_FORM_FIELD")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationEvaluationFormFieldEntity extends BaseEntity {
|
||||
|
||||
@ManyToOne
|
||||
@@ -18,7 +20,4 @@ public class ApplicationEvaluationFormFieldEntity extends BaseEntity {
|
||||
@Column(name = "FIELD_VALUE")
|
||||
private String fieldValue;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
|
||||
}
|
||||
|
||||
@@ -2,11 +2,12 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "APPLICATION_FORM")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationFormEntity extends BaseEntity {
|
||||
|
||||
@ManyToOne
|
||||
|
||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -11,6 +12,7 @@ import java.time.LocalDateTime;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationFormFieldEntity extends BaseEntity {
|
||||
|
||||
@ManyToOne
|
||||
|
||||
@@ -115,4 +115,12 @@ public class ApplicationFormView {
|
||||
@Column(name = "call_start_time")
|
||||
private LocalTime callStartTime;
|
||||
|
||||
@Column(name = "INSTRUCTOR_NAME")
|
||||
private String instructorName;
|
||||
|
||||
@Column(name = "SUBMISSION_DATE")
|
||||
private LocalDate submissionDate;
|
||||
|
||||
@Column(name = "SUBMISSION_TIME")
|
||||
private LocalTime submissionTime;
|
||||
}
|
||||
|
||||
@@ -6,10 +6,12 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "application_signed_document")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ApplicationSignedDocumentEntity extends BaseEntity {
|
||||
|
||||
@ManyToOne
|
||||
|
||||
@@ -2,13 +2,14 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name = "assigned_applications")
|
||||
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class AssignedApplicationsEntity extends BaseEntity{
|
||||
|
||||
@ManyToOne
|
||||
@@ -27,9 +28,7 @@ public class AssignedApplicationsEntity extends BaseEntity{
|
||||
@Column(name = "NOTE")
|
||||
private String note;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted=false;
|
||||
|
||||
@Column(nullable = false)
|
||||
private LocalDateTime assignedAt;
|
||||
|
||||
}
|
||||
|
||||
@@ -67,4 +67,7 @@ public class AssignedApplicationsView{
|
||||
|
||||
@Column(name = "HUB_ID")
|
||||
private Long hubId;
|
||||
|
||||
@Column(name="ASSIGNED_USER_NAME")
|
||||
private String assignedUserName;
|
||||
}
|
||||
|
||||
@@ -21,8 +21,13 @@ public class BaseEntity {
|
||||
|
||||
@Column(name = "UPDATED_DATE")
|
||||
LocalDateTime updatedDate;
|
||||
|
||||
@PrePersist
|
||||
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
|
||||
@PrePersist
|
||||
public void setCreatedDate() {
|
||||
this.createdDate = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
|
||||
this.updatedDate = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
|
||||
|
||||
@@ -7,10 +7,12 @@ import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import jakarta.validation.constraints.Email;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "BENEFICIARY")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class BeneficiaryEntity extends BaseEntity {
|
||||
|
||||
@Email
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -14,6 +15,7 @@ import java.time.LocalDateTime;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class BeneficiaryPreferredCallEntity extends BaseEntity{
|
||||
|
||||
@Id
|
||||
@@ -35,9 +37,6 @@ public class BeneficiaryPreferredCallEntity extends BaseEntity{
|
||||
@Column(name = "STATUS", length = 255)
|
||||
private String status;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "USER_WITH_COMPANY_ID")
|
||||
private UserWithCompanyEntity userWithCompany;
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -16,6 +17,7 @@ import java.time.LocalTime;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class CallEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "NAME", length = 255)
|
||||
@@ -97,5 +99,8 @@ public class CallEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "APPOINTMENT_TEMPLATE_ID")
|
||||
private Long appointmentTemplateId;
|
||||
|
||||
@Column(name = "allow_multiple_applications")
|
||||
private Boolean allowMultipleApplications;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,10 +2,12 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "CALL_TARGET_AUDIENCE_CHECKLIST")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class CallTargetAudienceChecklistEntity extends BaseEntity{
|
||||
|
||||
@ManyToOne
|
||||
@@ -18,9 +20,5 @@ public class CallTargetAudienceChecklistEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "IS_VALIDATED")
|
||||
private Boolean isValidated;
|
||||
|
||||
@Column(name ="IS_DELETED", nullable = false)
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -6,12 +6,14 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Entity
|
||||
@Table(name = "communication")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class CommunicationEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "COMMUNICATION_TITLE")
|
||||
@@ -20,9 +22,6 @@ public class CommunicationEntity extends BaseEntity {
|
||||
@Column(name = "COMMUNICATION_COMMENT")
|
||||
private String communicationComment;
|
||||
|
||||
@Column(name = "IS_DELETED")
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
@Column(name = "COMMENTED_DATE")
|
||||
private LocalDateTime commentedDate;
|
||||
|
||||
|
||||
@@ -2,12 +2,14 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Entity
|
||||
@Table(name = "COMPANY_DOCUMENT")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class CompanyDocumentEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "FILE_NAME")
|
||||
@@ -25,9 +27,6 @@ public class CompanyDocumentEntity extends BaseEntity {
|
||||
@Column(name="COMPANY_ID")
|
||||
private Long companyId;
|
||||
|
||||
@Column(name ="IS_DELETED")
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
@Column(name="UPLOADED_BY")
|
||||
private Long uploadedBy;
|
||||
|
||||
|
||||
@@ -8,10 +8,12 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "COMPANY")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class CompanyEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "COMPANY_NAME")
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "criteria_form_field")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class CriteriaFormFieldEntity extends BaseEntity {
|
||||
|
||||
private Long callId;
|
||||
@@ -17,8 +19,5 @@ public class CriteriaFormFieldEntity extends BaseEntity {
|
||||
private String formFieldId;
|
||||
|
||||
private Long evaluationCriteriaId;
|
||||
|
||||
@Column(name ="IS_DELETED", nullable = false)
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
}
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "document_category")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class DocumentCategoryEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "CATEGORY_NAME")
|
||||
@@ -16,7 +18,4 @@ public class DocumentCategoryEntity extends BaseEntity {
|
||||
@Column(name = "DESCRIPTION")
|
||||
private String description;
|
||||
|
||||
@Column(name ="IS_DELETED")
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
}
|
||||
|
||||
@@ -6,10 +6,12 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "DOCUMENT")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class DocumentEntity extends BaseEntity{
|
||||
@Column(name = "FILE_NAME", length = 255)
|
||||
private String fileName;
|
||||
@@ -26,9 +28,6 @@ public class DocumentEntity extends BaseEntity{
|
||||
@Column(name="SOURCE_ID")
|
||||
private Long sourceId;
|
||||
|
||||
@Column(name ="IS_DELETED", nullable = false)
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
@Column(name="DOCUMENT_ATTACHMENT_ID")
|
||||
private String documentAttachmentId;
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
package net.gepafin.tendermanagement.entities;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name = "email_log")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class EmailLogEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "email_type", nullable = false, length = 255)
|
||||
@@ -54,9 +56,6 @@ public class EmailLogEntity extends BaseEntity{
|
||||
@Column(name = "call_id")
|
||||
private Long callId;
|
||||
|
||||
@Column(name = "is_deleted")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "user_action_id")
|
||||
private UserActionEntity userAction;
|
||||
|
||||
@@ -5,6 +5,9 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -12,6 +15,7 @@ import java.math.BigDecimal;
|
||||
@Entity
|
||||
@Table(name = "EVALUATION_CRITERIA")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class EvaluationCriteriaEntity extends BaseEntity {
|
||||
|
||||
@ManyToOne
|
||||
|
||||
@@ -5,12 +5,15 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "EVALUATION_FORM")
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class EvaluationFormEntity extends BaseEntity{
|
||||
|
||||
|
||||
@@ -24,6 +27,4 @@ public class EvaluationFormEntity extends BaseEntity{
|
||||
@Column(name = "CONTENT")
|
||||
private String content;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
}
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "expiration_config")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ExpirationConfigEntity extends BaseEntity {
|
||||
|
||||
@Column(name="INTERVAL_DAYS")
|
||||
@@ -15,7 +17,4 @@ public class ExpirationConfigEntity extends BaseEntity {
|
||||
|
||||
@Column(name="TYPE")
|
||||
private String type;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
}
|
||||
|
||||
@@ -9,11 +9,12 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "FAQ")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class FaqEntity extends BaseEntity {
|
||||
|
||||
@ManyToOne
|
||||
@@ -38,10 +39,7 @@ public class FaqEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "RESPONSE_DATE")
|
||||
private LocalDateTime responseDate;
|
||||
|
||||
@Column(name ="IS_DELETED", nullable = false)
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
|
||||
@Column(name ="COMPANY_ID")
|
||||
private Long companyId;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package net.gepafin.tendermanagement.entities;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -10,6 +11,7 @@ import java.time.LocalDateTime;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class FlowDataEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "FORM_ID")
|
||||
@@ -23,4 +25,5 @@ public class FlowDataEntity extends BaseEntity{
|
||||
|
||||
@Column(name="CALL_ID")
|
||||
private Long callId;
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@@ -11,6 +12,7 @@ import java.time.LocalDateTime;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class FlowEdgesEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "SOURCE_ID")
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Builder;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "FORM")
|
||||
@@ -12,6 +13,7 @@ import lombok.NoArgsConstructor;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class FormEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "LABEL", length = 255)
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Builder;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "FORM_FIELD")
|
||||
@@ -12,6 +13,7 @@ import lombok.NoArgsConstructor;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class FormFieldEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "NAME", length = 255)
|
||||
@@ -31,4 +33,5 @@ public class FormFieldEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "SORT_ORDER")
|
||||
private Integer sortOrder;
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.Builder;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "FORM_TEMPLATE")
|
||||
@@ -12,6 +13,7 @@ import lombok.NoArgsConstructor;
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class FormTemplateEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "LABEL", length = 255)
|
||||
|
||||
@@ -15,7 +15,4 @@ public class GlobalConfigEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "TYPE")
|
||||
private String type;
|
||||
|
||||
@Column(name = "IS_DELETED")
|
||||
private Boolean isDeleted = false;
|
||||
}
|
||||
|
||||
@@ -4,12 +4,13 @@ import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name="hub")
|
||||
@Setter
|
||||
@Getter
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class HubEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "COMPANY_NAME")
|
||||
|
||||
@@ -3,11 +3,13 @@ package net.gepafin.tendermanagement.entities;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "hub_user")
|
||||
@Getter
|
||||
@Setter
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class HubUserEntity extends BaseEntity{
|
||||
|
||||
@ManyToOne
|
||||
|
||||
@@ -2,12 +2,14 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Entity
|
||||
@Table(name = "LOGIN_ATTEMPT")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class LoginAttemptEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "USERNAME")
|
||||
|
||||
@@ -3,10 +3,12 @@ package net.gepafin.tendermanagement.entities;
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "LOOKUP_DATA")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class LookUpDataEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "TITLE", columnDefinition = "TEXT", nullable = true)
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "NDGANAG")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class NdganagEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "NDG")
|
||||
private String ndg;
|
||||
|
||||
@Column(name = "COMPANY_NAME")
|
||||
private String companyName;
|
||||
|
||||
@Column(name = "VAT_NUMBER")
|
||||
private String vatNumber;
|
||||
|
||||
@Column(name = "CODICE_FISCALE")
|
||||
private String codiceFiscale;
|
||||
|
||||
@Column(name = "JSON")
|
||||
private String json;
|
||||
|
||||
@Column(name = "IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
|
||||
}
|
||||
@@ -6,10 +6,12 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "NOTIFICATION")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class NotificationEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "USER_ID")
|
||||
@@ -24,9 +26,6 @@ public class NotificationEntity extends BaseEntity {
|
||||
@Column(name = "STATUS")
|
||||
private String status;
|
||||
|
||||
@Column(name = "IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@Column(name = "NOTIFICATION_TYPE")
|
||||
private String notificationType;
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name = "NOTIFICATION_TYPE")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class NotificationTypeEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "NOTIFICATION_NAME")
|
||||
@@ -18,7 +20,4 @@ public class NotificationTypeEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "TITLE")
|
||||
private String title;
|
||||
|
||||
@Column(name="IS_DELETED")
|
||||
private Boolean isDeleted;
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package net.gepafin.tendermanagement.entities;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import net.gepafin.tendermanagement.config.LocalTimeAttributeConverter;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
@@ -10,6 +11,7 @@ import java.time.LocalTime;
|
||||
@Entity
|
||||
@Table(name = "PROTOCOL")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class ProtocolEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "PROTOCOL_NUMBER", nullable = false)
|
||||
|
||||
@@ -6,6 +6,7 @@ import jakarta.persistence.Table;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -13,6 +14,7 @@ import java.math.BigDecimal;
|
||||
@Table(name = "REGION")
|
||||
@Getter
|
||||
@Setter
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class RegionEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "REGION_NAME", length = 255, nullable = true)
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name ="role_action_context")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class RoleActionContextEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "action_context")
|
||||
@@ -16,9 +18,6 @@ public class RoleActionContextEntity extends BaseEntity {
|
||||
@Column(name = "role_id")
|
||||
private Long roleId;
|
||||
|
||||
@Column(name="is_deleted")
|
||||
private Boolean isDeleted;
|
||||
|
||||
@Column(name = "is_viewed")
|
||||
private Boolean isViewed;
|
||||
|
||||
|
||||
@@ -4,11 +4,13 @@ import jakarta.persistence.*;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "ROLE")
|
||||
@Getter
|
||||
@Setter
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class RoleEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "ROLE_NAME", length = 255, nullable = true)
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "s3_path_configuration")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class S3ConfigEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "TYPE")
|
||||
@@ -21,5 +23,6 @@ public class S3ConfigEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "PARENT_FOLDER")
|
||||
private String parentFolder;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "SAML_RESPONSE")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class SamlResponseEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "AUTHENTICATION_OBJECT")
|
||||
@@ -30,6 +32,5 @@ public class SamlResponseEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "TOKEN")
|
||||
private String token;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -8,10 +8,12 @@ import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "system_email_template")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class SystemEmailTemplatesEntity extends BaseEntity {
|
||||
|
||||
|
||||
@@ -32,9 +34,6 @@ public class SystemEmailTemplatesEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "SYSTEM")
|
||||
private Boolean system;
|
||||
|
||||
@Column(name ="IS_DELETED", nullable = false)
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
@Column(name = "email_scenario")
|
||||
private String emailScenario;
|
||||
@@ -56,7 +55,8 @@ public class SystemEmailTemplatesEntity extends BaseEntity {
|
||||
USER_ONBOARDING_BANDI("USER_ONBOARDING_BANDI"),
|
||||
PASSWORD_RESET("PASSWORD_RESET"),
|
||||
INADMISSIBILITY_TEMPLATE("INADMISSIBILITY_NOTIFICATION"),
|
||||
APPLICATION_SUBMISSION_FAILURE_NOTIFICATION("APPLICATION_SUBMISSION_FAILURE_NOTIFICATION");
|
||||
APPLICATION_SUBMISSION_FAILURE_NOTIFICATION("APPLICATION_SUBMISSION_FAILURE_NOTIFICATION"),
|
||||
INADMISSIBILITY_NOTIFICATION_DUE_TO_TECHNICAL_EVALUATION_FAILURE("INADMISSIBILITY_NOTIFICATION_DUE_TO_TECHNICAL_EVALUATION_FAILURE");
|
||||
private String value;
|
||||
|
||||
SystemEmailTemplatesEntityTypeEnum(String value) {
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "user_action")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class UserActionEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "USER_ID")
|
||||
@@ -40,7 +42,4 @@ public class UserActionEntity extends BaseEntity {
|
||||
@Column(name = "RESPONSE")
|
||||
private String response;
|
||||
|
||||
@Column(name = "IS_DELETED", nullable = false)
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
}
|
||||
@@ -2,10 +2,12 @@ package net.gepafin.tendermanagement.entities;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "user_company_delegation")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class UserCompanyDelegationEntity extends BaseEntity{
|
||||
|
||||
@Column(name="USER_ID")
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.hibernate.annotations.Where;
|
||||
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -16,6 +17,7 @@ import java.util.List;
|
||||
@Table(name = "GEPAFIN_USER")
|
||||
@Getter
|
||||
@Setter
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class UserEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "PASSWORD", columnDefinition = "TEXT",nullable = true)
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Entity
|
||||
@Table(name = "USER_WITH_COMPANY")
|
||||
@Data
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class UserWithCompanyEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "USER_ID")
|
||||
@@ -34,8 +36,5 @@ public class UserWithCompanyEntity extends BaseEntity{
|
||||
|
||||
@Column(name = "EMAIL")
|
||||
private String email;
|
||||
|
||||
@Column(name = "IS_DELETED")
|
||||
private Boolean isDeleted = false;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Table;
|
||||
import lombok.Data;
|
||||
import org.hibernate.annotations.Where;
|
||||
|
||||
@Data
|
||||
@Entity
|
||||
@Table(name = "version_history")
|
||||
@Where(clause = "is_deleted = false")
|
||||
public class VersionHistoryEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "OLD_DATA", columnDefinition = "LONGTEXT")
|
||||
@@ -30,7 +32,4 @@ public class VersionHistoryEntity extends BaseEntity {
|
||||
|
||||
@Column(name = "USER_ID")
|
||||
private Long userId;
|
||||
|
||||
@Column(name = "IS_DELETED", nullable = false)
|
||||
private Boolean isDeleted = false;
|
||||
}
|
||||
|
||||
@@ -6,7 +6,8 @@ public enum ApplicationStatusForEvaluation {
|
||||
APPROVED("APPROVED"),
|
||||
REJECTED("REJECTED"),
|
||||
ADMISSIBLE("ADMISSIBLE"),
|
||||
TECHNICAL_EVALUATION("TECHNICAL_EVALUATION");
|
||||
TECHNICAL_EVALUATION("TECHNICAL_EVALUATION"),
|
||||
TECHNICAL_EVALUATION_REJECTED("TECHNICAL_EVALUATION_REJECTED");
|
||||
|
||||
private String value;
|
||||
|
||||
|
||||
@@ -16,7 +16,8 @@ public enum ApplicationStatusTypeEnum {
|
||||
APPOINTMENT("APPOINTMENT"),
|
||||
NDG("NDG"),
|
||||
ADMISSIBLE("ADMISSIBLE"),
|
||||
TECHNICAL_EVALUATION("TECHNICAL_EVALUATION");
|
||||
TECHNICAL_EVALUATION("TECHNICAL_EVALUATION"),
|
||||
TECHNICAL_EVALUATION_REJECTED("TECHNICAL_EVALUATION_REJECTED");
|
||||
|
||||
private String value;
|
||||
|
||||
|
||||
@@ -12,7 +12,8 @@ public enum EmailScenarioTypeEnum {
|
||||
USER_CREATION("USER_CREATION"),
|
||||
PASSWORD_RESET_REQUEST("PASSWORD_RESET_REQUEST"),
|
||||
APPLICATION_REJECTED("APPLICATION_REJECTED"),
|
||||
APPLICATION_SUBMISSION_FAILURE("APPLICATION_SUBMISSION_FAILURE");
|
||||
APPLICATION_SUBMISSION_FAILURE("APPLICATION_SUBMISSION_FAILURE"),
|
||||
APPLICATION_TECHNICAL_EVALUATION_REJECTED("APPLICATION_TECHNICAL_EVALUATION_REJECTED");
|
||||
|
||||
private final String value;
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package net.gepafin.tendermanagement.enums;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
|
||||
public enum HttpMethodEnum {
|
||||
POST("POST"), PUT("PUT"), GET("GET"), DELETE("DELETE");
|
||||
|
||||
private String value;
|
||||
|
||||
HttpMethodEnum(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@JsonValue
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package net.gepafin.tendermanagement.enums;
|
||||
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonValue;
|
||||
|
||||
public enum NdgStatusEnum {
|
||||
|
||||
NDG_INITITATED("NDG_INITITATED"),
|
||||
NDG_GENERATED("NDG_GENERATED"),
|
||||
NDG_IN_PROGRESS("NDG_IN_PROGRESS");
|
||||
|
||||
private String value;
|
||||
|
||||
NdgStatusEnum(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@JsonValue
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
@@ -47,6 +47,8 @@ public enum UserActionContextEnum {
|
||||
GET_NEXT_PREVIOUS_FORM("GET_NEXT_PREVIOUS_FORM"),
|
||||
DOWNLOAD_APPLICATION_DOC_ZIP("DOWNLOAD_APPLICATION_DOC_ZIP"),
|
||||
READMIT_APPLICATION("READMIT_APPLICATION"),
|
||||
DOWNLOAD_CSV_BY_CALL_ID("DOWNLOAD_CSV_BY_CALL_ID"),
|
||||
DOWNLOAD_CSV_AS_PER_RANKING("DOWNLOAD_CSV_AS_PER_RANKING"),
|
||||
|
||||
/** FAQ action context **/
|
||||
CREATE_FAQ("CREATE_FAQ"),
|
||||
@@ -67,6 +69,7 @@ public enum UserActionContextEnum {
|
||||
GET_COMPANY_BY_USER("GET_COMPANY_BY_USER"),
|
||||
REMOVE_COMPANY_FROM_USER("REMOVE_COMPANY_FROM_USER"),
|
||||
UPDATE_COMPANY_JSON("UPDATE_COMPANY_JSON"),
|
||||
EXTRACT_PEC_FROM_COMPANY("EXTRACT_PEC_FROM_COMPANY"),
|
||||
|
||||
/** LookUpData action context **/
|
||||
CREATE_LOOKUP_DATA("CREATE_LOOKUP_DATA"),
|
||||
@@ -180,6 +183,7 @@ public enum UserActionContextEnum {
|
||||
CHECK_OR_CREATE_NDG_CODE("CHECK_OR_CREATE_NDG_CODE"),
|
||||
CREATE_APPOINTMENT("CREATE_APPOINTMENT"),
|
||||
UPLOAD_DOCUMENT_TO_EXTERNAL_SYSTEM("UPLOAD_DOCUMENT_TO_EXTERNAL_SYSTEM"),
|
||||
GET_NDG_BY_VAT_NUMBER("GET_NDG_BY_VAT_NUMBER"),
|
||||
|
||||
GET_ALL_NOTIFICATION_BY_PAGINATION("GET_ALL_NOTIFICATION_BY_PAGINATION"),
|
||||
GET_ALL_CALL_BY_PAGINATION("GET_ALL_CALL_BY_PAGINATION"),
|
||||
|
||||
@@ -44,6 +44,8 @@ public class CreateCallRequestStep1 {
|
||||
|
||||
private Boolean confidi;
|
||||
|
||||
private Boolean allowMultipleApplications;
|
||||
|
||||
private List<FaqReq> faq;
|
||||
|
||||
private EvaluationVersionEnum evaluationVersion;
|
||||
|
||||
@@ -38,6 +38,8 @@ public class UpdateCallRequestStep1 {
|
||||
|
||||
private Boolean confidi;
|
||||
|
||||
private Boolean allowMultipleApplications;
|
||||
|
||||
private List<FaqReq> faq;
|
||||
|
||||
private Long numberOfCheck;
|
||||
|
||||
@@ -21,6 +21,7 @@ public class AssignedApplicationViewResponse extends BaseBean {
|
||||
private Long protocolNumber;
|
||||
private String callName;
|
||||
private String companyName;
|
||||
private String assignedUserName;
|
||||
private List<EmailSendResponse> emailSendResponse;
|
||||
|
||||
|
||||
|
||||
@@ -23,6 +23,8 @@ public class CallDetailsResponseBean {
|
||||
|
||||
private Boolean confidi;
|
||||
|
||||
private Boolean allowMultipleApplications;
|
||||
|
||||
private CallStatusEnum status;
|
||||
|
||||
private Long regionId;
|
||||
|
||||
@@ -44,6 +44,8 @@ public class CallResponse {
|
||||
|
||||
private Boolean confidi;
|
||||
|
||||
private Boolean allowMultipleApplications;
|
||||
|
||||
private BigDecimal amountMin;
|
||||
|
||||
private String email;
|
||||
|
||||
@@ -181,4 +181,7 @@ public interface ApplicationRepository extends JpaRepository<ApplicationEntity,
|
||||
|
||||
ApplicationEntity findByIdAndStatusAndIsDeletedFalse( Long id, String status);
|
||||
|
||||
public List<ApplicationEntity> findByCallIdAndIsDeletedFalseAndStatusIn(Long callId,List<String> status);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -31,5 +31,7 @@ public interface CompanyRepository extends JpaRepository<CompanyEntity, Long> {
|
||||
""")
|
||||
Page<CompanyEntity> findCompaniesWithMissingVatCheck(Pageable pageable);
|
||||
|
||||
List<CompanyEntity> findByJsonIsNotNullAndPecIsNull();
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -18,4 +18,6 @@ public interface EvaluationCriteriaRepository extends JpaRepository<EvaluationCr
|
||||
List<EvaluationCriteriaEntity> findByCallIdAndLookupDataTypeAndIsDeletedFalse(Long callId, String type);
|
||||
// List<EvaluationCriteriaEntity> findByCallId(Long callId);
|
||||
|
||||
List<EvaluationCriteriaEntity> findByCallIdAndIsDeletedFalse(Long callId);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package net.gepafin.tendermanagement.repositories;
|
||||
|
||||
import net.gepafin.tendermanagement.entities.NdganagEntity;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
|
||||
@Repository
|
||||
public interface NdganagRepository extends JpaRepository<NdganagEntity,Long> {
|
||||
|
||||
NdganagEntity findByVatNumber(String vatNumber);
|
||||
|
||||
|
||||
}
|
||||
@@ -91,7 +91,11 @@ public class ApplicationEvaluationScheduler {
|
||||
// Map<String, String> placeHolders = notificationDao.sendNotificationToBeneficiary(application, NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||
Map<String, String> placeHolders = new HashMap<>();
|
||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
||||
placeHolders.put("{{protocol_number}}", String.valueOf(application.getProtocol().getProtocolNumber()));
|
||||
String protocolNumber=application.getProtocol().getExternalProtocolNumber();
|
||||
if(protocolNumber==null){
|
||||
protocolNumber= String.valueOf(application.getProtocol().getProtocolNumber());
|
||||
}
|
||||
placeHolders.put("{{protocol_number}}", protocolNumber);
|
||||
notificationDao.sendNotificationToSuperUser(application,placeHolders,NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||
notificationDao.sendNotificationToInstructor(placeHolders,evaluation,NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||
notificationDao.sendNotificationToInstructorManager(placeHolders,evaluation,NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||
|
||||
@@ -52,4 +52,7 @@ public interface ApplicationService {
|
||||
|
||||
public ApplicationResponse readmitApplication(HttpServletRequest request, Long applicationId);
|
||||
|
||||
}
|
||||
public byte[] downloadRankingCsv(HttpServletRequest request, Long callId);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -13,4 +13,7 @@ public interface AppointmentService {
|
||||
AppointmentCreationResponse createAppointmentForApplication(HttpServletRequest request, Long applicationId, CreateAppointmentRequest createAppointmentRequest);
|
||||
|
||||
DocumentUploadResponse uploadDocToExternalSystem(HttpServletRequest request, Long documentId, UploadDocToExternalSystemRequest docToExternalSystemRequest);
|
||||
|
||||
NdgResponse getNdgByVatNumber(HttpServletRequest request,String vatNumber);
|
||||
|
||||
}
|
||||
|
||||
@@ -47,4 +47,5 @@ public interface CompanyService {
|
||||
|
||||
void updateMissingVatCheckResponses(HttpServletRequest request, LimitRequest limitRequest);
|
||||
|
||||
void extractPecFromJson(HttpServletRequest request);
|
||||
}
|
||||
|
||||
@@ -176,4 +176,10 @@ public class ApplicationServiceImpl implements ApplicationService {
|
||||
UserEntity userEntity = validator.validateUser(request);
|
||||
return applicationDao.readmitApplication(request, applicationId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte[] downloadRankingCsv(HttpServletRequest request, Long callId) {
|
||||
UserEntity userEntity = validator.validateUser(request);
|
||||
return applicationDao.downloadRankingCsv(callId,userEntity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,12 +2,14 @@ package net.gepafin.tendermanagement.service.impl;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import net.gepafin.tendermanagement.dao.AppointmentDao;
|
||||
import net.gepafin.tendermanagement.entities.UserEntity;
|
||||
import net.gepafin.tendermanagement.model.request.CreateAppointmentRequest;
|
||||
import net.gepafin.tendermanagement.model.request.UploadDocToExternalSystemRequest;
|
||||
import net.gepafin.tendermanagement.model.response.AppointmentCreationResponse;
|
||||
import net.gepafin.tendermanagement.model.response.DocumentUploadResponse;
|
||||
import net.gepafin.tendermanagement.model.response.NdgResponse;
|
||||
import net.gepafin.tendermanagement.service.AppointmentService;
|
||||
import net.gepafin.tendermanagement.util.Validator;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -17,6 +19,9 @@ public class AppointmentServiceImpl implements AppointmentService {
|
||||
@Autowired
|
||||
private AppointmentDao appointmentDao;
|
||||
|
||||
@Autowired
|
||||
private Validator validator;
|
||||
|
||||
@Override
|
||||
public NdgResponse checkNdgForAppointment(HttpServletRequest request, Long applicationId) {
|
||||
|
||||
@@ -34,4 +39,11 @@ public class AppointmentServiceImpl implements AppointmentService {
|
||||
|
||||
return appointmentDao.uploadDocumentToExternalSystem(documentId, docToExternalSystemRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public NdgResponse getNdgByVatNumber(HttpServletRequest request,String vatNumber) {
|
||||
UserEntity userEntity = validator.validateUser(request);
|
||||
NdgResponse ndgResponse= appointmentDao.getNdgByVatNumber(vatNumber,userEntity);
|
||||
return ndgResponse;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,6 +140,12 @@ public class CompanyServiceImpl implements CompanyService {
|
||||
@Override
|
||||
public void updateMissingVatCheckResponses(HttpServletRequest request, LimitRequest limitRequest) {
|
||||
UserEntity userEntity =validator.validateUser(request);
|
||||
companyDao.updateMissingVatCheckResponses(request, limitRequest);
|
||||
companyDao.updateMissingVatCheckResponses(request,limitRequest);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void extractPecFromJson(HttpServletRequest request) {
|
||||
UserEntity userEntity =validator.validateUser(request);
|
||||
companyDao.getCompanyEntity();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,7 @@ import java.lang.reflect.Type;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.SecureRandom;
|
||||
import java.sql.Timestamp;
|
||||
import java.text.NumberFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.text.*;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.OffsetDateTime;
|
||||
@@ -1052,5 +1050,48 @@ public class Utils {
|
||||
headers.add(org.apache.http.HttpHeaders.USER_AGENT, "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0");
|
||||
return headers;
|
||||
}
|
||||
|
||||
public static void setHttpServletRequestForThread(HttpServletRequest request,String methodType, String remoteUser, Long userActionId) {
|
||||
MockHttpServletRequest mockRequest = new MockHttpServletRequest();
|
||||
mockRequest.setRequestURI(request.getRequestURI());
|
||||
mockRequest.setMethod(methodType);
|
||||
mockRequest.setRemoteUser(remoteUser); // or pass it in if needed
|
||||
mockRequest.setAttribute(GepafinConstant.USER_ACTION_ID, userActionId);
|
||||
|
||||
ServletRequestAttributes attributes = new ServletRequestAttributes(mockRequest);
|
||||
RequestContextHolder.setRequestAttributes(attributes, true);
|
||||
}
|
||||
public static String convertToItalianFormatWithOnlyDecimalValue(String amount) {
|
||||
try {
|
||||
// Step 1: Sanitize and standardize the input
|
||||
String sanitizedAmount = amount.trim();
|
||||
|
||||
// Remove thousand separators (either . or , depending on input style)
|
||||
sanitizedAmount = sanitizedAmount.replace(",", "").replace(" ", "");
|
||||
|
||||
// Step 2: Ensure it uses '.' as decimal separator for parsing
|
||||
if (sanitizedAmount.contains(".")) {
|
||||
// It already uses dot as decimal separator
|
||||
} else if (sanitizedAmount.contains(",")) {
|
||||
// If input uses comma as decimal separator (like "1234,56")
|
||||
sanitizedAmount = sanitizedAmount.replace(",", ".");
|
||||
}
|
||||
|
||||
// Step 3: Parse to double
|
||||
double parsedAmount = Double.parseDouble(sanitizedAmount);
|
||||
|
||||
// Step 4: Format without thousand separator and with comma as decimal
|
||||
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
|
||||
symbols.setDecimalSeparator(',');
|
||||
|
||||
DecimalFormat italianDecimalFormat = new DecimalFormat("0.00", symbols);
|
||||
italianDecimalFormat.setGroupingUsed(false); // no thousand separator
|
||||
|
||||
return italianDecimalFormat.format(parsedAmount);
|
||||
} catch (NumberFormatException e) {
|
||||
return "Invalid amount format";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -252,6 +252,21 @@ public interface ApplicationApi {
|
||||
ResponseEntity<Response<ApplicationResponse>> readmitApplication(HttpServletRequest request,
|
||||
@Parameter(description = "The application id", required = true) @PathVariable("applicationId") Long applicationId);
|
||||
|
||||
@Operation(summary = "Api to download application data as a CSV file as per ranking",
|
||||
responses = {
|
||||
@ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE)})),
|
||||
@ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE)})),
|
||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE)}))
|
||||
})
|
||||
@GetMapping(value = "/call/{callId}/ranking-csv")
|
||||
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN') || hasRole('ROLE_INSTRUCTOR_MANAGER')")
|
||||
public ResponseEntity<byte[]> downloadRankingCsv(
|
||||
HttpServletRequest request, @Parameter(description = "The call id", required = true) @PathVariable(value = "callId", required = true) Long callId);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -56,4 +56,15 @@ public interface AppointmentApi {
|
||||
ResponseEntity<Response<DocumentUploadResponse>> uploadDocumentToExternalSystem(HttpServletRequest request,
|
||||
@Parameter(description = "The document id", required = true) @PathVariable(value = "documentId", required = true) Long documentId,
|
||||
@RequestBody UploadDocToExternalSystemRequest docToExternalSystemRequest);
|
||||
|
||||
@Operation(summary = "API to get ndg by vatNumber", responses = { @ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE) })),
|
||||
@ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
|
||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||
@GetMapping(value = "/vatNumber/{vatNumber}", produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
ResponseEntity<Response<NdgResponse>> getNdgByVatNumber(HttpServletRequest request,@PathVariable(value = "vatNumber", required = true) @Parameter(description = "vatNumber",required = true)String vatNumber);
|
||||
|
||||
}
|
||||
|
||||
@@ -169,4 +169,17 @@ public interface CompanyApi {
|
||||
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN') ")
|
||||
ResponseEntity<Response<Void>> updateMissingVatCheckResponses(HttpServletRequest request,
|
||||
@Parameter(description = "Limit request object ", required = true) @RequestBody LimitRequest limitRequest);
|
||||
|
||||
@Operation(summary = "Api to extract pec from the company json", responses = { @ApiResponse(responseCode = "200", description = "OK"),
|
||||
@ApiResponse(responseCode = "404", description = "Not Found", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.NOTFOUND_ERROR_EXAMPLE) })),
|
||||
@ApiResponse(responseCode = "401", description = "Unauthorized", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.UNAUTHORIZED_ERROR_EXAMPLE) })),
|
||||
@ApiResponse(responseCode = "400", description = "Bad Request", content = @Content(mediaType = MediaType.APPLICATION_JSON_VALUE, examples = {
|
||||
@ExampleObject(value = ErrorConstants.BADREQUEST_ERROR_EXAMPLE) })) })
|
||||
@GetMapping(value = "/pec", produces = { "application/json" })
|
||||
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN') ")
|
||||
ResponseEntity<Response<Void>> extractPecFromJson(HttpServletRequest request);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@@ -236,6 +238,10 @@ public class ApplicationApiController implements ApplicationApi {
|
||||
}
|
||||
@Override
|
||||
public ResponseEntity<byte[]> exportCsv(HttpServletRequest request, Long callId) {
|
||||
|
||||
loggingUtil.logUserAction(
|
||||
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DOWNLOAD).actionContext(UserActionContextEnum.DOWNLOAD_CSV_BY_CALL_ID).build());
|
||||
|
||||
byte[] csvBytes =applicationService.exportCsv(request,callId);
|
||||
return ResponseEntity.ok()
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=applications.csv")
|
||||
@@ -254,4 +260,19 @@ public class ApplicationApiController implements ApplicationApi {
|
||||
return ResponseEntity.status(HttpStatus.OK)
|
||||
.body(new Response<>(applicationResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.READMIT_APPLICATION_SUCCESS)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<byte[]> downloadRankingCsv(HttpServletRequest request, Long callId) {
|
||||
loggingUtil.logUserAction(
|
||||
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.DOWNLOAD).actionContext(UserActionContextEnum.DOWNLOAD_CSV_AS_PER_RANKING).build());
|
||||
|
||||
byte[] csvBytes =applicationService.downloadRankingCsv(request,callId);
|
||||
String dateString = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
String fileName = "call_" + callId + "_" + dateString + ".csv";
|
||||
|
||||
return ResponseEntity.ok()
|
||||
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileName)
|
||||
.contentType(MediaType.APPLICATION_OCTET_STREAM)
|
||||
.body(csvBytes);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public class ApplicationEvaluationApiController implements ApplicationEvaluation
|
||||
request, evaluationRequest, assignedApplicationsId);
|
||||
|
||||
return ResponseEntity.status(HttpStatus.CREATED)
|
||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.EVALUATION_CREATED_SUCCESSFULLY)));
|
||||
.body(new Response<>(response, Status.SUCCESS, Translator.toLocale(GepafinConstant.USER_REQUEST_COMPLETED)));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import net.gepafin.tendermanagement.service.AppointmentService;
|
||||
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||
import net.gepafin.tendermanagement.web.rest.api.AppointmentApi;
|
||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||
import org.opensaml.xmlsec.signature.G;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
@@ -81,4 +82,19 @@ public class AppointmentController implements AppointmentApi {
|
||||
.body(new Response<>(documentUploadResponse, Status.SUCCESS, Translator.toLocale(message)));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Response<NdgResponse>> getNdgByVatNumber(HttpServletRequest request,String vatNumber) {
|
||||
loggingUtil.logUserAction(
|
||||
UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPLOAD).actionContext(UserActionContextEnum.GET_NDG_BY_VAT_NUMBER).build());
|
||||
|
||||
NdgResponse ndgResponse= appointmentService.getNdgByVatNumber(request,vatNumber);
|
||||
if(ndgResponse==null){
|
||||
return ResponseEntity.status(HttpStatus.CREATED)
|
||||
.body(new Response<>(ndgResponse, Status.NOT_FOUND, Translator.toLocale(GepafinConstant.NDG_NOT_FOUND)));
|
||||
}
|
||||
|
||||
return ResponseEntity.status(HttpStatus.CREATED)
|
||||
.body(new Response<>(ndgResponse, Status.SUCCESS, Translator.toLocale(GepafinConstant.NDG_FETCH_SUCCESSFULLY)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,4 +201,17 @@ public class CompanyApiController implements CompanyApi{
|
||||
return ResponseEntity.status(HttpStatus.OK)
|
||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMPANY_UPDATED_SUCCESS_MSG)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseEntity<Response<Void>> extractPecFromJson(HttpServletRequest request) {
|
||||
|
||||
log.info("Api to set pec from json field");
|
||||
|
||||
companyService.extractPecFromJson(request);
|
||||
|
||||
loggingUtil.logUserAction(UserActionRequest.builder().request(request).actionType(UserActionLogsEnum.UPDATE).actionContext(UserActionContextEnum.EXTRACT_PEC_FROM_COMPANY).build());
|
||||
|
||||
return ResponseEntity.status(HttpStatus.OK)
|
||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMPANY_UPDATED_SUCCESS_MSG)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user