xuxiuxi
2017-06-02 c769d1392f1b540d61d78027d5a1295fb156bb4f
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
package cn.com.basic.face.service;
 
import android.widget.Toast;
 
import cn.com.basic.face.base.BaseApplication;
import cn.com.basic.face.discern.common.CommonVariables;
import cn.com.basic.face.discern.query.condition.CheckInQueryCondition;
import cn.com.basic.face.fragment.CheckInFragment;
import cn.com.basic.face.util.AppApi;
 
import org.xutils.http.RequestParams;
import org.xutils.x;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
 
import cn.com.basic.face.discern.common.BaseCommonCallBack;
import cn.com.basic.face.discern.query.item.CheckInQueryItem;
import cn.com.basic.face.util.CharacterParser;
 
public class CheckInMng extends BaseMng {
 
    public static CheckInMng instance = new CheckInMng();
 
    public static CheckInMng getInstance() {
        return instance;
    }
 
    public void add(RequestParams params, final String visitReasonId) {
        if (!BaseApplication.deviceAvailable) {
            return;
        }
        params.setUri(AppApi.BASE_URL +AppApi.VISIT_ADD);
        x.http().post(params, new BaseCommonCallBack() {
            @Override
            public void success() {
                Toast.makeText(BaseApplication.getInstance(),"添加成功", Toast.LENGTH_SHORT).show();
                CheckInFragment.getInstance().resetForm();
                if (visitReasonId == null || "".equals(visitReasonId)) {
                    DictionaryMng.getInstance().loadVisitReasonList();
                }
            }
        });
    }
 
    public void findCheckInLeftList(final boolean isVisitorList, final boolean isSortByDept, String searchText, final int pageNum, final boolean append) {
        if (!BaseApplication.deviceAvailable) {
            return;
        }
        RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.CHECK_IN_QUERY);
        String deviceCompanyId = BaseApplication.getInstance().getAndroidDevice().getCompanyId();
        if (isVisitorList) {
            params.addBodyParameter(CheckInQueryCondition.FieldNames.visitorCompanyId, deviceCompanyId);
        } else {
            params.addBodyParameter(CheckInQueryCondition.FieldNames.employeeCompanyId, deviceCompanyId);
        }
        params.addBodyParameter(CheckInQueryCondition.FieldNames.username, searchText);
        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() {
                List<CheckInQueryItem> list = getList(CheckInQueryItem.class);
 
                List prevList = null;
                if (append) {
                    if (isVisitorList) {
                        prevList = CheckInFragment.getInstance().get_fragment_check_in_left_visitor().getPrevList();
                    } else {
                        prevList = CheckInFragment.getInstance().get_fragment_check_in_left_interviewee().getPrevList();
                    }
                    for (int i = 0; i < prevList.size(); i++) {
                        Object item = prevList.get(i);
                        if (item instanceof CheckInQueryItem) {
                            list.add(0, (CheckInQueryItem) item);
                        }
                    }
                }
 
                sort(list, isSortByDept);
                List itemList = new ArrayList();
                String name = "";
                String prev = "";
                for (int i = 0; i < list.size(); i++) {
                    CheckInQueryItem item = list.get(i);
                    if (isSortByDept) {
                        if (item.getDeptName() != null && item.getDeptName().length() > 0) {
                            name = CharacterParser.getInstance().getSelling(item.getDeptName()).substring(0, 1);
                        }
                    } else {
                        if (item.getUsername() != null && item.getUsername().length() > 0)
                        name = CharacterParser.getInstance().getSelling(item.getUsername()).substring(0, 1);
                    }
                    if (!name.equals(prev)) {
                        itemList.add(name);
                    }
                    itemList.add(item);
                    prev = name;
                }
                addPageFooter(hasMorePages(), getPageNum(), itemList);
                if (isVisitorList) {
                    CheckInFragment.getInstance().get_fragment_check_in_left_visitor().show(itemList);
                } else {
                    CheckInFragment.getInstance().get_fragment_check_in_left_interviewee().show(itemList, isSortByDept, append);
                }
            }
        });
    }
 
    private void sort(List<CheckInQueryItem> list, final boolean sortedByDept) {
        if (!BaseApplication.deviceAvailable) {
            return;
        }
        Collections.sort(list, new Comparator<CheckInQueryItem>() {
            @Override
            public int compare(CheckInQueryItem item1, CheckInQueryItem item2) {
                if (sortedByDept) {
                    String dept1Name = item1.getDeptName()==null?"":item1.getDeptName();
                    String dept2Name = item2.getDeptName()==null?"":item2.getDeptName();
                    if(!dept1Name.equals(dept2Name)) {
                        String dept1Name_a = dept1Name.trim();
                        String dept1Name_b = dept2Name.trim();
                        if (dept1Name_a.length() > 0 && dept1Name_b.length() > 0) {
                            dept1Name_a = CharacterParser.getInstance().getSelling(dept1Name).toLowerCase();
                            dept1Name_b = CharacterParser.getInstance().getSelling(dept2Name).toLowerCase();
                        }
                        return dept1Name_a.compareTo(dept1Name_b);
                    }
                }
                String username1 = item1.getUsername()==null?"":item1.getUsername();
                String username2 = item2.getUsername()==null?"":item2.getUsername();
                String dept1Name_a = username1.trim();
                String dept1Name_b = username2.trim();
                if (dept1Name_a.length() > 0 && dept1Name_b.length() > 0) {
                    dept1Name_a = CharacterParser.getInstance().getSelling(username1).toLowerCase();
                    dept1Name_b = CharacterParser.getInstance().getSelling(username2).toLowerCase();
                }
                return dept1Name_a.compareTo(dept1Name_b);
            }
        });
    }
 
 
}