package com.icbms.batch;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang.exception.ExceptionUtils;
import com.icbms.appserver.util.L;
public class summaryToday {
public static int updateAttendance(Connection con, String user_id, String classcode, String status) {
int row = -1;
PreparedStatement pstmt = null;
ResultSet rs = null;
Statement stmt = null;
try {
String query = "";
query = "select count(*) as CT from attendance_summary where user_id='" + user_id +"' and classcode='" + classcode + "'";
stmt = con.createStatement();
rs = stmt.executeQuery(query);
int ct = 0;
if(rs.next()) {
ct = rs.getInt("CT");
}
if(ct == 0) {
if(status.equalsIgnoreCase("A")) {
query = "insert into attendance_summary(user_id, classcode, presence, absence, late) values (?, ?, 0, 1, 0) ";
} else if(status.equalsIgnoreCase("P")) {
query = "insert into attendance_summary(user_id, classcode, presence, absence, late) values (?, ?, 1, 0, 0) ";
} else {
query = "insert into attendance_summary(user_id, classcode, presence, absence, late) values (?, ?, 0, 0, 1) ";
}
} else {
if(status.equalsIgnoreCase("A")) { // absence
query = "update attendance_summary set absence = absence + 1"
+ " where user_id=? and classcode=?";
} else if(status.equalsIgnoreCase("P")) { // presence
query = "update attendance_summary set presence = presence + 1"
+ " where user_id=? and classcode=?";
} else { // late
query = "select late from attendance_summary where user_id='" + user_id +"' and classcode='" + classcode + "'";
stmt = con.createStatement();
rs = stmt.executeQuery(query);
int late = 0;
if(rs.next()) {
late = rs.getInt("late");
}
if(late == 2) {
query = "update attendance_summary set absence = absence + 1, late=0 "
+ " where user_id=? and classcode=?";
} else {
query = "update attendance_summary set late = late + 1 "
+ " where user_id=? and classcode=?";
}
}
}
pstmt = con.prepareStatement(query);
pstmt.setString(1, user_id );
pstmt.setString(2, classcode);
row = pstmt.executeUpdate();
} catch(Exception e) {
L.e(ExceptionUtils.getStackTrace(e));
} finally {
try {
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(pstmt != null) {
pstmt.close();
}
} catch(Exception e) {}
return row;
}
}
private static Connection getConnection() {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://166.104.112.32:38221/ss_db",
"iot",
"grip1q2w3e");
} catch (SQLException e) {
L.e(ExceptionUtils.getStackTrace(e));
} catch (ClassNotFoundException e) {
L.e(ExceptionUtils.getStackTrace(e));
}
return conn;
}
public static String getDateDay() throws Exception {
String day = "";
Date d = new Date();
Calendar cal = Calendar.getInstance() ;
cal.setTime(d);
int dayNum = cal.get(Calendar.DAY_OF_WEEK) ;
switch(dayNum){
case 1:
day = "Sun";
break ;
case 2:
day = "Mon";
break ;
case 3:
day = "Tue";
break ;
case 4:
day = "Wed";
break ;
case 5:
day = "Thu";
break ;
case 6:
day = "Fri";
break ;
case 7:
day = "Sat";
break ;
}
return day ;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("run summary go~");
Connection con = getConnection();
Statement stmt = null;
ResultSet rs = null;
try {
if(con != null) {
stmt = con.createStatement();
String query = "select * from attendance_status where today = curdate() ";
rs = stmt.executeQuery(query);
String user_id, classcode, status = "";
while(rs.next()) {
user_id = rs.getString("user_id");
classcode = rs.getString("classcode");
status = rs.getString("status");
updateAttendance(con, user_id, classcode, status);
}
L.d("summary End");
} else {
L.d("connection is failed");
}
} catch (Exception e) {
// TODO Auto-generated catch block
L.e(ExceptionUtils.getStackTrace(e));
} finally {
try {
if(rs != null)
rs.close();
if(stmt != null)
stmt.close();
if(con != null)
con.close();
} catch(Exception e) {
}
}
}
}