Browse Source

fetched ie pending and vendor pending on vendorreport page

master
AJITHKUMAR12 4 months ago
parent
commit
272d7a3ba3
  1. 105
      src/main/java/com/gcc/commissionerreview/service/IeComplaintsService.java
  2. 31
      src/main/java/com/gcc/commissionerreview/service/TenementService.java
  3. 9
      src/main/resources/templates/modules/pet/petreport.html
  4. 328
      src/main/resources/templates/modules/vendorreport.html

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

@ -597,7 +597,7 @@ public class IeComplaintsService {
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) ");
sql.append("AND cd.complaint_id IN (3,4,6,12) ");
if (complaintId != null) {
@ -712,15 +712,16 @@ public class IeComplaintsService {
String complaintId,
String fromDate,
String toDate) {
System.out.println("zone:" + zone);
System.out.println("complaintId:" + complaintId);
System.out.println("fromDate:" + fromDate);
System.out.println("toDate:" + toDate);
Map<String, Object> response = new HashMap<>();
try {
System.out.println("zone:" + zone);
System.out.println("complaintId:" + complaintId);
System.out.println("fromDate:" + fromDate);
System.out.println("toDate:" + toDate);
StringBuilder sql = new StringBuilder();
List<Object> params = new ArrayList<>();
@ -730,10 +731,41 @@ public class IeComplaintsService {
// TOTAL
sql.append("COUNT(DISTINCT cd.ref_id) AS total_count, ");
// COMPLETED = VERIFIED
// VENDOR PENDING
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status IN ('pending') ");
sql.append("THEN cd.ref_id END) AS vendor_pending_count, ");
// IE PENDING = COMPLETED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status IN ('completed') ");
sql.append("THEN cd.ref_id END) AS ie_pending_count, ");
// COMPLETED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN cd.status = 'verified' ");
sql.append("THEN cd.ref_id END) AS completed_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 (3,4,6,12) ");
if (complaintId != null && !complaintId.isEmpty()) {
sql.append("AND cd.complaint_id = ? ");
params.add(complaintId);
}
if (fromDate != null && !fromDate.isEmpty()
&& toDate != null && !toDate.isEmpty()) {
@ -742,6 +774,55 @@ public class IeComplaintsService {
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> getvendorWardActivitywithoutvendorpendingandiepending(
String zone,
String complaintId,
String fromDate,
String toDate) {
System.out.println("zone:" + zone);
System.out.println("complaintId:" + complaintId);
System.out.println("fromDate:" + fromDate);
System.out.println("toDate:" + 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' ");
sql.append("THEN cd.ref_id END) AS completed_count, ");
// PENDING = PENDING + COMPLETED
@ -899,7 +980,7 @@ public class IeComplaintsService {
sql.append(
"CASE " +
"WHEN cd.status = 'verified' THEN 'Completed' " +
"WHEN cd.status IN ('pending','completed') THEN 'Pending' " +
"WHEN cd.status IN ('completed') THEN 'Pending' " +
"ELSE cd.status " +
"END AS ie_status, ");
@ -984,7 +1065,7 @@ public class IeComplaintsService {
sql.append("AND cd.is_delete = 0 ");
sql.append("AND cd.is_active = 1 ");
sql.append("AND cd.complaint_id IN (4,6,12) ");
sql.append("AND cd.complaint_id IN (3,4,6,12) ");
if (complaintId != null && !complaintId.isEmpty()) {
@ -1001,8 +1082,12 @@ public class IeComplaintsService {
} else if (status.equalsIgnoreCase("pending")) {
sql.append("AND cd.status IN ('pending','completed') ");
sql.append("AND cd.status IN ('pending') ");
} else if (status.equalsIgnoreCase("completed")) {
sql.append("AND cd.status IN ('completed') ");
}
}
if (fromDate != null && !fromDate.isEmpty()
@ -1180,7 +1265,7 @@ public class IeComplaintsService {
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("WHERE cm.complaint_id IN (3,4,6,12) ");
sql.append("GROUP BY cm.complaint_id, cm.complaint_name ");

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

@ -427,9 +427,14 @@ public class TenementService {
sql.append("AS total_complaint_closed_count, ");
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status IN ('created','completed') ");
sql.append("WHEN il1.final_status = 'created' ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_pending_count ");
sql.append("AS total_complaint_vendor_pending_count, ");
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status = 'completed' ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_ie_pending_count ");
sql.append("FROM gcc_street_vendor.ward_master wm ");
@ -579,13 +584,18 @@ public class TenementService {
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("AS total_complaint_verified_count, ");
// PENDING = CREATED + COMPLETED
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status IN ('created','completed') ");
sql.append("WHEN il1.final_status IN ('created') ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_pending_count ");
sql.append("AS total_complaint_vendor_pending_count, ");
sql.append("COUNT(DISTINCT CASE ");
sql.append("WHEN il1.final_status IN ('completed') ");
sql.append("THEN il1.id END) ");
sql.append("AS total_complaint_ie_pending_count ");
sql.append("FROM asset_master am ");
@ -829,11 +839,16 @@ public class TenementService {
sql.append("AND il1.final_status = 'verified' ");
} else if ("pending".equalsIgnoreCase(status)) {
} else if ("created".equalsIgnoreCase(status)) {
sql.append(
"AND il1.final_status IN ('created','completed') ");
sql.append("AND il1.final_status = 'created' ");
}
else if ("completed".equalsIgnoreCase(status)) {
sql.append("AND il1.final_status = 'completed' ");
}
}
sql.append("ORDER BY il1.id DESC ");

9
src/main/resources/templates/modules/pet/petreport.html

@ -1079,10 +1079,11 @@
// 🔹 Make table use full width
doc.content[1].table.widths = [
'25%', // Ward
'25%', // Total
'25%', // Approved
'25%' // Pending
'20%', // Ward
'20%', // Total
'20%', // Approved
'20%', // Pending
'20%' // Rejected
];
// 🔹 Reduce margins to gain width

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

@ -106,6 +106,81 @@
}
}
/* Sweeping */
#zoneTable tbody td:nth-child(2),
#zoneTable tbody td:nth-child(3),
#zoneTable tbody td:nth-child(4) {
background-color: #f8f9fa;
}
/* Hotspot - Dark */
#zoneTable tbody td:nth-child(5),
#zoneTable tbody td:nth-child(6),
#zoneTable tbody td:nth-child(7) {
background-color: #E1ECFC;
}
/* RC Bin Overflow */
#zoneTable tbody td:nth-child(8),
#zoneTable tbody td:nth-child(9),
#zoneTable tbody td:nth-child(10) {
background-color: #f8f9fa;
}
/* Unauthorized Garbage Dumping - Dark */
#zoneTable tbody td:nth-child(11),
#zoneTable tbody td:nth-child(12),
#zoneTable tbody td:nth-child(13) {
background-color: #E1ECFC;
}
/* Tenement */
#zoneTable tbody td:nth-child(14),
#zoneTable tbody td:nth-child(15),
#zoneTable tbody td:nth-child(16) {
background-color: #f8f9fa;
}
/* Sweeping */
#wardTable tbody td:nth-child(2),
#wardTable tbody td:nth-child(3),
#wardTable tbody td:nth-child(4),
#wardTable tbody td:nth-child(5) {
background-color: #f8f9fa;
}
/* Hotspot */
#wardTable tbody td:nth-child(6),
#wardTable tbody td:nth-child(7),
#wardTable tbody td:nth-child(8),
#wardTable tbody td:nth-child(9) {
background-color: #E1ECFC;
}
/* RC Bin Overflow */
#wardTable tbody td:nth-child(10),
#wardTable tbody td:nth-child(11),
#wardTable tbody td:nth-child(12),
#wardTable tbody td:nth-child(13) {
background-color: #f8f9fa;
}
/* Unauthorized Garbage Dumping */
#wardTable tbody td:nth-child(14),
#wardTable tbody td:nth-child(15),
#wardTable tbody td:nth-child(16),
#wardTable tbody td:nth-child(17) {
background-color: #E1ECFC;
}
/* Tenement */
#wardTable tbody td:nth-child(18),
#wardTable tbody td:nth-child(19),
#wardTable tbody td:nth-child(20),
#wardTable tbody td:nth-child(21) {
background-color: #f8f9fa;
}
</style>
</head>
@ -200,6 +275,9 @@
<th rowspan="2" class="text-center align-middle">
Zone
</th>
<th colspan="3" class="text-center">
Sweeping
</th>
<!-- Garbage -->
<th colspan="3" class="text-center">
@ -225,6 +303,11 @@
<tr>
<!-- Sweeping -->
<th class="text-center">Complaints</th>
<th class="text-center">Completed</th>
<th class="text-center">Pending</th>
<!-- Garbage -->
<th class="text-center">Complaints</th>
<th class="text-center">Completed</th>
@ -272,32 +355,49 @@
<thead class="table-header">
<tr>
<th rowspan="2" class="text-center align-middle">Ward</th>
<!-- Sweeping -->
<th colspan="4" class="text-center">Sweeping</th>
<!-- Hotspot -->
<th colspan="3" class="text-center">Hotspot</th>
<th colspan="4" class="text-center">Hotspot</th>
<!-- Transport -->
<th colspan="3" class="text-center">RC Bin Overflow</th>
<th colspan="4" class="text-center">RC Bin Overflow</th>
<!-- Garbage -->
<th colspan="3" class="text-center">Unauthorized garbage dumping</th>
<th colspan="4" class="text-center">Unauthorized garbage dumping</th>
<!-- Tenement -->
<th colspan="3" class="text-center">Tenement</th>
<th colspan="4" class="text-center">Tenement</th>
</tr>
<tr>
<!-- Sweeping -->
<th class="text-center">Total</th>
<th class="text-center">Completed</th>
<th class="text-center">Vendor Pending</th>
<th class="text-center">IE Pending</th>
<!-- Hotspot -->
<th class="text-center">Total</th>
<th class="text-center">Completed</th>
<th class="text-center">Pending</th>
<th class="text-center">Vendor Pending</th>
<th class="text-center">IE Pending</th>
<!-- Transport -->
<th class="text-center">Total</th>
<th class="text-center">Completed</th>
<th class="text-center">Pending</th>
<th class="text-center">Vendor Pending</th>
<th class="text-center">IE Pending</th>
<!-- Garbage -->
<th class="text-center">Total</th>
<th class="text-center">Completed</th>
<th class="text-center">Pending</th>
<th class="text-center">Vendor Pending</th>
<th class="text-center">IE Pending</th>
<!-- Tenement -->
<th class="text-center">Total</th>
<th class="text-center">Completed</th>
<th class="text-center">Pending</th>
<th class="text-center">Vendor Pending</th>
<th class="text-center">IE Pending</th>
</tr>
</thead>
@ -378,7 +478,8 @@
<th>Scheme Name</th>
<th>Total</th>
<th>Completed</th>
<th>Pending</th>
<th>Vendor Pending</th>
<th>IE Pending</th>
</tr>
@ -771,6 +872,14 @@ ${wardCell}
let toDate = $("#toDate").val();
$.when(
// SWEeping
$.get("/commissionerreview/api/iecomplaints/vendorzoneActivity", {
fromDate: fromDate,
toDate: toDate,
complaintId: 3
}),
// HOTSPOT
$.get("/commissionerreview/api/iecomplaints/vendorzoneActivity", {
@ -809,6 +918,7 @@ ${wardCell}
).done(function (
sweepingRes,
hotspotRes,
transportRes,
garbageRes,
@ -816,6 +926,7 @@ ${wardCell}
) {
let sweepingData = sweepingRes[0].data || [];
let hotspotData = hotspotRes[0].data || [];
let transportData = transportRes[0].data || [];
let garbageData = garbageRes[0].data || [];
@ -830,11 +941,17 @@ ${wardCell}
$("#zoneTable tbody").empty();
// maps
let sweepingMap = {};
let hotspotMap = {};
let transportMap = {};
let garbageMap = {};
let tenementMap = {};
sweepingData.forEach(item => {
sweepingMap[item.zone_name] = item;
});
hotspotData.forEach(item => {
hotspotMap[item.zone_name] = item;
@ -903,6 +1020,7 @@ ${wardCell}
let h = hotspotMap[zone] || {};
let t = transportMap[zone] || {};
let g = garbageMap[zone] || {};
let s = sweepingMap[zone] || {};
let ten = tenementMap[zone] || {
@ -919,10 +1037,12 @@ ${wardCell}
<td>
${(
g.total_count > 0 ||
h.total_count > 0 ||
t.total_count > 0 ||
s.total_count > 0 ||
ten.total > 0
)
@ -943,6 +1063,12 @@ ${(
</td>
<!-- SWEEPING -->
<td>${s.total_count || 0}</td>
<td>${s.completed_count || 0}</td>
<td>${s.pending_count || 0}</td>
<!-- HOTSPOT -->
<td>${h.total_count || 0}</td>
@ -1215,6 +1341,16 @@ ${(
$.when(
// SWEEPING
$.get("/commissionerreview/api/iecomplaints/vendorwardActivity", {
zone: zone,
complaintId: 3,
fromDate: fromDate,
toDate: toDate
}),
// HOTSPOT
$.get("/commissionerreview/api/iecomplaints/vendorwardActivity", {
@ -1255,7 +1391,7 @@ ${(
})
).done(function (
sweepingRes,
hotspotRes,
transportRes,
garbageRes,
@ -1263,6 +1399,7 @@ ${(
) {
let sweepingData = sweepingRes[0].data || [];
let hotspotData = hotspotRes[0].data || [];
let transportData = transportRes[0].data || [];
let garbageData = garbageRes[0].data || [];
@ -1271,12 +1408,13 @@ ${(
let html = "";
let maxLength = Math.max(
sweepingData.length,
hotspotData.length,
transportData.length,
garbageData.length,
tenementData.length
);
console.log("SWEEPING DATA", sweepingData);
console.log("HOTSPOT DATA", hotspotData);
console.log("TRANSPORT DATA", transportData);
console.log("GARBAGE DATA", garbageData);
@ -1296,12 +1434,14 @@ ${(
for (let i = 0; i < maxLength; i++) {
let s = sweepingData[i] || {};
let h = hotspotData[i] || {};
let t = transportData[i] || {};
let g = garbageData[i] || {};
let ten = tenementData[i] || {};
let ward =
s.ward ||
h.ward ||
t.ward ||
g.ward ||
@ -1317,6 +1457,62 @@ ${(
<td>${displayWard}</td>
<!-- SWEEPING -->
<td>
${s.total_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','3','all')">
${s.total_count}
</a>`
: 0}
</td>
<td>
${s.completed_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','3','verified')">
${s.completed_count}
</a>`
: 0}
</td>
<td>
${s.vendor_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','3','pending')">
${s.vendor_pending_count}
</a>`
: 0}
</td>
<td>
${s.ie_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','3','completed')">
${s.ie_pending_count}
</a>`
: 0}
</td>
<!-- HOTSPOT -->
<!--<td>
@ -1373,19 +1569,36 @@ ${h.completed_count}
<td>
${h.pending_count > 0 ?
${h.vendor_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','4','pending')">
${h.pending_count}
${h.vendor_pending_count}
</a>`
: 0}
</td>
<td>
${h.ie_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','4','completed')">
${h.ie_pending_count}
</a>`
: 0}
</td>
<!-- TRANSPORT -->
@ -1441,12 +1654,12 @@ ${t.completed_count}
<td>
${t.pending_count > 0 ?
${t.vendor_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','6','pending')">
${t.pending_count}
${t.vendor_pending_count}
</a>`
@ -1454,7 +1667,22 @@ ${t.pending_count}
</td>
<td>
${t.ie_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','6','completed')">
${t.ie_pending_count}
</a>`
: 0}
</td>
<!-- GARBAGE -->
@ -1510,12 +1738,12 @@ ${g.completed_count}
<td>
${g.pending_count > 0 ?
${g.vendor_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','12','pending')">
${g.pending_count}
${g.vendor_pending_count}
</a>`
@ -1523,8 +1751,23 @@ ${g.pending_count}
</td>
<td>
${g.ie_pending_count > 0 ?
`<a href="javascript:void(0)"
onclick="openComplaintDetails('${zone}','${ward}','12','completed')">
${g.ie_pending_count}
</a>`
: 0}
</td>
<!-- TENEMENT -->
<td>
@ -1544,7 +1787,9 @@ ${ten.total_complaint_count}
<td>${ten.total_complaint_closed_count || 0}</td>
<td>${ten.total_complaint_pending_count || 0}</td>
<td>${ten.total_complaint_vendor_pending_count || 0}</td>
<td>${ten.total_complaint_ie_pending_count || 0}</td>
</tr>
`;
@ -2108,7 +2353,7 @@ height="80">`
<td>
${row.total_complaint_closed_count > 0
${row.total_complaint_verified_count > 0
? `<a href="javascript:void(0)"
onclick="openTenementComplaintModal(
@ -2117,7 +2362,7 @@ onclick="openTenementComplaintModal(
'verified'
)">
${row.total_complaint_closed_count}
${row.total_complaint_verified_count}
</a>`
@ -2127,7 +2372,7 @@ ${row.total_complaint_closed_count}
<!-- PENDING -->
<td>
<!--<td>
${row.total_complaint_pending_count > 0
@ -2140,12 +2385,51 @@ onclick="openTenementComplaintModal(
${row.total_complaint_pending_count}
</a>`
: 0}
</td>-->
<td>
${row.total_complaint_vendor_pending_count > 0
? `<a href="javascript:void(0)"
onclick="openTenementComplaintModal(
'${ward}',
'${row.schemeid}',
'created'
)">
${row.total_complaint_vendor_pending_count}
</a>`
: 0}
</td>
<td>
${row.total_complaint_ie_pending_count > 0
? `<a href="javascript:void(0)"
onclick="openTenementComplaintModal(
'${ward}',
'${row.schemeid}',
'completed'
)">
${row.total_complaint_ie_pending_count}
</a>`
: 0}
</td>
</tr>
`;
}
@ -2444,7 +2728,7 @@ ${w.ward}
let total = Number(z.completed_count) + Number(z.pending_count);
let zoneCell = total > 0
? `<a href="javascript:void(0)" onclick="lsoadWardActivity('${z.zone_name} ','${fromDate},${toDate}')">${z.zone_name}</a>`
? `<a href="javascript:void(0)" onclick="loadWardActivity('${z.zone_name} ','${fromDate},${toDate}')">${z.zone_name}</a>`
: `${z.zone_name}`;
html += `

Loading…
Cancel
Save