|
|
|
@ -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(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |