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.

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