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.

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