diff --git a/pom.xml b/pom.xml
index 5e21cb4..a1bffa5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
com.iemr.ecd
ecd-api
- 3.7.0
+ 3.7.1
war
ECD-API
ECD project
diff --git a/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java b/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java
index f3b5084..351dc81 100644
--- a/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java
+++ b/src/main/java/com/iemr/ecd/repo/call_conf_allocation/OutboundCallsRepo.java
@@ -123,11 +123,18 @@ int getMotherUnAllocatedCountLR(@Param("allocationStatus") String allocationStat
@Param("fDate") Timestamp fDate, @Param("tDate") Timestamp tDate, @Param("phoneNoType") String phoneNoType);
// un-allocated, child low risk,
- @Query(value = " SELECT COUNT(1) FROM OutboundCalls AS t WHERE t.allocationStatus =:allocationStatus AND "
- + " t.psmId=:psmId AND ((:fDate between t.callDateFrom AND t.callDateTo) OR (:tDate between t.callDateFrom AND t.callDateTo)) AND "
- + " t.childId IS NOT NULL AND (t.isHrni = false OR t.isHrni IS NULL ) "
- + " AND t.phoneNumberType=:phoneNoType AND t.deleted = false AND t.displayEcdCallType != 'introductory' AND (t.isFurtherCallRequired = true OR t.isFurtherCallRequired IS NULL ) AND "
- + " t.callDateTo >= CURRENT_TIMESTAMP")
+ @Query(value = "SELECT COUNT(1) FROM t_mctsoutboundcalls t FORCE INDEX (idx_mcts_eligible_v2) "
+ + "WHERE t.AllocationStatus = :allocationStatus "
+ + "AND t.ProviderServiceMapID = :psmId "
+ + "AND ((:fDate BETWEEN t.CallDateFrom AND t.CallDateTo) OR (:tDate BETWEEN t.CallDateFrom AND t.CallDateTo)) "
+ + "AND t.ChildID IS NOT NULL "
+ + "AND (t.IsHrni = 0 OR t.IsHrni IS NULL) "
+ + "AND t.phoneNumberType = :phoneNoType "
+ + "AND t.Deleted = 0 "
+ + "AND t.DisplayOBCallType != 'introductory' "
+ + "AND (t.isFurtherCallRequired = 1 OR t.isFurtherCallRequired IS NULL) "
+ + "AND t.CallDateTo >= CURRENT_TIMESTAMP",
+ nativeQuery = true)
int getChildUnAllocatedCountLR(@Param("allocationStatus") String allocationStatus, @Param("psmId") Integer psmId,
@Param("fDate") Timestamp fDate, @Param("tDate") Timestamp tDate, @Param("phoneNoType") String phoneNoType);
@@ -141,11 +148,18 @@ int getMotherUnAllocatedCountHR(@Param("allocationStatus") String allocationStat
@Param("fDate") Timestamp fDate, @Param("tDate") Timestamp tDate, @Param("phoneNoType") String phoneNoType);
// un-allocated, child high risk,
- @Query(value = " SELECT COUNT(1) FROM OutboundCalls AS t WHERE t.allocationStatus =:allocationStatus AND "
- + " t.psmId=:psmId AND ((:fDate between t.callDateFrom AND t.callDateTo) OR (:tDate between t.callDateFrom AND t.callDateTo)) AND "
- + " t.childId IS NOT NULL AND t.isHrni = true " + " AND t.phoneNumberType=:phoneNoType AND t.deleted = false AND t.displayEcdCallType != 'introductory'"
- + " AND (t.isFurtherCallRequired = true OR t.isFurtherCallRequired IS NULL ) AND "
- + " t.callDateTo >= CURRENT_TIMESTAMP")
+ @Query(value = "SELECT COUNT(1) FROM t_mctsoutboundcalls t FORCE INDEX (idx_mcts_eligible_v2) "
+ + "WHERE t.AllocationStatus = :allocationStatus "
+ + "AND t.ProviderServiceMapID = :psmId "
+ + "AND ((:fDate BETWEEN t.CallDateFrom AND t.CallDateTo) OR (:tDate BETWEEN t.CallDateFrom AND t.CallDateTo)) "
+ + "AND t.CallDateTo >= CURRENT_TIMESTAMP "
+ + "AND t.ChildID IS NOT NULL "
+ + "AND t.IsHrni = 1 "
+ + "AND t.phoneNumberType = :phoneNoType "
+ + "AND t.Deleted = 0 "
+ + "AND t.DisplayOBCallType != 'introductory' "
+ + "AND (t.isFurtherCallRequired = 1 OR t.isFurtherCallRequired IS NULL)",
+ nativeQuery = true)
int getChildUnAllocatedCountHR(@Param("allocationStatus") String allocationStatus, @Param("psmId") Integer psmId,
@Param("fDate") Timestamp fDate, @Param("tDate") Timestamp tDate, @Param("phoneNoType") String phoneNoType);
@@ -158,10 +172,15 @@ int getTotalAllocatedCountMother(@Param("allocationStatus") String allocationSta
@Param("fDate") Timestamp fDate, @Param("tDate") Timestamp tDate, @Param("phoneNoType") String phoneNoType);
// allocated, child record,
- @Query(value = " SELECT COUNT(1) FROM OutboundCalls AS t WHERE t.allocationStatus =:allocationStatus AND "
- + " t.psmId=:psmId AND ((:fDate between t.callDateFrom AND t.callDateTo) OR (:tDate between t.callDateFrom AND t.callDateTo)) AND "
- + " t.childId IS NOT NULL AND t.phoneNumberType=:phoneNoType AND (t.isFurtherCallRequired = true OR t.isFurtherCallRequired IS NULL ) AND "
- + " t.callDateTo >= CURRENT_TIMESTAMP")
+ @Query(value = "SELECT COUNT(1) FROM t_mctsoutboundcalls t FORCE INDEX (idx_mcts_eligible_v2) "
+ + "WHERE t.AllocationStatus = :allocationStatus "
+ + "AND t.ProviderServiceMapID = :psmId "
+ + "AND ((:fDate BETWEEN t.CallDateFrom AND t.CallDateTo) OR (:tDate BETWEEN t.CallDateFrom AND t.CallDateTo)) "
+ + "AND t.ChildID IS NOT NULL "
+ + "AND t.phoneNumberType = :phoneNoType "
+ + "AND (t.isFurtherCallRequired = 1 OR t.isFurtherCallRequired IS NULL) "
+ + "AND t.CallDateTo >= CURRENT_TIMESTAMP",
+ nativeQuery = true)
int getTotalAllocatedCountChild(@Param("allocationStatus") String allocationStatus, @Param("psmId") Integer psmId,
@Param("fDate") Timestamp fDate, @Param("tDate") Timestamp tDate, @Param("phoneNoType") String phoneNoType);
diff --git a/src/main/java/com/iemr/ecd/service/associate/CallClosureImpl.java b/src/main/java/com/iemr/ecd/service/associate/CallClosureImpl.java
index 345dacb..fff40e2 100644
--- a/src/main/java/com/iemr/ecd/service/associate/CallClosureImpl.java
+++ b/src/main/java/com/iemr/ecd/service/associate/CallClosureImpl.java
@@ -168,9 +168,12 @@ public String closeCall(CallClosureDTO request) {
} else {
if (obj.getIsCallDisconnected() != null && obj.getIsCallDisconnected()) {
callObj.setCallStatus(Constants.OPEN);
- callObj.setAllocatedUserId(null);
- callObj.setAllocationStatus(Constants.UNALLOCATED);
- callObj.setCallAttemptNo(0);
+ if (request.getReasonForCallNotAnswered() == null ||
+ !Constants.REASONFORCALLNOTANSWERED.contains(request.getReasonForCallNotAnswered())) {
+ callObj.setAllocatedUserId(null);
+ callObj.setAllocationStatus(Constants.UNALLOCATED);
+ callObj.setCallAttemptNo(0);
+ }
} else {
callObj.setCallStatus(Constants.COMPLETED);
createEcdCallRecordsInOutboundCalls(request, callConfigurationDetails,
diff --git a/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java b/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java
index 5a5641f..d8feb2c 100644
--- a/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java
+++ b/src/main/java/com/iemr/ecd/service/call_conf_allocation/CallAllocationImpl.java
@@ -551,27 +551,23 @@ public ResponseEligibleCallRecordsDTO getEligibleRecordsInfo(int psmId, String p
totalIntroductoryRecord = motherRecordRepo.getRecordCount(false, tempFDateStamp, tempTDateStamp,
phoneNoType);
-
- totalLowRisk = outboundCallsRepo.getMotherUnAllocatedCountLR(Constants.UNALLOCATED, psmId, tempFDateStamp,
- tempTDateStamp, phoneNoType);
+ totalLowRisk = outboundCallsRepo.getMotherUnAllocatedCountLR(Constants.UNALLOCATED, psmId,
+ tempFDateStamp, tempTDateStamp, phoneNoType);
totalHighRisk = outboundCallsRepo.getMotherUnAllocatedCountHR(Constants.UNALLOCATED, psmId,
tempFDateStamp, tempTDateStamp, phoneNoType);
-
- totalAllocated = outboundCallsRepo.getTotalAllocatedCountMother(Constants.ALLOCATED, psmId, tempFDateStamp,
- tempTDateStamp, phoneNoType);
+ totalAllocated = outboundCallsRepo.getTotalAllocatedCountMother(Constants.ALLOCATED, psmId,
+ tempFDateStamp, tempTDateStamp, phoneNoType);
} else if (recordType != null && recordType.equalsIgnoreCase("Child")) {
totalIntroductoryRecord = childRecordRepo.getRecordCount(false, tempFDateStamp, tempTDateStamp,
phoneNoType);
-
- totalLowRisk = outboundCallsRepo.getChildUnAllocatedCountLR("unallocated", psmId, tempFDateStamp,
- tempTDateStamp, phoneNoType);
- totalHighRisk = outboundCallsRepo.getChildUnAllocatedCountHR("unallocated", psmId, tempFDateStamp,
- tempTDateStamp, phoneNoType);
-
- totalAllocated = outboundCallsRepo.getTotalAllocatedCountChild("allocated", psmId, tempFDateStamp,
- tempTDateStamp, phoneNoType);
+ totalLowRisk = outboundCallsRepo.getChildUnAllocatedCountLR(Constants.UNALLOCATED, psmId,
+ tempFDateStamp, tempTDateStamp, phoneNoType);
+ totalHighRisk = outboundCallsRepo.getChildUnAllocatedCountHR(Constants.UNALLOCATED, psmId,
+ tempFDateStamp, tempTDateStamp, phoneNoType);
+ totalAllocated = outboundCallsRepo.getTotalAllocatedCountChild(Constants.ALLOCATED, psmId,
+ tempFDateStamp, tempTDateStamp, phoneNoType);
}