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.

392 lines
19 KiB

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