You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

100 lines
3.7 KiB

2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. package in.gov.chennaicorporation.gccoffice.callcenter.controller;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.util.List;
  5. import java.util.Map;
  6. import javax.servlet.http.HttpServletResponse;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.http.ResponseEntity;
  9. import org.springframework.web.bind.annotation.GetMapping;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.RequestParam;
  12. import org.springframework.web.bind.annotation.RestController;
  13. import in.gov.chennaicorporation.gccoffice.callcenter.service.CampaignReportService;
  14. @RestController
  15. @RequestMapping("gcc/api/campaignreport")
  16. public class CampaignReportAPIController {
  17. @Autowired
  18. private CampaignReportService campaignReportService;
  19. @GetMapping("/getcampaignData")
  20. public List<Map<String, Object>> getCampaignData(
  21. @RequestParam(required = false) String startDate,
  22. @RequestParam(required = false) String endDate) {
  23. List<Map<String, Object>> campaignData = campaignReportService.getCampaignData(startDate, endDate);
  24. //System.out.println("Campaign Data: " + campaignData); // Debugging log
  25. return campaignData;
  26. }
  27. @GetMapping("/getagentdatacount")
  28. public List<Map<String, Object>> getAgentwiseData(@RequestParam String campaign_id) {
  29. List<Map<String, Object>> agentData = campaignReportService.getAgentwiseData(campaign_id);
  30. //System.out.println("Agent Data: " + agentData);
  31. return agentData;
  32. }
  33. @GetMapping("/getReportCampaignid")
  34. public ResponseEntity<?> getAgentReportCampaignId(@RequestParam String campaign_id) {
  35. List<Map<String, Object>> agentData = campaignReportService.getAgentReportCampaignId(campaign_id);
  36. //System.out.println("Agent Data: " + agentData);
  37. return ResponseEntity.ok(agentData);
  38. }
  39. //question and answers report page api
  40. @GetMapping("/question-answers")
  41. public ResponseEntity<?> getQuestionAnswers(@RequestParam int campaign_id) {
  42. List<Map<String, Object>> response = campaignReportService.getQuestionAnswers(campaign_id);
  43. return ResponseEntity.ok(response);
  44. }
  45. // @GetMapping("/download-excel")
  46. // public void downloadFilteredCSV(
  47. // @RequestParam int categoryId,
  48. // @RequestParam int campaignId,
  49. //
  50. //
  51. //
  52. // HttpServletResponse response) throws IOException {
  53. //
  54. // // Set response headers
  55. // response.setContentType("text/csv");
  56. // response.setHeader("Content-Disposition", "attachment; filename=filtered_data.csv");
  57. //
  58. // // Generate CSV and write to response
  59. // PrintWriter writer = response.getWriter();
  60. // campaignReportService.generateCSV(categoryId, campaignId, writer);
  61. // writer.flush();
  62. // writer.close();
  63. // }
  64. @GetMapping("/download-excel")
  65. public void downloadFilteredCSV(
  66. @RequestParam int categoryId,
  67. @RequestParam int campaignId,
  68. HttpServletResponse response) throws IOException {
  69. String filename = campaignReportService.getCampaignName(campaignId);
  70. // Format campaign name for file safety (remove spaces/special characters)
  71. //String safeCampaignName = filename.replaceAll("[^a-zA-Z0-9]", "_");
  72. // Set response headers
  73. response.setContentType("text/csv");
  74. response.setHeader("Content-Disposition", "attachment; filename=" + filename + ".csv");
  75. // Generate CSV and write to response
  76. PrintWriter writer = response.getWriter();
  77. campaignReportService.generateCSV(categoryId, campaignId, writer);
  78. writer.flush();
  79. writer.close();
  80. }
  81. }