Skip to content

Commit d33ac0b

Browse files
srishtigrp78SR20290919
andauthored
adding code changes for grievance issues (#168)
Co-authored-by: SR20290919 <SR20290919@APL-PG02PW8B>
1 parent 8806e1b commit d33ac0b

File tree

7 files changed

+46
-39
lines changed

7 files changed

+46
-39
lines changed

src/main/java/com/iemr/common/controller/grievance/GrievanceController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public GrievanceController(GrievanceHandlingService grievanceHandlingService, Gr
4848
public String fetchUnallocatedGrievanceCount(@RequestBody UnallocationRequest request) {
4949
OutputResponse responseData = new OutputResponse();
5050
try {
51-
responseData.setResponse(grievanceDataSync.fetchUnallocatedGrievanceCount(request.getPreferredLanguageName()));
51+
responseData.setResponse(grievanceDataSync.fetchUnallocatedGrievanceCount(request.getPreferredLanguageName(), request.getFilterStartDate(), request.getFilterEndDate(), request.getProviderServiceMapID()));
5252
} catch (IEMRException e) {
5353
logger.error("Business logic error in UnallocatedGrievanceCount" + e.getMessage(), e);
5454
responseData.setError(e);

src/main/java/com/iemr/common/data/grievance/GrievanceAllocationRequest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,14 @@ public class GrievanceAllocationRequest {
1010

1111
private Timestamp startDate; // Start date for filtering grievances
1212
private Timestamp endDate; // End date for filtering grievances
13-
private List<Integer> userID; // List of user IDs (agents) to whom grievances will be allocated
13+
private List<Integer> touserID; // List of user IDs (agents) to whom grievances will be allocated
1414
private Integer allocateNo; // Number of grievances to be allocated to each user
15-
private String preferredLanguage;
15+
private String language;
1616

1717
@Override
1818
public String toString() {
19-
return "GrievanceAllocationRequest{" + "startDate=" + startDate + ", endDate=" + endDate + ", userID=" + userID
20-
+ ", allocateNo=" + allocateNo + ", language=" + preferredLanguage + '}';
19+
return "GrievanceAllocationRequest{" + "startDate=" + startDate + ", endDate=" + endDate + ", touserID=" + touserID
20+
+ ", allocateNo=" + allocateNo + ", language=" + language + '}';
2121
}
2222

2323
}

src/main/java/com/iemr/common/data/grievance/GrievanceDetails.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,6 @@ public class GrievanceDetails {
7676
@Column(name = "State")
7777
private String state;
7878

79-
@Expose
80-
@Column(name = "Agentid")
81-
private String agentid;
82-
8379
@Expose
8480
@Column(name = "userid")
8581
private Integer userID;
@@ -169,7 +165,7 @@ public class GrievanceDetails {
169165

170166
public GrievanceDetails(Long gwid, Long grievanceId, Long beneficiaryRegID, Long benCallID,
171167
Integer providerServiceMapID, String complaintID, String subjectOfComplaint, String complaint,
172-
String primaryNumber, String severety, String state, String agentID, Integer userid, Boolean isAllocated,
168+
String primaryNumber, String severety, String state, Integer userid, Boolean isAllocated,
173169
Boolean retryNeeded, Boolean isRegistered, Integer callCounter, Integer preferredLanguageId,
174170
String preferredLanguage, String complaintResolution, String remarks, Boolean deleted, Character processed, String createdBy, Timestamp createdDate,
175171
String modifiedBy, Timestamp lastModDate, Integer vanSerialNo, Integer vanID, String vehicalNo,
@@ -186,7 +182,6 @@ public GrievanceDetails(Long gwid, Long grievanceId, Long beneficiaryRegID, Long
186182
this.primaryNumber = primaryNumber;
187183
this.severety = severety;
188184
this.state = state;
189-
this.agentid = agentID;
190185
this.userID = userid;
191186
this.isAllocated = isAllocated;
192187
this.retryNeeded = retryNeeded;

src/main/java/com/iemr/common/repository/grievance/GrievanceDataRepo.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,44 +60,52 @@ List<GrievanceDetails> findGrievancesByUserAndLanguage(@Param("userID") Integer
6060

6161
@Modifying
6262
@Transactional
63-
@Query("UPDATE GrievanceDetails g SET g.userID = NULL WHERE g.grievanceId = :grievanceId AND g.userID = :userID")
64-
int unassignGrievance(@Param("grievanceId") Long grievanceId, @Param("userID") Integer userID);
63+
@Query("UPDATE GrievanceDetails g SET g.userID = :userID WHERE g.gwid = :gwid")
64+
int unassignGrievance(@Param("userID") Integer userID, @Param("gwid") Long gwid);
6565

6666
@Modifying
6767
@Transactional
68-
@Query("UPDATE GrievanceDetails g SET g.isAllocated = :isAllocated WHERE g.grievanceId = :grievanceId")
69-
int updateGrievanceAllocationStatus(@Param("grievanceId") Long grievanceId,
68+
@Query("UPDATE GrievanceDetails g SET g.isAllocated = :isAllocated WHERE g.gwid = :gwid")
69+
int updateGrievanceAllocationStatus(@Param("gwid") Long gwid,
7070
@Param("isAllocated") Boolean isAllocated);
7171

72-
@Query("Select grievance.preferredLanguage, count(grievance) from GrievanceDetails grievance where grievance.isAllocated=false group by grievance.preferredLanguage")
73-
public Set<Object[]> fetchUnallocatedGrievanceCount();
72+
@Query("Select grievance.preferredLanguage, count(grievance) from GrievanceDetails grievance where grievance.isAllocated=false "
73+
+ "AND grievance.createdDate BETWEEN :filterStartDate AND :filterEndDate "
74+
+ "group by grievance.preferredLanguage")
75+
public Set<Object[]> fetchUnallocatedGrievanceCount(
76+
@Param("filterStartDate") Timestamp filterStartDate,
77+
@Param("filterEndDate") Timestamp filterEndDate);
7478

7579
@Modifying
76-
@Query("UPDATE GrievanceDetails g SET g.complaintResolution = :complaintResolution, g.remarks = :remarks, g.modifiedBy = :modifiedBy "
77-
+ "WHERE g.complaintID = :complaintID AND g.beneficiaryRegID = :beneficiaryRegID AND g.providerServiceMapID = :providerServiceMapID"
80+
@Query("UPDATE GrievanceDetails g SET g.complaintResolution = :complaintResolution, g.remarks = :remarks, g.modifiedBy = :modifiedBy, "
81+
+ "g.benCallID = :benCallID "
82+
+ "WHERE g.complaintID = :complaintID AND g.beneficiaryRegID = :beneficiaryRegID AND g.providerServiceMapID = :providerServiceMapID"
7883
+ " AND g.userID = :userID")
7984
@Transactional
8085
int updateComplaintResolution(@Param("complaintResolution") String complaintResolution,
8186
@Param("remarks") String remarks,
8287
@Param("modifiedBy") String modifiedBy,
88+
@Param("benCallID") Long benCallID,
8389
@Param("complaintID") String complaintID,
8490
@Param("beneficiaryRegID") Long beneficiaryRegID,
8591
@Param("providerServiceMapID") Integer providerServiceMapID,
8692
@Param("userID") Integer userID);
8793

8894
@Modifying
89-
@Query("UPDATE GrievanceDetails g SET g.complaintResolution = :complaintResolution, g.modifiedBy = :modifiedBy "
90-
+ "WHERE g.complaintID = :complaintID AND g.beneficiaryRegID = :beneficiaryRegID AND g.providerServiceMapID = :providerServiceMapID"
95+
@Query("UPDATE GrievanceDetails g SET g.complaintResolution = :complaintResolution, g.modifiedBy = :modifiedBy, "
96+
+ "g.benCallID = :benCallID "
97+
+ "WHERE g.complaintID = :complaintID AND g.beneficiaryRegID = :beneficiaryRegID AND g.providerServiceMapID = :providerServiceMapID"
9198
+ " AND g.userID = :userID")
9299
@Transactional
93100
int updateComplaintResolution(@Param("complaintResolution") String complaintResolution,
94101
@Param("modifiedBy") String modifiedBy,
102+
@Param("benCallID") Long benCallID,
95103
@Param("complaintID") String complaintID,
96104
@Param("beneficiaryRegID") Long beneficiaryRegID,
97105
@Param("providerServiceMapID") Integer providerServiceMapID,
98106
@Param("userID") Integer userID);
99107

100-
@Query(" Select grievance.callCounter, grievance.retryNeeded FROM GrievanceDetails grievance where complaintID = :complaintID")
108+
@Query(" Select grievance.callCounter, grievance.retryNeeded FROM GrievanceDetails grievance where grievance.complaintID = :complaintID")
101109
public List<Object[]> getCallCounter(@Param("complaintID") String complaintID);
102110

103111
@Modifying

src/main/java/com/iemr/common/service/grievance/GrievanceDataSync.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.iemr.common.service.grievance;
22

3+
import java.sql.Timestamp;
34
import java.util.List;
45
import java.util.Map;
56

@@ -10,7 +11,8 @@
1011
public interface GrievanceDataSync {
1112
public List<Map<String, Object>> dataSyncToGrievance();
1213

13-
public String fetchUnallocatedGrievanceCount(String preferredLanguage) throws IEMRException, JSONException;
14+
public String fetchUnallocatedGrievanceCount(String preferredLanguage, Timestamp filterStartDate,
15+
Timestamp filterEndDate, Integer providerServiceMapID) throws IEMRException, JSONException;
1416

1517
public String completeGrievanceCall(String request) throws Exception;
1618

src/main/java/com/iemr/common/service/grievance/GrievanceDataSyncImpl.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@ public List<Map<String, Object>> dataSyncToGrievance() {
251251
}
252252

253253
// Setting remaining grievance properties (similar to the existing code)
254-
grievance.setAgentid(grievance.getAgentid());
255254
grievance.setDeleted(grievance.getDeleted());
256255
grievance.setCreatedBy(registeringUser);
257256
grievance.setProcessed('N');
@@ -294,7 +293,6 @@ public List<Map<String, Object>> dataSyncToGrievance() {
294293
combinedData.put("transaction", transactions);
295294
combinedData.put("severity", grievance.getSeverety());
296295
combinedData.put("state", grievance.getState());
297-
combinedData.put("agentId", grievance.getAgentid());
298296
combinedData.put("deleted", grievance.getDeleted());
299297
combinedData.put("createdBy", grievance.getCreatedBy());
300298
combinedData.put("createdDate", grievance.getCreatedDate());
@@ -413,11 +411,12 @@ private void generateGrievanceAuthToken() {
413411
}
414412
}
415413

416-
public String fetchUnallocatedGrievanceCount(String preferredLanguage) throws IEMRException, JSONException {
414+
public String fetchUnallocatedGrievanceCount(String preferredLanguage, Timestamp filterStartDate,
415+
Timestamp filterEndDate, Integer providerServiceMapID) throws IEMRException, JSONException {
417416
logger.debug("Request received for fetchUnallocatedGrievanceCount");
418417

419418
// Fetch all unallocated grievances count from the database
420-
Set<Object[]> resultSet = grievanceDataRepo.fetchUnallocatedGrievanceCount();
419+
Set<Object[]> resultSet = grievanceDataRepo.fetchUnallocatedGrievanceCount(filterStartDate, filterEndDate);
421420

422421
// Initialize the result JSON object to hold counts
423422
JSONObject result = new JSONObject();

src/main/java/com/iemr/common/service/grievance/GrievanceHandlingServiceImpl.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public String allocateGrievances(String request) throws Exception {
7373
// language
7474
List<GrievanceDetails> grievances = grievanceDataRepo.findGrievancesInDateRangeAndLanguage(
7575
allocationRequest.getStartDate(), allocationRequest.getEndDate(),
76-
allocationRequest.getPreferredLanguage());
76+
allocationRequest.getLanguage());
7777

7878
if (grievances.isEmpty()) {
7979
throw new Exception("No grievances found in the given date range and language.");
@@ -85,7 +85,7 @@ public String allocateGrievances(String request) throws Exception {
8585
// Step 4: Get the allocation parameters from the request
8686
int totalAllocated = 0;
8787
int userIndex = 0;
88-
List<Integer> userIds = allocationRequest.getUserID();
88+
List<Integer> userIds = allocationRequest.getTouserID();
8989
int allocateNo = allocationRequest.getAllocateNo(); // Number of grievances to allocate per user
9090

9191
for (int i = 0; i < grievances.size(); i++) {
@@ -230,22 +230,22 @@ public String moveToBin(String request) throws Exception {
230230
// Step 4: Unassign grievances from the user and "move them to bin"
231231
int totalUnassigned = 0;
232232
for (GrievanceDetails grievance : grievancesToMove) {
233-
int rowsAffected = grievanceDataRepo.unassignGrievance(grievance.getGrievanceId(),
234-
moveToBinRequest.getUserID());
233+
grievance.setUserID(null);
234+
int rowsAffected = grievanceDataRepo.unassignGrievance(grievance.getUserID(), grievance.getGwid());
235235
if (rowsAffected > 0) {
236236
grievance.setIsAllocated(false); // Assuming there's a setter for this flag
237-
int updateFlagResult = grievanceDataRepo.updateGrievanceAllocationStatus(grievance.getGrievanceId(),
238-
false);
237+
int updateFlagResult = grievanceDataRepo.updateGrievanceAllocationStatus(grievance.getGwid(),
238+
grievance.getIsAllocated());
239239
if (updateFlagResult > 0) {
240240
totalUnassigned++;
241-
logger.debug("Unassigned grievance ID {} from user ID {}", grievance.getGrievanceId(),
241+
logger.debug("Unassigned grievance gwid {} from user ID {}", grievance.getGwid(),
242242
moveToBinRequest.getUserID());
243243
} else {
244-
logger.error("Failed to unassign grievance ID {} from user ID {}", grievance.getGrievanceId(),
244+
logger.error("Failed to unassign grievance gwid {} from user ID {}", grievance.getGwid(),
245245
moveToBinRequest.getUserID());
246246
}
247247
} else {
248-
logger.error("Failed to unassign grievance ID {} from user ID {}", grievance.getGrievanceId(),
248+
logger.error("Failed to unassign grievance gwid {} from user ID {}", grievance.getGwid(),
249249
moveToBinRequest.getUserID());
250250
}
251251
}
@@ -368,6 +368,9 @@ public String saveComplaintResolution(String request) throws Exception {
368368
if (grievanceRequest.getCreatedBy() == null) {
369369
throw new IllegalArgumentException("CreatedBy is required");
370370
}
371+
if(grievanceRequest.getBenCallID() == null) {
372+
throw new IllegalArgumentException("BencallId is required");
373+
}
371374
// Extract values from the request
372375
String complaintID = grievanceRequest.getComplaintID();
373376
String complaintResolution = grievanceRequest.getComplaintResolution();
@@ -376,17 +379,17 @@ public String saveComplaintResolution(String request) throws Exception {
376379
Integer providerServiceMapID = grievanceRequest.getProviderServiceMapID();
377380
Integer userID = grievanceRequest.getUserID();
378381
String createdBy = grievanceRequest.getCreatedBy();
379-
382+
Long benCallID = grievanceRequest.getBenCallID();
380383

381384
String modifiedBy = createdBy;
382385
int updateCount = 0;
383386
if (remarks == null) {
384-
updateCount = grievanceDataRepo.updateComplaintResolution(complaintResolution, modifiedBy, complaintID,
387+
updateCount = grievanceDataRepo.updateComplaintResolution(complaintResolution, modifiedBy, benCallID, complaintID,
385388
beneficiaryRegID, providerServiceMapID, userID);
386389
logger.debug("updated complaint resolution without remarks for complaint id: {}", complaintID);
387390
}
388391
else {
389-
updateCount = grievanceDataRepo.updateComplaintResolution(complaintResolution, remarks, modifiedBy, complaintID,
392+
updateCount = grievanceDataRepo.updateComplaintResolution(complaintResolution, remarks, modifiedBy, benCallID, complaintID,
390393
beneficiaryRegID, providerServiceMapID, userID);
391394
logger.debug("updated complaint resolution with remarks for complaint id: {}", complaintID);
392395

0 commit comments

Comments
 (0)