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.

334 lines
13 KiB

2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. package in.gov.chennaicorporation.gccoffice.pensioner.controller;
  2. import java.time.LocalDate;
  3. import java.time.format.DateTimeFormatter;
  4. import java.time.format.DateTimeParseException;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.Set;
  9. import java.util.stream.Collectors;
  10. import org.apache.xmlbeans.impl.xb.xsdschema.Public;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.http.HttpStatus;
  13. import org.springframework.http.ResponseEntity;
  14. import org.springframework.web.bind.annotation.GetMapping;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RequestParam;
  19. import org.springframework.web.bind.annotation.RestController;
  20. import in.gov.chennaicorporation.gccoffice.pensioner.service.NewEntryService;
  21. import in.gov.chennaicorporation.gccoffice.service.LoginUserInfo;
  22. @RequestMapping("gcc/api/department/newentry")
  23. @RestController
  24. public class NewEntryAPIController {
  25. @Autowired
  26. private NewEntryService newEntryService;
  27. @Autowired
  28. public NewEntryAPIController(NewEntryService newEntryService) {
  29. this.newEntryService = newEntryService;
  30. }
  31. @GetMapping("/retirementdetails")
  32. public Map<String, Object> getRetriedDetails(
  33. @RequestParam(value = "deptId", required = false) Integer deptId,
  34. @RequestParam(value = "file_category", required = false) Integer file_category,
  35. @RequestParam(value = "fromDate", required = false) String fromDate1,
  36. @RequestParam(value = "toDate", required = false) String toDate1)
  37. {
  38. Map<String, Object> response = new HashMap<>();
  39. if (deptId == null) {
  40. response.put("status", "deptid");
  41. response.put("message", "Department Id is null");
  42. return response;
  43. }
  44. System.out.println("Received deptId: " + deptId);
  45. System.out.println("Received fromDate: " + fromDate1);
  46. System.out.println("Received toDate: " + toDate1);
  47. LocalDate fromDate;
  48. LocalDate toDate ;
  49. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd-MM-yyyy");
  50. LocalDate now = LocalDate.now();
  51. int currentYear = now.getYear();
  52. if(fromDate1.isEmpty()) {
  53. fromDate = LocalDate.of(currentYear, 4, 1);
  54. }
  55. if(toDate1.isEmpty()) {
  56. toDate = LocalDate.of(currentYear + 1, 3, 31); // March 31 of the next year
  57. }
  58. if(fromDate1.isEmpty() && toDate1.isEmpty()) {
  59. fromDate = LocalDate.of(currentYear, 4, 1); // April 1 of the current year
  60. toDate = LocalDate.of(currentYear + 1, 3, 31); // March 31 of the next year
  61. }
  62. else {
  63. try {
  64. // Check if the input date is in yyyy-MM-dd format
  65. if (fromDate1.matches("\\d{4}-\\d{2}-\\d{2}") && toDate1.matches("\\d{4}-\\d{2}-\\d{2}")) {
  66. // Parse from yyyy-MM-dd format
  67. fromDate = LocalDate.parse(fromDate1);
  68. toDate = LocalDate.parse(toDate1);
  69. } else {
  70. // Parse from dd-MM-yyyy format
  71. DateTimeFormatter formatter1 = DateTimeFormatter.ofPattern("dd-MM-yyyy");
  72. fromDate = LocalDate.parse(fromDate1, formatter1);
  73. toDate = LocalDate.parse(toDate1, formatter1);
  74. }
  75. } catch (DateTimeParseException e) {
  76. response.put("status", "error");
  77. response.put("message", "Invalid date format. Expected format: dd-MM-yyyy");
  78. return response;
  79. }
  80. }
  81. // Format the dates if needed (e.g., for logging or passing in a specific format)
  82. String formattedFromDate = fromDate.format(formatter);
  83. String formattedToDate = toDate.format(formatter);
  84. System.out.println("Received deptId after date: " + deptId);
  85. System.out.println("Fetching data from " + formattedFromDate + " to " + formattedToDate);
  86. Map<String, Object> datalist = newEntryService.fetchEmplyeeDetails(formattedFromDate, formattedToDate, deptId);
  87. System.out.println("datalist="+datalist);
  88. List<Map<String, Object>> emps= newEntryService.getRegisteredEmps(deptId,file_category);
  89. // Format the dates for frontend in "yyyy-MM-dd"
  90. DateTimeFormatter frontendFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  91. String frontendFromDate = fromDate.format(frontendFormatter);
  92. String frontendToDate = toDate.format(frontendFormatter);
  93. response.put("fromDate", frontendFromDate);
  94. response.put("toDate", frontendToDate);
  95. // Extract emp_no values from emps
  96. Set<String> empNos = emps.stream()
  97. .map(emp -> (String) emp.get("emp_no"))
  98. .collect(Collectors.toSet());
  99. //System.out.println("rrrrrrrrrrrr");
  100. if (datalist.containsKey("list") && datalist.get("list") instanceof List) {
  101. List<?> list = (List<?>) datalist.get("list");
  102. if (list.isEmpty()) {
  103. System.out.println("inside>>>>>");
  104. response.put("status", "nodata");
  105. response.put("message", "No data available for the selected date range");
  106. }
  107. else {
  108. //System.out.println("ttttttttttttt");
  109. // Filter the datalist "list" to exclude matching EMPLOYEE_CODE values
  110. List<Map<String, Object>> filteredList = ((List<Map<String, Object>>) datalist.get("list")).stream()
  111. .filter(employee -> !empNos.contains(employee.get("EMPLOYEE_CODE")))
  112. .collect(Collectors.toList());
  113. if (filteredList.isEmpty()) {
  114. response.put("status", "nodata");
  115. response.put("message", "No data available for the selected date range");
  116. } else {
  117. datalist.put("list", filteredList);
  118. response.put("status", "success");
  119. response.put("details", datalist);
  120. System.out.println("Received datalist:"+datalist);
  121. System.out.println("Received filteredList:"+filteredList);
  122. }
  123. }
  124. }
  125. return response;
  126. }
  127. @GetMapping("/employeedetails")
  128. public ResponseEntity<Map<String, Object>> getEmployeedetailsbyCode(
  129. @RequestParam String empCode) {
  130. Map<String, Object> datalistbycode = newEntryService.fetchEmplyeeDetailsbyCode(empCode);
  131. return ResponseEntity.ok(datalistbycode);
  132. }
  133. @PostMapping("/saveEmployeeDetails")
  134. public ResponseEntity<String> saveRetirementEmployeeDetails(@RequestBody Map<String, Object> requestData) {
  135. try {
  136. // Call service method to save details
  137. boolean isSaved = newEntryService.saveRetirementEmployeeDetails(requestData);
  138. if (isSaved) {
  139. return ResponseEntity.ok("File moved to Audit successfully!");
  140. } else {
  141. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  142. }
  143. } catch (Exception e) {
  144. e.printStackTrace();
  145. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  146. }
  147. }
  148. //family pension
  149. @PostMapping("/saveFamilyPensionDetails")
  150. public ResponseEntity<String> saveFamilyPensionDetails(@RequestBody Map<String, Object> requestData) {
  151. try {
  152. // Call service method to save details
  153. boolean isSaved = newEntryService.saveFamilyPensionDetails(requestData);
  154. if (isSaved) {
  155. return ResponseEntity.ok("File moved to Audit successfully!");
  156. } else {
  157. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  158. }
  159. } catch (Exception e) {
  160. e.printStackTrace();
  161. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  162. }
  163. }
  164. //pendency api
  165. @PostMapping("/savePendecnyDetails")
  166. public ResponseEntity<String> savePendecnyDetails(@RequestBody Map<String, Object> requestData) {
  167. try {
  168. // Call service method to save detailstypeOfRetirement
  169. boolean isSaved = newEntryService.savePendencyDetails(requestData);
  170. if (isSaved) {
  171. return ResponseEntity.ok("File moved to Audit successfully!");
  172. } else {
  173. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  174. }
  175. } catch (Exception e) {
  176. e.printStackTrace();
  177. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  178. }
  179. }
  180. //gis saving api controller
  181. @PostMapping("/saveEmployeeDetailsGis")
  182. public ResponseEntity<String> saveEmployeeDetailsingis(@RequestBody Map<String, Object> requestData) {
  183. try {
  184. // Extract data from the request body
  185. // Call service method to save details
  186. boolean isSaved = newEntryService.savenewEntryDetailsGis(requestData);
  187. if (isSaved) {
  188. return ResponseEntity.ok("File moved to Pension successfully!");
  189. } else {
  190. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  191. }
  192. } catch (Exception e) {
  193. e.printStackTrace();
  194. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  195. }
  196. }
  197. //provsionalretirement saving api controller
  198. @PostMapping("/saveEmployeeDetailsProvisionalretirement")
  199. public ResponseEntity<String> saveEmployeeDetailsProvisionalretirement(@RequestBody Map<String, Object> requestData) {
  200. try {
  201. // Extract data from the request body
  202. // Call service method to save details
  203. boolean isSaved = newEntryService.savenewEntryDetailsProvisionalretirement(requestData);
  204. if (isSaved) {
  205. return ResponseEntity.ok("File moved to Pension successfully!");
  206. } else {
  207. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  208. }
  209. } catch (Exception e) {
  210. e.printStackTrace();
  211. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  212. }
  213. }
  214. //cps saving api controller
  215. @PostMapping("/saveEmployeeDetailsPensionScheme")
  216. public ResponseEntity<String> saveEmployeeDetailspensionscheme(@RequestBody Map<String, Object> requestData) {
  217. try {
  218. // Extract data from the request body
  219. // Call service method to save details
  220. boolean isSaved = newEntryService.savenewEntryDetailspensionscheme(requestData);
  221. if (isSaved) {
  222. return ResponseEntity.ok("File Submitted successfully!");
  223. } else {
  224. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  225. }
  226. } catch (Exception e) {
  227. e.printStackTrace();
  228. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  229. }
  230. }
  231. @GetMapping("/exists")
  232. public ResponseEntity<Map<String, Boolean>> checkEmployeeExists(@RequestParam String empCode) {
  233. boolean exists = newEntryService.doesEmployeeExist(empCode);
  234. Map<String, Boolean> response = new HashMap<>();
  235. response.put("exists", exists);
  236. return ResponseEntity.ok(response);
  237. }
  238. @GetMapping("/cpsexists")
  239. public ResponseEntity<Map<String, Boolean>> checkEmployeeExistsCps(@RequestParam String empCode) {
  240. boolean exists = newEntryService.doesEmployeeExistgis(empCode);
  241. Map<String, Boolean> response = new HashMap<>();
  242. response.put("exists", exists);
  243. return ResponseEntity.ok(response);
  244. }
  245. @GetMapping("/prexists")
  246. public ResponseEntity<Map<String, Boolean>> checkEmployeeExistsRpr(@RequestParam String empCode) {
  247. boolean exists = newEntryService.doesEmployeeExistRPR(empCode);
  248. Map<String, Boolean> response = new HashMap<>();
  249. response.put("exists", exists);
  250. return ResponseEntity.ok(response);
  251. }
  252. @GetMapping("/familypensionexists")
  253. public ResponseEntity<Map<String, Boolean>> checkEmployeeExistsfp(@RequestParam String empCode) {
  254. boolean exists = newEntryService.doesEmployeeExistfp(empCode);
  255. Map<String, Boolean> response = new HashMap<>();
  256. response.put("exists", exists);
  257. return ResponseEntity.ok(response);
  258. }
  259. }