Browse Source

changed completed and pending logic

master
AJITHKUMAR12 4 months ago
parent
commit
49dd301b65
  1. 411
      src/main/java/com/gcc/commissionerreview/service/IeComplaintsService.java
  2. 478
      src/main/java/com/gcc/commissionerreview/service/TenementService.java
  3. 111
      src/main/resources/templates/modules/vendorreport.html

411
src/main/java/com/gcc/commissionerreview/service/IeComplaintsService.java

@ -530,7 +530,102 @@ public class IeComplaintsService {
}
// vendor api
public Map<String, Object> getvendorZoneActivity(String fromDate, String toDate, Integer complaintId) {
public Map<String, Object> getvendorZoneActivity(
String fromDate,
String toDate,
Integer complaintId) {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
sql.append("SELECT ");
sql.append("zm.zone_name, ");
// TOTAL
sql.append("COUNT(DISTINCT CASE ");
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("WHEN DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
} else {
sql.append("WHEN 1=1 ");
}
sql.append("THEN cd.ref_id END) AS total_count, ");
// COMPLETED = VERIFIED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status = 'verified' ");
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("AND DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("THEN cd.ref_id END) AS completed_count, ");
// PENDING = PENDING + COMPLETED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status IN ('pending','completed') ");
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("AND DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("THEN cd.ref_id END) AS pending_count ");
sql.append("FROM gcc_street_vendor.zone_master zm ");
sql.append("LEFT JOIN complaint_details cd ");
sql.append("ON zm.zone_name = cd.zone ");
sql.append("AND cd.is_delete = 0 ");
sql.append("AND cd.is_active = 1 ");
sql.append("AND cd.complaint_id IN (4,6,12) ");
if (complaintId != null) {
sql.append("AND cd.complaint_id = ? ");
params.add(complaintId);
}
sql.append("GROUP BY zm.zone_name ");
sql.append("ORDER BY zm.zone_name ");
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql.toString(), params.toArray());
response.put("status", "Success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "Error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getvendorZoneActivitywithoutcompletedandpending(String fromDate, String toDate,
Integer complaintId) {
Map<String, Object> response = new HashMap<>();
@ -612,7 +707,95 @@ public class IeComplaintsService {
return response;
}
public Map<String, Object> getvendorWardActivity(String zone, String complaintId,
public Map<String, Object> getvendorWardActivity(
String zone,
String complaintId,
String fromDate,
String toDate) {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
sql.append("SELECT ");
sql.append("wm.ward_name AS ward, ");
// TOTAL
sql.append("COUNT(DISTINCT cd.ref_id) AS total_count, ");
// COMPLETED = VERIFIED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status = 'verified' ");
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("AND DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("THEN cd.ref_id END) AS completed_count, ");
// PENDING = PENDING + COMPLETED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status IN ('pending','completed') ");
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("AND DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("THEN cd.ref_id END) AS pending_count ");
sql.append("FROM gcc_street_vendor.ward_master wm ");
sql.append("LEFT JOIN complaint_details cd ");
sql.append("ON wm.ward_name = cd.ward ");
sql.append("AND cd.zone = ? ");
params.add(zone);
sql.append("AND cd.is_delete = 0 ");
sql.append("AND cd.is_active = 1 ");
sql.append("AND cd.complaint_id IN (4,6,12) ");
if (complaintId != null && !complaintId.isEmpty()) {
sql.append("AND cd.complaint_id = ? ");
params.add(complaintId);
}
sql.append("WHERE wm.zone_id = ? ");
params.add(zone);
sql.append("GROUP BY wm.ward_name ");
sql.append("ORDER BY wm.ward_name ");
List<Map<String, Object>> result = jdbcTemplate.queryForList(
sql.toString(),
params.toArray());
response.put("status", "Success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "Error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getvendorWardActivitywithoutcompletedandpending(String zone, String complaintId,
String fromDate, String toDate) {
Map<String, Object> response = new HashMap<>();
@ -699,6 +882,158 @@ public class IeComplaintsService {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
String beforeImageColumn = "cd.image_path";
String afterImageColumn = "comp.image_path";
sql.append("SELECT ");
sql.append("cm.complaint_name, ");
sql.append(
"CASE " +
"WHEN cd.status = 'verified' THEN 'Completed' " +
"WHEN cd.status IN ('pending','completed') THEN 'Pending' " +
"ELSE cd.status " +
"END AS ie_status, ");
sql.append("cd.street_name, ");
sql.append("cd.status, ");
sql.append("cd.street_name AS complaint_street_name, ");
/* sql.append("comp.street_name AS completion_street_name, "); */
sql.append("DATE_FORMAT(cd.cdate,'%d-%m-%Y') AS complaint_created_date, ");
sql.append("cd.remarks AS complaint_remarks, ");
/*
* sql.append(
* "IFNULL(DATE_FORMAT(comp.cdate,'%d-%m-%Y'),'Pending') AS completion_date, ");
*/
sql.append(
"CONCAT('" + fileBaseUrl
+ "/gccofficialapp/files',"
+ beforeImageColumn
+ ") AS before_image, ");
/*
* sql.append(
* "CASE " +
* "WHEN comp.image_path IS NOT NULL " +
* "THEN CONCAT('" + fileBaseUrl + "/gccofficialapp/files', comp.image_path) " +
* "ELSE '' " +
* "END AS after_image ");
*/
// Completion Remarks
sql.append(
"CASE " +
"WHEN cd.status IN ('completed','verified') " +
"THEN IFNULL(comp.street_name,'') " +
"ELSE 'Pending' " +
"END AS completion_street_name, ");
// Completion Date
sql.append(
"CASE " +
"WHEN cd.status IN ('completed','verified') " +
"THEN DATE_FORMAT(comp.cdate,'%d-%m-%Y') " +
"ELSE 'Pending' " +
"END AS completion_date, ");
// After Image
sql.append(
"CASE " +
"WHEN cd.status IN ('completed','verified') " +
"AND comp.image_path IS NOT NULL " +
"THEN CONCAT('" + fileBaseUrl + "/gccofficialapp/files', comp.image_path) " +
"ELSE 'Pending' " +
"END AS after_image, ");
// complete remarks
sql.append(
"CASE WHEN cd.status IN ('completed','verified') THEN comp.remarks ELSE 'Pending' END AS completion_remarks ");
sql.append("FROM complaint_details cd ");
sql.append("LEFT JOIN complaint_master cm ");
sql.append("ON cm.complaint_id = cd.complaint_id ");
/*
* sql.append("LEFT JOIN completion comp ");
* sql.append("ON comp.ref_id = cd.ref_id ");
*/
sql.append("LEFT JOIN completion comp ");
sql.append("ON comp.id = ( ");
sql.append(" SELECT MAX(c1.id) ");
sql.append(" FROM completion c1 ");
sql.append(" WHERE c1.ref_id = cd.ref_id ");
sql.append(") ");
sql.append("WHERE cd.zone = ? ");
params.add(zone);
sql.append("AND cd.ward = ? ");
params.add(ward);
sql.append("AND cd.is_delete = 0 ");
sql.append("AND cd.is_active = 1 ");
sql.append("AND cd.complaint_id IN (4,6,12) ");
if (complaintId != null && !complaintId.isEmpty()) {
sql.append("AND cd.complaint_id = ? ");
params.add(complaintId);
}
// Updated status logic
if (status != null && !status.equalsIgnoreCase("all")) {
if (status.equalsIgnoreCase("verified")) {
sql.append("AND cd.status = 'verified' ");
} else if (status.equalsIgnoreCase("pending")) {
sql.append("AND cd.status IN ('pending','completed') ");
}
}
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("AND DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("ORDER BY cd.cdate DESC ");
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql.toString(), params.toArray());
response.put("status", "Success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "Error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getvendorComplaintDetailswithoutcompletedandpending(String zone, String ward,
String complaintId, String fromDate, String toDate, String status) {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
@ -796,6 +1131,78 @@ public class IeComplaintsService {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
sql.append("SELECT ");
sql.append("cm.complaint_id, ");
sql.append("cm.complaint_name, ");
// TOTAL
sql.append("COUNT(DISTINCT cd.ref_id) AS total_count, ");
// COMPLETED = VERIFIED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status = 'verified' ");
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("AND DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("THEN cd.ref_id END) AS completed_count, ");
// PENDING = PENDING + COMPLETED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status IN ('pending','completed') ");
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
sql.append("AND DATE(cd.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("THEN cd.ref_id END) AS pending_count ");
sql.append("FROM complaint_master cm ");
sql.append("LEFT JOIN complaint_details cd ");
sql.append("ON cm.complaint_id = cd.complaint_id ");
sql.append("WHERE cm.complaint_id IN (4,6,12) ");
sql.append("GROUP BY cm.complaint_id, cm.complaint_name ");
sql.append("ORDER BY cm.complaint_id");
List<Map<String, Object>> result = jdbcTemplate.queryForList(sql.toString(), params.toArray());
response.put("status", "Success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "Error");
response.put("message", "Something went wrong");
}
return response;
}
public Map<String, Object> getvendorComplaintDashboardwithoutcompletedandpending(String fromDate, String toDate) {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();

478
src/main/java/com/gcc/commissionerreview/service/TenementService.java

@ -45,6 +45,86 @@ public class TenementService {
}
public Map<String, Object> getTenementDashboard(
String fromDate,
String toDate) {
Map<String, Object> response = new HashMap<>();
try {
String sql = "";
List<Map<String, Object>> result;
// WITHOUT DATE FILTER
if (fromDate == null || fromDate.isBlank()
|| toDate == null || toDate.isBlank()) {
sql = "SELECT " +
"'Tenement' AS complaint_name, " +
// TOTAL
"COUNT(*) AS total_count, " +
// COMPLETED = VERIFIED
"COUNT(CASE " +
"WHEN final_status = 'verified' " +
"THEN 1 END) AS completed_count, " +
// PENDING = CREATED + COMPLETED
"COUNT(CASE " +
"WHEN final_status IN ('created','completed') " +
"THEN 1 END) AS pending_count " +
"FROM issue_list1";
result = jdbcTemplate.queryForList(sql);
} else {
sql = "SELECT " +
"'Tenement' AS complaint_name, " +
// TOTAL
"COUNT(*) AS total_count, " +
// COMPLETED = VERIFIED
"COUNT(CASE " +
"WHEN final_status = 'verified' " +
"THEN 1 END) AS completed_count, " +
// PENDING = CREATED + COMPLETED
"COUNT(CASE " +
"WHEN final_status IN ('created','completed') " +
"THEN 1 END) AS pending_count " +
"FROM issue_list1 " +
"WHERE DATE(cdate) BETWEEN ? AND ?";
result = jdbcTemplate.queryForList(
sql,
fromDate,
toDate);
}
response.put("status", "Success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "Error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getTenementDashboardwithoutcompletedandpending(
String fromDate,
String toDate) {
@ -120,6 +200,101 @@ public class TenementService {
}
public Map<String, Object> getZoneActivity(
String fromDate,
String toDate) {
Map<String, Object> response = new HashMap<>();
try {
String sql = "";
List<Map<String, Object>> result;
if (fromDate == null || fromDate.isBlank()
|| toDate == null || toDate.isBlank()) {
sql = "SELECT " +
"am.zone, " +
"COUNT(DISTINCT il1.id) AS total_complaint_count, " +
// COMPLETED = VERIFIED
"COUNT(DISTINCT CASE " +
"WHEN il1.final_status = 'verified' " +
"THEN il1.id END) " +
"AS total_complaint_closed_count, " +
// PENDING = CREATED + COMPLETED
"COUNT(DISTINCT CASE " +
"WHEN il1.final_status IN ('created','completed') " +
"THEN il1.id END) " +
"AS total_complaint_pending_count " +
"FROM asset_master am " +
"LEFT JOIN asset_list al " +
"ON al.am_id = am.id " +
"LEFT JOIN issue_list1 il1 " +
"ON il1.assetlist_id = al.id " +
"GROUP BY am.zone " +
"ORDER BY am.zone";
result = jdbcTemplate.queryForList(sql);
} else {
sql = "SELECT " +
"am.zone, " +
"COUNT(DISTINCT il1.id) AS total_complaint_count, " +
// COMPLETED = VERIFIED
"COUNT(DISTINCT CASE " +
"WHEN il1.final_status = 'verified' " +
"THEN il1.id END) " +
"AS total_complaint_closed_count, " +
// PENDING = CREATED + COMPLETED
"COUNT(DISTINCT CASE " +
"WHEN il1.final_status IN ('created','completed') " +
"THEN il1.id END) " +
"AS total_complaint_pending_count " +
"FROM asset_master am " +
"LEFT JOIN asset_list al " +
"ON al.am_id = am.id " +
"LEFT JOIN issue_list1 il1 " +
"ON il1.assetlist_id = al.id " +
"AND DATE(il1.cdate) BETWEEN ? AND ? " +
"GROUP BY am.zone " +
"ORDER BY am.zone";
result = jdbcTemplate.queryForList(
sql,
fromDate,
toDate);
}
response.put("status", "success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getZoneActivitywithoutcompletedandpending(
String fromDate,
String toDate) {
@ -229,6 +404,81 @@ public class TenementService {
}
public Map<String, Object> getWardActivity(
String zone,
String fromDate,
String toDate) {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
sql.append("SELECT ");
sql.append("wm.ward_name AS ward, ");
sql.append("COUNT(DISTINCT il1.id) ");
sql.append("AS total_complaint_count, ");
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status = 'verified' ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_closed_count, ");
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status IN ('created','completed') ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_pending_count ");
sql.append("FROM gcc_street_vendor.ward_master wm ");
sql.append("LEFT JOIN asset_master am ");
sql.append("ON wm.ward_name = am.ward ");
sql.append("AND am.zone = ? ");
params.add(zone);
sql.append("LEFT JOIN asset_list al ");
sql.append("ON al.am_id = am.id ");
sql.append("LEFT JOIN issue_list1 il1 ");
sql.append("ON il1.assetlist_id = al.id ");
if (fromDate != null
&& !fromDate.isBlank()
&& toDate != null
&& !toDate.isBlank()) {
sql.append("AND DATE(il1.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("WHERE wm.zone_id = ? ");
params.add(zone);
sql.append("GROUP BY wm.ward_name ");
sql.append("ORDER BY wm.ward_name ");
List<Map<String, Object>> result = jdbcTemplate.queryForList(
sql.toString(),
params.toArray());
response.put("status", "success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getWardActivitywithoutcompletedandpending(
String zone,
String fromDate,
@ -300,8 +550,8 @@ public class TenementService {
return response;
}
// ================= SERVICE =================
// ================= SERVICE =================
public Map<String, Object> getSchemeWiseReport(
String ward,
@ -310,6 +560,84 @@ public class TenementService {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
sql.append("SELECT ");
sql.append("am.scheme_name, ");
sql.append("am.id as schemeid, ");
// TOTAL
sql.append("COUNT(DISTINCT il1.id) ");
sql.append("AS total_complaint_count, ");
// COMPLETED = VERIFIED ONLY
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status = 'verified' ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_closed_count, ");
// PENDING = CREATED + COMPLETED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status IN ('created','completed') ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_pending_count ");
sql.append("FROM asset_master am ");
sql.append("LEFT JOIN asset_list al ");
sql.append("ON al.am_id = am.id ");
sql.append("LEFT JOIN issue_list1 il1 ");
sql.append("ON il1.assetlist_id = al.id ");
sql.append("WHERE am.ward = ? ");
params.add(ward);
// DATE FILTER
if (fromDate != null && !fromDate.isBlank()
&& toDate != null && !toDate.isBlank()) {
sql.append("AND DATE(il1.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
sql.append("GROUP BY am.scheme_name, am.id ");
sql.append("ORDER BY am.scheme_name ");
List<Map<String, Object>> result = jdbcTemplate.queryForList(
sql.toString(),
params.toArray());
response.put("status", "success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getSchemeWiseReportwithcompletedandpending(
String ward,
String fromDate,
String toDate) {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
@ -390,6 +718,154 @@ public class TenementService {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
sql.append("SELECT ");
sql.append("il1.id AS issuelist1_id, ");
sql.append("il1.final_status, ");
sql.append(
"CASE " +
"WHEN il1.final_status = 'verified' THEN 'Completed' " +
"WHEN il1.final_status IN ('created','completed') THEN 'Pending' " +
"ELSE il1.final_status " +
"END AS ie_status, ");
sql.append("DATE_FORMAT(il1.cdate,'%d-%m-%Y') AS created_date, ");
sql.append("IFNULL(il1.remarks,'') AS created_remarks, ");
sql.append(
"CASE " +
"WHEN il1.before_image IS NOT NULL " +
"THEN CONCAT('" + fileBaseUrl + "/gccofficialapp/files', il1.before_image) " +
"ELSE '' END AS before_image, ");
/*
* sql.append(
* "IFNULL(DATE_FORMAT(il2.cdate,'%d-%m-%Y'),'Pending') AS completed_date, ");
*
* sql.append(
* "IFNULL(il2.remarks,'Pending') AS completed_remarks, ");
*
* sql.append(
* "CASE " +
* "WHEN il2.after_image IS NOT NULL " +
* "THEN CONCAT('" + fileBaseUrl + "/gccofficialapp/files', il2.after_image) " +
* "ELSE '' END AS after_image, ");
*/
// Completed Date
sql.append(
"CASE " +
"WHEN il2.cdate IS NOT NULL " +
"THEN DATE_FORMAT(il2.cdate,'%d-%m-%Y') " +
"ELSE 'Pending' " +
"END AS completed_date, ");
// Completed Remarks
sql.append(
"CASE " +
"WHEN il2.cdate IS NOT NULL " +
"THEN IFNULL(il2.remarks,'') " +
"ELSE 'Pending' " +
"END AS completed_remarks, ");
// After Image
sql.append(
"CASE " +
"WHEN il2.after_image IS NOT NULL " +
"THEN CONCAT('" + fileBaseUrl + "/gccofficialapp/files', il2.after_image) " +
"ELSE '' " +
"END AS after_image, ");
sql.append(
"IFNULL(DATE_FORMAT(il3.cdate,'%d-%m-%Y'),'') AS verified_date, ");
sql.append(
"IFNULL(il3.remarks,'') AS verified_remarks, ");
sql.append(
"CASE " +
"WHEN il3.verify_image IS NOT NULL " +
"THEN CONCAT('" + fileBaseUrl + "/gccofficialapp/files', il3.verify_image) " +
"ELSE '' END AS verify_image ");
sql.append("FROM issue_list1 il1 ");
sql.append("LEFT JOIN asset_list al ");
sql.append("ON al.id = il1.assetlist_id ");
sql.append("LEFT JOIN issue_list2 il2 ");
sql.append("ON il2.issuelist1_id = il1.id ");
sql.append("AND il2.final_status = 'completed' ");
sql.append("LEFT JOIN issue_list3 il3 ");
sql.append("ON il3.issuelist1_id = il1.id ");
sql.append("WHERE il1.ward = ? ");
params.add(ward);
sql.append("AND al.am_id = ? ");
params.add(schemeid);
// Date Filter
if (fromDate != null && !fromDate.isBlank()
&& toDate != null && !toDate.isBlank()) {
sql.append("AND DATE(il1.cdate) BETWEEN ? AND ? ");
params.add(fromDate);
params.add(toDate);
}
// Updated Status Filter
if (status != null && !status.isEmpty()) {
if ("verified".equalsIgnoreCase(status)) {
sql.append("AND il1.final_status = 'verified' ");
} else if ("pending".equalsIgnoreCase(status)) {
sql.append(
"AND il1.final_status IN ('created','completed') ");
}
}
sql.append("ORDER BY il1.id DESC ");
List<Map<String, Object>> result = jdbcTemplate.queryForList(
sql.toString(),
params.toArray());
response.put("status", "success");
response.put("data", result);
} catch (Exception e) {
e.printStackTrace();
response.put("status", "error");
response.put("message", e.getMessage());
}
return response;
}
public Map<String, Object> getComplaintDetailswithoutcompletedandpending(
String ward,
String schemeid,
String status,
String fromDate,
String toDate) {
Map<String, Object> response = new HashMap<>();
try {
StringBuilder sql = new StringBuilder();

111
src/main/resources/templates/modules/vendorreport.html

@ -330,10 +330,13 @@
<th class="text-center">Before Image</th>
<th class="text-center">Complaint Created Date</th>
<th class="text-center">complaint Created Street</th>
<th class="text-center">Complaint Created Remarks</th>
<th class="text-center">After Image</th>
<th class="text-center">Completion Date</th>
<th class="text-center">Completion Street</th>
<th class="text-center">Rectified Image</th>
<th class="text-center">Rectified Date</th>
<!--<th class="text-center">Rectified Street</th>-->
<th class="text-center">Rectified Remarks</th>
<th class="text-center">IE Status</th>
</tr>
</thead>
@ -425,9 +428,10 @@
<th>Created Date</th>
<th>Created Remarks</th>
<th>Before Image</th>
<th>Completed Date</th>
<th>Completed Remarks</th>
<th>After Image</th>
<th>Rectified Date</th>
<th>Rectified Remarks</th>
<th>Rectified Image</th>
<th>IE Status</th>
<!--<th>Verified Date</th>
<th>Verified Remarks</th>
<th>Verify Image</th>-->
@ -638,6 +642,10 @@ ${c.after_image ? `<img src="${c.after_image}" width="80" class="preview-img" st
}
$("#complaintDetailsBody").html(html);
if ($.fn.DataTable.isDataTable('#complaintTable')) {
$('#complaintTable').DataTable().clear().destroy();
}
$("#complaintTable").DataTable({
destroy: true,
@ -850,6 +858,7 @@ ${wardCell}
completed: item.total_complaint_closed_count || 0,
pending: item.total_complaint_pending_count || 0
};
});
let zones = [
@ -860,6 +869,7 @@ ${wardCell}
];
// zone display names
let zoneNameMap = {
@ -1264,6 +1274,10 @@ ${(
garbageData.length,
tenementData.length
);
console.log("HOTSPOT DATA", hotspotData);
console.log("TRANSPORT DATA", transportData);
console.log("GARBAGE DATA", garbageData);
console.log("TENEMENT DATA", tenementData);
if ($.fn.DataTable.isDataTable('#wardTable')) {
$('#wardTable').DataTable().destroy();
}
@ -1344,7 +1358,7 @@ ${h.total_count}
${h.completed_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','4','completed')">
onclick="openComplaintDetails('${zone}','${ward}','4','verified')">
${h.completed_count}
@ -1412,7 +1426,7 @@ ${t.total_count}
${t.completed_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','6','completed')">
onclick="openComplaintDetails('${zone}','${ward}','6','verified')">
${t.completed_count}
@ -1481,7 +1495,7 @@ ${g.total_count}
${g.completed_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','12','completed')">
onclick="openComplaintDetails('${zone}','${ward}','12','verified')">
${g.completed_count}
@ -1759,6 +1773,12 @@ ${ten.total_complaint_count}
});
}
function openComplaintDetails(zone, ward, complaintId, status) {
if ($.fn.DataTable.isDataTable('#complaintTable')) {
$('#complaintTable').DataTable().clear().destroy();
}
// Clear old rows
$("#complaintDetailsBody").empty();
let fromDate = $("#fromDate").val();
let toDate = $("#toDate").val();
@ -1800,30 +1820,84 @@ style="width:80px;height:80px;" class="preview-img" style="cursor:pointer" >`
<td>${item.complaint_created_date || ''}</td>
<td>${item.complaint_street_name || ''}</td>
<td>${item.complaint_remarks || ''}</td>
<td>
${item.after_image ?
`<img src="${item.after_image}"
style="width:80px;height:80px;" class="preview-img" style="cursor:pointer" >`
${item.after_image && item.after_image !== 'Pending'
? `<img src="${item.after_image}"
style="width:80px;height:80px;" class="preview-img">`
: 'Pending'}
</td>
<td>${item.completion_date || 'Pending'}</td>
<td>${item.completion_street_name || 'Pending'}</td>
<!--<td>${item.completion_street_name || 'Pending'}</td>-->
<td>${item.completion_remarks || 'Pending'}</td>
<td>${item.ie_status || 'Pending'}</td>
</tr>
`;
});
$("#complaintDetailsBody").html(html);
/*if ($.fn.DataTable.isDataTable('#complaintTable')) {
$('#complaintTable').DataTable().destroy();
}*/
$('#complaintTable').DataTable({
pageLength: 10,
lengthMenu: [
[10, 25, 50, 100],
[10, 25, 50, 100]
],
searching: true,
ordering: false,
dom: 'Bfrtip',
buttons: [
{
extend: 'excelHtml5',
text: 'Download Excel',
title: 'Complaint_Details_Ward'
},
{
extend: 'pdfHtml5',
text: 'Download PDF',
title: 'Complaint_Details_Ward',
orientation: 'landscape',
pageSize: 'A4',
exportOptions: {
columns: [1, 2, 3, 5, 6, 7, 8]
}
}
]
});
$("#complaintModal").modal("show");
});
}
function openComplaintDetailslastworkinglive(zone, ward, complaintId) {
if ($.fn.DataTable.isDataTable('#complaintTable')) {
$('#complaintTable').DataTable().destroy();
}
// Clear old rows
$("#complaintDetailsBody").empty();
let fromDate = $("#fromDate").val();
let toDate = $("#toDate").val();
@ -2035,7 +2109,7 @@ ${row.total_complaint_closed_count > 0
onclick="openTenementComplaintModal(
'${ward}',
'${row.schemeid}',
'completed'
'verified'
)">
${row.total_complaint_closed_count}
@ -2056,7 +2130,7 @@ ${row.total_complaint_pending_count > 0
onclick="openTenementComplaintModal(
'${ward}',
'${row.schemeid}',
'created'
'pending'
)">
${row.total_complaint_pending_count}
@ -2185,6 +2259,9 @@ ${row.total_complaint_pending_count}
${row.after_image ? `<img src="${row.after_image}" width="80" class="preview-img" style="cursor:pointer">` : 'Pending'}
</td>
<td>${row.ie_status || 'pending'}</td>
<!--<td>${row.verified_date || ''}</td>

Loading…
Cancel
Save