From 6e9f30265517d96466564f5b979adc196b0d846e Mon Sep 17 00:00:00 2001 From: yoga-agoy Date: Sat, 27 Jul 2024 16:15:17 +0530 Subject: [PATCH] first commit --- APIController.java | 132 +++ MainController.java | 96 ++ WorksService.java | 205 ++++ dashboard page/cmworkstradelicense.html | 642 +++++++++++++ .../APIController.java | 127 +++ .../CmDashboardService.java | 166 ++++ .../MainController.java | 84 ++ hari cm works dashboard files/alldetails.html | 434 +++++++++ hari cm works dashboard files/index1.html | 875 ++++++++++++++++++ 9 files changed, 2761 insertions(+) create mode 100644 APIController.java create mode 100644 MainController.java create mode 100644 WorksService.java create mode 100644 dashboard page/cmworkstradelicense.html create mode 100644 hari cm works dashboard files/APIController.java create mode 100644 hari cm works dashboard files/CmDashboardService.java create mode 100644 hari cm works dashboard files/MainController.java create mode 100644 hari cm works dashboard files/alldetails.html create mode 100644 hari cm works dashboard files/index1.html diff --git a/APIController.java b/APIController.java new file mode 100644 index 0000000..47356a6 --- /dev/null +++ b/APIController.java @@ -0,0 +1,132 @@ +package in.gov.chennaicorporation.gccoffice.cmworks.controller; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + +import in.gov.chennaicorporation.gccoffice.cmworks.service.WorksService; +import in.gov.chennaicorporation.gccoffice.configuration.AppConfig; + +@RequestMapping("/gcc/api/works") +@RestController("worksRest") +public class APIController { + + private WorksService worksservice; + + @Autowired + private AppConfig appConfig; + + @Autowired + public APIController(WorksService worksservice) { + this.worksservice=worksservice; + } + + + @GetMapping(value="/getCmDashboardReports") + public List getCombinedCmDashboardReports(@RequestParam ("zonename") String zonename) { + + return worksservice.getCombinedCmDashboardReports(zonename); + } + + @GetMapping(value="/getCmDashboardAllReports") + public List getCmDashboardAllReports() { + + return worksservice.getCmDashboardAllReports(); + } + + + + @GetMapping(value="/getRegionCounts") + public List> getRegionCounts() { + return worksservice.getRegionCounts(); + } + + + @GetMapping(value="/getZoneCounts") + public List> getZoneCounts() { + return worksservice.getZoneCounts(); + } + + @GetMapping(value="/getImageUrl") + public List> getImageUrl() { + return worksservice.getImageUrl(); + } + + + @GetMapping("/all-list/{id}") + public Map getCMDetails(@PathVariable int id) { + return worksservice.getCMDetails(id); + } + + + + @GetMapping(value="/getTradelicenseReports") + public List getTradelicenseReports(@RequestParam("divisionName")String divisionName) { + System.out.println("selected region:"+ divisionName); + return worksservice.getTradelicenseReports(divisionName); + } + + + + @GetMapping(value="/getTradelicenseReportsAll") + public List getTradelicenseReportsAll() { + + return worksservice.getTradelicenseReportsAll(); + } + + + // Rest Api From ERP + @GetMapping(value = "/getZoneNo") + public String getZoneNo() { + + String urlString = appConfig.getErpUrl()+"serviceId=getZones"; + ResponseEntity response = null; + RestTemplate restTemplate = new RestTemplate(); + String bodyMessage = ""; + HttpHeaders headers = new HttpHeaders(); + try { + HttpEntity postData = new HttpEntity(headers); + response = restTemplate.exchange(urlString, HttpMethod.POST, postData, String.class); + bodyMessage = response.getBody(); + //System.out.println("BodyMessage" + bodyMessage); + } catch (Exception e) { + e.printStackTrace(); + //System.out.print("\n ERROR---: " + e); + bodyMessage = "Error"; + } + return bodyMessage; + } + + @GetMapping(value = "/getDiv") + public String getDiv(@RequestParam String zoneId) { + String urlString = appConfig.getErpUrl()+"serviceId=getWards&Zoneid="+zoneId+""; + ResponseEntity response = null; + RestTemplate restTemplate = new RestTemplate(); + String bodyMessage = ""; + HttpHeaders headers = new HttpHeaders(); + try { + HttpEntity postData = new HttpEntity(headers); + response = restTemplate.exchange(urlString, HttpMethod.POST, postData, String.class); + bodyMessage = response.getBody(); + //System.out.println("bodyMessage" + bodyMessage); + + } catch (Exception e) { + e.printStackTrace(); + //System.out.print("\n ERROR---: " + e); + bodyMessage = "Error"; + } + return bodyMessage; + } +} diff --git a/MainController.java b/MainController.java new file mode 100644 index 0000000..de68634 --- /dev/null +++ b/MainController.java @@ -0,0 +1,96 @@ +package in.gov.chennaicorporation.gccoffice.cmworks.controller; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import in.gov.chennaicorporation.gccoffice.cmworks.service.WorksService; +import in.gov.chennaicorporation.gccoffice.service.LoginUserInfo; + +@RequestMapping("/gcc/works") +@Controller("worksController") +public class MainController { + + private final LoginUserInfo loginUserInfo; + private final WorksService dashboards; + + + @Autowired + public MainController(LoginUserInfo loginUserInfo, + WorksService dashboards) { + this.loginUserInfo = loginUserInfo; + this.dashboards = dashboards; + } + + + // This method to show the dashboard of regionwise,zonewise,typeofwork,scheme wise works counts + + @GetMapping({"", "/", "/dashboard"}) + public String main(@RequestParam(value = "zonename", required = false, defaultValue = "all") String zonename, Model model) { + + // Fetch data for the dashboard based on the regionname + List> regionData = dashboards.getCombinedCmDashboardReports(zonename); + List> schemeData = dashboards.getCombinedCmDashboardReports(zonename); + List> typeOfWorkData = dashboards.getCombinedCmDashboardReports(zonename); + List> zoneData = dashboards.getCombinedCmDashboardReports(zonename); + + // Add data to the model + model.addAttribute("regionData", regionData); + model.addAttribute("schemeData", schemeData); + model.addAttribute("typeOfWorkData", typeOfWorkData); + model.addAttribute("zoneData", zoneData); + // Log the user ID + String userId = LoginUserInfo.getLoginUserId(); + if (userId != null && !userId.isEmpty()) { + System.out.println("String UserID: " + userId); + } + + return "modules/cmworks/dashboard"; + } + + + //This method used to show the image and estimate number details of works + + @GetMapping("/cmworksdetails") + public String worksdetails(Model model) { + + List> workslist = dashboards.getImageUrl(); + + model.addAttribute("workslist",workslist); + return "modules/cmworks/cmworksdetails"; + } + + //This method used to show the all related details of works + + @GetMapping("/all-list") + public String allList(Model model) { + + List> cmLists = dashboards.getCmDashboardAllReports(); + model.addAttribute("cmlist", cmLists); + return "modules/cmworks/cmworksdetails1"; + } + + //This method used to show the tradelicense details dashboard + + + @GetMapping("/tradedashboard") + public String tradelicense(@RequestParam(value = "divisionName", required = false, defaultValue = "All") String divisionName,Model model) { + + List> tradelicense = new ArrayList<>(); + + if(divisionName!=null && divisionName.isEmpty()) { + tradelicense = dashboards.getTradelicenseReports(divisionName); + } + model.addAttribute("tradelicense", tradelicense); + return "modules/cmworks/cmworkstradelicense"; + } + + +} diff --git a/WorksService.java b/WorksService.java new file mode 100644 index 0000000..844a968 --- /dev/null +++ b/WorksService.java @@ -0,0 +1,205 @@ +package in.gov.chennaicorporation.gccoffice.cmworks.service; + +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; +import javax.transaction.Transactional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Controller; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; + +@Service +public class WorksService { + + private JdbcTemplate jdbcTemplate; + + +// @Autowired +// public void setDataSourcemysql(@Qualifier("mysqlAppDataSource") DataSource dataSource) { +// this.jdbcTemplate = new JdbcTemplate(dataSource); } + + @Autowired + public void setDataSource(@Qualifier("oracleDataSource") DataSource dataSource) { + this.jdbcTemplate = new JdbcTemplate(dataSource); + } + + @Transactional + public List> getCombinedCmDashboardReports(String zonename) { + String sqlQuery; + Object[] params; + + if (zonename != null && !zonename.equalsIgnoreCase("all")) { + sqlQuery = "SELECT cm.schemename AS name, " + + "COUNT(*) AS count, " + + "SUM(cm.valueofwork) AS total_value_of_work, " + + "'Scheme' AS type " + + "FROM gcc_apps.cmworks cm " + + "WHERE cm.zonename = ? " + + "GROUP BY cm.schemename " + + "UNION ALL " + + "SELECT cm.workcategory AS name, " + + "COUNT(*) AS count, " + + "SUM(cm.valueofwork) AS total_value_of_work, " + + "'Category' AS type " + + "FROM gcc_apps.cmworks cm " + + "WHERE cm.zonename = ? " + + "GROUP BY cm.workcategory"; + params = new Object[]{zonename, zonename}; + } else { + sqlQuery = "SELECT cm.schemename AS name, " + + "COUNT(*) AS count, " + + "SUM(cm.valueofwork) AS total_value_of_work, "+ + "'Scheme' AS type " + + "FROM gcc_apps.cmworks cm " + + "GROUP BY cm.schemename " + + "UNION ALL " + + "SELECT cm.workcategory AS name, " + + "COUNT(*) AS count, " + + "SUM(cm.valueofwork) AS total_value_of_work,"+ + "'Category' AS type " + + "FROM gcc_apps.cmworks cm " + + "GROUP BY cm.workcategory"; + params = new Object[]{}; + } + + return jdbcTemplate.queryForList(sqlQuery, params); + } + + + @Transactional + public List> getRegionCounts() { + String sqlQuery = "SELECT regionname, COUNT(*) AS region_count FROM gcc_apps.cmworks GROUP BY regionname"; + return jdbcTemplate.queryForList(sqlQuery); + } + + @Transactional + public List> getZoneCounts() { + String sqlQuery = "SELECT zonename, COUNT(*) AS zone_count FROM gcc_apps.cmworks GROUP BY zonename"; + return jdbcTemplate.queryForList(sqlQuery); + } + + public List> getImageUrl(){ + String sqlQuery = "SELECT abs_est_number ,MAX(imageurl) AS imageurl FROM gcc_apps.cmworks GROUP BY abs_est_number"; + return jdbcTemplate.queryForList(sqlQuery); + } + + + public List> getCmDashboardAllReports() { + String sqlQuery ="SELECT * FROM gcc_apps.cmworks"; + List> result = jdbcTemplate.queryForList(sqlQuery); + + return result; + } + + public Map getCMDetails(int id) { + String sql = "SELECT * FROM gcc_apps.cmworks WHERE data_id = ?"; + return jdbcTemplate.queryForMap(sql, id); + } + + @Transactional + public List> getTradelicenseReports(String divisionName){ + String sqlquery = ""; + + + sqlquery ="select " + + "region.name region, " + + "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, " + + "NVL(curr_lic_ren_amt,0) REN_WITH_PENALTY_AMT ,NVL(curr_lic_ren_before,0) REN_WITH_OUT_PENALTY, " + + "NVL(curr_lic_ren_before_amt,0) REN_WITH_OUT_PENALTY_AMT,NVL(nonrnwdcnt,0) NON_RENEWED, NVL(NONRNWDCNTAMT ,0) AS NONRNWDCNTAMT " + + "from eg_boundary@erp boun left outer join " + + " (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 , " + + " SUM(NVL(NONRNWDCNT ,0)) AS NONRNWDCNT,SUM(NVL(NONRNWDCNTAMT ,0)) AS NONRNWDCNTAMT " + + " FROM (SELECT " + + " 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 , " + + " 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 , " + + " 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 , " + + " 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 " + + " ,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 " + + " ,trade.division_id ward_id from EGTL_LICENSE@erp lic " + + " inner join EGTL_TRADE@erp trade on trade.ID =lic.TRADE_ID " + + " inner join eg_installment_master@erp ins on ins.id_installment = lic.id_installment " + + "where trade.active=1 and LIC.STATUS IN (2 ,4 ,8)) group by ward_id) new on boun.id_bndry=new.ward_id " + + "left outer join (select trade.division_id ward_id , " + + "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, " + + "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, " + + "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, " + + "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, " + + "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, " + + "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, " + + "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, " + + "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 " + + "from egtl_renewal@erp re ,EGTL_LICENSE@erp li ,EGTL_TRADE@erp trade ,eg_installment_master@erp ins " + + "where trade.ID =li.TRADE_ID " + + "and ins.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) " + + "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 " + + "left outer join eg_boundary@erp zone on zone.id_bndry=boun.parent " + + "left outer join eg_boundary@erp region on region.id_bndry=zone.parent " + + "where boun.id_bndry_type=3 and boun.name like 'N%' "; + + //and boun.name='"+divisionName+"' order by zone.name,boun.name" + + // Append division name filtering based on the selected division + if (divisionName != null && !divisionName.isEmpty() && !"All".equalsIgnoreCase(divisionName)) { + sqlquery += "and boun.name = '"+divisionName+"' "; + } + + sqlquery += "order by zone.name, boun.name"; + + List> result = jdbcTemplate.queryForList(sqlquery); + + return result; + } + //and zone.name='N01' and boun.name='N009' + + @Transactional + public List> getTradelicenseReportsAll(){ + String sqlquery = ""; + + + sqlquery ="select " + + "region.name region, " + + "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, " + + "NVL(curr_lic_ren_amt,0) REN_WITH_PENALTY_AMT ,NVL(curr_lic_ren_before,0) REN_WITH_OUT_PENALTY, " + + "NVL(curr_lic_ren_before_amt,0) REN_WITH_OUT_PENALTY_AMT,NVL(nonrnwdcnt,0) NON_RENEWED, NVL(NONRNWDCNTAMT ,0) AS NONRNWDCNTAMT " + + "from eg_boundary@erp boun left outer join " + + " (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 , " + + " SUM(NVL(NONRNWDCNT ,0)) AS NONRNWDCNT,SUM(NVL(NONRNWDCNTAMT ,0)) AS NONRNWDCNTAMT " + + " FROM (SELECT " + + " 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 , " + + " 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 , " + + " 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 , " + + " 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 " + + " ,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 " + + " ,trade.division_id ward_id from EGTL_LICENSE@erp lic " + + " inner join EGTL_TRADE@erp trade on trade.ID =lic.TRADE_ID " + + " inner join eg_installment_master@erp ins on ins.id_installment = lic.id_installment " + + "where trade.active=1 and LIC.STATUS IN (2 ,4 ,8)) group by ward_id) new on boun.id_bndry=new.ward_id " + + "left outer join (select trade.division_id ward_id , " + + "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, " + + "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, " + + "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, " + + "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, " + + "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, " + + "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, " + + "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, " + + "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 " + + "from egtl_renewal@erp re ,EGTL_LICENSE@erp li ,EGTL_TRADE@erp trade ,eg_installment_master@erp ins " + + "where trade.ID =li.TRADE_ID " + + "and ins.ID_INSTALLMENT=(SELECT ID_INSTALLMENT FROM EG_INSTALLMENT_MASTER@erp WHERE ID_MODULE = 185 AND START_DATE < SYSDATE AND END_DATE > SYSDATE) " + + "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 " + + "left outer join eg_boundary@erp zone on zone.id_bndry=boun.parent " + + "left outer join eg_boundary@erp region on region.id_bndry=zone.parent " + + "where boun.id_bndry_type=3 and boun.name like 'N%' order by zone.name,boun.name"; + //region.name='North Region' + List> result = jdbcTemplate.queryForList(sqlquery); + + return result; + } + + +} diff --git a/dashboard page/cmworkstradelicense.html b/dashboard page/cmworkstradelicense.html new file mode 100644 index 0000000..4c15c8c --- /dev/null +++ b/dashboard page/cmworkstradelicense.html @@ -0,0 +1,642 @@ + + + + + + + + + + + +
+ +
+ + +
+ +
+ +
+
+ +

Auto refresh in 00 seconds

+
+
+
+
+ +

+ Trade Analysis: +

+
+
+
+
+
+ + +
+
+ + +
+ +
+
+ +
+

+

+
+
+
+
+
+

+
+
+
+
+
+
+
+
+
+
+
+ +
+ + + + + + + + + + + + + + \ No newline at end of file diff --git a/hari cm works dashboard files/APIController.java b/hari cm works dashboard files/APIController.java new file mode 100644 index 0000000..066c824 --- /dev/null +++ b/hari cm works dashboard files/APIController.java @@ -0,0 +1,127 @@ +package in.gov.chennaicorporation.gccoffice.cmdashboard.controller; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestTemplate; + + + +import in.gov.chennaicorporation.gccoffice.cmdashboard.service.CmDashboardService; +import in.gov.chennaicorporation.gccoffice.configuration.AppConfig; + + + +@RequestMapping("/gcc/api/cmdashboard") +@RestController("cmdashboard") +public class APIController +{ + private CmDashboardService cmdashboards; + + + @Autowired + private AppConfig appConfig; + + @Autowired + public APIController(CmDashboardService cmdashboards) { + this.cmdashboards = cmdashboards; + } + + @GetMapping(value = "/getCmDashboardReports") + public List getCombinedCmDashboardReports(@RequestParam("zonename") String zonename) { + + return cmdashboards.getCombinedCmDashboardReports(zonename); + } + + @GetMapping(value = "/getCmDashboardAllReports") + public List getCmDashboardAllReports() { + + return cmdashboards.getCmDashboardAllReports(); + } + + @GetMapping(value = "/getRegionCounts") + public List> getRegionCounts() { + return cmdashboards.getRegionCounts(); + } + + @GetMapping(value = "/getZoneCounts") + public List> getZoneCounts() { + return cmdashboards.getZoneCounts(); + } + + @GetMapping(value = "/getSchemeDetails") + public Map getSchemeDetails(@RequestParam("schemename") String schemename, @RequestParam("zonename") String zonename) { + return cmdashboards.getSchemeDetails(schemename, zonename); + } + + @GetMapping(value="/getTypeOfWorkDetails") + public Map getTypeOfWorkDetails(@RequestParam("typeofwork") String typeofwork, @RequestParam("zonename") String zonename){ + return cmdashboards.getTypeOfWorkDetails(typeofwork, zonename); + } + + @GetMapping(value="/getRegionzones") + public Map getRegionsZonesDetails(@RequestParam("regionname") String regionname){ + return cmdashboards.getRegionDetails(regionname); + } + + @GetMapping("/all-list/{id}") + public Map getCMDetails(@PathVariable int id) + { + return cmdashboards.getCMDetails(id); + } + + // Rest Api From ERP +// @GetMapping(value = "/getZoneNo") +// public String getZoneNo() { +// +// String urlString = appConfig.getErpUrl()+"serviceId=getZones"; +// ResponseEntity response = null; +// RestTemplate restTemplate = new RestTemplate(); +// String bodyMessage = ""; +// HttpHeaders headers = new HttpHeaders(); +// try { +// HttpEntity postData = new HttpEntity(headers); +// response = restTemplate.exchange(urlString, HttpMethod.POST, postData, String.class); +// bodyMessage = response.getBody(); +// //System.out.println("BodyMessage" + bodyMessage); +// } catch (Exception e) { +// e.printStackTrace(); +// //System.out.print("\n ERROR---: " + e); +// bodyMessage = "Error"; +// } +// return bodyMessage; +// } +// +// @GetMapping(value = "/getDiv") +// public String getDiv(@RequestParam String zoneId) { +// String urlString = appConfig.getErpUrl()+"serviceId=getWards&Zoneid="+zoneId+""; +// ResponseEntity response = null; +// RestTemplate restTemplate = new RestTemplate(); +// String bodyMessage = ""; +// HttpHeaders headers = new HttpHeaders(); +// try { +// HttpEntity postData = new HttpEntity(headers); +// response = restTemplate.exchange(urlString, HttpMethod.POST, postData, String.class); +// bodyMessage = response.getBody(); +// //System.out.println("bodyMessage" + bodyMessage); +// +// } catch (Exception e) { +// e.printStackTrace(); +// //System.out.print("\n ERROR---: " + e); +// bodyMessage = "Error"; +// } +// return bodyMessage; +// } + +} diff --git a/hari cm works dashboard files/CmDashboardService.java b/hari cm works dashboard files/CmDashboardService.java new file mode 100644 index 0000000..f304cfd --- /dev/null +++ b/hari cm works dashboard files/CmDashboardService.java @@ -0,0 +1,166 @@ +package in.gov.chennaicorporation.gccoffice.cmdashboard.service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; +import javax.transaction.Transactional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.stereotype.Service; + +@Service +public class CmDashboardService { + private JdbcTemplate jdbcTemplate; + + @Autowired + public void setDataSourcemysql(@Qualifier("mysqlAppDataSource") DataSource dataSource) { + this.jdbcTemplate = new JdbcTemplate(dataSource); + } + + @Transactional + public List> getCombinedCmDashboardReports(String zonename) { + String sqlQuery; + Object[] params; + + if (zonename != null && !zonename.equalsIgnoreCase("all")) { + sqlQuery = "SELECT cm.schemename AS name, " + "COUNT(*) AS count, " + "'Scheme' AS type " + + "FROM gcc_apps.mytable cm " + "WHERE cm.zonename = ? " + "GROUP BY cm.schemename " + "UNION ALL " + + "SELECT cm.typeofwork AS name, " + "COUNT(*) AS count, " + "'TypeOfWork' AS type " + + "FROM gcc_apps.mytable cm " + "WHERE cm.zonename = ? " + "GROUP BY cm.typeofwork"; + params = new Object[] { zonename, zonename }; + } else { + sqlQuery = "SELECT cm.schemename AS name, " + "COUNT(*) AS count, " + "'Scheme' AS type " + + "FROM gcc_apps.mytable cm " + "GROUP BY cm.schemename " + "UNION ALL " + + "SELECT cm.typeofwork AS name, " + "COUNT(*) AS count, " + "'TypeOfWork' AS type " + + "FROM gcc_apps.mytable cm " + "GROUP BY cm.typeofwork"; + params = new Object[] {}; + } + + return jdbcTemplate.queryForList(sqlQuery, params); + } + + + + @Transactional + public List> getRegionCounts() { + String sqlQuery = "SELECT regionname, COUNT(*) AS region_count FROM gcc_apps.mytable GROUP BY regionname"; + return jdbcTemplate.queryForList(sqlQuery); + } + + @Transactional + public List> getZoneCounts() { + String sqlQuery = "SELECT zonename, COUNT(*) AS zone_count FROM gcc_apps.mytable GROUP BY zonename"; + return jdbcTemplate.queryForList(sqlQuery); + } + + @Transactional + public Map getRegionDetails(String regionname) { + + String sqlQuery = "SELECT SUM(cm.valueofwork) AS totalValueOfWork, COUNT(*) AS totalWorkCounts " + + "FROM gcc_apps.mytable cm " + "WHERE cm.regionname = ? "; + + Object[] params = new Object[] { regionname }; + + Map regiondetails = jdbcTemplate.queryForMap(sqlQuery, params); + + String sqlQueryRegionZone = "SELECT zonename AS name, " + + "COUNT(*) AS regionszones_count, " + + "SUM(valueofwork) AS totalValueOfWork, " + + "COUNT(*) AS totalWorkCounts " + + "FROM gcc_apps.mytable " + + "WHERE regionname = ? " + + "GROUP BY zonename;"; + + List> regionzonedetails = jdbcTemplate.queryForList(sqlQueryRegionZone, params); + regiondetails.put("regionzonedetails", regionzonedetails); + + return regiondetails; + } + + @Transactional + public Map getSchemeDetails(String schemename, String zonename) { + String sqlQuery = "SELECT SUM(cm.valueofwork) AS totalValueOfWork, COUNT(*) AS totalWorkCounts " + + "FROM gcc_apps.mytable cm " + "WHERE cm.schemename = ? " + + (zonename != null && !zonename.equalsIgnoreCase("all") ? " AND cm.zonename = ?" : ""); + + Object[] params = zonename != null && !zonename.equalsIgnoreCase("all") ? new Object[] { schemename, zonename } + : new Object[] { schemename }; + + Map schemeDetails = jdbcTemplate.queryForMap(sqlQuery, params); + + String sqlQueryTypeOfWork = "SELECT cm.typeofwork AS name, COUNT(*) AS count, SUM(cm.valueofwork) AS totalValueOfWork " + + "FROM gcc_apps.mytable cm " + "WHERE cm.schemename = ? " + + (zonename != null && !zonename.equalsIgnoreCase("all") ? " AND cm.zonename = ?" : "") + + "GROUP BY cm.typeofwork"; + + List> typeOfWorkDetails = jdbcTemplate.queryForList(sqlQueryTypeOfWork, params); + + schemeDetails.put("typeOfWorkDetails", typeOfWorkDetails); + + return schemeDetails; + } + + + @Transactional + public Map getTypeOfWorkDetails(String typeofwork, String zonename) { + String sqlQuery = "SELECT SUM(cm.valueofwork) AS totalValueOfWork, COUNT(*) AS totalWorkCounts " + + "FROM gcc_apps.mytable cm " + "WHERE cm.typeofwork = ? " + + (zonename != null && !zonename.equalsIgnoreCase("all") ? " AND cm.zonename = ?" : ""); + Object[] params = zonename != null && !zonename.equalsIgnoreCase("all") ? new Object[] { typeofwork, zonename } + : new Object[] { typeofwork }; + + Map typeOfWorkDetail = jdbcTemplate.queryForMap(sqlQuery, params); + + String sqlQueryTypeOfWork = "SELECT cm.schemename AS name, COUNT(*) AS count, SUM(cm.valueofwork) AS totalValueOfWork " + + "FROM gcc_apps.mytable cm " + "WHERE cm.typeofwork = ? " + + (zonename != null && !zonename.equalsIgnoreCase("all") ? " AND cm.zonename = ?" : "") + + "GROUP BY cm.schemename"; + + List> schemeNameDetails = jdbcTemplate.queryForList(sqlQueryTypeOfWork, params); + + typeOfWorkDetail.put("schemeNameDetails", schemeNameDetails); + + return typeOfWorkDetail; + } + + + + public List> getCmDashboardAllReports() { + String sqlQuery = "SELECT * FROM gcc_apps.mytable"; + List> result = jdbcTemplate.queryForList(sqlQuery); + + return result; + } + + public Map getCMDetails(int id) { + String sql = "SELECT * FROM gcc_apps.mytable WHERE data_id = ?"; + return jdbcTemplate.queryForMap(sql, id); + } + + @Transactional + public List> getCmDashboardAllReportsFiltered(String zonename, String schemename, String typeofwork) { + String sqlQuery = "SELECT * FROM gcc_apps.mytable WHERE 1=1"; + List params = new ArrayList<>(); + + if (zonename != null && !zonename.equalsIgnoreCase("all")) { + sqlQuery += " AND zonename = ?"; + params.add(zonename); + } + if (schemename != null && !schemename.equalsIgnoreCase("all")) { + sqlQuery += " AND schemename = ?"; + params.add(schemename); + } + if (typeofwork != null && !typeofwork.equalsIgnoreCase("all")) { + sqlQuery += " AND typeofwork = ?"; + params.add(typeofwork); + } + + return jdbcTemplate.queryForList(sqlQuery, params.toArray()); + } + +} diff --git a/hari cm works dashboard files/MainController.java b/hari cm works dashboard files/MainController.java new file mode 100644 index 0000000..a5d6921 --- /dev/null +++ b/hari cm works dashboard files/MainController.java @@ -0,0 +1,84 @@ +package in.gov.chennaicorporation.gccoffice.cmdashboard.controller; + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import in.gov.chennaicorporation.gccoffice.cmdashboard.service.CmDashboardService; +import in.gov.chennaicorporation.gccoffice.service.LoginUserInfo; + +@RequestMapping("/gcc/dashboards") +@Controller("cmdashboardcontroller") +public class MainController +{ + private final LoginUserInfo loginUserInfo; + private final CmDashboardService cmdashboards; + + @Autowired + public MainController(LoginUserInfo loginUserInfo, CmDashboardService cmdashboards) + { + this.cmdashboards=cmdashboards; + this.loginUserInfo=loginUserInfo; + } + + + @GetMapping("/dashboard1") + public String main(Model model) { + String userId = LoginUserInfo.getLoginUserId(); + if (userId != null && !userId.isEmpty()) { + System.out.println("String UserID: " + userId); + } + + return "modules/cmdashboard/index"; + } + + @GetMapping("/dashboard2") + public String viewpage(@RequestParam(value = "zonename", required = false, defaultValue = "all") String zonename, Model model) { + // Fetch data for the dashboard based on the regionname + List> regionData = cmdashboards.getCombinedCmDashboardReports(zonename); + List> schemeData = cmdashboards.getCombinedCmDashboardReports(zonename); + List> typeOfWorkData = cmdashboards.getCombinedCmDashboardReports(zonename); + List> zoneData = cmdashboards.getCombinedCmDashboardReports(zonename); + + // Add data to the model + model.addAttribute("regionData", regionData); + model.addAttribute("schemeData", schemeData); + model.addAttribute("typeOfWorkData", typeOfWorkData); + model.addAttribute("zoneData", zoneData); + + String userId = LoginUserInfo.getLoginUserId(); + if (userId != null && !userId.isEmpty()) { + System.out.println("String UserID: " + userId); + } + + return "modules/cmdashboard/index1"; + } + + + @GetMapping("/all-list") + public String allList(@RequestParam(value = "zonename", required = false, defaultValue = "all") String zonename, + @RequestParam(value = "schemename", required = false, defaultValue = "all") String schemename, + @RequestParam(value = "typeofwork", required = false, defaultValue = "all") String typeofwork, + Model model) { + List> cmLists = cmdashboards.getCmDashboardAllReportsFiltered(zonename, schemename, typeofwork); + model.addAttribute("cmlist", cmLists); + return "modules/cmdashboard/alldetails"; + } + + @GetMapping("/dashboard3") + public String view(Model model) { + String userId = LoginUserInfo.getLoginUserId(); + if (userId != null && !userId.isEmpty()) { + System.out.println("String UserID: " + userId); + } + + return "modules/cmdashboard/index2"; + } + +} diff --git a/hari cm works dashboard files/alldetails.html b/hari cm works dashboard files/alldetails.html new file mode 100644 index 0000000..2bf1274 --- /dev/null +++ b/hari cm works dashboard files/alldetails.html @@ -0,0 +1,434 @@ + + + + + +
+ +
+ +
+ +
+ +
+
+ + +
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
S.NoEST IDRegion NameZone NameScheme NameCategory of WorkType of Work
0 + +
S.NoEST IDRegion NameZone NameScheme NameCategory of WorkType of Work
+
+
+
+
+
+
+
+ +
+
+
+ + + + + + + + + + + + \ No newline at end of file diff --git a/hari cm works dashboard files/index1.html b/hari cm works dashboard files/index1.html new file mode 100644 index 0000000..2d83ed9 --- /dev/null +++ b/hari cm works dashboard files/index1.html @@ -0,0 +1,875 @@ + + + + + + + + +
+ +
+ + +
+ +
+ +
+
+ +
+
+
+
+ +

+ Works Analysis: +

+

+
+ +
+
+ +
+
+ Over all Region wise works count +
+
+
+
+ +
+
+ Overall Zonewise works count +
+
+
+ + +
+ +
+ + +
+ + +
+
+ + Scheme Names +
+
+
+ +
+
+
+ + Type of Works +
+
+
+ +
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+
+
+ + + + +
+ + + + + + + + + + + + + + + + +