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.

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