package cn.com.basic.face.service.sqlite;
|
|
import android.content.Context;
|
import android.database.Cursor;
|
import android.database.sqlite.SQLiteDatabase;
|
import android.database.sqlite.SQLiteOpenHelper;
|
|
import com.awsle.aibatis.client.SqlMapClient;
|
import com.awsle.aibatis.client.SqlMapClientBuilder;
|
import com.awsle.aibatis.exception.IdNotFoundException;
|
import com.lidroid.xutils.DbUtils;
|
|
import org.xutils.http.RequestParams;
|
import org.xutils.x;
|
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.List;
|
|
import cn.com.basic.face.base.BaseApplication;
|
import cn.com.basic.face.base.Config;
|
import cn.com.basic.face.base.MainActivity;
|
import cn.com.basic.face.discern.common.BaseCommonCallBack;
|
import cn.com.basic.face.discern.common.CommonVariables;
|
import cn.com.basic.face.discern.common.ResultBean;
|
import cn.com.basic.face.discern.query.condition.AttendanceDetailQueryCondition;
|
import cn.com.basic.face.discern.query.condition.AttendanceQueryCondition;
|
import cn.com.basic.face.discern.query.item.AttendanceDetailQueryItem;
|
import cn.com.basic.face.discern.query.item.AttendanceQueryItem;
|
import cn.com.basic.face.fragment.AttendanceFragment;
|
import cn.com.basic.face.util.AppApi;
|
import cn.com.basic.face.util.DateUtil;
|
|
/**
|
* 考勤记录
|
*/
|
public class AttendanceDao {
|
|
public static AttendanceDao instance = new AttendanceDao();
|
|
public static AttendanceDao getInstance() {
|
return instance;
|
}
|
|
/**
|
* 加载考勤列表
|
* @param searchText
|
* @param pageNum
|
* @param append
|
* @return
|
* ResultBean{
|
* private String code;
|
private String message;
|
private Object data; List<AttendanceQueryItem>
|
private int totalPages; 总页数
|
private int pageNum; 第几页
|
* }
|
*/
|
public ResultBean reloadLeftList(String searchText, final int pageNum, final boolean append) {
|
ResultBean resultBean = new ResultBean();
|
try {
|
SQLiteDatabase db = Config.sqlMap.getDb();
|
String sql = "SELECT b.register_id," +
|
" b.username," +
|
" b.surveillance_photo," +
|
" b.identify_num," +
|
" e.post_name," +
|
" d.`name` gender," +
|
" f.dept_name" +
|
" FROM " +
|
" employee a " +
|
" LEFT JOIN register b ON a.register_id = b.register_id " +
|
" LEFT JOIN dictionary d ON d.dict_id = b.gender_id " +
|
" LEFT JOIN post e ON e.post_id = b.post_id " +
|
" LEFT JOIN department f ON f.dept_id = b.department_id " +
|
" WHERE " +
|
" 1 = 1 " +
|
" GROUP BY b.register_id " +
|
" ORDER BY b.username ";
|
String deviceCompanyId = BaseApplication.getInstance().getAndroidDevice().getCompanyId();
|
if(deviceCompanyId != null && !deviceCompanyId.trim().isEmpty()) {
|
sql += " AND a.device_company_id = " + deviceCompanyId;
|
}
|
if(searchText != null && !searchText.trim().isEmpty()) {
|
sql += " AND b.username LIKE '%"+ searchText + "%'";
|
}
|
String count = "select count(*) as count from (" + sql + " ) _table";
|
sql += " LIMIT " + getStartIndex(pageNum) + "," + CommonVariables.Page.DEFAULT_PAGE_SIZE;
|
List<AttendanceQueryItem> list = new ArrayList<AttendanceQueryItem>();
|
int b = list.size();
|
AttendanceQueryItem aqi = null;
|
Cursor c = db.rawQuery(sql,new String[]{});
|
Cursor c_count = db.rawQuery(count,new String[]{});
|
while (c.moveToNext()) {
|
aqi = new AttendanceQueryItem();
|
aqi.setRegisterId(c.getString(c.getColumnIndex("register_id")));
|
aqi.setUsername(c.getString(c.getColumnIndex("username")));
|
aqi.setSurveillancePhoto(c.getString(c.getColumnIndex("surveillance_photo")));
|
aqi.setIdentifyNum(c.getString(c.getColumnIndex("identify_num")));
|
aqi.setPostName(c.getString(c.getColumnIndex("post_name")));
|
aqi.setGender(c.getString(c.getColumnIndex("gender")));
|
aqi.setDeptName(c.getString(c.getColumnIndex("dept_name")));
|
list.add(aqi);
|
}
|
Integer total = null;
|
while (c_count.moveToNext()) {
|
total = c.getInt(c.getColumnIndex("register_id"));
|
}
|
resultBean.setTotalPages(getTotalPageSize(total));
|
resultBean.setPageNum(pageNum);
|
resultBean.setData(list);
|
c.close();
|
return resultBean;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return resultBean;
|
}
|
|
/**
|
* 加载考勤明细
|
*/
|
public List<AttendanceDetailQueryItem> reloadAttendanceDetail(AttendanceQueryItem item) {
|
List<AttendanceDetailQueryItem> list = new ArrayList();
|
try {
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return list;
|
}
|
|
/**
|
* 获取分页开始行
|
* @param pageNum
|
* @return
|
*/
|
private int getStartIndex(Integer pageNum){
|
if(pageNum == null || pageNum <= 0){
|
return 0;
|
}
|
return (pageNum-1)*Integer.parseInt(CommonVariables.Page.DEFAULT_PAGE_SIZE);
|
}
|
|
/**
|
* 获取总页数
|
* @param total
|
* @return
|
*/
|
private int getTotalPageSize(Integer total){
|
if(total == null || total <= 0){
|
return 1;
|
}
|
int pageSize = Integer.parseInt(CommonVariables.Page.DEFAULT_PAGE_SIZE);
|
return total%pageSize == 0 ? total/pageSize : total/pageSize + 1;
|
}
|
|
}
|