CM works overall dashboard integrate with gcc_office_portal
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.

205 lines
15 KiB

2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. package in.gov.chennaicorporation.gccoffice.cmworks.service;
  2. import java.util.List;
  3. import java.util.Map;
  4. import javax.sql.DataSource;
  5. import javax.transaction.Transactional;
  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.Controller;
  10. import org.springframework.stereotype.Service;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. @Service
  13. public class WorksService {
  14. private JdbcTemplate jdbcTemplate;
  15. // @Autowired
  16. // public void setDataSourcemysql(@Qualifier("mysqlAppDataSource") DataSource dataSource) {
  17. // this.jdbcTemplate = new JdbcTemplate(dataSource); }
  18. @Autowired
  19. public void setDataSource(@Qualifier("oracleDataSource") DataSource dataSource) {
  20. this.jdbcTemplate = new JdbcTemplate(dataSource);
  21. }
  22. @Transactional
  23. public List<Map<String, Object>> getCombinedCmDashboardReports(String zonename) {
  24. String sqlQuery;
  25. Object[] params;
  26. if (zonename != null && !zonename.equalsIgnoreCase("all")) {
  27. sqlQuery = "SELECT cm.schemename AS name, " +
  28. "COUNT(*) AS count, " +
  29. "SUM(cm.valueofwork) AS total_value_of_work, " +
  30. "'Scheme' AS type " +
  31. "FROM gcc_apps.cmworks cm " +
  32. "WHERE cm.zonename = ? " +
  33. "GROUP BY cm.schemename " +
  34. "UNION ALL " +
  35. "SELECT cm.workcategory AS name, " +
  36. "COUNT(*) AS count, " +
  37. "SUM(cm.valueofwork) AS total_value_of_work, " +
  38. "'Category' AS type " +
  39. "FROM gcc_apps.cmworks cm " +
  40. "WHERE cm.zonename = ? " +
  41. "GROUP BY cm.workcategory";
  42. params = new Object[]{zonename, zonename};
  43. } else {
  44. sqlQuery = "SELECT cm.schemename AS name, " +
  45. "COUNT(*) AS count, " +
  46. "SUM(cm.valueofwork) AS total_value_of_work, "+
  47. "'Scheme' AS type " +
  48. "FROM gcc_apps.cmworks cm " +
  49. "GROUP BY cm.schemename " +
  50. "UNION ALL " +
  51. "SELECT cm.workcategory AS name, " +
  52. "COUNT(*) AS count, " +
  53. "SUM(cm.valueofwork) AS total_value_of_work,"+
  54. "'Category' AS type " +
  55. "FROM gcc_apps.cmworks cm " +
  56. "GROUP BY cm.workcategory";
  57. params = new Object[]{};
  58. }
  59. return jdbcTemplate.queryForList(sqlQuery, params);
  60. }
  61. @Transactional
  62. public List<Map<String, Object>> getRegionCounts() {
  63. String sqlQuery = "SELECT regionname, COUNT(*) AS region_count FROM gcc_apps.cmworks GROUP BY regionname";
  64. return jdbcTemplate.queryForList(sqlQuery);
  65. }
  66. @Transactional
  67. public List<Map<String, Object>> getZoneCounts() {
  68. String sqlQuery = "SELECT zonename, COUNT(*) AS zone_count FROM gcc_apps.cmworks GROUP BY zonename";
  69. return jdbcTemplate.queryForList(sqlQuery);
  70. }
  71. public List<Map<String,Object>> getImageUrl(){
  72. String sqlQuery = "SELECT abs_est_number ,MAX(imageurl) AS imageurl FROM gcc_apps.cmworks GROUP BY abs_est_number";
  73. return jdbcTemplate.queryForList(sqlQuery);
  74. }
  75. public List<Map<String, Object>> getCmDashboardAllReports() {
  76. String sqlQuery ="SELECT * FROM gcc_apps.cmworks";
  77. List<Map<String, Object>> result = jdbcTemplate.queryForList(sqlQuery);
  78. return result;
  79. }
  80. public Map<String, Object> getCMDetails(int id) {
  81. String sql = "SELECT * FROM gcc_apps.cmworks WHERE data_id = ?";
  82. return jdbcTemplate.queryForMap(sql, id);
  83. }
  84. @Transactional
  85. public List<Map<String,Object>> getTradelicenseReports(String divisionName){
  86. String sqlquery = "";
  87. sqlquery ="select "
  88. + "region.name region, "
  89. + "zone.name Zone,boun.name Ward,NVL(new_lic,0) NEW_LIC,NVL(new_lic_amt,0) NEW_LIC_AMT,NVL(curr_lic_ren,0) REN_WITH_PENALTY, "
  90. + "NVL(curr_lic_ren_amt,0) REN_WITH_PENALTY_AMT ,NVL(curr_lic_ren_before,0) REN_WITH_OUT_PENALTY, "
  91. + "NVL(curr_lic_ren_before_amt,0) REN_WITH_OUT_PENALTY_AMT,NVL(nonrnwdcnt,0) NON_RENEWED, NVL(NONRNWDCNTAMT ,0) AS NONRNWDCNTAMT "
  92. + "from eg_boundary@erp boun left outer join "
  93. + " (SELECT ward_id ,SUM(NVL(new_lic ,0)) AS new_lic ,SUM(NVL(new_lic_amt ,0)) AS new_lic_amt ,SUM(NVL(totalCnt ,0)) AS totalCnt , "
  94. + " SUM(NVL(NONRNWDCNT ,0)) AS NONRNWDCNT,SUM(NVL(NONRNWDCNTAMT ,0)) AS NONRNWDCNTAMT "
  95. + " FROM (SELECT "
  96. + " CASE WHEN lic.ID_INSTALLMENT =ins.ID_INSTALLMENT AND ins.ID_INSTALLMENT = (SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) THEN 1 ELSE 0 END AS new_lic , "
  97. + " CASE WHEN lic.ID_INSTALLMENT =ins.ID_INSTALLMENT AND ins.ID_INSTALLMENT = (SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) THEN lic.total_fee ELSE 0 END AS new_lic_amt , "
  98. + " CASE WHEN lic.id is not null AND LIC.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) THEN 1 ELSE 0 END AS totalCnt , "
  99. + " CASE WHEN LIC.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) AND LIC.ID NOT IN (SELECT R1.LICENSE_ID FROM egtl_renewal@erp R1 where R1.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and R1.paid_status =1) THEN 1 ELSE 0 END AS NONRNWDCNT "
  100. + " ,CASE WHEN LIC.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) AND LIC.ID NOT IN (SELECT R1.LICENSE_ID FROM egtl_renewal@erp R1 where R1.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and R1.paid_status =1) THEN lic.total_fee ELSE 0 END AS NONRNWDCNTAMT "
  101. + " ,trade.division_id ward_id from EGTL_LICENSE@erp lic "
  102. + " inner join EGTL_TRADE@erp trade on trade.ID =lic.TRADE_ID "
  103. + " inner join eg_installment_master@erp ins on ins.id_installment = lic.id_installment "
  104. + "where trade.active=1 and LIC.STATUS IN (2 ,4 ,8)) group by ward_id) new on boun.id_bndry=new.ward_id "
  105. + "left outer join (select trade.division_id ward_id , "
  106. + "sum(CASE WHEN re.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN 1 ELSE 0 END) old_lic_ren, "
  107. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date THEN 1 ELSE 0 END) curr_lic_ren, "
  108. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date < ins.start_Date THEN 1 ELSE 0 END) curr_lic_ren_before, "
  109. + "sum(CASE WHEN re.ID_INSTALLMENT >(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN 1 ELSE 0 END) lic_ren_adv, "
  110. + "sum(CASE WHEN re.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN re.total_fee ELSE 0 END) old_lic_ren_amt, "
  111. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date THEN re.total_fee ELSE 0 END) curr_lic_ren_amt, "
  112. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date < ins.start_Date THEN re.total_fee ELSE 0 END) curr_lic_ren_before_amt, "
  113. + "sum(CASE WHEN re.ID_INSTALLMENT >(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN re.total_fee ELSE 0 END) lic_ren_adv_amt "
  114. + "from egtl_renewal@erp re ,EGTL_LICENSE@erp li ,EGTL_TRADE@erp trade ,eg_installment_master@erp ins "
  115. + "where trade.ID =li.TRADE_ID "
  116. + "and ins.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) "
  117. + "and li.STATUS IN (2 ,4 ,8) AND re.paid_status = 1 and li.id = re.license_id group by trade.division_id) ren on ren.ward_id=boun.id_bndry "
  118. + "left outer join eg_boundary@erp zone on zone.id_bndry=boun.parent "
  119. + "left outer join eg_boundary@erp region on region.id_bndry=zone.parent "
  120. + "where boun.id_bndry_type=3 and boun.name like 'N%' ";
  121. //and boun.name='"+divisionName+"' order by zone.name,boun.name"
  122. // Append division name filtering based on the selected division
  123. if (divisionName != null && !divisionName.isEmpty() && !"All".equalsIgnoreCase(divisionName)) {
  124. sqlquery += "and boun.name = '"+divisionName+"' ";
  125. }
  126. sqlquery += "order by zone.name, boun.name";
  127. List<Map<String, Object>> result = jdbcTemplate.queryForList(sqlquery);
  128. return result;
  129. }
  130. //and zone.name='N01' and boun.name='N009'
  131. @Transactional
  132. public List<Map<String,Object>> getTradelicenseReportsAll(){
  133. String sqlquery = "";
  134. sqlquery ="select "
  135. + "region.name region, "
  136. + "zone.name Zone,boun.name Ward,NVL(new_lic,0) NEW_LIC,NVL(new_lic_amt,0) NEW_LIC_AMT,NVL(curr_lic_ren,0) REN_WITH_PENALTY, "
  137. + "NVL(curr_lic_ren_amt,0) REN_WITH_PENALTY_AMT ,NVL(curr_lic_ren_before,0) REN_WITH_OUT_PENALTY, "
  138. + "NVL(curr_lic_ren_before_amt,0) REN_WITH_OUT_PENALTY_AMT,NVL(nonrnwdcnt,0) NON_RENEWED, NVL(NONRNWDCNTAMT ,0) AS NONRNWDCNTAMT "
  139. + "from eg_boundary@erp boun left outer join "
  140. + " (SELECT ward_id ,SUM(NVL(new_lic ,0)) AS new_lic ,SUM(NVL(new_lic_amt ,0)) AS new_lic_amt ,SUM(NVL(totalCnt ,0)) AS totalCnt , "
  141. + " SUM(NVL(NONRNWDCNT ,0)) AS NONRNWDCNT,SUM(NVL(NONRNWDCNTAMT ,0)) AS NONRNWDCNTAMT "
  142. + " FROM (SELECT "
  143. + " CASE WHEN lic.ID_INSTALLMENT =ins.ID_INSTALLMENT AND ins.ID_INSTALLMENT = (SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) THEN 1 ELSE 0 END AS new_lic , "
  144. + " CASE WHEN lic.ID_INSTALLMENT =ins.ID_INSTALLMENT AND ins.ID_INSTALLMENT = (SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) THEN lic.total_fee ELSE 0 END AS new_lic_amt , "
  145. + " CASE WHEN lic.id is not null AND LIC.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) THEN 1 ELSE 0 END AS totalCnt , "
  146. + " CASE WHEN LIC.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) AND LIC.ID NOT IN (SELECT R1.LICENSE_ID FROM egtl_renewal@erp R1 where R1.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and R1.paid_status =1) THEN 1 ELSE 0 END AS NONRNWDCNT "
  147. + " ,CASE WHEN LIC.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) AND LIC.ID NOT IN (SELECT R1.LICENSE_ID FROM egtl_renewal@erp R1 where R1.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and R1.paid_status =1) THEN lic.total_fee ELSE 0 END AS NONRNWDCNTAMT "
  148. + " ,trade.division_id ward_id from EGTL_LICENSE@erp lic "
  149. + " inner join EGTL_TRADE@erp trade on trade.ID =lic.TRADE_ID "
  150. + " inner join eg_installment_master@erp ins on ins.id_installment = lic.id_installment "
  151. + "where trade.active=1 and LIC.STATUS IN (2 ,4 ,8)) group by ward_id) new on boun.id_bndry=new.ward_id "
  152. + "left outer join (select trade.division_id ward_id , "
  153. + "sum(CASE WHEN re.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN 1 ELSE 0 END) old_lic_ren, "
  154. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date THEN 1 ELSE 0 END) curr_lic_ren, "
  155. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date < ins.start_Date THEN 1 ELSE 0 END) curr_lic_ren_before, "
  156. + "sum(CASE WHEN re.ID_INSTALLMENT >(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN 1 ELSE 0 END) lic_ren_adv, "
  157. + "sum(CASE WHEN re.ID_INSTALLMENT <(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN re.total_fee ELSE 0 END) old_lic_ren_amt, "
  158. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date THEN re.total_fee ELSE 0 END) curr_lic_ren_amt, "
  159. + "sum(CASE WHEN re.ID_INSTALLMENT =(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date < ins.start_Date THEN re.total_fee ELSE 0 END) curr_lic_ren_before_amt, "
  160. + "sum(CASE WHEN re.ID_INSTALLMENT >(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) and re.renewed_Date >= ins.start_Date and re.renewed_Date <= ins.end_Date THEN re.total_fee ELSE 0 END) lic_ren_adv_amt "
  161. + "from egtl_renewal@erp re ,EGTL_LICENSE@erp li ,EGTL_TRADE@erp trade ,eg_installment_master@erp ins "
  162. + "where trade.ID =li.TRADE_ID "
  163. + "and ins.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) "
  164. + "and li.STATUS IN (2 ,4 ,8) AND re.paid_status = 1 and li.id = re.license_id group by trade.division_id) ren on ren.ward_id=boun.id_bndry "
  165. + "left outer join eg_boundary@erp zone on zone.id_bndry=boun.parent "
  166. + "left outer join eg_boundary@erp region on region.id_bndry=zone.parent "
  167. + "where boun.id_bndry_type=3 and boun.name like 'N%' order by zone.name,boun.name";
  168. //region.name='North Region'
  169. List<Map<String, Object>> result = jdbcTemplate.queryForList(sqlquery);
  170. return result;
  171. }
  172. }