From b63373d3de6e6813f1b089be28293e2a4bc12a3b Mon Sep 17 00:00:00 2001 From: nisha Date: Wed, 28 May 2025 14:02:00 +0530 Subject: [PATCH] Done ticket GEPAFINBE-221 --- .../dao/ApplicationEvaluationDao.java | 17 ++++++++++------- .../gepafin/tendermanagement/dao/CallDao.java | 2 +- .../dao/EvaluationCriteriaDao.java | 3 ++- .../entities/EvaluationCriteriaEntity.java | 4 +++- .../model/request/CriteriaRequest.java | 4 +++- .../model/request/EvaluationCriteriaReq.java | 4 +++- .../request/EvaluationCriteriaRequest.java | 4 +++- .../model/response/CriteriaResponse.java | 5 +++-- .../EvaluationCriteriaResponseBean.java | 4 +++- 9 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java index 8d4ce08e..b9782af0 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/ApplicationEvaluationDao.java @@ -2510,8 +2510,8 @@ public class ApplicationEvaluationDao { ApplicationEvaluationEntity evaluationEntity = evaluationEntityOpt.get(); String criteriaJson = evaluationEntity.getCriteria(); if (criteriaJson != null){ - Integer totalScore = calculateTotalScore(evaluationEntity.getCriteria()); - if (totalScore > 40) { + BigDecimal totalScore = calculateTotalScore(evaluationEntity.getCriteria()); + if (totalScore.compareTo(new BigDecimal("40")) > 0) { applicationEntity.setStatus(status.getValue()); log.info("Status updated to TECHNICAL_EVALUATION for applicationId: " + applicationId); } @@ -2522,7 +2522,7 @@ public class ApplicationEvaluationDao { } } - private Integer calculateTotalScore(String criteriaJson){ + private BigDecimal calculateTotalScore(String criteriaJson){ try { ObjectMapper objectMapper = new ObjectMapper(); // Convert JSON string to List of Maps @@ -2530,15 +2530,18 @@ public class ApplicationEvaluationDao { }); // Sum all scores (ignoring null scores) - Integer totalScore = criteriaList.stream() - .mapToInt(obj -> obj.get("score") != null ? ((Number) obj.get("score")).intValue() : 0) - .sum(); + BigDecimal totalScore = criteriaList.stream() + .map(obj -> { + Object score = obj.get("score"); + return score != null ? new BigDecimal(score.toString()) : BigDecimal.ZERO; + }) + .reduce(BigDecimal.ZERO, BigDecimal::add); return totalScore; } catch (Exception e) { log.error(" Error parsing criteria JSON: {}", e.getMessage()); - return 0; + return BigDecimal.ZERO; } } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java b/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java index 3cb86a50..7fc9663a 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/CallDao.java @@ -277,7 +277,7 @@ public class CallDao { criteriaEntity = new EvaluationCriteriaEntity(); criteriaEntity.setCall(callEntity); criteriaEntity.setLookupData(lookupDataEntity); - criteriaEntity.setScore(0L); + criteriaEntity.setScore(BigDecimal.ZERO); criteriaEntity.setIsDeleted(false); actionType = VersionActionTypeEnum.INSERT; } diff --git a/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java b/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java index 8f7897c4..fa59c0ab 100644 --- a/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java +++ b/src/main/java/net/gepafin/tendermanagement/dao/EvaluationCriteriaDao.java @@ -20,6 +20,7 @@ import net.gepafin.tendermanagement.util.Utils; import net.gepafin.tendermanagement.web.rest.api.errors.ResourceNotFoundException; import net.gepafin.tendermanagement.web.rest.api.errors.Status; +import java.math.BigDecimal; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -68,7 +69,7 @@ public class EvaluationCriteriaDao { LookUpDataEntity lookupDataEntity = lookUpDataService.getOrCreateLookUpDataEntity(evaluationCriteriaRequest, LookUpDataEntity.LookUpDataTypeEnum.EVALUATION_CRITERIA); entity.setCall(callEntity); entity.setLookupData(lookupDataEntity); - entity.setScore(0L); + entity.setScore(BigDecimal.ZERO); if (evaluationCriteriaRequest.getScore() != null) { entity.setScore(evaluationCriteriaRequest.getScore()); } diff --git a/src/main/java/net/gepafin/tendermanagement/entities/EvaluationCriteriaEntity.java b/src/main/java/net/gepafin/tendermanagement/entities/EvaluationCriteriaEntity.java index 39b3eb05..8d1c0c69 100644 --- a/src/main/java/net/gepafin/tendermanagement/entities/EvaluationCriteriaEntity.java +++ b/src/main/java/net/gepafin/tendermanagement/entities/EvaluationCriteriaEntity.java @@ -6,6 +6,8 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.Table; import lombok.Data; +import java.math.BigDecimal; + @Entity @Table(name = "EVALUATION_CRITERIA") @@ -21,7 +23,7 @@ public class EvaluationCriteriaEntity extends BaseEntity { private LookUpDataEntity lookupData; @Column(name = "SCORE", nullable = false) - private Long score; + private BigDecimal score; @Column(name ="IS_DELETED", nullable = false) private Boolean isDeleted = false; diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/CriteriaRequest.java b/src/main/java/net/gepafin/tendermanagement/model/request/CriteriaRequest.java index ada0d83c..6ed6dfa7 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/CriteriaRequest.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/CriteriaRequest.java @@ -2,9 +2,11 @@ package net.gepafin.tendermanagement.model.request; import lombok.Data; +import java.math.BigDecimal; + @Data public class CriteriaRequest { private Long id; - private Long score; + private BigDecimal score; private Boolean valid; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaReq.java b/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaReq.java index 7d504f7f..3d1c46c1 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaReq.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaReq.java @@ -3,9 +3,11 @@ package net.gepafin.tendermanagement.model.request; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; + @NoArgsConstructor @Data public class EvaluationCriteriaReq extends LookUpDataReq{ - private Long score; + private BigDecimal score; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaRequest.java b/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaRequest.java index a2e5a92b..1426748c 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaRequest.java +++ b/src/main/java/net/gepafin/tendermanagement/model/request/EvaluationCriteriaRequest.java @@ -3,11 +3,13 @@ package net.gepafin.tendermanagement.model.request; import lombok.Data; import lombok.NoArgsConstructor; +import java.math.BigDecimal; + @NoArgsConstructor @Data public class EvaluationCriteriaRequest extends LookUpDataReq { private Long callId; - private Long score; + private BigDecimal score; } diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/CriteriaResponse.java b/src/main/java/net/gepafin/tendermanagement/model/response/CriteriaResponse.java index ebbb2f2c..9d239a44 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/response/CriteriaResponse.java +++ b/src/main/java/net/gepafin/tendermanagement/model/response/CriteriaResponse.java @@ -2,14 +2,15 @@ package net.gepafin.tendermanagement.model.response; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data public class CriteriaResponse { private Long id; private String label; - private Long score; - private Long maxScore; + private BigDecimal score; + private BigDecimal maxScore; private List criteriaMappedFields; private Boolean valid; } \ No newline at end of file diff --git a/src/main/java/net/gepafin/tendermanagement/model/response/EvaluationCriteriaResponseBean.java b/src/main/java/net/gepafin/tendermanagement/model/response/EvaluationCriteriaResponseBean.java index 50a984cc..4e1d564e 100644 --- a/src/main/java/net/gepafin/tendermanagement/model/response/EvaluationCriteriaResponseBean.java +++ b/src/main/java/net/gepafin/tendermanagement/model/response/EvaluationCriteriaResponseBean.java @@ -3,9 +3,11 @@ package net.gepafin.tendermanagement.model.response; import lombok.Data; import net.gepafin.tendermanagement.model.BaseBean; +import java.math.BigDecimal; + @Data public class EvaluationCriteriaResponseBean extends LookUpDataResponse{ - private Long score; + private BigDecimal score; }