dupengyue
2017-07-20 73a64e57f542bf50384930654ea5108ce3ff91b0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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;
    }
 
}