@ -107,52 +107,118 @@ public class AttendanceService {
String dateColumn ;
String filterDateColumn ;
switch ( category = = null ? "present" : category . toLowerCase ( ) ) {
case "od" :
dateColumn = "att.oddatetime" ;
filterDateColumn = "att.oddatetime" ;
break ;
case "leave" :
dateColumn = "att.leavedatetime" ;
filterDateColumn = "att.leavedatetime" ;
break ;
default :
dateColumn = "att.indatetime" ;
filterDateColumn = "att.indatetime" ;
}
String sql = "SELECT et.enrollment_id, et.name, et.designation, et.department, et.incharge_name, et.incharge_phoneno, et.emp_id, et.park_name, "
+ "ifnull(att.appversion,'') as appversion, ifnull(att.apptype,'')as apptype, ifnull(att.location,'') as location, "
+ "DATE_FORMAT(att.indatetime, '%d-%m-%Y %h:%i %p') as intime, att.inphoto as inphoto, att.inby, "
+ "DATE_FORMAT(att.outdatetime, '%d-%m-%Y %h:%i %p') as outtime, att.outphoto as outphoto, att.outby, "
+ "DATE_FORMAT(att.oddatetime, '%d-%m-%Y %h:%i %p') as odtime, att.odby, et.zone, "
+ "DATE_FORMAT(att.leavedatetime, '%d-%m-%Y %h:%i %p') as leavedatetime, att.leaveby "
+ "FROM enrollment_table et "
+ "inner join attendance att on et.enrollment_id = att.enrollment_id "
+ " and " + filterDateColumn + " >= ? and " + filterDateColumn + " <= ? "
+ "where et.isactive =1 and et.isdelete = 0 and et.emp_type = ? and et.zone !=0 "
+ " and " + filterDateColumn + " is not null " ;
java . util . List < Object > params = new java . util . ArrayList < > ( ) ;
params . add ( fromDateTime ) ;
params . add ( toDateTime ) ;
params . add ( empType ) ;
if ( zone ! = null ) {
sql + = " and et.zone = ? " ;
params . add ( zone ) ;
}
if ( category ! = null & & category . equalsIgnoreCase ( "notmarked" ) ) {
dateColumn = "att.indatetime" ;
filterDateColumn = "att.indatetime" ;
String sql = "SELECT et.enrollment_id, et.name, et.designation, et.department, et.incharge_name, et.incharge_phoneno, et.park_name, emp.image as image "
+ " FROM enrollment_table et "
+ " left join gccfacialdb.employees emp on et.enrollment_id = emp.employeeid "
+ " where et.isactive =1 and et.isdelete = 0 and et.emp_type = ? and et.zone !=0 "
+ " and et.enrollment_id not in (select enrollment_id from attendance where date(indatetime) between ? and ?) " ;
java . util . List < Object > params = new java . util . ArrayList < > ( ) ;
params . add ( empType ) ;
params . add ( fromDate ) ;
params . add ( toDate ) ;
if ( zone ! = null ) {
sql + = " and et.zone = ? " ;
params . add ( zone ) ;
}
if ( parkName ! = null & & ! parkName . isEmpty ( ) & & ! parkName . equals ( "-" ) ) {
sql + = " and et.park_name = ? " ;
params . add ( parkName ) ;
}
if ( parkName ! = null & & ! parkName . isEmpty ( ) & & parkName . equals ( "-" ) ) {
sql + = " and et.park_name = '' " ;
}
/ / sql + = " order by " + dateColumn + " desc " ;
System . out . println ( "EmpType: " + empType + ", Category: " + category + ", From: " + fromDateTime + ", To: "
+ toDateTime + ", Zone: " + zone + ", ParkName: " + parkName ) ;
return jdbcTemplate . queryForList ( sql , params . toArray ( ) ) ;
} else if ( category ! = null & & category . equals ( "notregistered" ) ) {
String sql = "SELECT et.enrollment_id, et.name, et.designation, et.department, et.incharge_name, et.incharge_phoneno, et.park_name, emp.image as image "
+ " FROM enrollment_table et "
+ " left join gccfacialdb.employees emp on et.enrollment_id = emp.employeeid "
+ " where et.isactive =1 and et.isdelete = 0 and et.emp_type = ? and et.zone !=0 and facial_attendance = 0 " ;
java . util . List < Object > params = new java . util . ArrayList < > ( ) ;
params . add ( empType ) ;
if ( zone ! = null ) {
sql + = " and et.zone = ? " ;
params . add ( zone ) ;
}
if ( parkName ! = null & & ! parkName . isEmpty ( ) & & ! parkName . equals ( "-" ) ) {
sql + = " and et.park_name = ? " ;
params . add ( parkName ) ;
}
if ( parkName ! = null & & ! parkName . isEmpty ( ) & & parkName . equals ( "-" ) ) {
sql + = " and et.park_name = '' " ;
}
/ / sql + = " order by " + dateColumn + " desc " ;
System . out . println ( "EmpType: " + empType + ", Category: " + category + ", From: " + fromDateTime + ", To: "
+ toDateTime + ", Zone: " + zone + ", ParkName: " + parkName ) ;
return jdbcTemplate . queryForList ( sql , params . toArray ( ) ) ;
if ( parkName ! = null & & ! parkName . isEmpty ( ) ) {
sql + = " and et.park_name = ? " ;
params . add ( parkName ) ;
}
sql + = " order by " + dateColumn + " desc " ;
} else {
System . out . println ( "EmpType: " + empType + ", Category: " + category + ", From: " + fromDateTime + ", To: "
+ toDateTime + ", Zone: " + zone + ", ParkName: " + parkName ) ;
return jdbcTemplate . queryForList ( sql , params . toArray ( ) ) ;
switch ( category = = null ? "present" : category . toLowerCase ( ) ) {
case "od" :
dateColumn = "att.oddatetime" ;
filterDateColumn = "att.oddatetime" ;
break ;
case "leave" :
dateColumn = "att.leavedatetime" ;
filterDateColumn = "att.leavedatetime" ;
break ;
default :
dateColumn = "att.indatetime" ;
filterDateColumn = "att.indatetime" ;
}
String sql = "SELECT et.enrollment_id, et.name, et.designation, et.department, et.incharge_name, et.incharge_phoneno, et.emp_id, et.park_name, "
+ "ifnull(att.appversion,'') as appversion, ifnull(att.apptype,'')as apptype, ifnull(att.location,'') as location, "
+ "DATE_FORMAT(att.indatetime, '%d-%m-%Y %h:%i %p') as intime, att.inphoto as inphoto, att.inby, "
+ "DATE_FORMAT(att.outdatetime, '%d-%m-%Y %h:%i %p') as outtime, att.outphoto as outphoto, att.outby, "
+ "DATE_FORMAT(att.oddatetime, '%d-%m-%Y %h:%i %p') as odtime, att.odby, et.zone, "
+ "DATE_FORMAT(att.leavedatetime, '%d-%m-%Y %h:%i %p') as leavedatetime, att.leaveby "
+ "FROM enrollment_table et "
+ "inner join attendance att on et.enrollment_id = att.enrollment_id "
+ " and " + filterDateColumn + " >= ? and " + filterDateColumn + " <= ? "
+ "where et.isactive =1 and et.isdelete = 0 and et.emp_type = ? and et.zone !=0 "
+ " and " + filterDateColumn + " is not null " ;
java . util . List < Object > params = new java . util . ArrayList < > ( ) ;
params . add ( fromDateTime ) ;
params . add ( toDateTime ) ;
params . add ( empType ) ;
if ( zone ! = null ) {
sql + = " and et.zone = ? " ;
params . add ( zone ) ;
}
if ( parkName ! = null & & ! parkName . isEmpty ( ) ) {
sql + = " and et.park_name = ? " ;
params . add ( parkName ) ;
}
sql + = " order by " + dateColumn + " desc " ;
System . out . println ( "EmpType: " + empType + ", Category: " + category + ", From: " + fromDateTime + ", To: "
+ toDateTime + ", Zone: " + zone + ", ParkName: " + parkName ) ;
return jdbcTemplate . queryForList ( sql , params . toArray ( ) ) ;
}
}
public List < Map < String , Object > > getParkWiseSummary ( String fromDateStr , String toDateStr , Integer zone ) {
@ -181,10 +247,10 @@ 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 emp_type = 'Park' AND zone = ? AND park_name != '' "
+ "WHERE isactive = 1 AND isdelete = 0 AND emp_type = 'Park' AND zone = ? "
+ "GROUP BY park_name "
+ ") "
+ "SELECT et.park_name, COUNT(DISTINCT et.enrollment_id) AS TotalCount, "
+ "SELECT et.park_name, COUNT(DISTINCT et.enrollment_id) AS TotalCount, et.incharge_name, et.incharge_phoneno, "
+ "COALESCE(fd.facialRegistered, 0) AS facialRegistered, COALESCE(fd.facialNotRegistered, 0) AS facialNotRegistered, "
+ "COUNT(DISTINCT CASE WHEN att.indatetime >= ? AND att.indatetime <= ? THEN att.enrollment_id END) AS AttendanceMarked, "
+ "COUNT(DISTINCT CASE WHEN att.oddatetime >= ? AND att.oddatetime <= ? THEN att.enrollment_id END) AS ODCount, "
@ -192,8 +258,8 @@ public class AttendanceService {
+ "FROM enrollment_table et "
+ "LEFT JOIN attendance att ON et.enrollment_id = att.enrollment_id "
+ "LEFT JOIN facial_data fd ON et.park_name = fd.park_name "
+ "WHERE et.isactive = 1 AND et.isdelete = 0 AND et.emp_type = 'Park' AND et.zone != 0 AND et.zone = ? AND et.park_name != '' "
+ "GROUP BY et.park_name, fd.facialRegistered, fd.facialNotRegistered "
+ "WHERE et.isactive = 1 AND et.isdelete = 0 AND et.emp_type = 'Park' AND et.zone != 0 AND et.zone = ? "
+ "GROUP BY et.park_name, fd.facialRegistered, fd.facialNotRegistered, et.incharge_name, et.incharge_phoneno "
+ "ORDER BY et.park_name" ;
return jdbcTemplate . queryForList ( sql , new Object [ ] { zone , fromDateTime , toDateTime , fromDateTime , toDateTime ,