Merge pull request #314 from Kitzanos/develop
Sync Master with Develop (20/06/2025)
This commit is contained in:
@@ -549,7 +549,31 @@ public class GepafinConstant {
|
|||||||
public static final String CAUSE_STRING = "cause" ;
|
public static final String CAUSE_STRING = "cause" ;
|
||||||
public static final String ERROR_DESCRIPTION_STRING = "errorDescription" ;
|
public static final String ERROR_DESCRIPTION_STRING = "errorDescription" ;
|
||||||
public static final String ERROR_STRING = "errors";
|
public static final String ERROR_STRING = "errors";
|
||||||
|
public static final String PROTOCOL_SERVICE_URL="http://65.108.55.96:8080";
|
||||||
|
public static final String PROTOCOL_SERVICE_BEARER_TOKEN="/auth/login";
|
||||||
|
public static final String PROTOCOL_SERVICE_CREATE_PROTOCOL="/documenti/protocollaUD";
|
||||||
|
public static final String PROTOCOL_CALL_NAME="BANDO";
|
||||||
|
public static final String PROTOCOL_DOC_URL="DOC_URL";
|
||||||
|
public static final String PROTOCOL_COMPANY_NAME_VAT_NUMBER="OGGETTO_PG";
|
||||||
|
public static final String PROTOCOL_DOC_HASH="URL_CONTENT_HASH";
|
||||||
|
public static final String PROTOCOL_TIPO_PROTOCOLLAZIONE="TIPO_PROTOCOLLAZIONE";
|
||||||
|
public static final String PROTOCOL_TIPO_CORRISPONDENTE_COMPANY="tipoCorrispondente";
|
||||||
|
public static final String PROTOCOL_COMPANY_NAME="denominazione";
|
||||||
|
public static final String PROTOCOL_MEZZO="mezzo";
|
||||||
|
public static final String PROTOCOL_INDIRIZZO_PEC="indirizzoPec";
|
||||||
|
public static final String PROTOCOL_COMPANY_VAT_NUMBER="identificativo";
|
||||||
|
public static final String PROTOCOL_CODICE_UO="codiceUo";
|
||||||
|
public static final String PROTOCOL_COMPETENTE="competente";
|
||||||
|
public static final String PROTOCOL_TIPO_CORRISPONDENTE="tipoCorrispondente";
|
||||||
|
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="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 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";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -378,6 +378,7 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
ProtocolEntity protocolEntity = protocolDao.createProtocolEntity(
|
ProtocolEntity protocolEntity = protocolDao.createProtocolEntity(
|
||||||
applicationEvaluationEntity.getAssignedApplicationsEntity().getApplication(), protocolNumber,
|
applicationEvaluationEntity.getAssignedApplicationsEntity().getApplication(), protocolNumber,
|
||||||
userEntity.getHub().getId(),false);
|
userEntity.getHub().getId(),false);
|
||||||
|
protocolDao.saveProtocolEntity(protocolEntity);
|
||||||
applicationAmendmentRequestEntity.setProtocol(protocolEntity);
|
applicationAmendmentRequestEntity.setProtocol(protocolEntity);
|
||||||
ApplicationAmendmentRequestEntity applicationAmendment = saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity, null, VersionActionTypeEnum.INSERT);
|
ApplicationAmendmentRequestEntity applicationAmendment = saveApplicationAmendmentRequestEntity(applicationAmendmentRequestEntity, null, VersionActionTypeEnum.INSERT);
|
||||||
log.info("Amendment request saved with ID={}", applicationAmendment.getId());
|
log.info("Amendment request saved with ID={}", applicationAmendment.getId());
|
||||||
@@ -1107,6 +1108,9 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
application.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue());
|
application.setStatus(ApplicationStatusTypeEnum.EVALUATION.getValue());
|
||||||
applicationRepository.save(application);
|
applicationRepository.save(application);
|
||||||
log.info("Updated Application status to EVALUATION for Application ID: {}", application.getId());
|
log.info("Updated Application status to EVALUATION for Application ID: {}", application.getId());
|
||||||
|
|
||||||
|
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().setStatus(AssignedApplicationEnum.OPEN.getValue());
|
||||||
|
|
||||||
AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsDao.validateAssignedApplication(
|
AssignedApplicationsEntity assignedApplicationsEntity = assignedApplicationsDao.validateAssignedApplication(
|
||||||
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().getId());
|
existingApplicationAmendment.getApplicationEvaluationEntity().getAssignedApplicationsEntity().getId());
|
||||||
|
|
||||||
@@ -1140,6 +1144,7 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationAmendmentRequestResponse extendResponseDays(Long id, Long newResponseDays) {
|
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());
|
ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity = validatApplicationAmendmentRequestByStatus(id,ApplicationAmendmentRequestEnum.EXPIRED.getValue());
|
||||||
log.info("Extending response days for Application Amendment ID: {}, Additional Days: {}", id, newResponseDays);
|
log.info("Extending response days for Application Amendment ID: {}, Additional Days: {}", id, newResponseDays);
|
||||||
|
|
||||||
@@ -1208,9 +1213,7 @@ public class ApplicationAmendmentRequestDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public EmailReminderResponse sendReminderEmail(Long amendmentId) {
|
public EmailReminderResponse sendReminderEmail(Long amendmentId) {
|
||||||
|
|
||||||
log.info("Initiating reminder email process for Amendment ID: {}", amendmentId);
|
log.info("Initiating reminder email process for Amendment ID: {}", amendmentId);
|
||||||
|
|
||||||
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(amendmentId)
|
ApplicationAmendmentRequestEntity amendment = applicationAmendmentRequestRepository.findByIdAndIsDeletedFalse(amendmentId)
|
||||||
.orElseThrow(() -> { log.error("Amendment not found with ID: {}", amendmentId);
|
.orElseThrow(() -> { log.error("Amendment not found with ID: {}", amendmentId);
|
||||||
return new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG));
|
return new ResourceNotFoundException(Status.NOT_FOUND, Translator.toLocale(GepafinConstant.APPLICATION_AMENDMENT_NOT_FOUND_MSG));
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import com.amazonaws.services.dynamodbv2.xspec.S;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
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.entities.SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.*;
|
import net.gepafin.tendermanagement.enums.*;
|
||||||
import net.gepafin.tendermanagement.model.request.*;
|
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.response.*;
|
||||||
import net.gepafin.tendermanagement.model.util.SortBy;
|
import net.gepafin.tendermanagement.model.util.SortBy;
|
||||||
import net.gepafin.tendermanagement.repositories.*;
|
import net.gepafin.tendermanagement.repositories.*;
|
||||||
@@ -136,6 +142,9 @@ public class ApplicationDao {
|
|||||||
@Value("${call.id}")
|
@Value("${call.id}")
|
||||||
private String callId;
|
private String callId;
|
||||||
|
|
||||||
|
@Value("${sviluppumbriaUuid}")
|
||||||
|
private String sviluppumbriaUuid;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AmazonS3Service amazonS3Service;
|
private AmazonS3Service amazonS3Service;
|
||||||
|
|
||||||
@@ -548,15 +557,47 @@ public class ApplicationDao {
|
|||||||
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
VersionActionTypeEnum actionType = VersionActionTypeEnum.INSERT;
|
||||||
List<ContentResponseBean> contentResponseBeans = formDao.convertFormEntityToFormResponseBean(formEntity).getContent();
|
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()
|
contentResponseBeans.stream()
|
||||||
.filter(content -> "numberinput".equals(content.getName()) && content.getId().toString().equals(applicationFormFieldRequestBean.getFieldId()))
|
.filter(content -> content.getId().toString().equals(applicationFormFieldRequestBean.getFieldId()))
|
||||||
.map(ContentResponseBean::getSettings)
|
|
||||||
.flatMap(List::stream)
|
|
||||||
.filter(setting -> "isRequestedAmount".equals(setting.getName()) && Boolean.TRUE.equals(setting.getValue()))
|
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.ifPresent(setting -> {
|
.ifPresent(content -> {
|
||||||
Object fieldValue = applicationFormFieldRequestBean.getFieldValue();
|
Object fieldValue = applicationFormFieldRequestBean.getFieldValue();
|
||||||
if(fieldValue!=null) {
|
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
|
||||||
|
Map<String, Runnable> handlers = new HashMap<>();
|
||||||
|
|
||||||
|
// Add handler for isRequestedAmount
|
||||||
|
if ("numberinput".equals(fieldType) && Boolean.TRUE.equals(settingMap.get("isRequestedAmount"))) {
|
||||||
|
handlers.put("isRequestedAmount", () -> {
|
||||||
try {
|
try {
|
||||||
BigDecimal amountRequested = new BigDecimal(fieldValue.toString());
|
BigDecimal amountRequested = new BigDecimal(fieldValue.toString());
|
||||||
applicationFormEntity.getApplication().setAmountRequested(amountRequested);
|
applicationFormEntity.getApplication().setAmountRequested(amountRequested);
|
||||||
@@ -565,7 +606,19 @@ public class ApplicationDao {
|
|||||||
log.error("Invalid number format for requested amount: {}", fieldValue, e);
|
log.error("Invalid number format for requested amount: {}", fieldValue, e);
|
||||||
throw new IllegalArgumentException("Field value is not a valid number: " + 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"))) {
|
||||||
|
handlers.put("isPecEmail", () -> {
|
||||||
|
applicationFormEntity.getApplication().setPecEmail(fieldValue.toString());
|
||||||
|
log.info("Set PEC to {} for Application ID: {}", fieldValue, applicationFormEntity.getApplication().getId());
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Run all applicable handlers
|
||||||
|
handlers.values().forEach(Runnable::run);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -978,7 +1031,7 @@ public class ApplicationDao {
|
|||||||
log.info("Call end date verified successfully | callId: {}", applicationEntity.getCall().getId());
|
log.info("Call end date verified successfully | callId: {}", applicationEntity.getCall().getId());
|
||||||
//cloned entity for old application data
|
//cloned entity for old application data
|
||||||
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
|
ApplicationEntity oldApplicationEntity = Utils.getClonedEntityForData(applicationEntity);
|
||||||
|
HubEntity hub=hubService.valdateHub(applicationEntity.getHubId());
|
||||||
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
UserEntity userEntity = userService.validateUser(applicationEntity.getUserId());
|
||||||
validator.validateUserWithCompany(request, applicationEntity.getCompanyId());
|
validator.validateUserWithCompany(request, applicationEntity.getCompanyId());
|
||||||
if (ApplicationStatusTypeEnum.SUBMIT.getValue().equals(applicationEntity.getStatus())) {
|
if (ApplicationStatusTypeEnum.SUBMIT.getValue().equals(applicationEntity.getStatus())) {
|
||||||
@@ -998,11 +1051,17 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (status.equals(ApplicationStatusTypeEnum.SUBMIT) && Boolean.TRUE.equals(applicationEntity.getStatus().equals(ApplicationStatusTypeEnum.READY.getValue()))) {
|
if (status.equals(ApplicationStatusTypeEnum.SUBMIT) && Boolean.TRUE.equals(applicationEntity.getStatus().equals(ApplicationStatusTypeEnum.READY.getValue()))) {
|
||||||
|
CompanyEntity company=companyService.validateCompany(applicationEntity.getCompanyId());
|
||||||
|
|
||||||
// callService.validatePublishedCall(applicationEntity.getCall().getId(), userEntity.getHub().getId());
|
// callService.validatePublishedCall(applicationEntity.getCall().getId(), userEntity.getHub().getId());
|
||||||
checkCallEndDate(applicationEntity.getCall());
|
checkCallEndDate(applicationEntity.getCall());
|
||||||
Long protocolNumber = protocolDao.getProtocolNumber(userEntity.getHub());
|
Long protocolNumber = protocolDao.getProtocolNumber(userEntity.getHub());
|
||||||
ProtocolEntity protocolEntity = protocolDao.createProtocolEntity(applicationEntity, protocolNumber, userEntity.getHub().getId(),true);
|
ProtocolEntity protocolEntity = protocolDao.createProtocolEntity(applicationEntity, protocolNumber, userEntity.getHub().getId(),true);
|
||||||
|
protocolDao.saveProtocolEntity(protocolEntity);
|
||||||
applicationEntity.setProtocol(protocolEntity);
|
applicationEntity.setProtocol(protocolEntity);
|
||||||
|
if(Boolean.TRUE.equals(hub.getUniqueUuid().equals(sviluppumbriaUuid))) {
|
||||||
|
protocolEntity = protocolDao.createExternalProtocol(applicationEntity, company, protocolEntity);
|
||||||
|
}
|
||||||
applicationEntity.setStatus(ApplicationStatusTypeEnum.SUBMIT.getValue());
|
applicationEntity.setStatus(ApplicationStatusTypeEnum.SUBMIT.getValue());
|
||||||
applicationEntity.setSubmissionDate(protocolEntity.getCreatedDate());
|
applicationEntity.setSubmissionDate(protocolEntity.getCreatedDate());
|
||||||
applicationEntity = applicationRepository.save(applicationEntity);
|
applicationEntity = applicationRepository.save(applicationEntity);
|
||||||
@@ -1013,7 +1072,7 @@ public class ApplicationDao {
|
|||||||
loggingUtil.addVersionHistory(
|
loggingUtil.addVersionHistory(
|
||||||
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(applicationEntity).build());
|
VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.UPDATE).oldData(oldApplicationEntity).newData(applicationEntity).build());
|
||||||
|
|
||||||
sendMailToUserAndCompany(userEntity, applicationEntity);
|
sendMailToUserAndCompany(userEntity, applicationEntity,company);
|
||||||
sendMailTodefaultSystemAndGepafin(userEntity, applicationEntity);
|
sendMailTodefaultSystemAndGepafin(userEntity, applicationEntity);
|
||||||
applicationEntity.setStatus(status.getValue());
|
applicationEntity.setStatus(status.getValue());
|
||||||
log.info("Status updated to SUBMIT for applicationId: " + applicationId);
|
log.info("Status updated to SUBMIT for applicationId: " + applicationId);
|
||||||
@@ -1126,10 +1185,9 @@ public class ApplicationDao {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMailToUserAndCompany(UserEntity userEntity, ApplicationEntity applicationEntity) {
|
private void sendMailToUserAndCompany(UserEntity userEntity, ApplicationEntity applicationEntity,CompanyEntity company) {
|
||||||
log.info("Preparing to send submission email | applicationId: {}, userId: {}", applicationEntity.getId(), userEntity.getId());
|
log.info("Preparing to send submission email | applicationId: {}, userId: {}", applicationEntity.getId(), userEntity.getId());
|
||||||
CallEntity call =applicationEntity.getCall();
|
CallEntity call =applicationEntity.getCall();
|
||||||
CompanyEntity company=companyService.validateCompany(applicationEntity.getCompanyId());
|
|
||||||
UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId());
|
UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId());
|
||||||
ProtocolEntity protocol= applicationEntity.getProtocol();
|
ProtocolEntity protocol= applicationEntity.getProtocol();
|
||||||
HubEntity hub = hubService.valdateHub(applicationEntity.getHubId());
|
HubEntity hub = hubService.valdateHub(applicationEntity.getHubId());
|
||||||
@@ -1145,8 +1203,16 @@ public class ApplicationDao {
|
|||||||
// Create the map for body placeholders
|
// Create the map for body placeholders
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
bodyPlaceholders.put("{{call_name}}", call.getName());
|
||||||
bodyPlaceholders.put("{{protocol_number}}", protocol.getProtocolNumber().toString());
|
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||||
bodyPlaceholders.put("{{date}}", DateTimeUtil.formatLocalDateTime(protocol.getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
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));
|
bodyPlaceholders.put("{{time}}", DateTimeUtil.parseLocalTimeToString(protocol.getTime(), GepafinConstant.HH_MM_SS));
|
||||||
|
|
||||||
// Replace placeholders in the subject and body
|
// Replace placeholders in the subject and body
|
||||||
@@ -1156,7 +1222,12 @@ public class ApplicationDao {
|
|||||||
String email = userEntity.getEmail();
|
String email = userEntity.getEmail();
|
||||||
if (userEntity.getBeneficiary() != null) {
|
if (userEntity.getBeneficiary() != null) {
|
||||||
emailLogRequest.setRecipientType(RecipientTypeEnum.BENEFICIARY);
|
emailLogRequest.setRecipientType(RecipientTypeEnum.BENEFICIARY);
|
||||||
|
|
||||||
|
if(Boolean.TRUE.equals(hub.getUniqueUuid().equals(defaultHubUuid))){
|
||||||
|
email=applicationEntity.getPecEmail();
|
||||||
|
}else {
|
||||||
email = userEntity.getBeneficiary().getEmail();
|
email = userEntity.getBeneficiary().getEmail();
|
||||||
|
}
|
||||||
emailLogRequest.setRecipientId(userEntity.getBeneficiary().getId());
|
emailLogRequest.setRecipientId(userEntity.getBeneficiary().getId());
|
||||||
}
|
}
|
||||||
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email),emailLogRequest);
|
emailNotificationDao.sendMail(hub.getId(), subject, body, List.of(email),emailLogRequest);
|
||||||
@@ -1164,7 +1235,14 @@ public class ApplicationDao {
|
|||||||
// recipientEmails.add(email);
|
// recipientEmails.add(email);
|
||||||
String companyEmail = userWithCompany.getEmail();
|
String companyEmail = userWithCompany.getEmail();
|
||||||
String contactEmail = userWithCompany.getContactEmail();
|
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()) {
|
if (companyEmail != null && !companyEmail.isEmpty()) {
|
||||||
recipientEmails.add(companyEmail);
|
recipientEmails.add(companyEmail);
|
||||||
}
|
}
|
||||||
@@ -1172,10 +1250,11 @@ public class ApplicationDao {
|
|||||||
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
||||||
recipientEmails.add(contactEmail);
|
recipientEmails.add(contactEmail);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(Boolean.FALSE.equals(recipientEmails.isEmpty())){
|
if(Boolean.FALSE.equals(recipientEmails.isEmpty())){
|
||||||
emailLogRequest.setRecipientId(applicationEntity.getCompanyId());
|
emailLogRequest.setRecipientId(applicationEntity.getCompanyId());
|
||||||
emailLogRequest.setRecipientType(RecipientTypeEnum.COMPANY);
|
emailLogRequest.setRecipientType(RecipientTypeEnum.COMPANY);
|
||||||
emailLogRequest.setRecipientEmails(companyEmail);
|
emailLogRequest.setRecipientEmails(String.valueOf(recipientEmails));
|
||||||
}
|
}
|
||||||
emailNotificationDao.sendMail(hub.getId(), subject, body, recipientEmails,emailLogRequest);
|
emailNotificationDao.sendMail(hub.getId(), subject, body, recipientEmails,emailLogRequest);
|
||||||
}
|
}
|
||||||
@@ -1196,8 +1275,17 @@ public class ApplicationDao {
|
|||||||
// Create the map for body placeholders
|
// Create the map for body placeholders
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
bodyPlaceholders.put("{{call_name}}", call.getName());
|
||||||
bodyPlaceholders.put("{{protocol_number}}", protocol.getProtocolNumber().toString());
|
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||||
bodyPlaceholders.put("{{date}}", DateTimeUtil.formatLocalDateTime(protocol.getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
|
||||||
|
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));
|
bodyPlaceholders.put("{{time}}", DateTimeUtil.parseLocalTimeToString(protocol.getTime(), GepafinConstant.HH_MM_SS));
|
||||||
|
|
||||||
// Replace placeholders in the subject and body
|
// Replace placeholders in the subject and body
|
||||||
@@ -1234,6 +1322,12 @@ public class ApplicationDao {
|
|||||||
log.info("Existing active signed document found and will be deleted | applicationId: {}, fileName: {}", applicationId, applicationSignedDocument.getFileName());
|
log.info("Existing active signed document found and will be deleted | applicationId: {}, fileName: {}", applicationId, applicationSignedDocument.getFileName());
|
||||||
deleteSignedDocumentFromS3(applicationSignedDocument);
|
deleteSignedDocumentFromS3(applicationSignedDocument);
|
||||||
}
|
}
|
||||||
|
String hash ="";
|
||||||
|
try {
|
||||||
|
hash = FileHashUtil.calculateSHA256(file.getInputStream());
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
UploadFileOnAmazonS3Response uploadFileOnAmazonS3 = uploadFileOnAmazonS3ForUserSignedDocument(file, applicationEntity.getCall().getId(), applicationId);
|
UploadFileOnAmazonS3Response uploadFileOnAmazonS3 = uploadFileOnAmazonS3ForUserSignedDocument(file, applicationEntity.getCall().getId(), applicationId);
|
||||||
log.info("File uploaded to S3 successfully | applicationId: {}", applicationId);
|
log.info("File uploaded to S3 successfully | applicationId: {}", applicationId);
|
||||||
applicationSignedDocument = new ApplicationSignedDocumentEntity();
|
applicationSignedDocument = new ApplicationSignedDocumentEntity();
|
||||||
@@ -1241,6 +1335,7 @@ public class ApplicationDao {
|
|||||||
applicationSignedDocument.setFileName(uploadFileOnAmazonS3.getFileName());
|
applicationSignedDocument.setFileName(uploadFileOnAmazonS3.getFileName());
|
||||||
applicationSignedDocument.setFilePath(uploadFileOnAmazonS3.getFilePath());
|
applicationSignedDocument.setFilePath(uploadFileOnAmazonS3.getFilePath());
|
||||||
applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
applicationSignedDocument.setStatus(ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
||||||
|
applicationSignedDocument.setFileHash(hash);
|
||||||
applicationSignedDocument = applicationSignedDocumentRepository.save(applicationSignedDocument);
|
applicationSignedDocument = applicationSignedDocumentRepository.save(applicationSignedDocument);
|
||||||
|
|
||||||
/** This code is responsible for adding a version history log for the "assign application document" operation. **/
|
/** This code is responsible for adding a version history log for the "assign application document" operation. **/
|
||||||
@@ -1316,6 +1411,7 @@ public class ApplicationDao {
|
|||||||
.setStatus(ApplicationSignedDocumentStatusEnum.valueOf(applicationSignedDocument.getStatus()));
|
.setStatus(ApplicationSignedDocumentStatusEnum.valueOf(applicationSignedDocument.getStatus()));
|
||||||
applicationSignedDocumentResponse.setCreatedDate(applicationSignedDocument.getCreatedDate());
|
applicationSignedDocumentResponse.setCreatedDate(applicationSignedDocument.getCreatedDate());
|
||||||
applicationSignedDocumentResponse.setUpdatedDate(applicationSignedDocument.getUpdatedDate());
|
applicationSignedDocumentResponse.setUpdatedDate(applicationSignedDocument.getUpdatedDate());
|
||||||
|
applicationSignedDocumentResponse.setFileHash(applicationSignedDocument.getFileHash());
|
||||||
return applicationSignedDocumentResponse;
|
return applicationSignedDocumentResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2307,7 +2403,11 @@ public class ApplicationDao {
|
|||||||
bodyPlaceholders.put("{{call_name}}", call.getName());
|
bodyPlaceholders.put("{{call_name}}", call.getName());
|
||||||
bodyPlaceholders.put("{{application_id}}", applicationEntity.getId().toString());
|
bodyPlaceholders.put("{{application_id}}", applicationEntity.getId().toString());
|
||||||
bodyPlaceholders.put("{{company_name}}", company.getCompanyName());
|
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());
|
bodyPlaceholders.put("{{user_action_id}}",emailLogRequest.getUserActionId().toString());
|
||||||
|
|
||||||
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
String subject = Utils.replacePlaceholders(systemEmailTemplateResponse.getSubject(), subjectPlaceholders);
|
||||||
|
|||||||
@@ -710,7 +710,11 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
Map<String, String> placeHolders = new HashMap<>();
|
Map<String, String> placeHolders = new HashMap<>();
|
||||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
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.sendNotificationToSuperUser(application,placeHolders,NotificationTypeEnum.EVALUATION_CREATION);
|
||||||
notificationDao.sendNotificationToInstructor(placeHolders,entity,NotificationTypeEnum.EVALUATION_CREATION);
|
notificationDao.sendNotificationToInstructor(placeHolders,entity,NotificationTypeEnum.EVALUATION_CREATION);
|
||||||
|
|
||||||
@@ -1997,7 +2001,11 @@ public class ApplicationEvaluationDao {
|
|||||||
|
|
||||||
Map<String, String> placeHolders = new HashMap<>();
|
Map<String, String> placeHolders = new HashMap<>();
|
||||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
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.sendNotificationToSuperUser(application,placeHolders,NotificationTypeEnum.EVALUATION_RESULT);
|
||||||
notificationDao.sendNotificationToInstructor(placeHolders,existingEntity,NotificationTypeEnum.EVALUATION_RESULT);
|
notificationDao.sendNotificationToInstructor(placeHolders,existingEntity,NotificationTypeEnum.EVALUATION_RESULT);
|
||||||
|
|
||||||
|
|||||||
@@ -138,6 +138,9 @@ public class AppointmentDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationEvaluationDao applicationEvaluationDao;
|
private ApplicationEvaluationDao applicationEvaluationDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private NdganagRepository ndganagRepository;
|
||||||
|
|
||||||
private final Map<Long, ScheduledExecutorService> executorMap = new ConcurrentHashMap<>();
|
private final Map<Long, ScheduledExecutorService> executorMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
|
||||||
@@ -535,7 +538,13 @@ public class AppointmentDao {
|
|||||||
String authorizationToken = getBearerToken(hub);
|
String authorizationToken = getBearerToken(hub);
|
||||||
|
|
||||||
// Try retrieving NDG by VAT number
|
// Try retrieving NDG by VAT number
|
||||||
AppointmentLoginResponse ndgResponse = retrieveNdgByVatNumber(company.getVatNumber(), authorizationToken, hub, application);
|
NdganagEntity ndganagEntity = ndganagRepository.findByVatNumber(company.getVatNumber());
|
||||||
|
AppointmentLoginResponse ndgResponse=new AppointmentLoginResponse();
|
||||||
|
if (ndganagEntity != null || ndganagEntity.getNdg() != null) {
|
||||||
|
ndgResponse.setNdg(ndganagEntity.getNdg());
|
||||||
|
}else {
|
||||||
|
ndgResponse = retrieveNdgByVatNumber(company.getVatNumber(), authorizationToken, hub, application);
|
||||||
|
}
|
||||||
if (isNdgValid(ndgResponse.getNdg())) {
|
if (isNdgValid(ndgResponse.getNdg())) {
|
||||||
saveNdg(application, company, ndgResponse.getNdg());
|
saveNdg(application, company, ndgResponse.getNdg());
|
||||||
log.info("NDG successfully generated for applicationId: {}", applicationId);
|
log.info("NDG successfully generated for applicationId: {}", applicationId);
|
||||||
@@ -716,10 +725,7 @@ public class AppointmentDao {
|
|||||||
try {
|
try {
|
||||||
log.info("Initiating NDG retrieval by VAT number | ApplicationId: {}, HubId: {}, VAT: {}", application.getId(), hub.getId(), vatNumber);
|
log.info("Initiating NDG retrieval by VAT number | ApplicationId: {}, HubId: {}, VAT: {}", application.getId(), hub.getId(), vatNumber);
|
||||||
// Prepare the NDG request
|
// Prepare the NDG request
|
||||||
AppointmentNdgRequest ndgRequest = getAppointmentNdgRequest(vatNumber);
|
String responseJson = getNdgFromExternalService(vatNumber, authorizationToken);
|
||||||
// Call the API to retrieve NDG
|
|
||||||
ResponseEntity<Object> response = appointmentApiService.getNdgByVatNumber(ndgRequest, authorizationToken);
|
|
||||||
String responseJson = Utils.convertObjectToJson(response.getBody());
|
|
||||||
// Parse and return the NDG response
|
// Parse and return the NDG response
|
||||||
return parseNdgResponse(responseJson);
|
return parseNdgResponse(responseJson);
|
||||||
} catch (FeignException.Forbidden forbiddenException) {
|
} catch (FeignException.Forbidden forbiddenException) {
|
||||||
@@ -875,30 +881,38 @@ public class AppointmentDao {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public AppointmentLoginResponse parseNdgResponse(String jsonResponse) {
|
public AppointmentLoginResponse parseNdgResponse(String jsonResponse) {
|
||||||
|
AppointmentLoginResponse loginResponse = new AppointmentLoginResponse();
|
||||||
|
String ndg=extractNdg(jsonResponse);
|
||||||
|
if (ndg==null){ return null;}
|
||||||
|
else {
|
||||||
|
loginResponse.setNdg(ndg);
|
||||||
|
}
|
||||||
|
return loginResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String extractNdg(String jsonResponse) {
|
||||||
try {
|
try {
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
JsonNode rootNode = objectMapper.readTree(jsonResponse);
|
JsonNode rootNode = objectMapper.readTree(jsonResponse);
|
||||||
JsonNode dataArray = rootNode.get(GepafinConstant.DATA_STRING);
|
JsonNode dataArray = rootNode.get(GepafinConstant.DATA_STRING);
|
||||||
if (dataArray == null || !dataArray.isArray() || dataArray.isEmpty()) {
|
if (dataArray == null || !dataArray.isArray() || dataArray.isEmpty()) {
|
||||||
log.info("NDG data is empty or missing in the response.");
|
log.info("NDG data is empty or missing in the response.");
|
||||||
AppointmentLoginResponse emptyResponse = new AppointmentLoginResponse();
|
return null;
|
||||||
emptyResponse.setNdg(null);
|
|
||||||
return emptyResponse;
|
|
||||||
}
|
}
|
||||||
JsonNode firstDataEntry = dataArray.get(0);
|
JsonNode firstDataEntry = dataArray.get(0);
|
||||||
AppointmentLoginResponse response = new AppointmentLoginResponse();
|
AppointmentLoginResponse response = new AppointmentLoginResponse();
|
||||||
if (firstDataEntry.has(GepafinConstant.NDG_STRING)) {
|
if (firstDataEntry.has(GepafinConstant.NDG_STRING)) {
|
||||||
response.setNdg(normalizeNullValue(firstDataEntry.get(GepafinConstant.NDG_STRING).asText()));
|
String ndg=normalizeNullValue(firstDataEntry.get(GepafinConstant.NDG_STRING).asText());
|
||||||
|
return ndg;
|
||||||
}
|
}
|
||||||
return response;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Failed to parse response: {}", e.getMessage(), e);
|
log.error("Failed to parse response: {}", e.getMessage(), e);
|
||||||
throw new RuntimeException("Failed to parse NDG response.", e);
|
throw new RuntimeException("Failed to parse NDG response.", e);
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String normalizeNullValue(String value) {
|
public String normalizeNullValue(String value) {
|
||||||
|
|
||||||
return (value == null || GepafinConstant.NULL_STRING.equalsIgnoreCase(value.trim())) ? null : value;
|
return (value == null || GepafinConstant.NULL_STRING.equalsIgnoreCase(value.trim())) ? null : value;
|
||||||
}
|
}
|
||||||
@@ -1415,5 +1429,54 @@ public class AppointmentDao {
|
|||||||
futureRef.set(future);
|
futureRef.set(future);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public NdgResponse getNdgByVatNumber(String vatNumber, UserEntity userEntity) {
|
||||||
|
HubEntity hub=userEntity.getHub();
|
||||||
|
NdganagEntity ndganagEntity = ndganagRepository.findByVatNumber(vatNumber);
|
||||||
|
NdgResponse ndgResponse=new NdgResponse();
|
||||||
|
String jsonResponse=null;
|
||||||
|
String authorizationToken = hub.getAppointmentAuthTokenId();
|
||||||
|
if (ndganagEntity == null || ndganagEntity.getNdg() == null) {
|
||||||
|
|
||||||
|
try {
|
||||||
|
log.info("Initiating NDG retrieval by VAT number | HubId: {}, VAT: {}", hub.getId(), vatNumber);
|
||||||
|
// Prepare the NDG request
|
||||||
|
jsonResponse=getNdgFromExternalService(vatNumber, authorizationToken);
|
||||||
|
checkAndSaveNdg(jsonResponse, ndgResponse);
|
||||||
|
// Parse and return the NDG response
|
||||||
|
} catch (FeignException.Forbidden forbiddenException) {
|
||||||
|
log.error("403 Forbidden during NDG retrieval | HubId: {}", hub.getId());
|
||||||
|
logForbiddenError();
|
||||||
|
// Regenerate the token and retry
|
||||||
|
String newAuthorizationToken = regenerateTokenAndSave(hub, null);
|
||||||
|
jsonResponse= getNdgFromExternalService(vatNumber,newAuthorizationToken);
|
||||||
|
if (checkAndSaveNdg(jsonResponse, ndgResponse)) return null;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("Error during NDG retrieval |, HubId: {}, Message: {}", hub.getId(), e.getMessage(), e);
|
||||||
|
throw new RuntimeException("NDG retrieval failed.", e);
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
ndgResponse.setNdg(ndganagEntity.getNdg());
|
||||||
|
}
|
||||||
|
return ndgResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkAndSaveNdg(String jsonResponse, NdgResponse ndgResponse) {
|
||||||
|
String ndg=extractNdg(jsonResponse);
|
||||||
|
if (ndg==null){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ndgResponse.setNdg(ndg);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String getNdgFromExternalService(String vatNumber, String authorizationToken) {
|
||||||
|
AppointmentNdgRequest ndgRequest = getAppointmentNdgRequest(vatNumber);
|
||||||
|
// Call the API to retrieve NDG
|
||||||
|
ResponseEntity<Object> response = appointmentApiService.getNdgByVatNumber(ndgRequest, authorizationToken);
|
||||||
|
String responseJson = Utils.convertObjectToJson(response.getBody());
|
||||||
|
return responseJson;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.dao;
|
|||||||
|
|
||||||
import org.springframework.data.domain.Pageable; // Correct package
|
import org.springframework.data.domain.Pageable; // Correct package
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -498,12 +499,19 @@ public class CompanyDao {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Object pecEmailObj = dettaglio.get("pec");
|
||||||
|
if (pecEmailObj instanceof String pec && !pec.isEmpty()) {
|
||||||
|
company.setPec(pec); // Only set if valid string
|
||||||
|
} else {
|
||||||
|
log.warn("Company ID {}: 'pec' is missing, empty, or not a string.", company.getId());
|
||||||
|
}
|
||||||
|
|
||||||
Object codiceAtecoObj = dettaglio.get("codice_ateco");
|
Object codiceAtecoObj = dettaglio.get("codice_ateco");
|
||||||
if (!(codiceAtecoObj instanceof String codiceAteco) || codiceAteco.isEmpty()) {
|
if (!(codiceAtecoObj instanceof String codiceAteco) || codiceAteco.isEmpty()) {
|
||||||
log.warn("Company ID {}: 'codice_ateco' is missing, empty, or not a string.", company.getId());
|
log.warn("Company ID {}: 'codice_ateco' is missing, empty, or not a string.", company.getId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
company.setCodiceAteco(codiceAteco);
|
company.setCodiceAteco(codiceAteco);
|
||||||
logCodiceAtecoUpdate(company, codiceAteco);
|
logCodiceAtecoUpdate(company, codiceAteco);
|
||||||
}
|
}
|
||||||
@@ -524,7 +532,11 @@ public class CompanyDao {
|
|||||||
Map<String, Object> dataMap = Utils.extractMap(companyDataMap, "data");
|
Map<String, Object> dataMap = Utils.extractMap(companyDataMap, "data");
|
||||||
Object dataObj = companyDataMap.get("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());
|
log.warn("Company ID {}: 'data' section is missing or invalid in the JSON.", company.getId());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -532,6 +544,13 @@ public class CompanyDao {
|
|||||||
// if data is a single object
|
// if data is a single object
|
||||||
updateCodiceAtecoField(company);
|
updateCodiceAtecoField(company);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
Object pecEmail = dataMap.get("pec");
|
||||||
|
if (pecEmail == null) {
|
||||||
|
log.warn("Company ID {}: 'pec' section is missing or invalid.", company.getId());
|
||||||
|
}
|
||||||
|
company.setPec((String) pecEmail);
|
||||||
|
|
||||||
// Extract 'atecoClassification' section
|
// Extract 'atecoClassification' section
|
||||||
Map<String, Object> atecoClassificationMap = Utils.extractMap(dataMap, "atecoClassification");
|
Map<String, Object> atecoClassificationMap = Utils.extractMap(dataMap, "atecoClassification");
|
||||||
if (atecoClassificationMap == null) {
|
if (atecoClassificationMap == null) {
|
||||||
@@ -561,4 +580,81 @@ public class CompanyDao {
|
|||||||
|
|
||||||
log.info("Company ID {}: codiceAteco updated to {}", company.getId(), atecoCode);
|
log.info("Company ID {}: codiceAteco updated to {}", company.getId(), atecoCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getCompanyEntity() {
|
||||||
|
List<CompanyEntity> companyEntities=companyRepository.findByJsonIsNotNullAndPecIsNull();
|
||||||
|
List<CompanyEntity> companyEntityList=new ArrayList<>();
|
||||||
|
for (CompanyEntity company:companyEntities){
|
||||||
|
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.");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Map<String, Object> vatCheckResponse = Utils.convertJsonStringToMap(company.getJson());
|
||||||
|
|
||||||
|
if (vatCheckResponse == null) {
|
||||||
|
log.warn("Company ID {}: Invalid JSON response.", company.getId());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Map<String, Object> companyDataMap = Utils.convertJsonStringToMap(company.getJson());
|
||||||
|
if (companyDataMap == null) {
|
||||||
|
log.warn("Company ID {}: Failed to parse JSON data.", company.getId());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Object dataObj = vatCheckResponse.get("data");
|
||||||
|
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());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Object dettaglioObj = dataMap.get("dettaglio");
|
||||||
|
if (!(dettaglioObj instanceof Map<?, ?> dettaglio)) {
|
||||||
|
log.warn("Company ID {}: 'dettaglio' is not a valid object.", company.getId());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Object pecEmailObj = dettaglio.get("pec");
|
||||||
|
if (pecEmailObj instanceof String pec && !pec.isEmpty()) {
|
||||||
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ public class EmailNotificationDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
private ApplicationEvaluationRepository applicationEvaluationRepository;
|
||||||
|
|
||||||
|
@Value("${default.hub.uuid}")
|
||||||
|
private String defaultHubUuid;
|
||||||
|
|
||||||
@Value("${rinaldo_email}")
|
@Value("${rinaldo_email}")
|
||||||
private String rinaldoEmail;
|
private String rinaldoEmail;
|
||||||
|
|
||||||
@@ -109,20 +112,37 @@ public class EmailNotificationDao {
|
|||||||
UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId());
|
UserWithCompanyEntity userWithCompany=companyService.getUserWithCompany(userEntity.getId(),company.getId());
|
||||||
String companyEmail = userWithCompany.getEmail();
|
String companyEmail = userWithCompany.getEmail();
|
||||||
String contactEmail = userWithCompany.getContactEmail();
|
String contactEmail = userWithCompany.getContactEmail();
|
||||||
|
if (Boolean.TRUE.equals(userEntity.getHub().getUniqueUuid().equals(defaultHubUuid))){
|
||||||
if (companyEmail != null && !companyEmail.isEmpty()) {
|
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() ,
|
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());
|
companyEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(companyEmail), emailLogRequest);
|
sendMail(applicationEntity.getHubId(), subject, body, List.of(companyEmail), emailLogRequest);
|
||||||
}
|
}
|
||||||
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
if (contactEmail != null && !contactEmail.isEmpty() && !contactEmail.equals(companyEmail)) {
|
||||||
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY,company.getId(),
|
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.COMPANY, company.getId(),
|
||||||
contactEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
contactEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(contactEmail), emailLogRequest);
|
sendMail(applicationEntity.getHubId(), subject, body, List.of(contactEmail), emailLogRequest);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (userEntity.getBeneficiary().getEmail() != null) {
|
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() ,
|
EmailLogRequest emailLogRequest = emailLogDao.createEmailLogRequest(systemEmailTemplateResponse.getEmailScenario(), RecipientTypeEnum.BENEFICIARY,userEntity.getBeneficiary().getId() ,
|
||||||
beneficiaryEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
beneficiaryEmail, userEntity.getId(), applicationEntity.getId(), amendmentId, applicationEntity.getCall().getId());
|
||||||
sendMail(applicationEntity.getHubId(), subject, body, List.of(beneficiaryEmail), emailLogRequest);
|
sendMail(applicationEntity.getHubId(), subject, body, List.of(beneficiaryEmail), emailLogRequest);
|
||||||
@@ -174,8 +194,16 @@ public class EmailNotificationDao {
|
|||||||
public Map<String, String> prepareEmailPlaceholders(ApplicationEntity applicationEntity, ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity){
|
public Map<String, String> prepareEmailPlaceholders(ApplicationEntity applicationEntity, ApplicationAmendmentRequestEntity applicationAmendmentRequestEntity){
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatLocalDateTime(applicationEntity.getProtocol().getCreatedDate(), GepafinConstant.DD_MM_YYYY));
|
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("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||||
bodyPlaceholders.put("{{response_days}}", applicationAmendmentRequestEntity.getResponseDays().toString());
|
bodyPlaceholders.put("{{response_days}}", applicationAmendmentRequestEntity.getResponseDays().toString());
|
||||||
|
|
||||||
@@ -259,8 +287,16 @@ public class EmailNotificationDao {
|
|||||||
public void sendAdmissibilityNotificationEmailForAdmissibleApplication(ApplicationEntity applicationEntity) {
|
public void sendAdmissibilityNotificationEmailForAdmissibleApplication(ApplicationEntity applicationEntity) {
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
|
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("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||||
|
|
||||||
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,null);
|
sendEmail(applicationEntity, SystemEmailTemplatesEntity.SystemEmailTemplatesEntityTypeEnum.ADMISSIBILITY_NOTIFICATION, bodyPlaceholders, null,null);
|
||||||
@@ -269,8 +305,16 @@ public class EmailNotificationDao {
|
|||||||
public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
public void sendInadmissibilityEmailForRejectedApplication(ApplicationEntity applicationEntity,ApplicationEvaluationEntity applicationEvaluationEntity) {
|
||||||
Map<String, String> bodyPlaceholders = new HashMap<>();
|
Map<String, String> bodyPlaceholders = new HashMap<>();
|
||||||
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
bodyPlaceholders.put("{{call_name}}", applicationEntity.getCall().getName());
|
||||||
bodyPlaceholders.put("{{protocol_number}}", applicationEntity.getProtocol().getProtocolNumber().toString());
|
String protocolNumber=applicationEntity.getProtocol().getExternalProtocolNumber();
|
||||||
bodyPlaceholders.put("{{protocol_date}}", DateTimeUtil.formatCreatedDate(applicationEntity.getProtocol().getCreatedDate()));
|
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("{{protocol_time}}", DateTimeUtil.parseLocalTimeToString(applicationEntity.getProtocol().getTime(), GepafinConstant.HH_MM_SS));
|
||||||
bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getMotivation());
|
bodyPlaceholders.put("{{form_text}}", applicationEvaluationEntity.getMotivation());
|
||||||
|
|
||||||
|
|||||||
@@ -174,7 +174,11 @@ public class NotificationDao {
|
|||||||
|
|
||||||
Map<String, String> placeHolders = new HashMap<>();
|
Map<String, String> placeHolders = new HashMap<>();
|
||||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
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(),
|
NotificationReq notificationReq = createNotificationReq(notificationTypeEnum.getValue(), placeHolders, application.getUserId(), application.getUserWithCompany(),
|
||||||
listOf(application.getCompanyId()));
|
listOf(application.getCompanyId()));
|
||||||
sendNotification(notificationReq);
|
sendNotification(notificationReq);
|
||||||
|
|||||||
@@ -1,20 +1,36 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.DateTimeParseException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import feign.FeignException;
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import net.gepafin.tendermanagement.entities.*;
|
||||||
|
import net.gepafin.tendermanagement.enums.ApplicationSignedDocumentStatusEnum;
|
||||||
import net.gepafin.tendermanagement.enums.ProtocolTypeEnum;
|
import net.gepafin.tendermanagement.enums.ProtocolTypeEnum;
|
||||||
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
||||||
|
import net.gepafin.tendermanagement.repositories.ApplicationSignedDocumentRepository;
|
||||||
|
import net.gepafin.tendermanagement.service.feignClient.ProtocolService;
|
||||||
import net.gepafin.tendermanagement.util.LoggingUtil;
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.HubEntity;
|
|
||||||
import net.gepafin.tendermanagement.entities.ProtocolEntity;
|
|
||||||
import net.gepafin.tendermanagement.repositories.ProtocolRepository;
|
import net.gepafin.tendermanagement.repositories.ProtocolRepository;
|
||||||
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
|
|
||||||
@@ -34,6 +50,53 @@ public class ProtocolDao {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HttpServletRequest request;
|
private HttpServletRequest request;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ProtocolService protocolService;
|
||||||
|
|
||||||
|
@Value("${codAoo}")
|
||||||
|
private String codAoo;
|
||||||
|
|
||||||
|
@Value("${sviluppumbria.username}")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@Value("${password}")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
@Value("${CLASSIFICA}")
|
||||||
|
private String classifica;
|
||||||
|
|
||||||
|
@Value("${TIPO_PROTOCOLLAZIONE}")
|
||||||
|
private String TIPO_PROTOCOLLAZIONE;
|
||||||
|
|
||||||
|
@Value("${tipoCorrispondenteCompany}")
|
||||||
|
private String tipoCorrispondenteCompany;
|
||||||
|
|
||||||
|
@Value("${tipoCorrispondenteWithoutCompany}")
|
||||||
|
private String tipoCorrispondenteWithoutCompany;
|
||||||
|
|
||||||
|
@Value("${mezzo}")
|
||||||
|
private String mezzo;
|
||||||
|
|
||||||
|
@Value("${indirizzoPec}")
|
||||||
|
private String indirizzoPec;
|
||||||
|
|
||||||
|
@Value("${codiceUo}")
|
||||||
|
private String codiceUo;
|
||||||
|
|
||||||
|
@Value("${competente}")
|
||||||
|
private Boolean competente;
|
||||||
|
|
||||||
|
@Value("${tipoCorrispondente}")
|
||||||
|
private String tipoCorrispondente;
|
||||||
|
|
||||||
|
@Value("${isSviluppumbriaProtocolEnabled}")
|
||||||
|
private String isSviluppUmbriaProtocolEnabled;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ApplicationSignedDocumentRepository applicationSignedDocumentRepository;
|
||||||
|
|
||||||
|
public final Logger log = LoggerFactory.getLogger(ProtocolDao.class);
|
||||||
|
|
||||||
public Long getProtocolNumber(HubEntity hubEntity) {
|
public Long getProtocolNumber(HubEntity hubEntity) {
|
||||||
Long maxProtocolNumber = protocolRepository.findMaxProtocolNumberAndHubId(hubEntity.getId());
|
Long maxProtocolNumber = protocolRepository.findMaxProtocolNumberAndHubId(hubEntity.getId());
|
||||||
Long startNumber = 10000001L;
|
Long startNumber = 10000001L;
|
||||||
@@ -58,11 +121,164 @@ public class ProtocolDao {
|
|||||||
}else {
|
}else {
|
||||||
protocolEntity.setType(ProtocolTypeEnum.OUTPUT.getValue());
|
protocolEntity.setType(ProtocolTypeEnum.OUTPUT.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return protocolEntity;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveProtocolEntity(ProtocolEntity protocolEntity) {
|
||||||
protocolRepository.save(protocolEntity);
|
protocolRepository.save(protocolEntity);
|
||||||
|
|
||||||
/** This code is responsible for adding a version history log for "create protocol" operation. **/
|
/** This code is responsible for adding a version history log for "create protocol" operation. **/
|
||||||
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(protocolEntity).build());
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(protocolEntity).build());
|
||||||
|
|
||||||
return protocolEntity;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getBearerToken(String codAoo, String username, String password) {
|
||||||
|
log.info("Requesting bearer token for user: {} and codAoo: {}", username, codAoo);
|
||||||
|
|
||||||
|
HttpHeaders httpHeaders = Utils.getHeaders();
|
||||||
|
URI url = URI.create(GepafinConstant.PROTOCOL_SERVICE_BEARER_TOKEN);
|
||||||
|
|
||||||
|
try {
|
||||||
|
ResponseEntity<String> response = protocolService.getBearerToken(httpHeaders, codAoo,username,password);
|
||||||
|
|
||||||
|
if (response != null && response.getStatusCode().is2xxSuccessful()) {
|
||||||
|
log.debug("Bearer token successfully retrieved. HTTP Status: {}", response.getStatusCode());
|
||||||
|
return response.getBody().toString(); // Use getBody() instead of toString()
|
||||||
|
} else {
|
||||||
|
log.warn("Bearer token request failed or returned unexpected status. Response: {}", response);
|
||||||
|
}
|
||||||
|
} catch (FeignException ex) {
|
||||||
|
log.error("FeignException while retrieving bearer token for user {}: {}", username, ex.getMessage(), ex);
|
||||||
|
Utils.callException(ex.status(), ex);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("Unexpected exception while retrieving bearer token: {}", ex.getMessage(), ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.warn("Returning null bearer token for user: {}", username);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
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");
|
||||||
|
ApplicationSignedDocumentEntity applicationSignedDocumentEntity=applicationSignedDocumentRepository.findByApplicationIdAndStatus(application.getId(), ApplicationSignedDocumentStatusEnum.ACTIVE.getValue());
|
||||||
|
|
||||||
|
String year = String.valueOf(LocalDateTime.now().getYear());
|
||||||
|
String applicationId = String.valueOf(application.getId());
|
||||||
|
String mittenteValue="";
|
||||||
|
String vatNumber ="";
|
||||||
|
if(company!=null) {
|
||||||
|
mittenteValue= tipoCorrispondenteCompany;
|
||||||
|
vatNumber=company.getVatNumber();
|
||||||
|
}else {
|
||||||
|
mittenteValue = tipoCorrispondenteWithoutCompany;
|
||||||
|
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()+GepafinConstant.PROTOCOL_DOC_SUFFIX;
|
||||||
|
|
||||||
|
|
||||||
|
Map<String, Object> requestBody = new HashMap<>();
|
||||||
|
requestBody.put(GepafinConstant.PROTOCOL_DOC_URL,docUrl);
|
||||||
|
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, 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);
|
||||||
|
destinatari.put(GepafinConstant.PROTOCOL_COMPETENTE,competente);
|
||||||
|
destinatari.put(GepafinConstant.PROTOCOL_TIPO_CORRISPONDENTE,tipoCorrispondente);
|
||||||
|
requestBody.put(GepafinConstant.PROTOCOL_MITTENTE,mittente);
|
||||||
|
destinatariObject.add(destinatari);
|
||||||
|
requestBody.put(GepafinConstant.PROTOCOL_DESTINATARI,destinatariObject);
|
||||||
|
List<Map<String,Object>> listObject=new ArrayList<>();
|
||||||
|
listObject.add(requestBody);
|
||||||
|
|
||||||
|
log.info("Preparing to create protocol with data: year={}, applicationId={}, companyName={}, callName={}, callId={}",
|
||||||
|
year, applicationId, companyName, callName, callId);
|
||||||
|
ResponseEntity<Object> response=null;
|
||||||
|
try {
|
||||||
|
|
||||||
|
String bearerToken = getBearerToken(codAoo, username, password);
|
||||||
|
if (bearerToken == null) {
|
||||||
|
log.error("Bearer token retrieval failed for user: {}", username);
|
||||||
|
return protocol;
|
||||||
|
}
|
||||||
|
HttpHeaders httpHeaders = Utils.getHeaders();
|
||||||
|
httpHeaders.set(GepafinConstant.AUTHORIZATION, "Bearer " + bearerToken);
|
||||||
|
URI url = URI.create(GepafinConstant.PROTOCOL_SERVICE_CREATE_PROTOCOL);
|
||||||
|
|
||||||
|
response = protocolService.createProtocol(httpHeaders, classifica, year, applicationId, companyName, callName, callId,listObject
|
||||||
|
);
|
||||||
|
|
||||||
|
log.info("Protocol creation response: status={}, body={}", response.getStatusCode(), response.getBody());
|
||||||
|
|
||||||
|
} catch (FeignException ex) {
|
||||||
|
log.error("FeignException during protocol creation for application ID {}: {}", applicationId, ex.getMessage(), ex);
|
||||||
|
// Utils.callException(ex.status(), ex);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
log.error("Unexpected exception during protocol creation for application ID {}: {}", applicationId, ex.getMessage(), ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("Finished createExternalProtocol for application ID: {}", application.getId());
|
||||||
|
if(response!=null && response.getBody()!=null) {
|
||||||
|
protocol = extractDetailForProtocol((List<Map<String, Object>>) response.getBody(), protocol);
|
||||||
|
}
|
||||||
|
return protocol;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ProtocolEntity extractDetailForProtocol(List<Map<String,Object>> responseObject, ProtocolEntity protocol) {
|
||||||
|
Map<String,Object> responseField= responseObject.get(0);
|
||||||
|
Object yearObj = responseField.get(GepafinConstant.PROTOCOL_EXTERNAL_YEAR);
|
||||||
|
Integer externalProtocolYear = null;
|
||||||
|
if (yearObj instanceof Integer) {
|
||||||
|
externalProtocolYear = (Integer) yearObj;
|
||||||
|
} else if (yearObj instanceof String) {
|
||||||
|
try {
|
||||||
|
externalProtocolYear = Integer.parseInt((String) yearObj);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
// handle invalid format gracefully
|
||||||
|
externalProtocolYear = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Object dateObj = responseField.get(GepafinConstant.PROTOCOL_EXTERNAL_DATE);
|
||||||
|
LocalDateTime externalProtocolDate = null;
|
||||||
|
|
||||||
|
if (dateObj instanceof LocalDateTime) {
|
||||||
|
externalProtocolDate = (LocalDateTime) dateObj;
|
||||||
|
} else if (dateObj instanceof String) {
|
||||||
|
externalProtocolDate = DateTimeUtil.parseStringToLocalDateTime((String) dateObj);
|
||||||
|
}
|
||||||
|
if(externalProtocolDate!=null){
|
||||||
|
protocol.setExternalProtocolDate(externalProtocolDate);
|
||||||
|
}
|
||||||
|
if (externalProtocolYear!=null){
|
||||||
|
protocol.setExternalProtocolYear(externalProtocolYear);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
String externalProtocolNumber = (String) responseField.get(GepafinConstant.PROTOCOL_EXTERNAL_NUMBER);
|
||||||
|
if (Boolean.FALSE.equals(StringUtils.isEmpty(externalProtocolNumber))) {
|
||||||
|
protocol.setExternalProtocolNumber(externalProtocolNumber);
|
||||||
|
}
|
||||||
|
protocolRepository.save(protocol);
|
||||||
|
return protocol;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -10,6 +11,7 @@ import java.util.List;
|
|||||||
@Entity
|
@Entity
|
||||||
@Table(name="application_amendment_request")
|
@Table(name="application_amendment_request")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationAmendmentRequestEntity extends BaseEntity {
|
public class ApplicationAmendmentRequestEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "NOTE")
|
@Column(name = "NOTE")
|
||||||
@@ -33,9 +35,6 @@ public class ApplicationAmendmentRequestEntity extends BaseEntity {
|
|||||||
@Column(name = "FORM_FIELDS")
|
@Column(name = "FORM_FIELDS")
|
||||||
private String formFields;
|
private String formFields;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted=false;
|
|
||||||
|
|
||||||
@Column(name = "STATUS")
|
@Column(name = "STATUS")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -9,6 +10,7 @@ import java.time.LocalDateTime;
|
|||||||
@Entity
|
@Entity
|
||||||
@Table(name = "APPLICATION")
|
@Table(name = "APPLICATION")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationEntity extends BaseEntity {
|
public class ApplicationEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "USER_ID")
|
@Column(name = "USER_ID")
|
||||||
@@ -30,9 +32,6 @@ public class ApplicationEntity extends BaseEntity {
|
|||||||
@JoinColumn(name = "CALL_ID", nullable = false)
|
@JoinColumn(name = "CALL_ID", nullable = false)
|
||||||
private CallEntity call;
|
private CallEntity call;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(name = "PROTOCOL_NUMBER")
|
@JoinColumn(name = "PROTOCOL_NUMBER")
|
||||||
private ProtocolEntity protocol;
|
private ProtocolEntity protocol;
|
||||||
@@ -74,4 +73,7 @@ public class ApplicationEntity extends BaseEntity {
|
|||||||
@Column(name = "APPLICATION_EVALUATION_ID")
|
@Column(name = "APPLICATION_EVALUATION_ID")
|
||||||
private Long applicationEvaluationId;
|
private Long applicationEvaluationId;
|
||||||
|
|
||||||
|
@Column(name = "PEC_EMAIL")
|
||||||
|
private String pecEmail;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -10,6 +11,7 @@ import java.util.List;
|
|||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "application_evaluation")
|
@Table(name = "application_evaluation")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationEvaluationEntity extends BaseEntity{
|
public class ApplicationEvaluationEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "application_Id")
|
@Column(name = "application_Id")
|
||||||
@@ -39,9 +41,6 @@ public class ApplicationEvaluationEntity extends BaseEntity{
|
|||||||
@Column(name = "MOTIVATION")
|
@Column(name = "MOTIVATION")
|
||||||
private String motivation;
|
private String motivation;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "assigned_applications_id", nullable = true)
|
@JoinColumn(name = "assigned_applications_id", nullable = true)
|
||||||
private AssignedApplicationsEntity assignedApplicationsEntity;
|
private AssignedApplicationsEntity assignedApplicationsEntity;
|
||||||
|
|||||||
@@ -2,16 +2,15 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Data
|
@Data
|
||||||
@Table(name = "APPLICATION_EVALUATION_FORM")
|
@Table(name = "APPLICATION_EVALUATION_FORM")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationEvaluationFormEntity extends BaseEntity{
|
public class ApplicationEvaluationFormEntity extends BaseEntity{
|
||||||
private Long applicationId;
|
private Long applicationId;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "EVALUATION_ID")
|
@JoinColumn(name = "EVALUATION_ID")
|
||||||
private ApplicationEvaluationEntity applicationEvaluation;
|
private ApplicationEvaluationEntity applicationEvaluation;
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Data
|
@Data
|
||||||
@Table(name = "APPLICATION_EVALUATION_FORM_FIELD")
|
@Table(name = "APPLICATION_EVALUATION_FORM_FIELD")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationEvaluationFormFieldEntity extends BaseEntity {
|
public class ApplicationEvaluationFormFieldEntity extends BaseEntity {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@@ -18,7 +20,4 @@ public class ApplicationEvaluationFormFieldEntity extends BaseEntity {
|
|||||||
@Column(name = "FIELD_VALUE")
|
@Column(name = "FIELD_VALUE")
|
||||||
private String fieldValue;
|
private String fieldValue;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,11 +2,12 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "APPLICATION_FORM")
|
@Table(name = "APPLICATION_FORM")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationFormEntity extends BaseEntity {
|
public class ApplicationFormEntity extends BaseEntity {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -11,6 +12,7 @@ import java.time.LocalDateTime;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationFormFieldEntity extends BaseEntity {
|
public class ApplicationFormFieldEntity extends BaseEntity {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
|||||||
@@ -6,10 +6,12 @@ import jakarta.persistence.JoinColumn;
|
|||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "application_signed_document")
|
@Table(name = "application_signed_document")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ApplicationSignedDocumentEntity extends BaseEntity {
|
public class ApplicationSignedDocumentEntity extends BaseEntity {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@@ -25,4 +27,6 @@ public class ApplicationSignedDocumentEntity extends BaseEntity {
|
|||||||
@Column(name="STATUS")
|
@Column(name="STATUS")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
|
@Column(name="FILE_HASH")
|
||||||
|
private String fileHash;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,14 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Data
|
@Data
|
||||||
@Table(name = "assigned_applications")
|
@Table(name = "assigned_applications")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class AssignedApplicationsEntity extends BaseEntity{
|
public class AssignedApplicationsEntity extends BaseEntity{
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@@ -27,9 +28,7 @@ public class AssignedApplicationsEntity extends BaseEntity{
|
|||||||
@Column(name = "NOTE")
|
@Column(name = "NOTE")
|
||||||
private String note;
|
private String note;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted=false;
|
|
||||||
|
|
||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private LocalDateTime assignedAt;
|
private LocalDateTime assignedAt;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ public class BaseEntity {
|
|||||||
@Column(name = "UPDATED_DATE")
|
@Column(name = "UPDATED_DATE")
|
||||||
LocalDateTime updatedDate;
|
LocalDateTime updatedDate;
|
||||||
|
|
||||||
|
|
||||||
|
@Column(name="IS_DELETED")
|
||||||
|
private Boolean isDeleted = false;
|
||||||
|
|
||||||
|
|
||||||
@PrePersist
|
@PrePersist
|
||||||
public void setCreatedDate() {
|
public void setCreatedDate() {
|
||||||
this.createdDate = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
|
this.createdDate = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
|
||||||
|
|||||||
@@ -7,10 +7,12 @@ import jakarta.persistence.Entity;
|
|||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import jakarta.validation.constraints.Email;
|
import jakarta.validation.constraints.Email;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "BENEFICIARY")
|
@Table(name = "BENEFICIARY")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class BeneficiaryEntity extends BaseEntity {
|
public class BeneficiaryEntity extends BaseEntity {
|
||||||
|
|
||||||
@Email
|
@Email
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -14,6 +15,7 @@ import java.time.LocalDateTime;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class BeneficiaryPreferredCallEntity extends BaseEntity{
|
public class BeneficiaryPreferredCallEntity extends BaseEntity{
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
@@ -35,9 +37,6 @@ public class BeneficiaryPreferredCallEntity extends BaseEntity{
|
|||||||
@Column(name = "STATUS", length = 255)
|
@Column(name = "STATUS", length = 255)
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "USER_WITH_COMPANY_ID")
|
@JoinColumn(name = "USER_WITH_COMPANY_ID")
|
||||||
private UserWithCompanyEntity userWithCompany;
|
private UserWithCompanyEntity userWithCompany;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.Data;
|
|||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -16,6 +17,7 @@ import java.time.LocalTime;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class CallEntity extends BaseEntity {
|
public class CallEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "NAME", length = 255)
|
@Column(name = "NAME", length = 255)
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "CALL_TARGET_AUDIENCE_CHECKLIST")
|
@Table(name = "CALL_TARGET_AUDIENCE_CHECKLIST")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class CallTargetAudienceChecklistEntity extends BaseEntity{
|
public class CallTargetAudienceChecklistEntity extends BaseEntity{
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@@ -19,8 +21,4 @@ public class CallTargetAudienceChecklistEntity extends BaseEntity{
|
|||||||
@Column(name = "IS_VALIDATED")
|
@Column(name = "IS_VALIDATED")
|
||||||
private Boolean isValidated;
|
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.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "communication")
|
@Table(name = "communication")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class CommunicationEntity extends BaseEntity {
|
public class CommunicationEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "COMMUNICATION_TITLE")
|
@Column(name = "COMMUNICATION_TITLE")
|
||||||
@@ -20,9 +22,6 @@ public class CommunicationEntity extends BaseEntity {
|
|||||||
@Column(name = "COMMUNICATION_COMMENT")
|
@Column(name = "COMMUNICATION_COMMENT")
|
||||||
private String communicationComment;
|
private String communicationComment;
|
||||||
|
|
||||||
@Column(name = "IS_DELETED")
|
|
||||||
private Boolean isDeleted = false;
|
|
||||||
|
|
||||||
@Column(name = "COMMENTED_DATE")
|
@Column(name = "COMMENTED_DATE")
|
||||||
private LocalDateTime commentedDate;
|
private LocalDateTime commentedDate;
|
||||||
|
|
||||||
|
|||||||
@@ -2,12 +2,14 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "COMPANY_DOCUMENT")
|
@Table(name = "COMPANY_DOCUMENT")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class CompanyDocumentEntity extends BaseEntity {
|
public class CompanyDocumentEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "FILE_NAME")
|
@Column(name = "FILE_NAME")
|
||||||
@@ -25,9 +27,6 @@ public class CompanyDocumentEntity extends BaseEntity {
|
|||||||
@Column(name="COMPANY_ID")
|
@Column(name="COMPANY_ID")
|
||||||
private Long companyId;
|
private Long companyId;
|
||||||
|
|
||||||
@Column(name ="IS_DELETED")
|
|
||||||
private Boolean isDeleted = false;
|
|
||||||
|
|
||||||
@Column(name="UPLOADED_BY")
|
@Column(name="UPLOADED_BY")
|
||||||
private Long uploadedBy;
|
private Long uploadedBy;
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ import jakarta.persistence.JoinColumn;
|
|||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "COMPANY")
|
@Table(name = "COMPANY")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class CompanyEntity extends BaseEntity{
|
public class CompanyEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "COMPANY_NAME")
|
@Column(name = "COMPANY_NAME")
|
||||||
@@ -51,9 +53,6 @@ public class CompanyEntity extends BaseEntity{
|
|||||||
@JoinColumn(name = "HUB_ID")
|
@JoinColumn(name = "HUB_ID")
|
||||||
private HubEntity hub;
|
private HubEntity hub;
|
||||||
|
|
||||||
// @Column(name = "JSON")
|
|
||||||
// private String json;
|
|
||||||
|
|
||||||
@Column(name = "NDG")
|
@Column(name = "NDG")
|
||||||
private String ndg;
|
private String ndg;
|
||||||
|
|
||||||
@@ -62,4 +61,7 @@ public class CompanyEntity extends BaseEntity{
|
|||||||
|
|
||||||
@Column(name = "JSON")
|
@Column(name = "JSON")
|
||||||
private String json;
|
private String json;
|
||||||
|
|
||||||
|
@Column(name = "PEC")
|
||||||
|
private String pec;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "criteria_form_field")
|
@Table(name = "criteria_form_field")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class CriteriaFormFieldEntity extends BaseEntity {
|
public class CriteriaFormFieldEntity extends BaseEntity {
|
||||||
|
|
||||||
private Long callId;
|
private Long callId;
|
||||||
@@ -18,7 +20,4 @@ public class CriteriaFormFieldEntity extends BaseEntity {
|
|||||||
|
|
||||||
private Long evaluationCriteriaId;
|
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.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "document_category")
|
@Table(name = "document_category")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class DocumentCategoryEntity extends BaseEntity {
|
public class DocumentCategoryEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "CATEGORY_NAME")
|
@Column(name = "CATEGORY_NAME")
|
||||||
@@ -16,7 +18,4 @@ public class DocumentCategoryEntity extends BaseEntity {
|
|||||||
@Column(name = "DESCRIPTION")
|
@Column(name = "DESCRIPTION")
|
||||||
private String 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.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "DOCUMENT")
|
@Table(name = "DOCUMENT")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class DocumentEntity extends BaseEntity{
|
public class DocumentEntity extends BaseEntity{
|
||||||
@Column(name = "FILE_NAME", length = 255)
|
@Column(name = "FILE_NAME", length = 255)
|
||||||
private String fileName;
|
private String fileName;
|
||||||
@@ -26,9 +28,6 @@ public class DocumentEntity extends BaseEntity{
|
|||||||
@Column(name="SOURCE_ID")
|
@Column(name="SOURCE_ID")
|
||||||
private Long sourceId;
|
private Long sourceId;
|
||||||
|
|
||||||
@Column(name ="IS_DELETED", nullable = false)
|
|
||||||
private Boolean isDeleted = false;
|
|
||||||
|
|
||||||
@Column(name="DOCUMENT_ATTACHMENT_ID")
|
@Column(name="DOCUMENT_ATTACHMENT_ID")
|
||||||
private String documentAttachmentId;
|
private String documentAttachmentId;
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,14 @@
|
|||||||
package net.gepafin.tendermanagement.entities;
|
package net.gepafin.tendermanagement.entities;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Data
|
@Data
|
||||||
@Table(name = "email_log")
|
@Table(name = "email_log")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class EmailLogEntity extends BaseEntity{
|
public class EmailLogEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "email_type", nullable = false, length = 255)
|
@Column(name = "email_type", nullable = false, length = 255)
|
||||||
@@ -54,9 +56,6 @@ public class EmailLogEntity extends BaseEntity{
|
|||||||
@Column(name = "call_id")
|
@Column(name = "call_id")
|
||||||
private Long callId;
|
private Long callId;
|
||||||
|
|
||||||
@Column(name = "is_deleted")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@JoinColumn(name = "user_action_id")
|
@JoinColumn(name = "user_action_id")
|
||||||
private UserActionEntity userAction;
|
private UserActionEntity userAction;
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ import jakarta.persistence.JoinColumn;
|
|||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@@ -12,6 +15,7 @@ import java.math.BigDecimal;
|
|||||||
@Entity
|
@Entity
|
||||||
@Table(name = "EVALUATION_CRITERIA")
|
@Table(name = "EVALUATION_CRITERIA")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class EvaluationCriteriaEntity extends BaseEntity {
|
public class EvaluationCriteriaEntity extends BaseEntity {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
|||||||
@@ -5,12 +5,15 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "EVALUATION_FORM")
|
@Table(name = "EVALUATION_FORM")
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class EvaluationFormEntity extends BaseEntity{
|
public class EvaluationFormEntity extends BaseEntity{
|
||||||
|
|
||||||
|
|
||||||
@@ -24,6 +27,4 @@ public class EvaluationFormEntity extends BaseEntity{
|
|||||||
@Column(name = "CONTENT")
|
@Column(name = "CONTENT")
|
||||||
private String 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.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "expiration_config")
|
@Table(name = "expiration_config")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ExpirationConfigEntity extends BaseEntity {
|
public class ExpirationConfigEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name="INTERVAL_DAYS")
|
@Column(name="INTERVAL_DAYS")
|
||||||
@@ -15,7 +17,4 @@ public class ExpirationConfigEntity extends BaseEntity {
|
|||||||
|
|
||||||
@Column(name="TYPE")
|
@Column(name="TYPE")
|
||||||
private String 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.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "FAQ")
|
@Table(name = "FAQ")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class FaqEntity extends BaseEntity {
|
public class FaqEntity extends BaseEntity {
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
@@ -39,9 +40,6 @@ public class FaqEntity extends BaseEntity {
|
|||||||
@Column(name = "RESPONSE_DATE")
|
@Column(name = "RESPONSE_DATE")
|
||||||
private LocalDateTime responseDate;
|
private LocalDateTime responseDate;
|
||||||
|
|
||||||
@Column(name ="IS_DELETED", nullable = false)
|
|
||||||
private Boolean isDeleted = false;
|
|
||||||
|
|
||||||
@Column(name ="COMPANY_ID")
|
@Column(name ="COMPANY_ID")
|
||||||
private Long companyId;
|
private Long companyId;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.gepafin.tendermanagement.entities;
|
package net.gepafin.tendermanagement.entities;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -10,6 +11,7 @@ import java.time.LocalDateTime;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class FlowDataEntity extends BaseEntity{
|
public class FlowDataEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "FORM_ID")
|
@Column(name = "FORM_ID")
|
||||||
@@ -23,4 +25,5 @@ public class FlowDataEntity extends BaseEntity{
|
|||||||
|
|
||||||
@Column(name="CALL_ID")
|
@Column(name="CALL_ID")
|
||||||
private Long callId;
|
private Long callId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.*;
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@@ -11,6 +12,7 @@ import java.time.LocalDateTime;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class FlowEdgesEntity extends BaseEntity {
|
public class FlowEdgesEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "SOURCE_ID")
|
@Column(name = "SOURCE_ID")
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "FORM")
|
@Table(name = "FORM")
|
||||||
@@ -12,6 +13,7 @@ import lombok.NoArgsConstructor;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class FormEntity extends BaseEntity{
|
public class FormEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "LABEL", length = 255)
|
@Column(name = "LABEL", length = 255)
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "FORM_FIELD")
|
@Table(name = "FORM_FIELD")
|
||||||
@@ -12,6 +13,7 @@ import lombok.NoArgsConstructor;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class FormFieldEntity extends BaseEntity{
|
public class FormFieldEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "NAME", length = 255)
|
@Column(name = "NAME", length = 255)
|
||||||
@@ -31,4 +33,5 @@ public class FormFieldEntity extends BaseEntity{
|
|||||||
|
|
||||||
@Column(name = "SORT_ORDER")
|
@Column(name = "SORT_ORDER")
|
||||||
private Integer sortOrder;
|
private Integer sortOrder;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "FORM_TEMPLATE")
|
@Table(name = "FORM_TEMPLATE")
|
||||||
@@ -12,6 +13,7 @@ import lombok.NoArgsConstructor;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Builder
|
@Builder
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class FormTemplateEntity extends BaseEntity{
|
public class FormTemplateEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "LABEL", length = 255)
|
@Column(name = "LABEL", length = 255)
|
||||||
|
|||||||
@@ -15,7 +15,4 @@ public class GlobalConfigEntity extends BaseEntity{
|
|||||||
|
|
||||||
@Column(name = "TYPE")
|
@Column(name = "TYPE")
|
||||||
private String 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 jakarta.validation.constraints.Size;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="hub")
|
@Table(name="hub")
|
||||||
@Setter
|
@Setter
|
||||||
@Getter
|
@Getter
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class HubEntity extends BaseEntity{
|
public class HubEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "COMPANY_NAME")
|
@Column(name = "COMPANY_NAME")
|
||||||
|
|||||||
@@ -3,11 +3,13 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "hub_user")
|
@Table(name = "hub_user")
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class HubUserEntity extends BaseEntity{
|
public class HubUserEntity extends BaseEntity{
|
||||||
|
|
||||||
@ManyToOne
|
@ManyToOne
|
||||||
|
|||||||
@@ -2,12 +2,14 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
|
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "LOGIN_ATTEMPT")
|
@Table(name = "LOGIN_ATTEMPT")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class LoginAttemptEntity extends BaseEntity{
|
public class LoginAttemptEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "USERNAME")
|
@Column(name = "USERNAME")
|
||||||
|
|||||||
@@ -3,10 +3,12 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
import com.fasterxml.jackson.annotation.JsonValue;
|
import com.fasterxml.jackson.annotation.JsonValue;
|
||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "LOOKUP_DATA")
|
@Table(name = "LOOKUP_DATA")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class LookUpDataEntity extends BaseEntity{
|
public class LookUpDataEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "TITLE", columnDefinition = "TEXT", nullable = true)
|
@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.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "NOTIFICATION")
|
@Table(name = "NOTIFICATION")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class NotificationEntity extends BaseEntity {
|
public class NotificationEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "USER_ID")
|
@Column(name = "USER_ID")
|
||||||
@@ -24,9 +26,6 @@ public class NotificationEntity extends BaseEntity {
|
|||||||
@Column(name = "STATUS")
|
@Column(name = "STATUS")
|
||||||
private String status;
|
private String status;
|
||||||
|
|
||||||
@Column(name = "IS_DELETED")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
@Column(name = "NOTIFICATION_TYPE")
|
@Column(name = "NOTIFICATION_TYPE")
|
||||||
private String notificationType;
|
private String notificationType;
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Data
|
@Data
|
||||||
@Table(name = "NOTIFICATION_TYPE")
|
@Table(name = "NOTIFICATION_TYPE")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class NotificationTypeEntity extends BaseEntity {
|
public class NotificationTypeEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "NOTIFICATION_NAME")
|
@Column(name = "NOTIFICATION_NAME")
|
||||||
@@ -18,7 +20,4 @@ public class NotificationTypeEntity extends BaseEntity {
|
|||||||
|
|
||||||
@Column(name = "TITLE")
|
@Column(name = "TITLE")
|
||||||
private String title;
|
private String title;
|
||||||
|
|
||||||
@Column(name="IS_DELETED")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,12 +3,15 @@ package net.gepafin.tendermanagement.entities;
|
|||||||
import jakarta.persistence.*;
|
import jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import net.gepafin.tendermanagement.config.LocalTimeAttributeConverter;
|
import net.gepafin.tendermanagement.config.LocalTimeAttributeConverter;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "PROTOCOL")
|
@Table(name = "PROTOCOL")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class ProtocolEntity extends BaseEntity {
|
public class ProtocolEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "PROTOCOL_NUMBER", nullable = false)
|
@Column(name = "PROTOCOL_NUMBER", nullable = false)
|
||||||
@@ -33,4 +36,14 @@ public class ProtocolEntity extends BaseEntity {
|
|||||||
@Column(name = "type")
|
@Column(name = "type")
|
||||||
private String type;
|
private String type;
|
||||||
|
|
||||||
|
@Column(name = "external_protocol_year")
|
||||||
|
private Integer externalProtocolYear;
|
||||||
|
|
||||||
|
@Column(name = "external_protocol_date")
|
||||||
|
private LocalDateTime externalProtocolDate;
|
||||||
|
|
||||||
|
@Column(name = "external_protocol_number")
|
||||||
|
private String externalProtocolNumber;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import jakarta.persistence.Table;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
@@ -13,6 +14,7 @@ import java.math.BigDecimal;
|
|||||||
@Table(name = "REGION")
|
@Table(name = "REGION")
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class RegionEntity extends BaseEntity {
|
public class RegionEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "REGION_NAME", length = 255, nullable = true)
|
@Column(name = "REGION_NAME", length = 255, nullable = true)
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Data
|
@Data
|
||||||
@Table(name ="role_action_context")
|
@Table(name ="role_action_context")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class RoleActionContextEntity extends BaseEntity {
|
public class RoleActionContextEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "action_context")
|
@Column(name = "action_context")
|
||||||
@@ -16,9 +18,6 @@ public class RoleActionContextEntity extends BaseEntity {
|
|||||||
@Column(name = "role_id")
|
@Column(name = "role_id")
|
||||||
private Long roleId;
|
private Long roleId;
|
||||||
|
|
||||||
@Column(name="is_deleted")
|
|
||||||
private Boolean isDeleted;
|
|
||||||
|
|
||||||
@Column(name = "is_viewed")
|
@Column(name = "is_viewed")
|
||||||
private Boolean isViewed;
|
private Boolean isViewed;
|
||||||
|
|
||||||
|
|||||||
@@ -4,11 +4,13 @@ import jakarta.persistence.*;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "ROLE")
|
@Table(name = "ROLE")
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class RoleEntity extends BaseEntity {
|
public class RoleEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "ROLE_NAME", length = 255, nullable = true)
|
@Column(name = "ROLE_NAME", length = 255, nullable = true)
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "s3_path_configuration")
|
@Table(name = "s3_path_configuration")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class S3ConfigEntity extends BaseEntity {
|
public class S3ConfigEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "TYPE")
|
@Column(name = "TYPE")
|
||||||
@@ -21,5 +23,6 @@ public class S3ConfigEntity extends BaseEntity {
|
|||||||
|
|
||||||
@Column(name = "PARENT_FOLDER")
|
@Column(name = "PARENT_FOLDER")
|
||||||
private String parentFolder;
|
private String parentFolder;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "SAML_RESPONSE")
|
@Table(name = "SAML_RESPONSE")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class SamlResponseEntity extends BaseEntity{
|
public class SamlResponseEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "AUTHENTICATION_OBJECT")
|
@Column(name = "AUTHENTICATION_OBJECT")
|
||||||
@@ -31,5 +33,4 @@ public class SamlResponseEntity extends BaseEntity{
|
|||||||
@Column(name = "TOKEN")
|
@Column(name = "TOKEN")
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,10 +8,12 @@ import jakarta.persistence.JoinColumn;
|
|||||||
import jakarta.persistence.ManyToOne;
|
import jakarta.persistence.ManyToOne;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "system_email_template")
|
@Table(name = "system_email_template")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class SystemEmailTemplatesEntity extends BaseEntity {
|
public class SystemEmailTemplatesEntity extends BaseEntity {
|
||||||
|
|
||||||
|
|
||||||
@@ -33,9 +35,6 @@ public class SystemEmailTemplatesEntity extends BaseEntity {
|
|||||||
@Column(name = "SYSTEM")
|
@Column(name = "SYSTEM")
|
||||||
private Boolean system;
|
private Boolean system;
|
||||||
|
|
||||||
@Column(name ="IS_DELETED", nullable = false)
|
|
||||||
private Boolean isDeleted = false;
|
|
||||||
|
|
||||||
@Column(name = "email_scenario")
|
@Column(name = "email_scenario")
|
||||||
private String emailScenario;
|
private String emailScenario;
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "user_action")
|
@Table(name = "user_action")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class UserActionEntity extends BaseEntity {
|
public class UserActionEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "USER_ID")
|
@Column(name = "USER_ID")
|
||||||
@@ -40,7 +42,4 @@ public class UserActionEntity extends BaseEntity {
|
|||||||
@Column(name = "RESPONSE")
|
@Column(name = "RESPONSE")
|
||||||
private String 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 jakarta.persistence.*;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "user_company_delegation")
|
@Table(name = "user_company_delegation")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class UserCompanyDelegationEntity extends BaseEntity{
|
public class UserCompanyDelegationEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name="USER_ID")
|
@Column(name="USER_ID")
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
|
|||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
import net.gepafin.tendermanagement.model.response.EmailSendResponse;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -16,6 +17,7 @@ import java.util.List;
|
|||||||
@Table(name = "GEPAFIN_USER")
|
@Table(name = "GEPAFIN_USER")
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class UserEntity extends BaseEntity {
|
public class UserEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "PASSWORD", columnDefinition = "TEXT",nullable = true)
|
@Column(name = "PASSWORD", columnDefinition = "TEXT",nullable = true)
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import jakarta.persistence.Column;
|
|||||||
import jakarta.persistence.Entity;
|
import jakarta.persistence.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "USER_WITH_COMPANY")
|
@Table(name = "USER_WITH_COMPANY")
|
||||||
@Data
|
@Data
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class UserWithCompanyEntity extends BaseEntity{
|
public class UserWithCompanyEntity extends BaseEntity{
|
||||||
|
|
||||||
@Column(name = "USER_ID")
|
@Column(name = "USER_ID")
|
||||||
@@ -35,7 +37,4 @@ public class UserWithCompanyEntity extends BaseEntity{
|
|||||||
@Column(name = "EMAIL")
|
@Column(name = "EMAIL")
|
||||||
private String 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.Entity;
|
||||||
import jakarta.persistence.Table;
|
import jakarta.persistence.Table;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import org.hibernate.annotations.Where;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "version_history")
|
@Table(name = "version_history")
|
||||||
|
@Where(clause = "is_deleted = false")
|
||||||
public class VersionHistoryEntity extends BaseEntity {
|
public class VersionHistoryEntity extends BaseEntity {
|
||||||
|
|
||||||
@Column(name = "OLD_DATA", columnDefinition = "LONGTEXT")
|
@Column(name = "OLD_DATA", columnDefinition = "LONGTEXT")
|
||||||
@@ -30,7 +32,4 @@ public class VersionHistoryEntity extends BaseEntity {
|
|||||||
|
|
||||||
@Column(name = "USER_ID")
|
@Column(name = "USER_ID")
|
||||||
private Long userId;
|
private Long userId;
|
||||||
|
|
||||||
@Column(name = "IS_DELETED", nullable = false)
|
|
||||||
private Boolean isDeleted = false;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ public enum UserActionContextEnum {
|
|||||||
GET_COMPANY_BY_USER("GET_COMPANY_BY_USER"),
|
GET_COMPANY_BY_USER("GET_COMPANY_BY_USER"),
|
||||||
REMOVE_COMPANY_FROM_USER("REMOVE_COMPANY_FROM_USER"),
|
REMOVE_COMPANY_FROM_USER("REMOVE_COMPANY_FROM_USER"),
|
||||||
UPDATE_COMPANY_JSON("UPDATE_COMPANY_JSON"),
|
UPDATE_COMPANY_JSON("UPDATE_COMPANY_JSON"),
|
||||||
|
EXTRACT_PEC_FROM_COMPANY("EXTRACT_PEC_FROM_COMPANY"),
|
||||||
|
|
||||||
/** LookUpData action context **/
|
/** LookUpData action context **/
|
||||||
CREATE_LOOKUP_DATA("CREATE_LOOKUP_DATA"),
|
CREATE_LOOKUP_DATA("CREATE_LOOKUP_DATA"),
|
||||||
@@ -180,6 +181,7 @@ public enum UserActionContextEnum {
|
|||||||
CHECK_OR_CREATE_NDG_CODE("CHECK_OR_CREATE_NDG_CODE"),
|
CHECK_OR_CREATE_NDG_CODE("CHECK_OR_CREATE_NDG_CODE"),
|
||||||
CREATE_APPOINTMENT("CREATE_APPOINTMENT"),
|
CREATE_APPOINTMENT("CREATE_APPOINTMENT"),
|
||||||
UPLOAD_DOCUMENT_TO_EXTERNAL_SYSTEM("UPLOAD_DOCUMENT_TO_EXTERNAL_SYSTEM"),
|
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_NOTIFICATION_BY_PAGINATION("GET_ALL_NOTIFICATION_BY_PAGINATION"),
|
||||||
GET_ALL_CALL_BY_PAGINATION("GET_ALL_CALL_BY_PAGINATION"),
|
GET_ALL_CALL_BY_PAGINATION("GET_ALL_CALL_BY_PAGINATION"),
|
||||||
|
|||||||
@@ -11,4 +11,5 @@ public class ApplicationSignedDocumentResponse extends BaseBean{
|
|||||||
private String fileName;
|
private String fileName;
|
||||||
private String filePath;
|
private String filePath;
|
||||||
private ApplicationSignedDocumentStatusEnum status;
|
private ApplicationSignedDocumentStatusEnum status;
|
||||||
|
private String fileHash;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,5 +31,7 @@ public interface CompanyRepository extends JpaRepository<CompanyEntity, Long> {
|
|||||||
""")
|
""")
|
||||||
Page<CompanyEntity> findCompaniesWithMissingVatCheck(Pageable pageable);
|
Page<CompanyEntity> findCompaniesWithMissingVatCheck(Pageable pageable);
|
||||||
|
|
||||||
|
List<CompanyEntity> findByJsonIsNotNullAndPecIsNull();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 = notificationDao.sendNotificationToBeneficiary(application, NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||||
Map<String, String> placeHolders = new HashMap<>();
|
Map<String, String> placeHolders = new HashMap<>();
|
||||||
placeHolders.put("{{call_name}}", application.getCall().getName());
|
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.sendNotificationToSuperUser(application,placeHolders,NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||||
notificationDao.sendNotificationToInstructor(placeHolders,evaluation,NotificationTypeEnum.EVALUATION_EXPIRED);
|
notificationDao.sendNotificationToInstructor(placeHolders,evaluation,NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||||
notificationDao.sendNotificationToInstructorManager(placeHolders,evaluation,NotificationTypeEnum.EVALUATION_EXPIRED);
|
notificationDao.sendNotificationToInstructorManager(placeHolders,evaluation,NotificationTypeEnum.EVALUATION_EXPIRED);
|
||||||
|
|||||||
@@ -13,4 +13,7 @@ public interface AppointmentService {
|
|||||||
AppointmentCreationResponse createAppointmentForApplication(HttpServletRequest request, Long applicationId, CreateAppointmentRequest createAppointmentRequest);
|
AppointmentCreationResponse createAppointmentForApplication(HttpServletRequest request, Long applicationId, CreateAppointmentRequest createAppointmentRequest);
|
||||||
|
|
||||||
DocumentUploadResponse uploadDocToExternalSystem(HttpServletRequest request, Long documentId, UploadDocToExternalSystemRequest docToExternalSystemRequest);
|
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 updateMissingVatCheckResponses(HttpServletRequest request, LimitRequest limitRequest);
|
||||||
|
|
||||||
|
void extractPecFromJson(HttpServletRequest request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package net.gepafin.tendermanagement.service.feignClient;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.parameters.RequestBody;
|
||||||
|
import net.gepafin.tendermanagement.constants.GepafinConstant;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestHeader;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@FeignClient(value = "protocol-service" ,url = GepafinConstant.PROTOCOL_SERVICE_URL)
|
||||||
|
public interface ProtocolService {
|
||||||
|
|
||||||
|
@PostMapping(GepafinConstant.PROTOCOL_SERVICE_BEARER_TOKEN)
|
||||||
|
ResponseEntity<String> getBearerToken(@RequestHeader HttpHeaders headers,@RequestParam("codAoo") String codAoo,@RequestParam("username") String username,@RequestParam("password") String password
|
||||||
|
);
|
||||||
|
|
||||||
|
@PutMapping(GepafinConstant.PROTOCOL_SERVICE_CREATE_PROTOCOL)
|
||||||
|
ResponseEntity<Object> createProtocol(@RequestHeader HttpHeaders headers, @RequestParam("CLASSIFICA") String classifica, @RequestParam("ANNO_FASCICOLO") String year, @RequestParam("PROGR_FASCICOLO") String applicationId,
|
||||||
|
@RequestParam("DES_FASCICOLO") String companyName, @RequestParam("PARENT_DES_FASCICOLO") String callName, @RequestParam("PARENT_PROGR_FASCICOLO") String callId, @RequestBody List<Map<String,Object>> requestBody
|
||||||
|
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,12 +2,14 @@ package net.gepafin.tendermanagement.service.impl;
|
|||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import net.gepafin.tendermanagement.dao.AppointmentDao;
|
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.CreateAppointmentRequest;
|
||||||
import net.gepafin.tendermanagement.model.request.UploadDocToExternalSystemRequest;
|
import net.gepafin.tendermanagement.model.request.UploadDocToExternalSystemRequest;
|
||||||
import net.gepafin.tendermanagement.model.response.AppointmentCreationResponse;
|
import net.gepafin.tendermanagement.model.response.AppointmentCreationResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.DocumentUploadResponse;
|
import net.gepafin.tendermanagement.model.response.DocumentUploadResponse;
|
||||||
import net.gepafin.tendermanagement.model.response.NdgResponse;
|
import net.gepafin.tendermanagement.model.response.NdgResponse;
|
||||||
import net.gepafin.tendermanagement.service.AppointmentService;
|
import net.gepafin.tendermanagement.service.AppointmentService;
|
||||||
|
import net.gepafin.tendermanagement.util.Validator;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -17,6 +19,9 @@ public class AppointmentServiceImpl implements AppointmentService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AppointmentDao appointmentDao;
|
private AppointmentDao appointmentDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private Validator validator;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public NdgResponse checkNdgForAppointment(HttpServletRequest request, Long applicationId) {
|
public NdgResponse checkNdgForAppointment(HttpServletRequest request, Long applicationId) {
|
||||||
|
|
||||||
@@ -34,4 +39,11 @@ public class AppointmentServiceImpl implements AppointmentService {
|
|||||||
|
|
||||||
return appointmentDao.uploadDocumentToExternalSystem(documentId, docToExternalSystemRequest);
|
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
|
@Override
|
||||||
public void updateMissingVatCheckResponses(HttpServletRequest request, LimitRequest limitRequest) {
|
public void updateMissingVatCheckResponses(HttpServletRequest request, LimitRequest limitRequest) {
|
||||||
UserEntity userEntity =validator.validateUser(request);
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,11 +98,19 @@ public class DateTimeUtil {
|
|||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
|
||||||
return LocalDateTime.parse(dateTimeStr, formatter);
|
return LocalDateTime.parse(dateTimeStr, formatter);
|
||||||
}
|
}
|
||||||
public static LocalDateTime parseStringToLocalDateTime(String timestampStr) {
|
public static LocalDateTime parseStringToLocalDateTime(String dateStr) {
|
||||||
// Use ISO_LOCAL_DATE_TIME to parse the input string
|
if (dateStr == null || dateStr.isEmpty()) return null;
|
||||||
return LocalDateTime.parse(timestampStr, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
try {
|
||||||
|
return LocalDateTime.parse(dateStr, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
} catch (Exception e) {
|
||||||
|
try {
|
||||||
|
return LocalDateTime.parse(dateStr, DateTimeFormatter.ISO_DATE_TIME); // fallback
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
public static String parseLocalTimeToString(LocalTime time, String format) {
|
public static String parseLocalTimeToString(LocalTime time, String format) {
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
|
||||||
return time.format(formatter);
|
return time.format(formatter);
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package net.gepafin.tendermanagement.util;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.security.DigestInputStream;
|
||||||
|
import java.security.MessageDigest;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class FileHashUtil {
|
||||||
|
|
||||||
|
public static String calculateSHA256(InputStream inputStream) throws IOException {
|
||||||
|
try {
|
||||||
|
MessageDigest md = MessageDigest.getInstance("SHA-256");
|
||||||
|
|
||||||
|
try (DigestInputStream dis = new DigestInputStream(inputStream, md)) {
|
||||||
|
byte[] buffer = new byte[8192];
|
||||||
|
while (dis.read(buffer) != -1) {
|
||||||
|
// reading to compute hash
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
byte[] digest = md.digest();
|
||||||
|
return bytesToHex(digest);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException("Could not generate hash", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String bytesToHex(byte[] bytes) {
|
||||||
|
StringBuilder hexString = new StringBuilder();
|
||||||
|
for (byte b : bytes) {
|
||||||
|
String hex = Integer.toHexString(0xff & b);
|
||||||
|
if (hex.length() == 1) hexString.append('0');
|
||||||
|
hexString.append(hex);
|
||||||
|
}
|
||||||
|
return hexString.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -48,6 +48,7 @@ import net.objecthunter.exp4j.ExpressionBuilder;
|
|||||||
import org.apache.commons.collections4.MapUtils;
|
import org.apache.commons.collections4.MapUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
@@ -60,6 +61,7 @@ import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
|||||||
|
|
||||||
import feign.FeignException;
|
import feign.FeignException;
|
||||||
import io.micrometer.common.util.StringUtils;
|
import io.micrometer.common.util.StringUtils;
|
||||||
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.mock.web.MockHttpServletRequest;
|
import org.springframework.mock.web.MockHttpServletRequest;
|
||||||
import org.springframework.web.context.request.RequestContextHolder;
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
@@ -1043,6 +1045,13 @@ public class Utils {
|
|||||||
return new ArrayList<>(responseMap.values());
|
return new ArrayList<>(responseMap.values());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static HttpHeaders getHeaders(){
|
||||||
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
|
||||||
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
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) {
|
public static void setHttpServletRequestForThread(HttpServletRequest request,String methodType, String remoteUser, Long userActionId) {
|
||||||
MockHttpServletRequest mockRequest = new MockHttpServletRequest();
|
MockHttpServletRequest mockRequest = new MockHttpServletRequest();
|
||||||
|
|||||||
@@ -56,4 +56,15 @@ public interface AppointmentApi {
|
|||||||
ResponseEntity<Response<DocumentUploadResponse>> uploadDocumentToExternalSystem(HttpServletRequest request,
|
ResponseEntity<Response<DocumentUploadResponse>> uploadDocumentToExternalSystem(HttpServletRequest request,
|
||||||
@Parameter(description = "The document id", required = true) @PathVariable(value = "documentId", required = true) Long documentId,
|
@Parameter(description = "The document id", required = true) @PathVariable(value = "documentId", required = true) Long documentId,
|
||||||
@RequestBody UploadDocToExternalSystemRequest docToExternalSystemRequest);
|
@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') ")
|
@PreAuthorize("hasRole('ROLE_SUPER_ADMIN') ")
|
||||||
ResponseEntity<Response<Void>> updateMissingVatCheckResponses(HttpServletRequest request,
|
ResponseEntity<Response<Void>> updateMissingVatCheckResponses(HttpServletRequest request,
|
||||||
@Parameter(description = "Limit request object ", required = true) @RequestBody LimitRequest limitRequest);
|
@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);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import net.gepafin.tendermanagement.service.AppointmentService;
|
|||||||
import net.gepafin.tendermanagement.util.LoggingUtil;
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.AppointmentApi;
|
import net.gepafin.tendermanagement.web.rest.api.AppointmentApi;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
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.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
@@ -81,4 +82,19 @@ public class AppointmentController implements AppointmentApi {
|
|||||||
.body(new Response<>(documentUploadResponse, Status.SUCCESS, Translator.toLocale(message)));
|
.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)
|
return ResponseEntity.status(HttpStatus.OK)
|
||||||
.body(new Response<>(null, Status.SUCCESS, Translator.toLocale(GepafinConstant.COMPANY_UPDATED_SUCCESS_MSG)));
|
.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)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,3 +37,5 @@ spring.rabbitmq.port=61613
|
|||||||
spring.rabbitmq.username=guest
|
spring.rabbitmq.username=guest
|
||||||
spring.rabbitmq.password=guest
|
spring.rabbitmq.password=guest
|
||||||
spring.rabbitmq.virtual-host=/
|
spring.rabbitmq.virtual-host=/
|
||||||
|
|
||||||
|
isSviluppumbriaProtocolEnabled = false
|
||||||
@@ -76,3 +76,19 @@ spring.rabbitmq.connection-timeout=120000
|
|||||||
|
|
||||||
app.bandi.login.url.suffix=/loginadmin
|
app.bandi.login.url.suffix=/loginadmin
|
||||||
app.confidi.login.url.suffix=/confidi
|
app.confidi.login.url.suffix=/confidi
|
||||||
|
|
||||||
|
#sviluppumbria protocol
|
||||||
|
codAoo=SVILUMBRIA-01
|
||||||
|
sviluppumbria.username=protocollatoresvilumbria
|
||||||
|
password=8e85ea4265e49497d697168fd3d34916
|
||||||
|
CLASSIFICA=06.004.3
|
||||||
|
TIPO_PROTOCOLLAZIONE=E
|
||||||
|
tipoCorrispondenteCompany=PersonaGiuridica
|
||||||
|
tipoCorrispondenteWithoutCompany=Persona
|
||||||
|
mezzo=Altro
|
||||||
|
indirizzoPec=ufficio01@domain.com
|
||||||
|
codiceUo=101_10
|
||||||
|
competente=true
|
||||||
|
tipoCorrispondente=Amministrazione
|
||||||
|
sviluppumbriaUuid=t7jh5wfg9QXylNaTZkPoE
|
||||||
|
isSviluppumbriaProtocolEnabled = true
|
||||||
|
|||||||
@@ -2737,6 +2737,132 @@
|
|||||||
</insert>
|
</insert>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="09-01-2025_PK_120129" author="Piyush Kag">
|
||||||
|
<addColumn tableName="application_signed_document">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="APPLICATION_FORM">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="APPLICATION_FORM_FIELD">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="BENEFICIARY">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="CALL">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="COMPANY">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="FLOW_DATA">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="FLOW_EDGES">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="FORM">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="FORM_FIELD">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="FORM_TEMPLATE">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
<addColumn tableName="hub">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="LOGIN_ATTEMPT">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="LOOKUP_DATA">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="PROTOCOL">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="REGION">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="ROLE">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="s3_path_configuration">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="SAML_RESPONSE">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="user_company_delegation">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="GEPAFIN_USER">
|
||||||
|
<column name="is_deleted" type="BOOLEAN" defaultValueBoolean="false">
|
||||||
|
<constraints nullable="false"/>
|
||||||
|
</column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
<changeSet id="08-04-2025_PK_160730" author="Piyush kag">
|
<changeSet id="08-04-2025_PK_160730" author="Piyush kag">
|
||||||
<sqlFile dbms="postgresql"
|
<sqlFile dbms="postgresql"
|
||||||
@@ -2811,4 +2937,47 @@
|
|||||||
<sqlFile dbms="postgresql"
|
<sqlFile dbms="postgresql"
|
||||||
path="db/dump/update_assigned_application_view_14_5_2025.sql"/>
|
path="db/dump/update_assigned_application_view_14_5_2025.sql"/>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="26-05-2025_RK_184320" author="Rajesh Khore">
|
||||||
|
<addColumn tableName="application_signed_document">
|
||||||
|
<column name="file_hash" type="VARCHAR(255)"></column>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
|
||||||
|
<addColumn tableName="protocol">
|
||||||
|
<column name="external_protocol_number" type="VARCHAR(255)"/>
|
||||||
|
<column name="external_protocol_year" type="INTEGER"/>
|
||||||
|
<column name="external_protocol_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
</addColumn>
|
||||||
|
|
||||||
|
<addColumn tableName="company">
|
||||||
|
<column name="pec" type="VARCHAR(255)"></column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="05-06-2025_RK_191738" author="Rajesh Khore">
|
||||||
|
<sqlFile dbms="postgresql"
|
||||||
|
path="db/dump/updated_form_field_05_06_2025.sql"/>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="06-06-2025_RK_180524" author="Rajesh Khore">
|
||||||
|
<createTable tableName="ndganag">
|
||||||
|
<column name="id" type="INTEGER" autoIncrement="true">
|
||||||
|
<constraints primaryKey="true" primaryKeyName="ndganag_pkey" nullable="false"/>
|
||||||
|
</column>
|
||||||
|
<column name="ndg" type="VARCHAR(255)" />
|
||||||
|
<column name="company_name" type="VARCHAR(255)"/>
|
||||||
|
<column name="vat_number" type="VARCHAR(255)" />
|
||||||
|
<column name="codice_fiscale" type="VARCHAR(255)" />
|
||||||
|
<column name="json" type="TEXT"/>
|
||||||
|
<column name="is_deleted" type="BOOLEAN"/>
|
||||||
|
<column name="created_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
<column name="updated_date" type="TIMESTAMP WITHOUT TIME ZONE"/>
|
||||||
|
</createTable>
|
||||||
|
|
||||||
|
<addColumn tableName="application">
|
||||||
|
<column name="pec_email" type="VARCHAR(255)"></column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
19
src/main/resources/db/dump/updated_form_field_05_06_2025.sql
Normal file
19
src/main/resources/db/dump/updated_form_field_05_06_2025.sql
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
UPDATE FORM_FIELD
|
||||||
|
SET
|
||||||
|
NAME = 'textinput',
|
||||||
|
LABEL = 'Campo Email',
|
||||||
|
DESCRIPTION = 'Per l''inserimento di indirizzi email standard (non PEC)',
|
||||||
|
SETTINGS = '[{"name":"label","value":"Campo Email"},{"name":"placeholder","value":"nome@esempio.it"},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""},{"name": "isPecEmail", "value":false}]',
|
||||||
|
VALIDATORS = '{"isRequired": false, "custom": "isEmail"}',
|
||||||
|
UPDATED_DATE = CURRENT_TIMESTAMP
|
||||||
|
WHERE SORT_ORDER = 15;
|
||||||
|
|
||||||
|
UPDATE FORM_FIELD
|
||||||
|
SET
|
||||||
|
NAME = 'textinput',
|
||||||
|
LABEL = 'Campo PEC',
|
||||||
|
DESCRIPTION = 'Specifico per l''inserimento di un indirizzo di Posta Elettronica Certificata',
|
||||||
|
SETTINGS = '[{"name":"label","value":"Campo PEC"},{"name":"placeholder","value":"nome@pec.it"},{"name":"reportEnable","value":false},{"name":"reportHeader","value":""},{"name": "isPecEmail", "value":false}]',
|
||||||
|
VALIDATORS = '{"isRequired": false, "custom": "isEmailPEC"}',
|
||||||
|
UPDATED_DATE = CURRENT_TIMESTAMP
|
||||||
|
WHERE SORT_ORDER = 16;
|
||||||
@@ -408,3 +408,5 @@ resend.email.sent.failed.msg = Failed to resend the email.
|
|||||||
application.readmit.success=Application has been readmitted successfully.
|
application.readmit.success=Application has been readmitted successfully.
|
||||||
no.email.log.msg = No failed emails found for given userActionId.
|
no.email.log.msg = No failed emails found for given userActionId.
|
||||||
user.action.id.not.found = User Action id not found.
|
user.action.id.not.found = User Action id not found.
|
||||||
|
ndg.not.found=NDG not found.
|
||||||
|
email.pec.cannot.null=Email pec is required.
|
||||||
|
|||||||
@@ -399,3 +399,5 @@ resend.email.sent.failed.msg = Impossibile inviare nuovamente l'e-mail.
|
|||||||
application.readmit.success=L'applicazione è stata riammessa con successo.
|
application.readmit.success=L'applicazione è stata riammessa con successo.
|
||||||
no.email.log.msg = Nessuna email trovata per userActionId specificato.
|
no.email.log.msg = Nessuna email trovata per userActionId specificato.
|
||||||
user.action.id.not.found = ID azione utente non trovato.
|
user.action.id.not.found = ID azione utente non trovato.
|
||||||
|
ndg.not.found=NDG non trovato.
|
||||||
|
email.pec.cannot.null=L'indirizzo email pec è obbligatorio.
|
||||||
|
|||||||
Reference in New Issue
Block a user