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"; } }