xuxiuxi
2017-04-07 48d61aafa2551ae2ee0a9484b590d64e10baeae3
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
package cn.com.basic.face.service;
 
import org.xutils.http.RequestParams;
import org.xutils.x;
 
import java.util.ArrayList;
import java.util.List;
 
import cn.com.basic.face.discern.common.BaseCommonCallBack;
import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
import cn.com.basic.face.fragment.SurveillanceFragment;
import cn.com.basic.face.util.AppApi;
import cn.com.basic.face.util.Constant;
 
public class SurveillanceMng {
 
    private static SurveillanceMng instance = new SurveillanceMng();
 
    public static SurveillanceMng getInstance() {
        return instance;
    }
 
    public void findSupervisoryBottomList(final boolean isVisit) {
 
        RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.SURVEILLANCE_QUERY);
//        params.addBodyParameter(VisitorQueryCondition.FieldNames.notCompanyId, BaseApplication.getInstance().getPlace().getCompanyId());
        x.http().post(params, new BaseCommonCallBack() {
            public void success() {
                List<SurveillanceQueryItem> list = getList(SurveillanceQueryItem.class);
                if (isVisit) {
                    int i = 0;
                    for (SurveillanceQueryItem item : list) {
                        if (i % 5 == 0) {
                            item.setType(Constant.Supervisory.VISIT_REGISTER_ITEM_TYPE);
                        } else {
                            item.setType(Constant.Supervisory.VISIT_CHECK_IN_ITEM_TYPE);
                        }
                        i++;
                    }
 
                    List<SurveillanceQueryItem> doubleList = new ArrayList<SurveillanceQueryItem>();
                    fillBlank(list, doubleList);
 
                    SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visit_list_view().show(doubleList, true);
                } else {
                    SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_attendance_list_view().show(list, true);
                }
            }
        });
 
    }
 
    private void fillBlank(List<SurveillanceQueryItem> list, List<SurveillanceQueryItem> doubleList) {
        List<SurveillanceQueryItem> registerList = new ArrayList<SurveillanceQueryItem>();
        List<SurveillanceQueryItem> checkInList = new ArrayList<SurveillanceQueryItem>();
 
        for (SurveillanceQueryItem item : list) {
            if (item.getType() == Constant.Supervisory.VISIT_REGISTER_ITEM_TYPE) {
                registerList.add(item);
            }
            if (item.getType() == Constant.Supervisory.VISIT_CHECK_IN_ITEM_TYPE) {
                checkInList.add(item);
            }
        }
 
        List<SurveillanceQueryItem> blenderList = new ArrayList<SurveillanceQueryItem>();
 
        int i = 0, m = 0, n = 0;
        for (i = 0; i < registerList.size() + checkInList.size(); i++) {
            SurveillanceQueryItem item;
            if (i % 2 == 0 && m < registerList.size()) {
                item = registerList.get(m);
                m++;
            } else {
                item = checkInList.get(n);
                n++;
            }
            blenderList.add(item);
        }
 
        for (SurveillanceQueryItem item : blenderList) {
            if (doubleList.size() % 2 == 0 && item.getType() != Constant.Supervisory.VISIT_REGISTER_ITEM_TYPE) {
                doubleList.add(getBlankItem());
            }
            if (doubleList.size() % 2 != 0 && item.getType() != Constant.Supervisory.VISIT_CHECK_IN_ITEM_TYPE) {
                doubleList.add(getBlankItem());
            }
            doubleList.add(item);
        }
    }
 
    private SurveillanceQueryItem getBlankItem() {
        SurveillanceQueryItem blankItem = new SurveillanceQueryItem();
        blankItem.setType(Constant.Supervisory.VISIT_BLANK_ITEM_TYPE);
        return blankItem;
    }
 
}