xuxiuxi
2017-08-01 785fd3c3e9984f301018b3b5deb91ecc2c8da124
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
package cn.com.basic.face.service;
 
import org.xutils.http.RequestParams;
import org.xutils.x;
 
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import cn.com.basic.face.base.BaseApplication;
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.service.sqlite.AttendanceDao;
import cn.com.basic.face.util.AppApi;
import cn.com.basic.face.util.DateUtil;
 
public class AttendanceMng extends BaseMng{
 
    private static AttendanceMng instance = new AttendanceMng();
    public static AttendanceMng getInstance() {
        return instance;
    }
 
    public void reloadLeftList(String searchText, final int pageNum, final boolean append) {
        if (!BaseApplication.deviceAvailable) {
            return;
        }
        if(BaseApplication.getInstance().networkAvailable()) {
            RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.Query.ATTENDANCE_QUERY);
            params.addBodyParameter(AttendanceQueryCondition.FieldNames.username, searchText);
            params.addBodyParameter(AttendanceQueryCondition.FieldNames.deviceCompanyId, BaseApplication.getInstance().getAndroidDevice().getCompanyId());
            params.addBodyParameter(CommonVariables.Page.PAGE_NUM, pageNum + "");
            params.addBodyParameter(CommonVariables.Page.PAGE_SIZE, CommonVariables.Page.DEFAULT_PAGE_SIZE);
            x.http().post(params, new BaseCommonCallBack() {
                public void success() {
                    reloadLeftListAfterReturn(append, resultBean);
                }
            });
        } else {
            reloadLeftListAfterReturn(append, AttendanceDao.getInstance().reloadLeftList(searchText, pageNum, append));
        }
    }
 
    public void reloadLeftListAfterReturn(final boolean append, ResultBean resultBean) {
        List<AttendanceQueryItem> list = resultBean.getList(AttendanceQueryItem.class);
        final List itemList = new ArrayList();
        int i = 0;
        String previewDate = "";
        if (append) {
//                        List prevList = AttendanceFragment.getInstance().get_fragment_attendance_left_list_view().getPrevList();
//                        if (prevList != null && prevList.size() > 1) {
//                            previewDate = DateUtil.yyyy_MM_dd_to_yyyy年MM月dd日(
//                                    ((AttendanceQueryItem) prevList.get(prevList.size() - 2)).getTime());
//                        }
        }
        for (AttendanceQueryItem item : list) {
//                        try {
//                            String yyyyMMdd = DateUtil.yyyy_MM_dd_to_yyyy年MM月dd日(item.getTime());
//                            if (!previewDate.equals(yyyyMMdd)) {
//                                itemList.add(yyyyMMdd);
//                                previewDate = yyyyMMdd;
//                            }
//                        } catch (Exception e) {
//                        }
            itemList.add(item);
            i++;
        }
        addPageFooter(resultBean.hasMorePages(), resultBean.getPageNum(), itemList);
        if (BaseApplication.getInstance().networkAvailable()) {
            AttendanceFragment.getInstance().get_fragment_attendance_left_list_view().show(itemList, append);
        } else {
            MainActivity.getInstance().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    AttendanceFragment.getInstance().get_fragment_attendance_left_list_view().show(itemList, append);
                }
            });
        }
    }
 
    public void reloadAttendanceDetail(final AttendanceQueryItem item) {
        if (!BaseApplication.deviceAvailable) {
            return;
        }
        if (BaseApplication.getInstance().networkAvailable()) {
            try {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.ATTENDANCE_DETAIL_QUERY);
                params.addBodyParameter(AttendanceDetailQueryCondition.FieldNames.time, sdf.format(new Date()));
                params.addBodyParameter(AttendanceDetailQueryCondition.FieldNames.registerId, item.getRegisterId());
                params.addBodyParameter(AttendanceDetailQueryCondition.FieldNames.deviceCompanyId, BaseApplication.getInstance().getAndroidDevice().getCompanyId());
                params.addBodyParameter(CommonVariables.Page.PAGE_SIZE, "20");
                x.http().post(params, new BaseCommonCallBack() {
                    public void success() {
                        AttendanceFragment.getInstance().get_fragment_attendance_right_list_view().show(getList(AttendanceDetailQueryItem.class));
                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            MainActivity.getInstance().runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    AttendanceFragment.getInstance().get_fragment_attendance_right_list_view().show(AttendanceDao.getInstance().reloadAttendanceDetail(item));
                }
            });
        }
    }
 
    public void removeBeforeToday() {
        try {
            String sql = "delete from attendance where 1=1 and time< '" + DateUtil.getYesterday() + "'";
            MainActivity.getInstance().db.execSQL(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
    }
}