|
|
|
@ -163,31 +163,32 @@ public class NULMOfficerActivity { |
|
|
|
public List<Map<String, Object>> getStaffListForAttendance( |
|
|
|
String reporterId) { |
|
|
|
|
|
|
|
String sqlQuery = "SELECT e.*, " |
|
|
|
+ " IFNULL(DATE_FORMAT(a.indatetime, '%d-%m-%Y %l:%i %p'), '') AS indatetime, " |
|
|
|
+ " IFNULL(DATE_FORMAT(a.outdatetime, '%d-%m-%Y %l:%i %p'), '') AS outdatetime, " |
|
|
|
+ " a.inby, " |
|
|
|
+ " a.outby, " |
|
|
|
+ " a.inphoto, " |
|
|
|
+ " a.outphoto " |
|
|
|
// + " CASE " + |
|
|
|
// " WHEN DATE(a.indatetime) = CURDATE() THEN 'Present' " + |
|
|
|
// " WHEN DATE(a.oddatetime) = CURDATE() THEN 'OD Marked' " + |
|
|
|
// " WHEN DATE(a.leavedatetime) = CURDATE() THEN 'Leave Marked' " + |
|
|
|
// " ELSE '' " + |
|
|
|
// " END AS attendance_status " |
|
|
|
+ "FROM enrollment_table e " |
|
|
|
+ "LEFT JOIN attendance a ON e.enrollment_id = a.enrollment_id" |
|
|
|
+ " AND a.indatetime = (" |
|
|
|
+ " SELECT MAX(a2.indatetime) " |
|
|
|
+ " FROM attendance a2 " |
|
|
|
+ " WHERE a2.enrollment_id = e.enrollment_id" |
|
|
|
+ " )" |
|
|
|
+ "WHERE e.isactive = 1 " |
|
|
|
+ " AND e.appointed = 1 " |
|
|
|
+ " AND e.facial_attendance = 1 " |
|
|
|
+ " AND e.incharge_id = '" + reporterId + "'"; |
|
|
|
// + " AND FIND_IN_SET(e.incharge_id, '"+reporterId+"') > 0 "; |
|
|
|
String sqlQuery = "SELECT " + |
|
|
|
" e.*, " + |
|
|
|
" IFNULL(DATE_FORMAT(a.indatetime, '%d-%m-%Y %h:%i %p'), '') AS indatetime, " + |
|
|
|
" IFNULL(DATE_FORMAT(a.outdatetime, '%d-%m-%Y %h:%i %p'), '') AS outdatetime, " + |
|
|
|
" a.inby, " + |
|
|
|
" a.outby, " + |
|
|
|
" a.inphoto, " + |
|
|
|
" a.outphoto, " + |
|
|
|
" CASE " + |
|
|
|
" WHEN a.indatetime IS NOT NULL THEN 'Present' " + |
|
|
|
" WHEN a.oddatetime IS NOT NULL THEN 'OD Marked' " + |
|
|
|
" WHEN a.leavedatetime IS NOT NULL THEN 'Leave Marked' " + |
|
|
|
" ELSE '' " + |
|
|
|
" END AS attendance_status " + |
|
|
|
" FROM enrollment_table e " + |
|
|
|
" LEFT JOIN attendance a " + |
|
|
|
" ON a.enrollment_id = e.enrollment_id " + |
|
|
|
" AND ( " + |
|
|
|
" DATE(a.indatetime) = CURDATE() " + |
|
|
|
" OR DATE(a.oddatetime) = CURDATE() " + |
|
|
|
" OR DATE(a.leavedatetime) = CURDATE() " + |
|
|
|
" ) " + |
|
|
|
" WHERE e.isactive = 1 " + |
|
|
|
" AND e.appointed = 1 " + |
|
|
|
" AND e.facial_attendance = 1 " + |
|
|
|
" AND e.incharge_id = '" + reporterId + "' "; |
|
|
|
|
|
|
|
System.out.println(sqlQuery); |
|
|
|
List<Map<String, Object>> result = jdbcNULMTemplate.queryForList(sqlQuery); |
|
|
|
@ -208,16 +209,16 @@ public class NULMOfficerActivity { |
|
|
|
+ " a.inby, " |
|
|
|
+ " a.outby, " |
|
|
|
+ " a.inphoto, " |
|
|
|
+ " a.outphoto " |
|
|
|
// + " CASE " |
|
|
|
// + " WHEN DATE(a.oddatetime) = CURDATE() THEN 'OD Marked' " |
|
|
|
// + " WHEN DATE(a.leavedatetime) = CURDATE() THEN 'Leave Marked' " |
|
|
|
// + " ELSE '' " |
|
|
|
// + " END AS attendance_status " |
|
|
|
+ " a.outphoto, " |
|
|
|
+ " CASE " |
|
|
|
+ " WHEN DATE(a.oddatetime) = CURDATE() THEN 'OD Marked' " |
|
|
|
+ " WHEN DATE(a.leavedatetime) = CURDATE() THEN 'Leave Marked' " |
|
|
|
+ " ELSE '' " |
|
|
|
+ " END AS attendance_status " |
|
|
|
+ " FROM enrollment_table e " |
|
|
|
+ " LEFT JOIN attendance a ON e.enrollment_id = a.enrollment_id" |
|
|
|
+ " AND a.indatetime = (" |
|
|
|
+ " SELECT MAX(a2.indatetime) " |
|
|
|
+ " LEFT JOIN attendance a " |
|
|
|
+ " ON a.id = (" |
|
|
|
+ " SELECT MAX(a2.id) " |
|
|
|
+ " FROM attendance a2 " |
|
|
|
+ " WHERE a2.enrollment_id = e.enrollment_id" |
|
|
|
+ " )" |
|
|
|
@ -247,16 +248,16 @@ public class NULMOfficerActivity { |
|
|
|
+ " a.inby, " |
|
|
|
+ " a.outby, " |
|
|
|
+ " a.inphoto, " |
|
|
|
+ " a.outphoto " |
|
|
|
// + " CASE " |
|
|
|
// + " WHEN DATE(a.oddatetime) = CURDATE() THEN 'OD Marked' " |
|
|
|
// + " WHEN DATE(a.leavedatetime) = CURDATE() THEN 'Leave Marked' " |
|
|
|
// + " ELSE '' " |
|
|
|
// + " END AS attendance_status " |
|
|
|
+ " a.outphoto, " |
|
|
|
+ " CASE " |
|
|
|
+ " WHEN DATE(a.oddatetime) = CURDATE() THEN 'OD Marked' " |
|
|
|
+ " WHEN DATE(a.leavedatetime) = CURDATE() THEN 'Leave Marked' " |
|
|
|
+ " ELSE '' " |
|
|
|
+ " END AS attendance_status " |
|
|
|
+ " FROM enrollment_table e " |
|
|
|
+ " LEFT JOIN attendance a ON e.enrollment_id = a.enrollment_id" |
|
|
|
+ " AND a.indatetime = (" |
|
|
|
+ " SELECT MAX(a2.indatetime) " |
|
|
|
+ " LEFT JOIN attendance a " |
|
|
|
+ " ON a.id = (" |
|
|
|
+ " SELECT MAX(a2.id) " |
|
|
|
+ " FROM attendance a2 " |
|
|
|
+ " WHERE a2.enrollment_id = e.enrollment_id" |
|
|
|
+ " )" |
|
|
|
@ -581,10 +582,9 @@ public class NULMOfficerActivity { |
|
|
|
|
|
|
|
} else if ("out".equalsIgnoreCase(action)) { |
|
|
|
// Update the existing attendance record for check-out |
|
|
|
// String sqlQuery = "UPDATE attendance SET outdatetime = ?, outby = ?, outphoto |
|
|
|
// = ?, location = ?, appversion = ?, apptype = ? " |
|
|
|
// + "WHERE enrollment_id = ? AND outdatetime IS NULL " |
|
|
|
// + "ORDER BY indatetime DESC LIMIT 1"; |
|
|
|
// String sqlQuery = "UPDATE attendance SET outdatetime = ?, outby = ?, outphoto= ?, location = ?, appversion = ?, apptype = ? " |
|
|
|
// + "WHERE enrollment_id = ? AND outdatetime IS NULL " |
|
|
|
// + "ORDER BY indatetime DESC LIMIT 1"; |
|
|
|
String sqlQuery = "UPDATE attendance " + |
|
|
|
"SET outdatetime = ?, outby = ?, outphoto = ?, location = ?, appversion = ?, apptype = ? " + |
|
|
|
"WHERE enrollment_id = ? " + |
|
|
|
@ -609,14 +609,14 @@ public class NULMOfficerActivity { |
|
|
|
} else if ("od".equalsIgnoreCase(action)) { |
|
|
|
// Mark On Duty (OD) even if no check-in |
|
|
|
|
|
|
|
// String updateSql = "UPDATE attendance " + |
|
|
|
// "SET outdatetime = DATE_ADD(indatetime, INTERVAL 8 HOUR) " + |
|
|
|
// "WHERE enrollment_id = ? " + |
|
|
|
// "AND outdatetime IS NULL " + |
|
|
|
// "ORDER BY indatetime DESC " + |
|
|
|
// "LIMIT 1"; |
|
|
|
String updateSql = "UPDATE attendance " + |
|
|
|
"SET outdatetime = DATE_ADD(indatetime, INTERVAL 8 HOUR) " + |
|
|
|
"WHERE enrollment_id = ? " + |
|
|
|
"AND outdatetime IS NULL " + |
|
|
|
"ORDER BY indatetime DESC " + |
|
|
|
"LIMIT 1"; |
|
|
|
|
|
|
|
// int rows = jdbcNULMTemplate.update(updateSql, enrollId); |
|
|
|
int rows = jdbcNULMTemplate.update(updateSql, enrollId); |
|
|
|
|
|
|
|
String sqlQuery = "INSERT INTO attendance (oddatetime, odby, enrollment_id, location, appversion, apptype) " |
|
|
|
+ "VALUES (?, ?, ?, ?, ?, ?)"; |
|
|
|
@ -636,14 +636,14 @@ public class NULMOfficerActivity { |
|
|
|
} else if ("leave".equalsIgnoreCase(action)) { |
|
|
|
// Mark Leave even if no check-in |
|
|
|
|
|
|
|
// String updateSql = "UPDATE attendance " + |
|
|
|
// "SET outdatetime = DATE_ADD(indatetime, INTERVAL 8 HOUR) " + |
|
|
|
// "WHERE enrollment_id = ? " + |
|
|
|
// "AND outdatetime IS NULL " + |
|
|
|
// "ORDER BY indatetime DESC " + |
|
|
|
// "LIMIT 1"; |
|
|
|
String updateSql = "UPDATE attendance " + |
|
|
|
"SET outdatetime = DATE_ADD(indatetime, INTERVAL 8 HOUR) " + |
|
|
|
"WHERE enrollment_id = ? " + |
|
|
|
"AND outdatetime IS NULL " + |
|
|
|
"ORDER BY indatetime DESC " + |
|
|
|
"LIMIT 1"; |
|
|
|
|
|
|
|
// int rows = jdbcNULMTemplate.update(updateSql, enrollId); |
|
|
|
int rows = jdbcNULMTemplate.update(updateSql, enrollId); |
|
|
|
|
|
|
|
String sqlQuery = "INSERT INTO attendance (leavedatetime, leaveby, enrollment_id, location, appversion, apptype) " |
|
|
|
+ "VALUES (?, ?, ?, ?, ?, ?)"; |
|
|
|
|