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.

644 lines
35 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.dao.DataAccessException;
  8. import org.springframework.jdbc.core.JdbcTemplate;
  9. import org.springframework.stereotype.Service;
  10. import org.springframework.transaction.annotation.Transactional;
  11. import org.springframework.web.client.RestTemplate;
  12. import com.fasterxml.jackson.databind.ObjectMapper;
  13. import in.gov.chennaicorporation.gccoffice.configuration.AppConfig;
  14. @Service
  15. public class DepartmentReceivedService {
  16. @Autowired
  17. private JdbcTemplate jdbcTemplate;
  18. private RestTemplate restTemplate;
  19. private ObjectMapper objectMapper;
  20. @Autowired
  21. private AppConfig appconfig;
  22. public DepartmentReceivedService(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>> fetchPensionReceivedEmpfiles(Integer file_cat) {
  31. String query = "SELECT * " +
  32. "FROM pensioner_details " +
  33. "WHERE file_category=? AND (file_status=7 OR file_status=8) AND is_closed=0";
  34. return jdbcTemplate.queryForList(query,file_cat);
  35. }
  36. public List<Map<String, Object>> fetchPensionbenefitsById(String tempId) {
  37. String query = "SELECT * " +
  38. "FROM pension_benefits " +
  39. "WHERE temp_id=?";
  40. return jdbcTemplate.queryForList(query,tempId);
  41. }
  42. @Transactional
  43. public boolean updateEntryCompletedDetails(Map<String, Object> requestData) {
  44. try {
  45. String empNo = (String) requestData.get("empNo");
  46. String tempId = (String) requestData.get("tempId");
  47. String dateToAudit = (String) requestData.get("dateToAudit");
  48. String filemovedby = (String) requestData.get("filemovedby");
  49. String remarks = (String) requestData.get("remarks");
  50. String dept_Id = (String) requestData.get("deptId");
  51. String file_pending = (String) requestData.get("file_pending");
  52. String pension_number = (String) requestData.get("pension_number");
  53. String ledger_number = (String) requestData.get("ledger_number");
  54. String benefit_pension = (String) requestData.get("benefit_pension");
  55. String benefit_dcrg = requestData.get("benefit_dcrg") != null ? requestData.get("benefit_dcrg").toString() : null;
  56. String benefit_commutation = (String) requestData.get("benefit_commutation");
  57. String benefit_pension_amount = (String) requestData.get("benefit_pension_amount");
  58. String benefit_dcrg_amount = requestData.get("benefit_dcrg_amount") != null ? requestData.get("benefit_dcrg_amount").toString() : null;
  59. String benefit_commutation_amount = (String) requestData.get("benefit_commutation_amount");
  60. int deptId = Integer.parseInt(dept_Id);
  61. int filestatus;
  62. String file_entry_type="";
  63. boolean check = checkTempPresent(tempId);
  64. if ("yes".equalsIgnoreCase(benefit_dcrg)) {
  65. filestatus = CheckFieldsInDept(tempId) ? 11 : 9; //noted
  66. file_entry_type="FILE_COMPLETED";
  67. }
  68. else if(benefit_dcrg==null)
  69. {
  70. filestatus = 9;
  71. file_entry_type="DEPARTMENT_PARTIAL";
  72. }
  73. else {
  74. filestatus = 9;
  75. file_entry_type="DEPARTMENT_PARTIAL";
  76. }
  77. String updateQuery = "UPDATE pensioner_details SET file_entry_type=?,file_status = ?, file_moved_date = ?, remarks = ?, updated_date = CURRENT_TIMESTAMP WHERE temp_id = ? LIMIT 1";
  78. int rowsUpdated = jdbcTemplate.update(updateQuery,file_entry_type, filestatus, dateToAudit, remarks, tempId);
  79. if (rowsUpdated > 0) {
  80. String historyQuery = "INSERT INTO file_movement_history (emp_no, file_moved_date, file_status, file_moved_by, remarks, temp_id) VALUES (?, ?, ?, ?, ?, ?)";
  81. int rowsUpdated1 = jdbcTemplate.update(historyQuery, empNo, dateToAudit, filestatus, filemovedby, remarks, tempId);
  82. if (rowsUpdated1 > 0) {
  83. if (check) {
  84. String updateQuery1 = "UPDATE pension_benefits SET file_pending = ?, pension_number = ?, ledger_number = ?, benefit_pension = ?, benefit_pension_amount = ?, benefit_dcrg = ?, benefit_dcrg_amount = ?, benefit_commutation = ?, benefit_commutation_amount = ?, updated_date = CURRENT_TIMESTAMP WHERE temp_id = ?";
  85. int rowsUpdated3 = jdbcTemplate.update(updateQuery1, file_pending, pension_number, ledger_number, benefit_pension, benefit_pension_amount, benefit_dcrg, benefit_dcrg_amount, benefit_commutation, benefit_commutation_amount, tempId);
  86. } else {
  87. String benefitQuery = "INSERT INTO pension_benefits (emp_no, temp_id, file_pending, pension_number, ledger_number, benefit_pension, benefit_pension_amount, benefit_dcrg, benefit_dcrg_amount, benefit_commutation, benefit_commutation_amount) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  88. int rowsUpdated2 = jdbcTemplate.update(benefitQuery, empNo, tempId, file_pending, pension_number, ledger_number, benefit_pension, benefit_pension_amount, benefit_dcrg, benefit_dcrg_amount, benefit_commutation, benefit_commutation_amount);
  89. }
  90. return true;
  91. }
  92. }
  93. return false;
  94. } catch (NumberFormatException e) {
  95. System.err.println("Error parsing department ID: " + e.getMessage());
  96. return false;
  97. } catch (DataAccessException e) {
  98. System.err.println("Database operation failed: " + e.getMessage());
  99. return false;
  100. } catch (Exception e) {
  101. System.err.println("Unexpected error: " + e.getMessage());
  102. return false;
  103. }
  104. }
  105. private boolean checkTempPresent(String tempId) {
  106. String query = "SELECT EXISTS (SELECT 1 FROM pension_benefits WHERE temp_id = ?)";
  107. return Boolean.TRUE.equals(jdbcTemplate.queryForObject(query, Boolean.class, tempId));
  108. }
  109. private boolean CheckFieldsInDept(String tempId) {
  110. // Define the SQL query
  111. String sql = "SELECT CASE " +
  112. "WHEN gpf = 'yes' AND spfgs = 'yes' AND private_affairs = 'yes' AND dcrg = 'yes' THEN true " +
  113. "ELSE false END AS allYes " +
  114. "FROM zone_benefits " +
  115. "WHERE temp_id = ?";
  116. try {
  117. // Use queryForObject to get a single boolean result
  118. Boolean result = jdbcTemplate.queryForObject(sql, Boolean.class, tempId);
  119. return result != null && result; // Return the result if not null
  120. } catch (Exception e) {
  121. e.printStackTrace(); // Log the exception if needed
  122. }
  123. return false; // Return false if an exception occurs
  124. }
  125. @Transactional
  126. public boolean saveRetirementCompletedhistory(List<Map<String, Object>> emp_details,List<Map<String, Object>> pension_details,String filemovedby) {
  127. try {
  128. int file_Cat=0;
  129. if (!emp_details.isEmpty()) {
  130. Map<String, Object> firstEmployeeDetails = emp_details.get(0);
  131. Object fileCatObj = firstEmployeeDetails.get("file_category");
  132. if (fileCatObj != null) {
  133. try {
  134. file_Cat = Integer.parseInt(fileCatObj.toString());
  135. System.out.println("Parsed file_category: " + file_Cat);
  136. } catch (NumberFormatException e) {
  137. System.err.println("Failed to parse file_category: " + fileCatObj);
  138. }
  139. } else {
  140. System.out.println("file_category is null in emp_details.");
  141. }
  142. } else {
  143. System.out.println("emp_details is empty.");
  144. }
  145. // Batch update for employee details
  146. if(file_Cat==1) {
  147. String empInsertQuery =
  148. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, type_of_retirement, " +
  149. "retirement_date, retirement_class, file_moved_date, remarks, file_category, file_status, " +
  150. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id) " +
  151. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  152. jdbcTemplate.batchUpdate(empInsertQuery, emp_details, emp_details.size(), (ps, emp) -> {
  153. ps.setString(1, emp.get("emp_no").toString());
  154. ps.setString(2, emp.get("emp_name").toString());
  155. ps.setString(3, emp.get("dept_name").toString());
  156. ps.setString(4, emp.get("designation").toString());
  157. ps.setString(5, emp.get("type_of_retirement").toString());
  158. ps.setString(6, emp.get("retirement_date").toString());
  159. ps.setString(7, emp.get("retirement_class").toString());
  160. ps.setString(8, emp.get("file_moved_date").toString());
  161. ps.setString(9, emp.get("remarks").toString());
  162. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  163. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  164. ps.setString(12, emp.get("file_entry_type").toString());
  165. ps.setString(13, filemovedby);
  166. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  167. ps.setString(15, emp.get("file_category_name").toString());
  168. ps.setString(16, emp.get("temp_id").toString());
  169. });
  170. }
  171. if(file_Cat==2)
  172. {
  173. String empInsertQuery1 =
  174. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, service_death, " +
  175. "relationship_deceased, sanctioned_gis_amount, file_moved_date, remarks, file_category, file_status, " +
  176. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending) " +
  177. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?)";
  178. jdbcTemplate.batchUpdate(empInsertQuery1, emp_details, emp_details.size(), (ps, emp) -> {
  179. ps.setString(1, emp.get("emp_no").toString());
  180. ps.setString(2, emp.get("emp_name").toString());
  181. ps.setString(3, emp.get("dept_name").toString());
  182. ps.setString(4, emp.get("designation").toString());
  183. ps.setString(5, emp.get("service_death").toString());
  184. ps.setString(6, emp.get("relationship_deceased").toString());
  185. ps.setString(7, emp.get("sanctioned_gis_amount").toString());
  186. ps.setString(8, emp.get("file_moved_date").toString());
  187. ps.setString(9, emp.get("remarks").toString());
  188. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  189. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  190. ps.setString(12, emp.get("file_entry_type").toString());
  191. ps.setString(13, filemovedby);
  192. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  193. ps.setString(15, emp.get("file_category_name").toString());
  194. ps.setString(16, emp.get("temp_id").toString());
  195. ps.setString(17, emp.get("pending_duration").toString());
  196. ps.setString(18, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  197. });
  198. System.out.println("rows inserted in pd history for family Pension");
  199. }
  200. if(file_Cat==3)
  201. {
  202. String empInsertQuery2 =
  203. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation,type_of_retirement, " +
  204. "file_moved_date, remarks, file_category, file_status, " +
  205. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending,retirement_class,retirement_date) " +
  206. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?)";
  207. jdbcTemplate.batchUpdate(empInsertQuery2, emp_details, emp_details.size(), (ps, emp) -> {
  208. ps.setString(1, emp.get("emp_no").toString());
  209. ps.setString(2, emp.get("emp_name").toString());
  210. ps.setString(3, emp.get("dept_name").toString());
  211. ps.setString(4, emp.get("designation").toString());
  212. ps.setString(5, emp.get("type_of_retirement").toString());
  213. ps.setString(6, emp.get("file_moved_date").toString());
  214. ps.setString(7, emp.get("remarks").toString());
  215. ps.setInt(8, Integer.parseInt(emp.get("file_category").toString()));
  216. ps.setInt(9, Integer.parseInt(emp.get("file_status").toString()));
  217. ps.setString(10, emp.get("file_entry_type").toString());
  218. ps.setString(11, filemovedby);
  219. ps.setInt(12, Integer.parseInt(emp.get("dept_id").toString()));
  220. ps.setString(13, emp.get("file_category_name").toString());
  221. ps.setString(14, emp.get("temp_id").toString());
  222. ps.setString(15, emp.get("pending_duration").toString());
  223. ps.setString(16, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  224. ps.setString(17, emp.get("retirement_class").toString());
  225. ps.setString(18, emp.get("retirement_date").toString());
  226. });
  227. System.out.println("rows inserted in pd history for pending");
  228. }
  229. String pensionInsertQuery =
  230. "INSERT INTO pension_benefits_history (emp_no,temp_id,file_pending,pension_number,ledger_number,benefit_pension,benefit_pension_amount,benefit_dcrg,benefit_dcrg_amount,benefit_commutation,benefit_commutation_amount,file_moved_by) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)";
  231. jdbcTemplate.batchUpdate(pensionInsertQuery, pension_details, pension_details.size(), (ps, pension) -> {
  232. ps.setString(1, pension.get("emp_no").toString());
  233. ps.setString(2, pension.get("temp_id").toString());
  234. ps.setString(3, pension.get("file_pending").toString());
  235. ps.setString(4, pension.get("pension_number").toString());
  236. ps.setString(5, pension.get("ledger_number").toString());
  237. ps.setString(6, pension.get("benefit_pension").toString());
  238. ps.setString(7, pension.get("benefit_pension_amount") != null ? pension.get("benefit_pension_amount").toString() : null);
  239. ps.setString(8, pension.get("benefit_dcrg") != null ? pension.get("benefit_dcrg").toString() : null);
  240. ps.setString(9, pension.get("benefit_dcrg_amount") != null ? pension.get("benefit_dcrg_amount").toString() : null);
  241. ps.setString(10, pension.get("benefit_commutation").toString());
  242. ps.setString(11, pension.get("benefit_commutation_amount") != null ? pension.get("benefit_commutation_amount").toString() : null);
  243. ps.setString(12, filemovedby);
  244. });
  245. System.out.println("rows inserted in pension history for family Pension");
  246. return true; // Return true if all insertions succeed
  247. } catch (Exception e) {
  248. e.printStackTrace();
  249. return false; // Return false in case of any exception
  250. }
  251. }
  252. @Transactional
  253. public boolean updateEntryPendingDetails(Map<String, Object> requestData) {
  254. // TODO Auto-generated method stub
  255. String empNo = (String) requestData.get("empNo");
  256. String tempId = (String) requestData.get("tempId");
  257. String dateToAudit = (String) requestData.get("dateToAudit");
  258. String filemovedby =(String)requestData.get("filemovedby");
  259. String remarks = (String) requestData.get("remarks");
  260. String dept_Id = (String) requestData.get("deptId");
  261. String file_pending = (String) requestData.get("file_pending");
  262. int deptId = Integer.parseInt(dept_Id);
  263. int filestatus=8;
  264. String file_entry_type="FILE_PENDING";
  265. String updateQuery = "UPDATE pensioner_details SET file_status = ?,file_entry_type=?,file_moved_date=?,remarks=?,updated_date= CURRENT_TIMESTAMP WHERE temp_id = ? LIMIT 1";
  266. int rowsUpdated = jdbcTemplate.update(updateQuery,filestatus,file_entry_type,dateToAudit, remarks,tempId);
  267. System.out.println("Rows inserted in pd:"+rowsUpdated);
  268. if(rowsUpdated>0)
  269. {
  270. // Optional: Insert into file movement history for auditing
  271. String historyQuery = "INSERT INTO file_movement_history (emp_no, file_moved_date, file_status, file_moved_by, remarks,temp_id) VALUES (?,?, ?, ?, ?, ?)";
  272. int rowsUpdated1=jdbcTemplate.update(historyQuery, empNo, dateToAudit, filestatus, filemovedby, remarks,tempId);
  273. System.out.println("Rows inserted in fmh:"+rowsUpdated1);
  274. if(rowsUpdated1>0)
  275. {
  276. // Insert into zone benefits
  277. String benefitQuery="INSERT INTO pension_benefits (emp_no,temp_id,file_pending) VALUES (?,?,?)";
  278. int rowsUpdated2=jdbcTemplate.update(benefitQuery,empNo,tempId,file_pending);
  279. System.out.println("Rows inserted in pb1:"+rowsUpdated2);
  280. return true;
  281. }
  282. else
  283. {
  284. return false;
  285. }
  286. }
  287. else {
  288. return false;
  289. }
  290. }
  291. @Transactional
  292. public boolean saveRetirementPendinghistory(List<Map<String, Object>> emp_details,List<Map<String, Object>> pension_details,String filemovedby) {
  293. try {
  294. int file_Cat=0;
  295. if (!emp_details.isEmpty()) {
  296. Map<String, Object> firstEmployeeDetails = emp_details.get(0);
  297. Object fileCatObj = firstEmployeeDetails.get("file_category");
  298. if (fileCatObj != null) {
  299. try {
  300. file_Cat = Integer.parseInt(fileCatObj.toString());
  301. System.out.println("Parsed file_category: " + file_Cat);
  302. } catch (NumberFormatException e) {
  303. System.err.println("Failed to parse file_category: " + fileCatObj);
  304. }
  305. } else {
  306. System.out.println("file_category is null in emp_details.");
  307. }
  308. } else {
  309. System.out.println("emp_details is empty.");
  310. }
  311. // Batch update for employee details
  312. if(file_Cat==1) {
  313. String empInsertQuery =
  314. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, type_of_retirement, " +
  315. "retirement_date, retirement_class, file_moved_date, remarks, file_category, file_status, " +
  316. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id) " +
  317. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  318. jdbcTemplate.batchUpdate(empInsertQuery, emp_details, emp_details.size(), (ps, emp) -> {
  319. ps.setString(1, emp.get("emp_no").toString());
  320. ps.setString(2, emp.get("emp_name").toString());
  321. ps.setString(3, emp.get("dept_name").toString());
  322. ps.setString(4, emp.get("designation").toString());
  323. ps.setString(5, emp.get("type_of_retirement").toString());
  324. ps.setString(6, emp.get("retirement_date").toString());
  325. ps.setString(7, emp.get("retirement_class").toString());
  326. ps.setString(8, emp.get("file_moved_date").toString());
  327. ps.setString(9, emp.get("remarks").toString());
  328. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  329. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  330. ps.setString(12, emp.get("file_entry_type").toString());
  331. ps.setString(13, filemovedby);
  332. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  333. ps.setString(15, emp.get("file_category_name").toString());
  334. ps.setString(16, emp.get("temp_id").toString());
  335. });
  336. }
  337. if(file_Cat==2)
  338. {
  339. String empInsertQuery1 =
  340. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, service_death, " +
  341. "relationship_deceased, sanctioned_gis_amount, file_moved_date, remarks, file_category, file_status, " +
  342. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending) " +
  343. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?)";
  344. jdbcTemplate.batchUpdate(empInsertQuery1, emp_details, emp_details.size(), (ps, emp) -> {
  345. ps.setString(1, emp.get("emp_no").toString());
  346. ps.setString(2, emp.get("emp_name").toString());
  347. ps.setString(3, emp.get("dept_name").toString());
  348. ps.setString(4, emp.get("designation").toString());
  349. ps.setString(5, emp.get("service_death").toString());
  350. ps.setString(6, emp.get("relationship_deceased").toString());
  351. ps.setString(7, emp.get("sanctioned_gis_amount").toString());
  352. ps.setString(8, emp.get("file_moved_date").toString());
  353. ps.setString(9, emp.get("remarks").toString());
  354. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  355. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  356. ps.setString(12, emp.get("file_entry_type").toString());
  357. ps.setString(13, filemovedby);
  358. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  359. ps.setString(15, emp.get("file_category_name").toString());
  360. ps.setString(16, emp.get("temp_id").toString());
  361. ps.setString(17, emp.get("pending_duration").toString());
  362. ps.setString(18, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  363. });
  364. System.out.println("rows inserted in pd history for family Pension");
  365. }
  366. if(file_Cat==3)
  367. {
  368. String empInsertQuery2 =
  369. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation,type_of_retirement, " +
  370. "file_moved_date, remarks, file_category, file_status, " +
  371. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending) " +
  372. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  373. jdbcTemplate.batchUpdate(empInsertQuery2, emp_details, emp_details.size(), (ps, emp) -> {
  374. ps.setString(1, emp.get("emp_no").toString());
  375. ps.setString(2, emp.get("emp_name").toString());
  376. ps.setString(3, emp.get("dept_name").toString());
  377. ps.setString(4, emp.get("designation").toString());
  378. ps.setString(5, emp.get("type_of_retirement").toString());
  379. ps.setString(6, emp.get("file_moved_date").toString());
  380. ps.setString(7, emp.get("remarks").toString());
  381. ps.setInt(8, Integer.parseInt(emp.get("file_category").toString()));
  382. ps.setInt(9, Integer.parseInt(emp.get("file_status").toString()));
  383. ps.setString(10, emp.get("file_entry_type").toString());
  384. ps.setString(11, filemovedby);
  385. ps.setInt(12, Integer.parseInt(emp.get("dept_id").toString()));
  386. ps.setString(13, emp.get("file_category_name").toString());
  387. ps.setString(14, emp.get("temp_id").toString());
  388. ps.setString(15, emp.get("pending_duration").toString());
  389. ps.setString(16, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  390. });
  391. System.out.println("rows inserted in pd history for pending");
  392. }
  393. String pensionInsertQuery =
  394. "INSERT INTO pension_benefits_history (emp_no,temp_id,file_pending,file_moved_by) VALUES (?,?,?,?)";
  395. jdbcTemplate.batchUpdate(pensionInsertQuery, pension_details, pension_details.size(), (ps, pension) -> {
  396. ps.setString(1, pension.get("emp_no").toString());
  397. ps.setString(2, pension.get("temp_id").toString());
  398. ps.setString(3, pension.get("file_pending").toString());
  399. ps.setString(4, filemovedby);
  400. });
  401. System.out.println("rows inserted in pension history for family Pension");
  402. return true; // Return true if all insertions succeed
  403. } catch (Exception e) {
  404. e.printStackTrace();
  405. return false; // Return false in case of any exception
  406. }
  407. }
  408. @Transactional
  409. public boolean updateEntryReturnDetails(Map<String, Object> requestData) {
  410. // TODO Auto-generated method stub
  411. String empNo = (String) requestData.get("empNo");
  412. String tempId = (String) requestData.get("tempId");
  413. String dateToAudit = (String) requestData.get("dateToAudit");
  414. String filemovedby =(String)requestData.get("filemovedby");
  415. String remarks = (String) requestData.get("remarks");
  416. String dept_Id = (String) requestData.get("deptId");
  417. String file_entry_type="FILE_RETURNED";
  418. int deptId = Integer.parseInt(dept_Id);
  419. int filestatus=6;
  420. String updateQuery = "UPDATE pensioner_details SET file_status = ?,file_entry_type=?,file_moved_date=?,remarks=?,updated_date= CURRENT_TIMESTAMP WHERE temp_id = ? LIMIT 1";
  421. int rowsUpdated = jdbcTemplate.update(updateQuery,filestatus,file_entry_type,dateToAudit, remarks,tempId);
  422. System.out.println("Rows inserted in pd:"+rowsUpdated);
  423. if(rowsUpdated>0)
  424. {
  425. // Optional: Insert into file movement history for auditing
  426. String historyQuery = "INSERT INTO file_movement_history (emp_no, file_moved_date, file_status, file_moved_by, remarks,temp_id) VALUES (?,?, ?, ?, ?, ?)";
  427. int rowsUpdated1=jdbcTemplate.update(historyQuery, empNo, dateToAudit, filestatus, filemovedby, remarks,tempId);
  428. System.out.println("Rows inserted in fmh:"+rowsUpdated1);
  429. return true;
  430. }
  431. else {
  432. return false;
  433. }
  434. }
  435. @Transactional
  436. public boolean saveRetirementreturnhistory(List<Map<String, Object>> emp_details,String filemovedby) {
  437. try {
  438. int file_Cat=0;
  439. if (!emp_details.isEmpty()) {
  440. Map<String, Object> firstEmployeeDetails = emp_details.get(0);
  441. Object fileCatObj = firstEmployeeDetails.get("file_category");
  442. if (fileCatObj != null) {
  443. try {
  444. file_Cat = Integer.parseInt(fileCatObj.toString());
  445. System.out.println("Parsed file_category: " + file_Cat);
  446. } catch (NumberFormatException e) {
  447. System.err.println("Failed to parse file_category: " + fileCatObj);
  448. }
  449. } else {
  450. System.out.println("file_category is null in emp_details.");
  451. }
  452. } else {
  453. System.out.println("emp_details is empty.");
  454. }
  455. // Batch update for employee details
  456. if(file_Cat==1) {
  457. String empInsertQuery =
  458. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, type_of_retirement, " +
  459. "retirement_date, retirement_class, file_moved_date, remarks, file_category, file_status, " +
  460. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id) " +
  461. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  462. jdbcTemplate.batchUpdate(empInsertQuery, emp_details, emp_details.size(), (ps, emp) -> {
  463. ps.setString(1, emp.get("emp_no").toString());
  464. ps.setString(2, emp.get("emp_name").toString());
  465. ps.setString(3, emp.get("dept_name").toString());
  466. ps.setString(4, emp.get("designation").toString());
  467. ps.setString(5, emp.get("type_of_retirement").toString());
  468. ps.setString(6, emp.get("retirement_date").toString());
  469. ps.setString(7, emp.get("retirement_class").toString());
  470. ps.setString(8, emp.get("file_moved_date").toString());
  471. ps.setString(9, emp.get("remarks").toString());
  472. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  473. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  474. ps.setString(12, emp.get("file_entry_type").toString());
  475. ps.setString(13, filemovedby);
  476. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  477. ps.setString(15, emp.get("file_category_name").toString());
  478. ps.setString(16, emp.get("temp_id").toString());
  479. });
  480. }
  481. if(file_Cat==2)
  482. {
  483. String empInsertQuery1 =
  484. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation, service_death, " +
  485. "relationship_deceased, sanctioned_gis_amount, file_moved_date, remarks, file_category, file_status, " +
  486. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending) " +
  487. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?)";
  488. jdbcTemplate.batchUpdate(empInsertQuery1, emp_details, emp_details.size(), (ps, emp) -> {
  489. ps.setString(1, emp.get("emp_no").toString());
  490. ps.setString(2, emp.get("emp_name").toString());
  491. ps.setString(3, emp.get("dept_name").toString());
  492. ps.setString(4, emp.get("designation").toString());
  493. ps.setString(5, emp.get("service_death").toString());
  494. ps.setString(6, emp.get("relationship_deceased").toString());
  495. ps.setString(7, emp.get("sanctioned_gis_amount").toString());
  496. ps.setString(8, emp.get("file_moved_date").toString());
  497. ps.setString(9, emp.get("remarks").toString());
  498. ps.setInt(10, Integer.parseInt(emp.get("file_category").toString()));
  499. ps.setInt(11, Integer.parseInt(emp.get("file_status").toString()));
  500. ps.setString(12, emp.get("file_entry_type").toString());
  501. ps.setString(13, filemovedby);
  502. ps.setInt(14, Integer.parseInt(emp.get("dept_id").toString()));
  503. ps.setString(15, emp.get("file_category_name").toString());
  504. ps.setString(16, emp.get("temp_id").toString());
  505. ps.setString(17, emp.get("pending_duration").toString());
  506. ps.setString(18, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  507. });
  508. System.out.println("rows inserted in pd history for family Pension");
  509. }
  510. if(file_Cat==3)
  511. {
  512. String empInsertQuery2 =
  513. "INSERT INTO pensioner_details_history (emp_no, emp_name, dept_name, designation,type_of_retirement, " +
  514. "file_moved_date, remarks, file_category, file_status, " +
  515. "file_entry_type, file_moved_by, dept_id, file_category_name, temp_id,pending_duration,reason_for_pending) " +
  516. "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
  517. jdbcTemplate.batchUpdate(empInsertQuery2, emp_details, emp_details.size(), (ps, emp) -> {
  518. ps.setString(1, emp.get("emp_no").toString());
  519. ps.setString(2, emp.get("emp_name").toString());
  520. ps.setString(3, emp.get("dept_name").toString());
  521. ps.setString(4, emp.get("designation").toString());
  522. ps.setString(5, emp.get("type_of_retirement").toString());
  523. ps.setString(6, emp.get("file_moved_date").toString());
  524. ps.setString(7, emp.get("remarks").toString());
  525. ps.setInt(8, Integer.parseInt(emp.get("file_category").toString()));
  526. ps.setInt(9, Integer.parseInt(emp.get("file_status").toString()));
  527. ps.setString(10, emp.get("file_entry_type").toString());
  528. ps.setString(11, filemovedby);
  529. ps.setInt(12, Integer.parseInt(emp.get("dept_id").toString()));
  530. ps.setString(13, emp.get("file_category_name").toString());
  531. ps.setString(14, emp.get("temp_id").toString());
  532. ps.setString(15, emp.get("pending_duration").toString());
  533. ps.setString(16, emp.get("reason_for_pending") != null ? emp.get("reason_for_pending").toString() : null);
  534. });
  535. System.out.println("rows inserted in pd history for pending");
  536. }
  537. return true; // Return true if all insertions succeed
  538. } catch (Exception e) {
  539. e.printStackTrace();
  540. return false; // Return false in case of any exception
  541. }
  542. }
  543. }