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.

377 lines
20 KiB

2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. package in.gov.chennaicorporation.gccoffice.pensioner.service;
  2. import java.util.List;
  3. import java.util.Map;
  4. import javax.sql.DataSource;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.beans.factory.annotation.Qualifier;
  7. import org.springframework.jdbc.core.JdbcTemplate;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import org.springframework.web.client.RestTemplate;
  11. import com.fasterxml.jackson.databind.ObjectMapper;
  12. import in.gov.chennaicorporation.gccoffice.configuration.AppConfig;
  13. @Service
  14. @Transactional
  15. public class PensionReceivedService {
  16. @Autowired
  17. private JdbcTemplate jdbcTemplate;
  18. private RestTemplate restTemplate;
  19. private ObjectMapper objectMapper;
  20. @Autowired
  21. private AppConfig appconfig;
  22. public PensionReceivedService(RestTemplate restTemplate, ObjectMapper objectMapper) {
  23. this.restTemplate = restTemplate;
  24. this.objectMapper = objectMapper;
  25. }
  26. @Autowired
  27. public void setDataSource(@Qualifier("mysqlPensionerDataSource") DataSource dataSource) {
  28. this.jdbcTemplate = new JdbcTemplate(dataSource);
  29. }
  30. public List<Map<String, Object>> fetchReceivedDepartmentEmpfiles(Integer deptId,Integer file_cat) {
  31. String query = "SELECT * " +
  32. "FROM pensioner_details " +
  33. "WHERE dept_id=? AND file_category=? AND (file_status=5 OR file_status=6) AND is_closed=0";
  34. return jdbcTemplate.queryForList(query,deptId,file_cat);
  35. }
  36. public List<Map<String, Object>> fetchZonebenefitsById(String tempId) {
  37. String query = "SELECT * " +
  38. "FROM zone_benefits " +
  39. "WHERE temp_id=?";
  40. return jdbcTemplate.queryForList(query,tempId);
  41. }
  42. public List<Map<String, Object>> fetchPensionbenefitsById(String tempId) {
  43. String query = "SELECT * " +
  44. "FROM pension_benefits " +
  45. "WHERE temp_id=?";
  46. return jdbcTemplate.queryForList(query,tempId);
  47. }
  48. public boolean updateEntryDetails(Map<String, Object> requestData) {
  49. try {
  50. String empNo = (String) requestData.get("empNo");
  51. String tempId = (String) requestData.get("tempId");
  52. String dateToAudit = (String) requestData.get("file_moved_date");
  53. String filemovedby = (String) requestData.get("filemovedby");
  54. String remarks = (String) requestData.get("remarks");
  55. String dept_Id = (String) requestData.get("deptId");
  56. int deptId = (dept_Id != null && !dept_Id.isEmpty()) ? Integer.parseInt(dept_Id) : 0;
  57. int filestatus = 7;
  58. String gpf = (String) requestData.get("gpf");
  59. String private_affairs = (String) requestData.get("private_affairs");
  60. String spfgs = (String) requestData.get("spfgs");
  61. String recovery_emp = (String) requestData.get("recovery_emp");
  62. String dcrg = (String) requestData.get("dcrg");
  63. String gpfAmount = requestData.get("gpfAmount") != null ? requestData.get("gpfAmount").toString() : null;
  64. String private_affairs_amount = requestData.get("private_affairs_amount") != null ? requestData.get("private_affairs_amount").toString() : null;
  65. String spfgs_amount = requestData.get("spfgs_amount") != null ? requestData.get("spfgs_amount").toString() : null;
  66. boolean check = checkTempIdInZoneBenefits(tempId);
  67. // Update file_status in pensioner_details
  68. String updateQuery = "UPDATE pensioner_details SET file_status = ?, file_moved_date = ?, remarks = ?, updated_date = CURRENT_TIMESTAMP WHERE temp_id = ?";
  69. int rowsUpdated = jdbcTemplate.update(updateQuery, filestatus, dateToAudit, remarks, tempId);
  70. System.out.println("Rows updated in pensioner_details: " + rowsUpdated);
  71. if (rowsUpdated > 0) {
  72. // Insert into file movement history
  73. String historyQuery = "INSERT INTO file_movement_history (emp_no, file_moved_date, file_status, file_moved_by, remarks, temp_id) VALUES (?, ?, ?, ?, ?, ?)";
  74. int rowsUpdated1 = jdbcTemplate.update(historyQuery, empNo, dateToAudit, filestatus, filemovedby, remarks, tempId);
  75. System.out.println("Rows inserted in file_movement_history: " + rowsUpdated1);
  76. if (rowsUpdated1 > 0) {
  77. if (check) {
  78. // Update zone benefits
  79. String updateQuery1 = "UPDATE zone_benefits SET gpf = ?, gpf_amount = ?, spfgs = ?, spfgs_amount = ?, dcrg = ?, private_affairs = ?, private_affairs_amount = ?, recovery_emp = ?, updated_date = CURRENT_TIMESTAMP WHERE temp_id = ?";
  80. int rowsUpdated3 = jdbcTemplate.update(updateQuery1, gpf, gpfAmount, spfgs, spfgs_amount, dcrg, private_affairs, private_affairs_amount, recovery_emp, tempId);
  81. System.out.println("Rows updated in zone_benefits: " + rowsUpdated3);
  82. } else {
  83. // Insert into zone benefits
  84. String benefitQuery = "INSERT INTO zone_benefits (emp_no, temp_id, gpf, gpf_amount, spfgs, spfgs_amount, dcrg, private_affairs, private_affairs_amount, recovery_emp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  85. int rowsUpdated2 = jdbcTemplate.update(benefitQuery, empNo, tempId, gpf, gpfAmount, spfgs, spfgs_amount, dcrg, private_affairs, private_affairs_amount, recovery_emp);
  86. System.out.println("Rows inserted in zone_benefits: " + rowsUpdated2);
  87. }
  88. return true;
  89. } else {
  90. System.out.println("Failed to insert into file_movement_history");
  91. return false;
  92. }
  93. } else {
  94. System.out.println("Failed to update pensioner_details");
  95. return false;
  96. }
  97. } catch (Exception e) {
  98. System.err.println("Exception in updateEntryDetails: " + e.getMessage());
  99. return false;
  100. }
  101. }
  102. public boolean saveHistory(List<Map<String, Object>> empDetails, List<Map<String, Object>> zoneBenefits, String fileMovedBy) {
  103. try {
  104. // Batch update for employee details
  105. int file_Cat=0;
  106. if (!empDetails.isEmpty()) {
  107. Map<String, Object> firstEmployeeDetails = empDetails.get(0);
  108. Object fileCatObj = firstEmployeeDetails.get("file_category");
  109. if (fileCatObj != null) {
  110. try {
  111. file_Cat = Integer.parseInt(fileCatObj.toString());
  112. System.out.println("Parsed file_category: " + file_Cat);
  113. } catch (NumberFormatException e) {
  114. System.err.println("Failed to parse file_category: " + fileCatObj);
  115. }
  116. } else {
  117. System.out.println("file_category is null in emp_details.");
  118. }
  119. } else {
  120. System.out.println("emp_details is empty.");
  121. }
  122. if(file_Cat==1) {
  123. String empInsertQuery =
  124. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, type_of_retirement, " +
  125. "retirement_date, retirement_class, file_moved_date, remarks, file_category, file_status, " +
  126. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id) " +
  127. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  128. jdbcTemplate.batchUpdate(empInsertQuery, empDetails, empDetails.size(), (ps, emp) -> {
  129. ps.setString(1, emp.get("emp_no").toString());
  130. ps.setString(2, emp.get("emp_name").toString());
  131. ps.setString(3, emp.get("dept_name").toString());
  132. ps.setString(4, emp.get("designation").toString());
  133. ps.setString(5, emp.get("type_of_retirement").toString());
  134. ps.setString(6, emp.get("retirement_date").toString());
  135. ps.setString(7, emp.get("retirement_class").toString());
  136. ps.setString(8, emp.get("file_moved_date").toString());
  137. ps.setString(9, emp.get("remarks").toString());
  138. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  139. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  140. ps.setString(12, emp.get("file_entry_type").toString());
  141. ps.setString(13, fileMovedBy);
  142. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  143. ps.setString(15, emp.get("file_category_name").toString());
  144. ps.setString(16, emp.get("temp_id").toString());
  145. });
  146. System.out.println("rows inserted in pd history for retirement");
  147. }
  148. if(file_Cat==2)
  149. {
  150. String empInsertQuery1 =
  151. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, service_death, " +
  152. "relationship_deceased, sanctioned_gis_amount, file_moved_date, remarks, file_category, file_status, " +
  153. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending) " +
  154. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?)";
  155. jdbcTemplate.batchUpdate(empInsertQuery1, empDetails, empDetails.size(), (ps, emp) -> {
  156. ps.setString(1, emp.get("emp_no").toString());
  157. ps.setString(2, emp.get("emp_name").toString());
  158. ps.setString(3, emp.get("dept_name").toString());
  159. ps.setString(4, emp.get("designation").toString());
  160. ps.setString(5, emp.get("service_death").toString());
  161. ps.setString(6, emp.get("relationship_deceased").toString());
  162. ps.setString(7, emp.get("sanctioned_gis_amount").toString());
  163. ps.setString(8, emp.get("file_moved_date").toString());
  164. ps.setString(9, emp.get("remarks").toString());
  165. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  166. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  167. ps.setString(12, emp.get("file_entry_type").toString());
  168. ps.setString(13, fileMovedBy);
  169. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  170. ps.setString(15, emp.get("file_category_name").toString());
  171. ps.setString(16, emp.get("temp_id").toString());
  172. ps.setString(17, emp.get("pending_duration").toString());
  173. ps.setString(18, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  174. });
  175. System.out.println("rows inserted in pd history for family Pension");
  176. }
  177. if(file_Cat==3)
  178. {
  179. String empInsertQuery2 =
  180. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation,type_of_retirement, " +
  181. "file_moved_date, remarks, file_category, file_status, " +
  182. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending,retirement_class,retirement_date) " +
  183. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?)";
  184. jdbcTemplate.batchUpdate(empInsertQuery2, empDetails, empDetails.size(), (ps, emp) -> {
  185. ps.setString(1, emp.get("emp_no").toString());
  186. ps.setString(2, emp.get("emp_name").toString());
  187. ps.setString(3, emp.get("dept_name").toString());
  188. ps.setString(4, emp.get("designation").toString());
  189. ps.setString(5, emp.get("type_of_retirement").toString());
  190. ps.setString(6, emp.get("file_moved_date").toString());
  191. ps.setString(7, emp.get("remarks").toString());
  192. ps.setInt(8, Integer.parseInt(emp.get("file_category").toString()));
  193. ps.setInt(9, Integer.parseInt(emp.get("file_status").toString()));
  194. ps.setString(10, emp.get("file_entry_type").toString());
  195. ps.setString(11, fileMovedBy);
  196. ps.setInt(12, Integer.parseInt(emp.get("dept_id").toString()));
  197. ps.setString(13, emp.get("file_category_name").toString());
  198. ps.setString(14, emp.get("temp_id").toString());
  199. ps.setString(15, emp.get("pending_duration").toString());
  200. ps.setString(16, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  201. ps.setString(17, emp.get("retirement_class").toString());
  202. ps.setString(18, emp.get("retirement_date").toString());
  203. });
  204. System.out.println("rows inserted in pd history for pendency");
  205. }
  206. // Batch update for zone benefits
  207. String zoneInsertQuery =
  208. "INSERT INTO zone_benefits_history (emp_no, temp_id, gpf, gpf_amount, spfgs, spfgs_amount, dcrg, " +
  209. "private_affairs, private_affairs_amount, recovery_emp, file_moved_by) " +
  210. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  211. jdbcTemplate.batchUpdate(zoneInsertQuery, zoneBenefits, zoneBenefits.size(), (ps, zone) -> {
  212. ps.setString(1, zone.get("emp_no").toString());
  213. ps.setString(2, zone.get("temp_id").toString());
  214. ps.setString(3, zone.get("gpf").toString());
  215. ps.setString(4, zone.get("gpf_amount") != null ? zone.get("gpf_amount").toString() : null);
  216. ps.setString(5, zone.get("spfgs").toString());
  217. ps.setString(6, zone.get("spfgs_amount") != null ? zone.get("spfgs_amount").toString() : null);
  218. ps.setString(7, zone.get("dcrg").toString());
  219. ps.setString(8, zone.get("private_affairs").toString());
  220. ps.setString(9, zone.get("private_affairs_amount") != null ? zone.get("private_affairs_amount").toString() : null);
  221. ps.setString(10, zone.get("recovery_emp") != null ? zone.get("recovery_emp").toString() : null);
  222. ps.setString(11, fileMovedBy);
  223. });
  224. System.out.println("rows inserted in zone history for family Pension");
  225. return true; // All insertions succeeded
  226. } catch (Exception e) {
  227. e.printStackTrace();
  228. return false; // Return false in case of any exception
  229. }
  230. }
  231. /*
  232. */
  233. public boolean checkTempIdInZoneBenefits(String tempId) {
  234. String query = "SELECT EXISTS (SELECT 1 FROM zone_benefits WHERE temp_id = ?)";
  235. return Boolean.TRUE.equals(jdbcTemplate.queryForObject(query, Boolean.class, tempId));
  236. }
  237. //gis
  238. public boolean updateEntryGisDetails(Map<String, Object> requestData) {
  239. // TODO Auto-generated method stub
  240. String empNo = (String) requestData.get("empNo");
  241. String tempId = (String) requestData.get("tempId");
  242. String dateToAudit = (String) requestData.get("dateToAudit");
  243. String filemovedby =(String)requestData.get("filemovedby");
  244. String remarks = (String) requestData.get("remarks");
  245. String dept_Id = (String) requestData.get("deptId");
  246. String sanctional_gis_date = (String) requestData.get("sanctional_gis_date");
  247. String sanctional_gis_amount = (String) requestData.get("sanctional_gis_amount");
  248. String lic_date = (String) requestData.get("lic_date");
  249. int deptId = Integer.parseInt(dept_Id);
  250. int filestatus = 11;
  251. String fileentrytype = "FILE_COMPLETED";
  252. String updateQuery = "UPDATE pensioner_details SET file_status = ?, file_moved_date = ?, remarks = ?, sanctional_gis_date = ?, sanctional_gis_amount = ?, lic_date = ?,file_entry_type=? ,updated_date = CURRENT_TIMESTAMP WHERE temp_id = ? LIMIT 1";
  253. int rowsUpdated = jdbcTemplate.update(updateQuery, filestatus, dateToAudit, remarks, sanctional_gis_date, sanctional_gis_amount, lic_date,fileentrytype ,tempId);
  254. //int rowsUpdated = jdbcTemplate.update(updateQuery,filestatus,dateToAudit, remarks,sanctional_gis_date,sanctional_gis_amount,lic_date,tempId);
  255. System.out.println(dateToAudit);
  256. System.out.println(sanctional_gis_date);
  257. System.out.println(sanctional_gis_amount);
  258. System.out.println(lic_date);
  259. System.out.println("Rows inserted in pd:"+rowsUpdated);
  260. if(rowsUpdated>0)
  261. {
  262. // Optional: Insert into file movement history for auditing
  263. String historyQuery = "INSERT INTO file_movement_history (emp_no, file_moved_date, file_status, file_moved_by, remarks,temp_id) VALUES (?,?, ?, ?, ?, ?)";
  264. int rowsUpdated1=jdbcTemplate.update(historyQuery, empNo, dateToAudit, filestatus, filemovedby, remarks,tempId);
  265. System.out.println("Rows inserted in fmh:"+rowsUpdated1);
  266. return true;
  267. }
  268. else {
  269. return false;
  270. }
  271. }
  272. public boolean savehistoryGis(List<Map<String, Object>> emp_details,String filemovedby) {
  273. try {
  274. // Loop through the list of employee details
  275. for (Map<String, Object> emp : emp_details) {
  276. // Extract individual fields from the map
  277. String empNo = emp.get("emp_no").toString();
  278. String empName = emp.get("emp_name").toString();
  279. String deptName = emp.get("dept_name").toString();
  280. String designation = emp.get("designation").toString();
  281. String fileCategoryName = emp.get("file_category_name").toString();
  282. String fileMovedDate = emp.get("file_moved_date").toString();
  283. String remarks = emp.get("remarks").toString();
  284. int fileStatus = Integer.parseInt(emp.get("file_status").toString());
  285. String fileEntryType = emp.get("file_entry_type").toString();
  286. int file_category = Integer.parseInt(emp.get("file_category").toString());
  287. int dept_id = Integer.parseInt(emp.get("dept_id").toString());
  288. String sanctional_gis_date=emp.get("sanctional_gis_date").toString();
  289. String sanctional_gis_amount=emp.get("sanctional_gis_amount").toString();
  290. String lic_date=emp.get("lic_date").toString();
  291. String temp_id = emp.get("temp_id").toString();
  292. // Prepare the insert query
  293. String insertQuery = "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, file_moved_date, remarks, file_category, file_status, file_entry_type, file_moved_by, dept_id, file_category_name, temp_id, sanctional_gis_date, sanctional_gis_amount, lic_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  294. // Execute the query
  295. int rowsInserted = jdbcTemplate.update(insertQuery, empNo, empName, deptName,designation,fileMovedDate,remarks,file_category,fileStatus,fileEntryType,filemovedby,dept_id,fileCategoryName,temp_id,sanctional_gis_date,sanctional_gis_amount,lic_date);
  296. System.out.println("Rows inserted in pdh:"+rowsInserted);
  297. // Check if the insertion was successful
  298. if (rowsInserted <= 0) {
  299. return false; // Return false if any insertion fails
  300. }
  301. }
  302. return true; // Return true if all insertions succeed
  303. } catch (Exception e) {
  304. e.printStackTrace();
  305. return false; // Return false in case of any exception
  306. }
  307. }
  308. }