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.

333 lines
13 KiB

2 years ago
​
​
2 years ago
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
2 years ago
​
​
​
​
​
​
​
​
2 years ago
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
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<String> emps= newEntryService.getRegisteredEmps(deptId);
  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().map(emp -> (String) emp.get("emp_no")).collect(Collectors.toSet());
  97. //System.out.println("rrrrrrrrrrrr");
  98. if (datalist.containsKey("list") && datalist.get("list") instanceof List) {
  99. List<?> list = (List<?>) datalist.get("list");
  100. if (list.isEmpty()) {
  101. System.out.println("inside>>>>>");
  102. response.put("status", "nodata");
  103. response.put("message", "No data available for the selected date range");
  104. }
  105. else {
  106. //System.out.println("ttttttttttttt");
  107. // Filter the datalist "list" to exclude matching EMPLOYEE_CODE values
  108. List<Map<String, Object>> filteredList = ((List<Map<String, Object>>) datalist.get("list")).stream()
  109. .filter(employee -> !emps.contains(employee.get("EMPLOYEE_CODE")))
  110. .collect(Collectors.toList());
  111. if (filteredList.isEmpty()) {
  112. response.put("status", "nodata");
  113. response.put("message", "No data available for the selected date range");
  114. } else {
  115. datalist.put("list", filteredList);
  116. response.put("status", "success");
  117. response.put("details", datalist);
  118. System.out.println("Received datalist:"+datalist);
  119. System.out.println("Received filteredList:"+filteredList);
  120. }
  121. }
  122. }
  123. return response;
  124. }
  125. @GetMapping("/employeedetails")
  126. public ResponseEntity<Map<String, Object>> getEmployeedetailsbyCode(
  127. @RequestParam String empCode) {
  128. Map<String, Object> datalistbycode = newEntryService.fetchEmplyeeDetailsbyCode(empCode);
  129. return ResponseEntity.ok(datalistbycode);
  130. }
  131. @PostMapping("/saveEmployeeDetails")
  132. public ResponseEntity<String> saveRetirementEmployeeDetails(@RequestBody Map<String, Object> requestData) {
  133. try {
  134. // Call service method to save details
  135. boolean isSaved = newEntryService.saveRetirementEmployeeDetails(requestData);
  136. if (isSaved) {
  137. return ResponseEntity.ok("File moved to Audit successfully!");
  138. } else {
  139. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  140. }
  141. } catch (Exception e) {
  142. e.printStackTrace();
  143. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  144. }
  145. }
  146. //family pension
  147. @PostMapping("/saveFamilyPensionDetails")
  148. public ResponseEntity<String> saveFamilyPensionDetails(@RequestBody Map<String, Object> requestData) {
  149. try {
  150. // Call service method to save details
  151. boolean isSaved = newEntryService.saveFamilyPensionDetails(requestData);
  152. if (isSaved) {
  153. return ResponseEntity.ok("File moved to Audit successfully!");
  154. } else {
  155. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  156. }
  157. } catch (Exception e) {
  158. e.printStackTrace();
  159. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  160. }
  161. }
  162. //pendency api
  163. @PostMapping("/savePendecnyDetails")
  164. public ResponseEntity<String> savePendecnyDetails(@RequestBody Map<String, Object> requestData) {
  165. try {
  166. // Call service method to save detailstypeOfRetirement
  167. boolean isSaved = newEntryService.savePendencyDetails(requestData);
  168. if (isSaved) {
  169. return ResponseEntity.ok("File moved to Audit successfully!");
  170. } else {
  171. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  172. }
  173. } catch (Exception e) {
  174. e.printStackTrace();
  175. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  176. }
  177. }
  178. //gis saving api controller
  179. @PostMapping("/saveEmployeeDetailsGis")
  180. public ResponseEntity<String> saveEmployeeDetailsingis(@RequestBody Map<String, Object> requestData) {
  181. try {
  182. // Extract data from the request body
  183. // Call service method to save details
  184. boolean isSaved = newEntryService.savenewEntryDetailsGis(requestData);
  185. if (isSaved) {
  186. return ResponseEntity.ok("File moved to Pension successfully!");
  187. } else {
  188. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  189. }
  190. } catch (Exception e) {
  191. e.printStackTrace();
  192. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  193. }
  194. }
  195. //provsionalretirement saving api controller
  196. @PostMapping("/saveEmployeeDetailsProvisionalretirement")
  197. public ResponseEntity<String> saveEmployeeDetailsProvisionalretirement(@RequestBody Map<String, Object> requestData) {
  198. try {
  199. // Extract data from the request body
  200. // Call service method to save details
  201. boolean isSaved = newEntryService.savenewEntryDetailsProvisionalretirement(requestData);
  202. if (isSaved) {
  203. return ResponseEntity.ok("File moved to Pension successfully!");
  204. } else {
  205. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  206. }
  207. } catch (Exception e) {
  208. e.printStackTrace();
  209. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  210. }
  211. }
  212. //cps saving api controller
  213. @PostMapping("/saveEmployeeDetailsPensionScheme")
  214. public ResponseEntity<String> saveEmployeeDetailspensionscheme(@RequestBody Map<String, Object> requestData) {
  215. try {
  216. // Extract data from the request body
  217. // Call service method to save details
  218. boolean isSaved = newEntryService.savenewEntryDetailspensionscheme(requestData);
  219. if (isSaved) {
  220. return ResponseEntity.ok("File Submitted successfully!");
  221. } else {
  222. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to save details.");
  223. }
  224. } catch (Exception e) {
  225. e.printStackTrace();
  226. return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Error occurred while saving details.");
  227. }
  228. }
  229. @GetMapping("/exists")
  230. public ResponseEntity<Map<String, Boolean>> checkEmployeeExists(@RequestParam String empCode) {
  231. boolean exists = newEntryService.doesEmployeeExist(empCode);
  232. Map<String, Boolean> response = new HashMap<>();
  233. response.put("exists", exists);
  234. return ResponseEntity.ok(response);
  235. }
  236. @GetMapping("/cpsexists")
  237. public ResponseEntity<Map<String, Boolean>> checkEmployeeExistsCps(@RequestParam String empCode) {
  238. boolean exists = newEntryService.doesEmployeeExistgis(empCode);
  239. Map<String, Boolean> response = new HashMap<>();
  240. response.put("exists", exists);
  241. return ResponseEntity.ok(response);
  242. }
  243. @GetMapping("/prexists")
  244. public ResponseEntity<Map<String, Boolean>> checkEmployeeExistsRpr(@RequestParam String empCode) {
  245. boolean exists = newEntryService.doesEmployeeExistRPR(empCode);
  246. Map<String, Boolean> response = new HashMap<>();
  247. response.put("exists", exists);
  248. return ResponseEntity.ok(response);
  249. }
  250. @GetMapping("/familypensionexists")
  251. public ResponseEntity<Map<String, Boolean>> checkEmployeeExistsfp(@RequestParam String empCode) {
  252. boolean exists = newEntryService.doesEmployeeExistfp(empCode);
  253. Map<String, Boolean> response = new HashMap<>();
  254. response.put("exists", exists);
  255. return ResponseEntity.ok(response);
  256. }
  257. }