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); }