Browse Source

chnages added in attendance service and attendance-report page

master
yoganandhan 8 months ago
parent
commit
27d82b98ba
  1. 15
      src/main/java/com/gcc/commissionerreview/service/AttendanceService.java
  2. 52
      src/main/resources/templates/modules/attendance-dashboard.html

15
src/main/java/com/gcc/commissionerreview/service/AttendanceService.java

@ -32,7 +32,7 @@ public class AttendanceService {
+ "SUM(CASE WHEN facial_attendance = 1 THEN 1 ELSE 0 END) AS facialRegistered, "
+ "SUM(CASE WHEN facial_attendance = 0 THEN 1 ELSE 0 END) AS facialNotRegistered "
+ "FROM enrollment_table "
+ "WHERE isactive = 1 AND isdelete = 0 AND zone != 0 "
+ "WHERE isactive = 1 AND isdelete = 0 AND zone != 0 and emp_type ='Park' "
+ "GROUP BY emp_type";
return jdbcTemplate.queryForList(sql);
@ -81,10 +81,12 @@ public class AttendanceService {
+ "GROUP BY et.zone, fd.facialRegistered, fd.facialNotRegistered "
+ "ORDER BY et.zone";
return jdbcTemplate.queryForList(sql, new Object[] { empType, fromDateTime, toDateTime, fromDateTime, toDateTime, fromDateTime, toDateTime, empType });
return jdbcTemplate.queryForList(sql, new Object[] { empType, fromDateTime, toDateTime, fromDateTime,
toDateTime, fromDateTime, toDateTime, empType });
}
public List<Map<String, Object>> getDetailedList(String empType, String category, String fromDateStr, String toDateStr, Integer zone, String parkName) {
public List<Map<String, Object>> getDetailedList(String empType, String category, String fromDateStr,
String toDateStr, Integer zone, String parkName) {
LocalDate fromDate;
LocalDate toDate;
@ -148,7 +150,8 @@ public class AttendanceService {
sql += " order by " + dateColumn + " desc ";
System.out.println("EmpType: " + empType + ", Category: " + category + ", From: " + fromDateTime + ", To: " + toDateTime + ", Zone: " + zone + ", ParkName: " + parkName);
System.out.println("EmpType: " + empType + ", Category: " + category + ", From: " + fromDateTime + ", To: "
+ toDateTime + ", Zone: " + zone + ", ParkName: " + parkName);
return jdbcTemplate.queryForList(sql, params.toArray());
}
@ -193,7 +196,7 @@ public class AttendanceService {
+ "GROUP BY et.park_name, fd.facialRegistered, fd.facialNotRegistered "
+ "ORDER BY et.park_name";
return jdbcTemplate.queryForList(sql, new Object[] { zone, fromDateTime, toDateTime, fromDateTime, toDateTime, fromDateTime, toDateTime, zone });
return jdbcTemplate.queryForList(sql, new Object[] { zone, fromDateTime, toDateTime, fromDateTime, toDateTime,
fromDateTime, toDateTime, zone });
}
}

52
src/main/resources/templates/modules/attendance-dashboard.html

@ -25,7 +25,7 @@
.zone-summary-row {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-columns: 1fr;
gap: 20px;
}
@ -87,6 +87,7 @@
</div>
<div id="zoneSummaryPark"></div>
</div>
<!-- NULM zone summary card commented out
<div class="zone-summary-card">
<div class="d-flex justify-content-between align-items-center mb-2">
<h5>NULM</h5>
@ -97,6 +98,7 @@
</div>
<div id="zoneSummaryNulm"></div>
</div>
-->
</div>
</div>
@ -257,11 +259,11 @@
const fromDate = toApiDdMmYyyy(rawFrom);
const toDate = toApiDdMmYyyy(rawTo);
const parkTarget = document.getElementById('zoneSummaryPark');
const nulmTarget = document.getElementById('zoneSummaryNulm');
// const nulmTarget = document.getElementById('zoneSummaryNulm'); // NULM commented out
// Show loaders
parkTarget.innerHTML = createLoader();
nulmTarget.innerHTML = createLoader();
// nulmTarget.innerHTML = createLoader(); // NULM commented out
try {
// Load Park independently
@ -283,27 +285,27 @@
parkTarget.innerHTML = `<div class="alert alert-danger">Error: ${e.message}</div>`;
});
// Load NULM independently
fetch(`${apiBase}/zoneSummaryNULM?fromDate=${encodeURIComponent(fromDate)}&toDate=${encodeURIComponent(toDate)}`)
.then(res => {
if (!res.ok) {
console.error('NULM zoneSummary error', res.status);
nulmTarget.innerHTML = `<div class="alert alert-danger">Error loading NULM summary (${res.status})</div>`;
return Promise.reject(new Error('NULM fetch failed'));
}
return res.json();
})
.then(nulmData => {
console.log('NULM data loaded:', nulmData);
renderTable(nulmTarget, nulmData, 'NULM');
})
.catch(e => {
console.error('NULM error:', e);
nulmTarget.innerHTML = `<div class="alert alert-danger">Error: ${e.message}</div>`;
});
// NULM loading commented out
// fetch(`${apiBase}/zoneSummaryNULM?fromDate=${encodeURIComponent(fromDate)}&toDate=${encodeURIComponent(toDate)}`)
// .then(res => {
// if (!res.ok) {
// console.error('NULM zoneSummary error', res.status);
// nulmTarget.innerHTML = `<div class="alert alert-danger">Error loading NULM summary (${res.status})</div>`;
// return Promise.reject(new Error('NULM fetch failed'));
// }
// return res.json();
// })
// .then(nulmData => {
// console.log('NULM data loaded:', nulmData);
// renderTable(nulmTarget, nulmData, 'NULM');
// })
// .catch(e => {
// console.error('NULM error:', e);
// nulmTarget.innerHTML = `<div class="alert alert-danger">Error: ${e.message}</div>`;
// });
} catch (e) {
parkTarget.innerHTML = `<div class="alert alert-danger">Error: ${e}</div>`;
nulmTarget.innerHTML = `<div class="alert alert-danger">Error: ${e}</div>`;
// nulmTarget.innerHTML = `<div class="alert alert-danger">Error: ${e}</div>`; // NULM commented out
}
}
@ -565,9 +567,11 @@
// For Park: show park-wise summary; For NULM: show employee details directly
if (empType === 'Park') {
loadParkWiseSummary(zone, category);
} else {
loadDetailed(empType, category, zone);
}
// NULM branch commented out
// else {
// loadDetailed(empType, category, zone);
// }
return;
}

Loading…
Cancel
Save