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.

402 lines
19 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
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.Collections;
  3. import java.util.List;
  4. import java.util.Map;
  5. import javax.sql.DataSource;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.beans.factory.annotation.Qualifier;
  8. import org.springframework.jdbc.core.JdbcTemplate;
  9. import org.springframework.stereotype.Service;
  10. @Service
  11. public class DashboardApiService {
  12. @Autowired
  13. private JdbcTemplate jdbcTemplate;
  14. @Autowired
  15. public void setDataSource(@Qualifier("mysqlPensionerDataSource") DataSource dataSource) {
  16. this.jdbcTemplate = new JdbcTemplate(dataSource);
  17. }
  18. @Autowired
  19. public GetFileStatusService getFileStatus;
  20. public List<Map<String, Object>> getTempEmpDetails(String tempId) {
  21. System.out.println("service");
  22. System.out.println(tempId);
  23. String sql = "SELECT MH.file_moved_date,sm.file_status,MH.remarks FROM file_movement_history MH"
  24. + " inner join file_status_master sm on MH.file_status= sm.id where temp_id=? order by MH.file_moved_date desc ";
  25. return jdbcTemplate.queryForList(sql, tempId);
  26. }
  27. public List<Map<String, Object>> getEmpDetails(String empNo) {
  28. System.out.println("service");
  29. System.out.println(empNo);
  30. String sql = "SELECT dm.dept_name,fm.file_name, sm.file_status ,pd.temp_id " +
  31. "FROM pensioner_details pd " +
  32. "INNER JOIN file_category_master fm ON pd.file_category = fm.id " +
  33. "INNER JOIN file_status_master sm ON sm.id = pd.file_status " +
  34. "inner join department_master dm on dm.id=pd.dept_id "+
  35. "WHERE pd.emp_no = ? " +
  36. "UNION " +
  37. "SELECT dm.dept_name,fm.file_name, sm.file_status ,cps.temp_id " +
  38. "FROM cps_pensioner_details cps " +
  39. "INNER JOIN file_category_master fm ON cps.file_category = fm.id " +
  40. "INNER JOIN file_status_master sm ON sm.id = cps.file_status " +
  41. "inner join department_master dm on dm.id=cps.dept_id "+
  42. "WHERE cps.emp_no = ?";
  43. return jdbcTemplate.queryForList(sql, empNo, empNo);
  44. }
  45. public List<Map<String, Object>> getPensionEmpDetails(String empNo) {
  46. System.out.println("service");
  47. System.out.println(empNo);
  48. String sql = "SELECT dm.dept_name,fm.file_name, sm.file_status ,pd.temp_id " +
  49. "FROM pensioner_details pd " +
  50. "INNER JOIN file_category_master fm ON pd.file_category = fm.id " +
  51. "INNER JOIN file_status_master sm ON sm.id = pd.file_status " +
  52. "inner join department_master dm on dm.id=pd.dept_id "+
  53. "WHERE pd.emp_no = ? " +
  54. "UNION " +
  55. "SELECT dm.dept_name,fm.file_name, sm.file_status ,cps.temp_id " +
  56. "FROM cps_pensioner_details cps " +
  57. "INNER JOIN file_category_master fm ON cps.file_category = fm.id " +
  58. "INNER JOIN file_status_master sm ON sm.id = cps.file_status " +
  59. "inner join department_master dm on dm.id=cps.dept_id "+
  60. "WHERE cps.emp_no = ?";
  61. return jdbcTemplate.queryForList(sql, empNo, empNo);
  62. }
  63. /* public List<Map<String, Object>> getEmployeeDetailss(String fileName) {
  64. String sql = "SELECT emp_no FROM gcc_pensioner.pensioner_details pd " +
  65. "INNER JOIN gcc_pensioner.file_category_master cm ON pd.file_category = cm.id " +
  66. "WHERE cm.file_name = ?";
  67. return jdbcTemplate .queryForList(sql, new Object[]{fileName});
  68. }*/
  69. /* public List<Map<String, Object>> getStageWiseCounts() {
  70. String sql =
  71. "SELECT category, SUM(category_count) AS category_count FROM (" +
  72. " SELECT " +
  73. " CASE " +
  74. " WHEN sm.id IN (1, 3) THEN 'Audit Pending' " +
  75. " WHEN sm.id IN (2, 5, 6, 9) THEN 'Department Pending' " +
  76. " WHEN sm.id IN (4, 7, 8, 10) THEN 'Pension Pending' " +
  77. " WHEN sm.id = 11 THEN 'Completed' " +
  78. " END AS category, " +
  79. " COUNT(*) AS category_count " +
  80. " FROM gcc_pensioner.pensioner_details pd " +
  81. " INNER JOIN gcc_pensioner.file_status_master sm ON pd.file_status = sm.id " +
  82. " GROUP BY category " +
  83. " UNION ALL " +
  84. " SELECT " +
  85. " CASE " +
  86. " WHEN sm.id IN (1, 3) THEN 'Audit Pending' " +
  87. " WHEN sm.id IN (2, 5, 6, 9) THEN 'Department Pending' " +
  88. " WHEN sm.id IN (4, 7, 8, 10) THEN 'Pension Pending' " +
  89. " WHEN sm.id = 11 THEN 'Completed' " +
  90. " END AS category, " +
  91. " COUNT(*) AS category_count " +
  92. " FROM gcc_pensioner.cps_pensioner_details cps " +
  93. " INNER JOIN gcc_pensioner.file_status_master sm ON cps.file_status = sm.id " +
  94. " GROUP BY category " +
  95. ") AS combined_results " +
  96. "GROUP BY category;";
  97. return jdbcTemplate.queryForList(sql);
  98. }*/
  99. public List<Map<String, Object>> getEmployeeDetails(String FileId) {
  100. String query;
  101. switch (FileId) {
  102. case "1":
  103. case "2":
  104. case "3":
  105. case "4":
  106. case "5":
  107. query = "SELECT pd.emp_no " +
  108. "FROM pensioner_details pd " +
  109. "INNER JOIN file_category_master cm " +
  110. "ON pd.file_category = cm.id " +
  111. "WHERE cm.id = ?";
  112. break;
  113. case "6":
  114. query = "SELECT cps.emp_no " +
  115. "FROM cps_pensioner_details cps " +
  116. "INNER JOIN file_category_master cm " +
  117. "ON cps.file_category = cm.id " +
  118. "WHERE cm.id = ?";
  119. break;
  120. default:
  121. return Collections.emptyList();
  122. }
  123. return jdbcTemplate.queryForList(query, FileId);
  124. }
  125. public List<Map<String, Object>> fetchCategoryCounts() {
  126. String sql = "SELECT file_name, id, COALESCE(SUM(category_count), 0) AS category_count " +
  127. "FROM ( " +
  128. " SELECT cm.file_name, cm.id,COUNT(pd.file_category) AS category_count " +
  129. " FROM file_category_master cm " +
  130. " LEFT JOIN pensioner_details pd " +
  131. " ON pd.file_category = cm.id " +
  132. " AND pd.is_closed='0' " +
  133. " GROUP BY cm.file_name,cm.id" +
  134. " UNION ALL " +
  135. " SELECT cm.file_name, cm.id,COUNT(cps.file_category) AS category_count " +
  136. " FROM file_category_master cm " +
  137. " LEFT JOIN cps_pensioner_details cps " +
  138. " ON cps.file_category = cm.id " +
  139. " GROUP BY cm.file_name ,cm.id " +
  140. ") combined_counts " +
  141. "GROUP BY file_name,id";
  142. return jdbcTemplate.queryForList(sql);
  143. }
  144. /*
  145. public List<Map<String, Object>> fetchCategorysearchCounts(String startdate, String enddate) {
  146. String sql = "SELECT cm.file_name, COALESCE(SUM(category_count), 0) AS category_count " +
  147. "FROM ( " +
  148. " SELECT cm.file_name, COUNT(pd.file_category) AS category_count " +
  149. " FROM gcc_pensioner.file_category_master cm " +
  150. " LEFT JOIN gcc_pensioner.pensioner_details pd " +
  151. " ON pd.file_category = cm.id " +
  152. " AND (? IS NULL OR (? = ? AND DATE(pd.created_date) = ?) OR (DATE(pd.created_date) >= ? AND DATE(pd.created_date) <= ?)) " +
  153. " GROUP BY cm.file_name " +
  154. " UNION ALL " +
  155. " SELECT cm.file_name, COUNT(cps.file_category) AS category_count " +
  156. " FROM gcc_pensioner.file_category_master cm " +
  157. " LEFT JOIN gcc_pensioner.cps_pensioner_details cps " +
  158. " ON cps.file_category = cm.id " +
  159. " AND (? IS NULL OR (? = ? AND DATE(cps.created_date) = ?) OR (DATE(cps.created_date) >= ? AND DATE(cps.created_date) <= ?)) " +
  160. " GROUP BY cm.file_name " +
  161. ") combined_counts " +
  162. "RIGHT JOIN gcc_pensioner.file_category_master cm " +
  163. "ON combined_counts.file_name = cm.file_name " +
  164. "GROUP BY cm.file_name";
  165. return jdbcTemplate.queryForList(sql, new Object[]{
  166. startdate, startdate, enddate, startdate, // For `pd.created_date` exact match or range
  167. startdate, enddate, // For `pd.created_date` range
  168. startdate, startdate, enddate, startdate, // For `cps.created_date` exact match or range
  169. startdate, enddate // For `cps.created_date` range
  170. });
  171. }//department*/
  172. public List<Map<String, Object>> getDepartment() {
  173. String sql = "SELECT dept_id,dept_name FROM department_master WHERE dept_id <> 2000";
  174. return jdbcTemplate.queryForList(sql);
  175. }
  176. public List<Map<String, Object>> DepartmenfetchCategoryCounts(String deptId) {
  177. String sql = "SELECT cm.file_name, cm.id, " +
  178. " COALESCE(pd.category_count, 0) + COALESCE(cps.category_count, 0) AS category_count " +
  179. "FROM file_category_master cm " +
  180. "LEFT JOIN ( " +
  181. " SELECT file_category, COUNT(*) AS category_count " +
  182. " FROM pensioner_details " +
  183. " WHERE (? IS NULL OR dept_id = ?) " +
  184. " AND is_closed='0' " +
  185. " GROUP BY file_category " +
  186. ") pd ON cm.id = pd.file_category " +
  187. "LEFT JOIN ( " +
  188. " SELECT file_category, COUNT(*) AS category_count " +
  189. " FROM cps_pensioner_details " +
  190. " WHERE (? IS NULL OR dept_id = ?) " +
  191. " GROUP BY file_category " +
  192. ") cps ON cm.id = cps.file_category";
  193. return jdbcTemplate.queryForList(sql, deptId, deptId, deptId, deptId);
  194. } public List<Map<String, Object>> fetchchartCategoryCounts(String deptId, String startDate, String endDate) {
  195. String sql = "SELECT cm.file_name, cm.id, " +
  196. " COALESCE(pd.category_count, 0) + COALESCE(cps.category_count, 0) AS category_count " +
  197. "FROM file_category_master cm " +
  198. "LEFT JOIN ( " +
  199. " SELECT file_category, COUNT(*) AS category_count " +
  200. " FROM pensioner_details " +
  201. " WHERE (? IS NULL OR dept_id = ?) " +
  202. " AND (? IS NULL OR date(created_date) >= ?) " +
  203. " AND (? IS NULL OR date(created_date) <= ?) " +
  204. " AND is_closed='0' " +
  205. " GROUP BY file_category " +
  206. ") pd ON cm.id = pd.file_category " +
  207. "LEFT JOIN ( " +
  208. " SELECT file_category, COUNT(*) AS category_count " +
  209. " FROM gcc_pensioner.cps_pensioner_details " +
  210. " WHERE (? IS NULL OR dept_id = ?) " +
  211. " AND (? IS NULL OR date(created_date) >= ?) " +
  212. " AND (? IS NULL OR date(created_date) <= ?) " +
  213. " GROUP BY file_category " +
  214. ") cps ON cm.id = cps.file_category";
  215. return jdbcTemplate.queryForList(
  216. sql, deptId, deptId, startDate, startDate, endDate, endDate,
  217. deptId, deptId, startDate, startDate, endDate, endDate
  218. );
  219. }
  220. public List<Map<String, Object>> getStageWiseCounts(String deptId, String startDate, String endDate) {
  221. String sql =
  222. "WITH categories AS (" +
  223. " SELECT 'Audit Pending' AS category UNION ALL " +
  224. " SELECT 'Department Pending' UNION ALL " +
  225. " SELECT 'Pension Pending' UNION ALL " +
  226. " SELECT 'Completed' " +
  227. ") " +
  228. "SELECT c.category, COALESCE(SUM(cr.category_count), 0) AS category_count " +
  229. "FROM categories c " +
  230. "LEFT JOIN ( " +
  231. " SELECT category, SUM(category_count) AS category_count FROM ( " +
  232. " SELECT " +
  233. " CASE " +
  234. " WHEN sm.id IN (1, 3) THEN 'Audit Pending' " +
  235. " WHEN sm.id IN (2, 5, 6, 9) THEN 'Department Pending' " +
  236. " WHEN sm.id IN (4, 7, 8, 10) THEN 'Pension Pending' " +
  237. " WHEN sm.id = 11 THEN 'Completed' " +
  238. " END AS category, " +
  239. " COUNT(*) AS category_count " +
  240. " FROM gcc_pensioner.pensioner_details pd " +
  241. " INNER JOIN gcc_pensioner.file_status_master sm ON pd.file_status = sm.id " +
  242. " WHERE (? IS NULL OR pd.dept_id = ?) " +
  243. " AND (? IS NULL OR DATE(pd.created_date) >= ?) " +
  244. " AND (? IS NULL OR DATE(pd.created_date) <= ?) " +
  245. " AND pd.is_closed='0' " +
  246. " GROUP BY category " +
  247. " UNION ALL " +
  248. " SELECT " +
  249. " CASE " +
  250. " WHEN sm.id IN (1, 3) THEN 'Audit Pending' " +
  251. " WHEN sm.id IN (2, 5, 6, 9) THEN 'Department Pending' " +
  252. " WHEN sm.id IN (4, 7, 8, 10) THEN 'Pension Pending' " +
  253. " WHEN sm.id = 11 THEN 'Completed' " +
  254. " END AS category, " +
  255. " COUNT(*) AS category_count " +
  256. " FROM gcc_pensioner.cps_pensioner_details cps " +
  257. " INNER JOIN gcc_pensioner.file_status_master sm ON cps.file_status = sm.id " +
  258. " WHERE (? IS NULL OR cps.dept_id = ?) " +
  259. " AND (? IS NULL OR DATE(cps.created_date) >= ?) " +
  260. " AND (? IS NULL OR DATE(cps.created_date) <= ?) " +
  261. " GROUP BY category " +
  262. " ) AS combined_results " +
  263. " GROUP BY category " +
  264. ") cr ON c.category = cr.category " +
  265. "GROUP BY c.category;";
  266. return jdbcTemplate.queryForList(
  267. sql, deptId, deptId, startDate, startDate, endDate, endDate,
  268. deptId, deptId, startDate, startDate, endDate, endDate
  269. );
  270. }
  271. //simple
  272. public List<Map<String, Object>> fetchCategorysearchCounts(String startdate, String enddate,String deptId) {
  273. String sql = "SELECT cm.file_name, COALESCE(SUM(category_count), 0) AS category_count " +
  274. "FROM gcc_pensioner.file_category_master cm " +
  275. "LEFT JOIN ( " +
  276. " SELECT pd.file_category, COUNT(pd.file_category) AS category_count " +
  277. " FROM gcc_pensioner.pensioner_details pd " +
  278. " WHERE (? IS NULL OR DATE(pd.created_date) = ? OR (DATE(pd.created_date) BETWEEN ? AND ?)) " +
  279. " AND (? IS NULL OR pd.dept_id = ?) " +
  280. " AND pd.is_closed='0' " +
  281. " GROUP BY pd.file_category " +
  282. " UNION ALL " +
  283. " SELECT cps.file_category, COUNT(cps.file_category) AS category_count " +
  284. " FROM gcc_pensioner.cps_pensioner_details cps " +
  285. " WHERE (? IS NULL OR DATE(cps.created_date) = ? OR (DATE(cps.created_date) BETWEEN ? AND ?)) " +
  286. " AND (? IS NULL OR cps.dept_id = ?) " +
  287. " GROUP BY cps.file_category " +
  288. ") combined_counts ON cm.id = combined_counts.file_category " +
  289. "GROUP BY cm.file_name";
  290. return jdbcTemplate.queryForList(sql, new Object[]{
  291. startdate, startdate, startdate, enddate, deptId, deptId, // For `pd.created_date` and `dept_id`
  292. startdate, startdate, startdate, enddate, deptId, deptId // For `cps.created_date` and `dept_id`
  293. });
  294. }
  295. }
  296. //total 5 changes for is_closed=0
  297. /* this is with pendency file category
  298. * "SELECT file_name, SUM(category_count) AS category_count " +
  299. "FROM ( " +
  300. " SELECT cm.file_name, COUNT(pd.file_category) AS category_count " +
  301. " FROM gcc_pensioner.file_category_master cm " +
  302. " LEFT JOIN gcc_pensioner.pensioner_details pd " +
  303. " ON pd.file_category = cm.id " +
  304. " GROUP BY cm.file_name " +
  305. " UNION ALL " +
  306. " SELECT cm.file_name, COUNT(cps.file_category) AS category_count " +
  307. " FROM gcc_pensioner.file_category_master cm " +
  308. " LEFT JOIN gcc_pensioner.cps_pensioner_details cps " +
  309. " ON cps.file_category = cm.id " +
  310. " GROUP BY cm.file_name " +
  311. ") combined_counts " +
  312. "GROUP BY file_name";--------------------------------------------------------------------------"SELECT cm.file_name, COALESCE(SUM(category_count), 0) AS category_count " +
  313. "FROM ( " +
  314. " SELECT cm.file_name, COUNT(pd.file_category) AS category_count " +
  315. " FROM gcc_pensioner.file_category_master cm " +
  316. " LEFT JOIN gcc_pensioner.pensioner_details pd " +
  317. " ON pd.file_category = cm.id " +
  318. " AND (? IS NULL OR (? = ? AND DATE(pd.created_date) = ?) OR (DATE(pd.created_date) >= ? AND DATE(pd.created_date) <= ?)) " +
  319. " GROUP BY cm.file_name " +
  320. " UNION ALL " +
  321. " SELECT cm.file_name, COUNT(cps.file_category) AS category_count " +
  322. " FROM gcc_pensioner.file_category_master cm " +
  323. " LEFT JOIN gcc_pensioner.cps_pensioner_details cps " +
  324. " ON cps.file_category = cm.id " +
  325. " AND (? IS NULL OR (? = ? AND DATE(cps.created_date) = ?) OR (DATE(cps.created_date) >= ? AND DATE(cps.created_date) <= ?)) " +
  326. " GROUP BY cm.file_name " +
  327. ") combined_counts " +
  328. "RIGHT JOIN gcc_pensioner.file_category_master cm " +
  329. "ON combined_counts.file_name = cm.file_name " +
  330. "GROUP BY cm.file_name"; */