Added field required field in call
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package net.gepafin.tendermanagement.dao;
|
package net.gepafin.tendermanagement.dao;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -10,6 +11,7 @@ import java.util.stream.Collectors;
|
|||||||
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
import net.gepafin.tendermanagement.enums.DocumentSourceTypeEnum;
|
||||||
import net.gepafin.tendermanagement.model.response.*;
|
import net.gepafin.tendermanagement.model.response.*;
|
||||||
import net.gepafin.tendermanagement.service.*;
|
import net.gepafin.tendermanagement.service.*;
|
||||||
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
||||||
import net.gepafin.tendermanagement.util.Utils;
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -124,6 +126,17 @@ public class CallDao {
|
|||||||
callEntity.setConfidi(createCallRequest.getConfidi());
|
callEntity.setConfidi(createCallRequest.getConfidi());
|
||||||
}
|
}
|
||||||
callEntity.setDocumentationRequested(createCallRequest.getDocumentationRequested());
|
callEntity.setDocumentationRequested(createCallRequest.getDocumentationRequested());
|
||||||
|
if (createCallRequest.getAmountMin().compareTo(BigDecimal.ZERO) < 0) {
|
||||||
|
throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.AMOUNT_GREATER_THAN_ZERO_MSG));
|
||||||
|
}
|
||||||
|
callEntity.setAmountMin(createCallRequest.getAmountMin());
|
||||||
|
if(createCallRequest.getEmail()==null || Boolean.FALSE.equals(Utils.isValidEmail(createCallRequest.getEmail()))){
|
||||||
|
throw new CustomValidationException(Status.VALIDATION_ERROR,Translator.toLocale(GepafinConstant.VALIDATION_EMAIL,createCallRequest.getEmail()));
|
||||||
|
}
|
||||||
|
callEntity.setEmail(createCallRequest.getEmail());
|
||||||
|
callEntity.setPhoneNumber(createCallRequest.getPhoneNumber());
|
||||||
|
callEntity.setStartTime(DateTimeUtil.parseTime(createCallRequest.getStartTime()));
|
||||||
|
callEntity.setEndTime(DateTimeUtil.parseTime(createCallRequest.getEndTime()));
|
||||||
callEntity = callRepository.save(callEntity);
|
callEntity = callRepository.save(callEntity);
|
||||||
return callEntity;
|
return callEntity;
|
||||||
}
|
}
|
||||||
@@ -259,6 +272,11 @@ public class CallDao {
|
|||||||
createCallResponseBean.setDocumentationRequested(callEntity.getDocumentationRequested());
|
createCallResponseBean.setDocumentationRequested(callEntity.getDocumentationRequested());
|
||||||
createCallResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
createCallResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
||||||
createCallResponseBean.setConfidi(callEntity.getConfidi());
|
createCallResponseBean.setConfidi(callEntity.getConfidi());
|
||||||
|
createCallResponseBean.setAmountMin(callEntity.getAmountMin());
|
||||||
|
createCallResponseBean.setPhoneNumber(callEntity.getPhoneNumber());
|
||||||
|
createCallResponseBean.setEndTime(callEntity.getEndTime());
|
||||||
|
createCallResponseBean.setStartTime(callEntity.getStartTime());
|
||||||
|
createCallResponseBean.setEmail(callEntity.getEmail());
|
||||||
createCallResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
createCallResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
||||||
createCallResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
createCallResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
||||||
return createCallResponseBean;
|
return createCallResponseBean;
|
||||||
@@ -531,6 +549,11 @@ public class CallDao {
|
|||||||
callDetailsResponseBean.setThreshold(callEntity.getThreshold());
|
callDetailsResponseBean.setThreshold(callEntity.getThreshold());
|
||||||
callDetailsResponseBean.setDocumentationRequested(callEntity.getDocumentationRequested());
|
callDetailsResponseBean.setDocumentationRequested(callEntity.getDocumentationRequested());
|
||||||
callDetailsResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
callDetailsResponseBean.setPriorityArea(callEntity.getPriorityArea());
|
||||||
|
callDetailsResponseBean.setAmountMin(callEntity.getAmountMin());
|
||||||
|
callDetailsResponseBean.setEmail(callEntity.getEmail());
|
||||||
|
callDetailsResponseBean.setEndTime(callEntity.getEndTime());
|
||||||
|
callDetailsResponseBean.setStartTime(callEntity.getStartTime());
|
||||||
|
callDetailsResponseBean.setPhoneNumber(callEntity.getPhoneNumber());
|
||||||
callDetailsResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
callDetailsResponseBean.setCreatedDate(callEntity.getCreatedDate());
|
||||||
callDetailsResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
callDetailsResponseBean.setUpdatedDate(callEntity.getUpdatedDate());
|
||||||
return callDetailsResponseBean;
|
return callDetailsResponseBean;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import lombok.Builder;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "CALL")
|
@Table(name = "CALL")
|
||||||
@@ -68,5 +69,20 @@ public class CallEntity extends BaseEntity {
|
|||||||
|
|
||||||
@Column(name="FINAL_FORM")
|
@Column(name="FINAL_FORM")
|
||||||
private Long finalForm;
|
private Long finalForm;
|
||||||
|
|
||||||
|
@Column(name = "AMOUNT_MIN")
|
||||||
|
private BigDecimal amountMin;
|
||||||
|
|
||||||
|
@Column(name="EMAIL")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
@Column(name = "PHONE_NUMBER")
|
||||||
|
private String phoneNumber;
|
||||||
|
|
||||||
|
@Column(name = "START_TIME")
|
||||||
|
private LocalTime startTime;
|
||||||
|
|
||||||
|
@Column(name = "END_TIME")
|
||||||
|
private LocalTime endTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package net.gepafin.tendermanagement.model.request;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@@ -26,6 +28,16 @@ public class CreateCallRequestStep1 {
|
|||||||
|
|
||||||
private String documentationRequested;
|
private String documentationRequested;
|
||||||
|
|
||||||
|
private BigDecimal amountMin;
|
||||||
|
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
private String phoneNumber;
|
||||||
|
|
||||||
|
private String startTime;
|
||||||
|
|
||||||
|
private String endTime;
|
||||||
|
|
||||||
private Boolean confidi;
|
private Boolean confidi;
|
||||||
|
|
||||||
private List<FaqReq> faq;
|
private List<FaqReq> faq;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import net.gepafin.tendermanagement.enums.CallStatusEnum;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@Data
|
@Data
|
||||||
public class CallDetailsResponseBean {
|
public class CallDetailsResponseBean {
|
||||||
@@ -37,6 +38,16 @@ public class CallDetailsResponseBean {
|
|||||||
|
|
||||||
private String documentationRequested;
|
private String documentationRequested;
|
||||||
|
|
||||||
|
private BigDecimal amountMin;
|
||||||
|
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
private String phoneNumber;
|
||||||
|
|
||||||
|
private LocalTime startTime;
|
||||||
|
|
||||||
|
private LocalTime endTime;
|
||||||
|
|
||||||
private LocalDateTime createdDate;
|
private LocalDateTime createdDate;
|
||||||
|
|
||||||
private LocalDateTime updatedDate;
|
private LocalDateTime updatedDate;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package net.gepafin.tendermanagement.model.response;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -40,6 +41,16 @@ public class CallResponse {
|
|||||||
|
|
||||||
private Boolean confidi;
|
private Boolean confidi;
|
||||||
|
|
||||||
|
private BigDecimal amountMin;
|
||||||
|
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
private String phoneNumber;
|
||||||
|
|
||||||
|
private LocalTime startTime;
|
||||||
|
|
||||||
|
private LocalTime endTime;
|
||||||
|
|
||||||
private LocalDateTime createdDate;
|
private LocalDateTime createdDate;
|
||||||
|
|
||||||
private LocalDateTime updatedDate;
|
private LocalDateTime updatedDate;
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import net.gepafin.tendermanagement.model.response.CallResponse;
|
|||||||
import net.gepafin.tendermanagement.model.response.FlowResponseBean;
|
import net.gepafin.tendermanagement.model.response.FlowResponseBean;
|
||||||
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
import net.gepafin.tendermanagement.model.response.FormResponseBean;
|
||||||
import net.gepafin.tendermanagement.util.FieldValidator;
|
import net.gepafin.tendermanagement.util.FieldValidator;
|
||||||
|
import net.gepafin.tendermanagement.util.Utils;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
|
|
||||||
@@ -28,6 +29,10 @@ public class CallValidatorServiceImpl {
|
|||||||
.notNull(response.getAmount(), "amount")
|
.notNull(response.getAmount(), "amount")
|
||||||
.notNull(response.getAmountMax(), "amountMax")
|
.notNull(response.getAmountMax(), "amountMax")
|
||||||
.notNull(response.getThreshold(), "threshold")
|
.notNull(response.getThreshold(), "threshold")
|
||||||
|
.notNull(response.getEmail(),"email")
|
||||||
|
// .notNull(response.getAmountMin(),"amountMin")
|
||||||
|
// .notNull(response.getStartTime(),"startTime")
|
||||||
|
// .notNull(response.getEndTime(),"endTime")
|
||||||
.notNull(response.getDocumentationRequested(), "documentationRequested")
|
.notNull(response.getDocumentationRequested(), "documentationRequested")
|
||||||
.notEmpty(response.getAimedTo(), "aimedTo")
|
.notEmpty(response.getAimedTo(), "aimedTo")
|
||||||
.notEmpty(response.getCriteria(), "criteria")
|
.notEmpty(response.getCriteria(), "criteria")
|
||||||
|
|||||||
@@ -1,16 +1,29 @@
|
|||||||
package net.gepafin.tendermanagement.util;
|
package net.gepafin.tendermanagement.util;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||||
|
import net.gepafin.tendermanagement.web.rest.api.errors.CustomValidationException;
|
||||||
|
import net.gepafin.tendermanagement.web.rest.api.errors.Status;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.time.format.DateTimeParseException;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class DateTimeUtil {
|
public class DateTimeUtil {
|
||||||
|
|
||||||
|
private static final Pattern TIME_PATTERN = Pattern.compile(
|
||||||
|
"^((([01]?\\d|2[0-3]):([0-5]\\d)(:[0-5]\\d)?(\\s?[AP]M)?)|((0?[1-9]|1[0-2]):([0-5]\\d)(:[0-5]\\d)?\\s?[AP]M))$");
|
||||||
|
|
||||||
|
|
||||||
public static LocalDateTime DateServerToUTC(LocalDateTime systemDate) {
|
public static LocalDateTime DateServerToUTC(LocalDateTime systemDate) {
|
||||||
|
|
||||||
@@ -50,4 +63,25 @@ public class DateTimeUtil {
|
|||||||
.from(localDateTime.atZone(ZoneId.systemDefault())
|
.from(localDateTime.atZone(ZoneId.systemDefault())
|
||||||
.toInstant());
|
.toInstant());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static LocalTime parseTime(String timeString) throws DateTimeParseException {
|
||||||
|
DateTimeFormatter formatter;
|
||||||
|
|
||||||
|
if (!TIME_PATTERN.matcher(timeString).matches()) {
|
||||||
|
throw new CustomValidationException(Status.BAD_REQUEST,"Invalid time format: " + timeString);
|
||||||
|
}
|
||||||
|
// Try to parse using default formats if no format is provided
|
||||||
|
String[] defaultFormats = {"HH:mm:ss", "HH:mm", "HH:mm:ss a", "hh:mm a"};
|
||||||
|
for (String defaultFormat : defaultFormats) {
|
||||||
|
formatter = DateTimeFormatter.ofPattern(defaultFormat);
|
||||||
|
try {
|
||||||
|
return LocalTime.parse(timeString, formatter);
|
||||||
|
} catch (DateTimeParseException e) {
|
||||||
|
// Continue to the next format
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If all parsing attempts fail, throw an exception
|
||||||
|
throw new CustomValidationException(Status.BAD_REQUEST,"Failed to parse time: " + timeString);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -824,5 +824,14 @@
|
|||||||
<column name="COMPANY_ID" type="INTEGER"/>
|
<column name="COMPANY_ID" type="INTEGER"/>
|
||||||
</addColumn>
|
</addColumn>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
<changeSet id="01-10-2024_1" author="Nisha Kashyap">
|
||||||
|
<addColumn tableName="call">
|
||||||
|
<column name="amount_min" type="numeric"></column>
|
||||||
|
<column name="phone_number" type="VARCHAR(255)"></column>
|
||||||
|
<column name="email" type="VARCHAR(255)"></column>
|
||||||
|
<column name="end_time" type="TIME"></column>
|
||||||
|
<column name="start_time" type="TIME"></column>
|
||||||
|
</addColumn>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|||||||
Reference in New Issue
Block a user