@@ -104,9 +104,9 @@ public String allocatedGrievanceRecordsCount(String request) throws IEMRExceptio
104104 GrievanceDetails grievanceRequest = InputMapper .gson ().fromJson (request , GrievanceDetails .class );
105105
106106 Integer providerServiceMapID = grievanceRequest .getProviderServiceMapID ();
107- Integer assignedUserID = grievanceRequest .getAssignedUserID ();
107+ Integer userID = grievanceRequest .getUserID ();
108108
109- Set <Object []> resultSet = grievanceDataRepo .fetchGrievanceRecordsCount (providerServiceMapID , assignedUserID );
109+ Set <Object []> resultSet = grievanceDataRepo .fetchGrievanceRecordsCount (providerServiceMapID , userID );
110110
111111 JSONObject result = new JSONObject ();
112112 result .put ("All" , 0 );
@@ -194,7 +194,7 @@ public String moveToBin(String request) throws Exception {
194194 // Step 2: Fetch grievances based on assigned user, language
195195 // condition
196196 List <GrievanceDetails > grievances = grievanceDataRepo .findGrievancesByUserAndLanguage (
197- moveToBinRequest .getAssignedUserID (), moveToBinRequest .getPreferredLanguageName ());
197+ moveToBinRequest .getUserID (), moveToBinRequest .getPreferredLanguageName ());
198198
199199 if (grievances .isEmpty ()) {
200200 throw new Exception ("No grievances found for the given user, language, and condition." );
@@ -220,22 +220,22 @@ public String moveToBin(String request) throws Exception {
220220 int totalUnassigned = 0 ;
221221 for (GrievanceDetails grievance : grievancesToMove ) {
222222 int rowsAffected = grievanceDataRepo .unassignGrievance (grievance .getGrievanceId (),
223- moveToBinRequest .getAssignedUserID ());
223+ moveToBinRequest .getUserID ());
224224 if (rowsAffected > 0 ) {
225225 grievance .setIsAllocated (false ); // Assuming there's a setter for this flag
226226 int updateFlagResult = grievanceDataRepo .updateGrievanceAllocationStatus (grievance .getGrievanceId (),
227227 false );
228228 if (updateFlagResult > 0 ) {
229229 totalUnassigned ++;
230230 logger .debug ("Unassigned grievance ID {} from user ID {}" , grievance .getGrievanceId (),
231- moveToBinRequest .getAssignedUserID ());
231+ moveToBinRequest .getUserID ());
232232 } else {
233233 logger .error ("Failed to unassign grievance ID {} from user ID {}" , grievance .getGrievanceId (),
234- moveToBinRequest .getAssignedUserID ());
234+ moveToBinRequest .getUserID ());
235235 }
236236 } else {
237237 logger .error ("Failed to unassign grievance ID {} from user ID {}" , grievance .getGrievanceId (),
238- moveToBinRequest .getAssignedUserID ());
238+ moveToBinRequest .getUserID ());
239239 }
240240 }
241241
@@ -326,4 +326,65 @@ public List<GrievanceWorklistDTO> getFormattedGrievanceData(String request) thro
326326 return formattedGrievances ;
327327
328328 }
329+
330+ /**
331+ * Saves the complaint resolution and remarks for a grievance.
332+ *
333+ * @param request JSON string containing complaint resolution details
334+ * @return Success message if the update is successful
335+ */
336+
337+ @ Transactional
338+ public String saveComplaintResolution (String request ) throws Exception {
339+ // Parse the request JSON into a GrievanceDetails object
340+ GrievanceDetails grievanceRequest = InputMapper .gson ().fromJson (request , GrievanceDetails .class );
341+
342+ if (grievanceRequest .getComplaintID () == null || grievanceRequest .getComplaintID ().trim ().isEmpty ()) {
343+ throw new IllegalArgumentException ("ComplaintID is required" );
344+ }
345+ if (grievanceRequest .getComplaintResolution () == null || grievanceRequest .getComplaintResolution ().trim ().isEmpty ()) {
346+ throw new IllegalArgumentException ("ComplaintResolution is required" );
347+ }
348+ if (grievanceRequest .getBeneficiaryRegID () == null ) {
349+ throw new IllegalArgumentException ("BeneficiaryRegID is required" );
350+ }
351+ if (grievanceRequest .getProviderServiceMapID () == null ) {
352+ throw new IllegalArgumentException ("ProviderServiceMapID is required" );
353+ }
354+ if (grievanceRequest .getUserID () == null ) {
355+ throw new IllegalArgumentException ("AssignedUserID is required" );
356+ }
357+ if (grievanceRequest .getCreatedBy () == null ) {
358+ throw new IllegalArgumentException ("CreatedBy is required" );
359+ }
360+ // Extract values from the request
361+ String complaintID = grievanceRequest .getComplaintID ();
362+ String complaintResolution = grievanceRequest .getComplaintResolution ();
363+ String remarks = grievanceRequest .getRemarks ();
364+ Long beneficiaryRegID = grievanceRequest .getBeneficiaryRegID ();
365+ Integer providerServiceMapID = grievanceRequest .getProviderServiceMapID ();
366+ Integer userID = grievanceRequest .getUserID ();
367+ String createdBy = grievanceRequest .getCreatedBy ();
368+
369+
370+ String modifiedBy = createdBy ;
371+ int updateCount = 0 ;
372+ if (remarks == null ) {
373+ updateCount = grievanceDataRepo .updateComplaintResolution (complaintResolution , modifiedBy , complaintID ,
374+ beneficiaryRegID , providerServiceMapID , userID );
375+ logger .debug ("updated complaint resolution without remarks for complaint id: {}" , complaintID );
376+ }
377+ else {
378+ updateCount = grievanceDataRepo .updateComplaintResolution (complaintResolution , remarks , modifiedBy , complaintID ,
379+ beneficiaryRegID , providerServiceMapID , userID );
380+ logger .debug ("updated complaint resolution with remarks for complaint id: {}" , complaintID );
381+
382+ }
383+ if (updateCount > 0 ) {
384+ return "Complaint resolution updated successfully" ;
385+ } else {
386+ throw new Exception ("Failed to update complaint resolution" );
387+ }
388+ }
389+
329390}
0 commit comments