Browse Source

implemented tree pruning report

main
AJITHKUMAR12 3 months ago
parent
commit
faaefa2935
  1. 11
      gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/greencommittee/controller/Maincontroller.java
  2. 49
      gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/greencommittee/controller/ReportApicontroller.java
  3. 199
      gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/greencommittee/service/ReportService.java
  4. 1136
      gcc_officer_portal/src/main/resources/templates/modules/greencommittee/treepruningreports.html

11
gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/greencommittee/controller/Maincontroller.java

@ -78,4 +78,15 @@ public class Maincontroller {
return "modules/greencommittee/reports";
}
@GetMapping("/treepruningreports")
public String viewtreepruningreports(Model model) {
String LoginUserId = LoginUserInfo.getLoginUserId();
model.addAttribute("LoginUserId", LoginUserId);
String UserRole = LoginUserInfo.getUserRole();
model.addAttribute("UserRole", UserRole);
return "modules/greencommittee/treepruningreports";
}
}

49
gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/greencommittee/controller/ReportApicontroller.java

@ -7,6 +7,7 @@ import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@ -137,4 +138,52 @@ public class ReportApicontroller {
return reportService.getDepartments();
}
@GetMapping("/wards")
public List<Map<String, Object>> getWards(@RequestParam Integer zoneId) {
return reportService.getWards(zoneId);
}
@GetMapping("/zones")
public List<Map<String, Object>> getZones() {
return reportService.getZones();
}
@GetMapping("/details")
public ResponseEntity<?> getComplaintDetails(
@RequestParam String complaintId) {
return ResponseEntity.ok(
reportService.getComplaintDetailsreport(complaintId));
}
@GetMapping("/getreport")
public ResponseEntity<List<Map<String, Object>>> getTreePruningReport(
@RequestParam String fromDate,
@RequestParam String toDate,
@RequestParam(required = false) String zone,
@RequestParam(required = false) String ward,
@RequestParam(required = false) String status
) {
return ResponseEntity.ok(
reportService.getReport(
fromDate,
toDate,
zone,
ward,
status)
);
}
}

199
gcc_officer_portal/src/main/java/in/gov/chennaicorporation/gccoffice/greencommittee/service/ReportService.java

@ -1,5 +1,8 @@
package in.gov.chennaicorporation.gccoffice.greencommittee.service;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@ -15,6 +18,12 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.net.URL;
import java.net.URLEncoder;
import com.fasterxml.jackson.core.type.TypeReference;
@Service
public class ReportService {
@ -541,4 +550,194 @@ public class ReportService {
return jdbcTemplate.queryForList(sql);
}
public List<Map<String, Object>> getZones() {
String sql = """
SELECT id, zone_name
FROM gcc_street_vendor.zone_master
ORDER BY zone_name
""";
return jdbcTemplate.queryForList(sql);
}
public List<Map<String, Object>> getWards(Integer zoneId) {
String sql = """
SELECT id,
ward_name
FROM gcc_street_vendor.ward_master
WHERE zone_id=?
ORDER BY ward_name
""";
return jdbcTemplate.queryForList(sql, zoneId);
}
public List<Map<String, Object>> getReport(
String fromDate,
String toDate,
String zone,
String ward,
String status) {
List<Map<String, Object>> result = new ArrayList<>();
try {
String externalUrl = "https://erp.chennaicorporation.gov.in/pgr/newmobileservice";
StringBuilder url = new StringBuilder(externalUrl);
url.append("?serviceId=ms_dashboard_details");
// Mandatory
url.append("&From_date=").append(URLEncoder.encode(fromDate, "UTF-8"));
url.append("&To_date=").append(URLEncoder.encode(toDate, "UTF-8"));
url.append("&jsonResp=Yes");
// Status
if (status == null || status.trim().isEmpty()) {
url.append("&Status=total");
} else {
url.append("&Status=").append(URLEncoder.encode(status, "UTF-8"));
}
// Mandatory Parameters
url.append("&isQcuser=Yes");
url.append("&ComplaintType=")
.append(URLEncoder.encode("Tree Pruning", "UTF-8"));
url.append("&ComplaintGroupId=")
.append(URLEncoder.encode("Park and Playground", "UTF-8"));
// Zone
if (zone != null && !zone.trim().isEmpty()) {
url.append("&Zoneid=N")
.append(String.format("%02d", Integer.parseInt(zone)));
} else {
url.append("&Zoneid=");
}
// Mandatory blank
url.append("&RegionId=");
// Ward
if (ward != null && !ward.trim().isEmpty()) {
url.append("&WardId=N")
.append(String.format("%03d", Integer.parseInt(ward)));
} else {
url.append("&WardId=");
}
System.out.println("======================================");
System.out.println("Calling URL:");
System.out.println(url.toString());
System.out.println("======================================");
URL api = new URL(url.toString());
HttpURLConnection conn = (HttpURLConnection) api.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
int responseCode = conn.getResponseCode();
System.out.println("Response Code : " + responseCode);
BufferedReader br;
if (responseCode >= 200 && responseCode < 300) {
br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
} else {
br = new BufferedReader(
new InputStreamReader(conn.getErrorStream()));
}
StringBuilder response = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
response.append(line);
}
br.close();
System.out.println("API Response:");
System.out.println(response.toString());
ObjectMapper mapper = new ObjectMapper();
JsonNode root = mapper.readTree(response.toString());
JsonNode details = root.get("Details");
if (details != null && details.isArray()) {
result = mapper.convertValue(
details,
new TypeReference<List<Map<String, Object>>>() {
});
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
public Map<String, Object> getComplaintDetailsreport(String complaintId) {
try {
String url = "https://erp.chennaicorporation.gov.in/pgr/newmobileservice"
+ "?serviceId=getComplaintByID"
+ "&ComplaintId=" + URLEncoder.encode(complaintId, "UTF-8")
+ "&imgUrlonly=yes"
+ "&isQcuser=Yes"
+ "&jsonResp=Yes";
HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod("GET");
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
br.close();
ObjectMapper mapper = new ObjectMapper();
List<Map<String, Object>> response = mapper.readValue(
sb.toString(),
new TypeReference<List<Map<String, Object>>>() {
});
Map<String, Object> root = response.get(0);
List<Map<String, Object>> history = (List<Map<String, Object>>) root.get("ComplaintListHistory");
return history.get(0);
} catch (Exception e) {
e.printStackTrace();
return Collections.emptyMap();
}
}
}

1136
gcc_officer_portal/src/main/resources/templates/modules/greencommittee/treepruningreports.html
File diff suppressed because it is too large
View File

Loading…
Cancel
Save