a
554325746@qq.com
2020-01-15 956063ff14bc75e3a2a97c7bcaa06b9edc84ad24
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
package com.basic.security.manager;
 
import android.text.TextUtils;
 
import com.basic.security.fragment.FaceListFragment;
import com.basic.security.model.ModelAdapter;
import com.basic.security.model.Org;
import com.basic.security.model.Person;
import com.basic.security.model.Visit;
import com.basic.security.utils.ExceptionUtil;
import com.basic.security.utils.FacePosition;
import com.basic.security.utils.SocketUtil;
 
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
 
public class VisitManager extends BaseManager {
    public static Map<String, String> getLastVisitTimeMap = new HashMap<>();
    static long getLastVisitTimeLastTime = 0;
    static List<FacePosition> upLoadVisitRecordToESQueue = new LinkedList();
    static String saveVisitRecordLastId = "";
    static long saveVisitRecordLastTime = 0;
 
    public static String getLastVisitTime(String person_id) {
        String lastTime = getLastVisitTimeMap.get(person_id);
        List<ModelAdapter> visit_list = findList("select * from visit where person_id='" + person_id + "' order by visit_time desc limit 1");
        if (visit_list.size() > 0) {
            lastTime = visit_list.get(0).getString("visit_time");
        } else {
            lastTime = "";
        }
        getLastVisitTimeMap.put(person_id, lastTime);
        getLastVisitTimeLastTime = System.currentTimeMillis();
        return lastTime;
    }
 
    public static void upLoadVisitRecordToES(FacePosition facePosition) {
    }
 
    public static void saveVisitRecord(ModelAdapter person, String verify_result) {
        if (person == null) {
            return;
        }
        String person_id = person.getString(Person.id);
        long saveVisitRecordCurrentTime = System.currentTimeMillis();
        if (person_id != null) {
            ModelAdapter visit = new ModelAdapter();
            visit.setString("table", "visit");
            String respondentId = person.getString(Person.respondent_ids);
            if (!TextUtils.isEmpty(respondentId)) {
                ModelAdapter respondent = PersonManager.findPersonById(respondentId);
                if (respondent != null && !TextUtils.isEmpty(respondent.getString(Person.id))) {
                    visit.setString(Visit.target_id_number, respondent.getString(Person.id_card_number));
                    List<String> identityNameByPersonId = PersonIdentityManager.findIdentityNameByPersonId(respondentId);
                    if (identityNameByPersonId.size() != 0) {
                        visit.setString(Visit.target_identity, TextUtils.join(",", identityNameByPersonId));
                    } else {
                        visit.setString(Visit.target_identity, "");
                    }
                    visit.setString(Visit.target_phone, respondent.getString(Person.phone));
                    String orgId = respondent.getString(Person.org_id);
                    if (!TextUtils.isEmpty(orgId)) {
                        try {
                            String orgName = FaceListFragment.treeAdapter.treeNodeList.orgIdOrgMap.get(orgId).getString(Org.name);
                            visit.setString(Visit.target_org_name, orgName);
                        } catch (Exception e) {
                            ExceptionUtil.printException(e);
                        }
                    }
                }
            }
            visit.setString(Visit.target_person_id, person.getString(Person.respondent_ids));
            visit.setString(Visit.target_person_name, person.getString(Person.respondent_names));
            String orgId = person.getString(Person.org_id);
            visit.setString(Visit.target_org_id, orgId);
            visit.setString("person_id", person_id);
            visit.setString("person_name", person.getString("name"));
            visit.setString("person_phone", person.getString("phone"));
            visit.setString("person_id_number", person.getString("id_card_number"));
            List<String> identityNameByPersonId = PersonIdentityManager.findIdentityNameByPersonId(person_id);
            if (identityNameByPersonId.size() != 0) {
                visit.setString("person_type", TextUtils.join(",", identityNameByPersonId));
            } else {
                visit.setString("person_type", "");
            }
            visit.setString("visit_time", new Date().getTime() + "");
            visit.setString("verify_result", verify_result);
            visit.setString("device_id", DeviceManager.getDeviceId());
            ModelAdapter deviceSetting = DeviceManager.getDevice();
            if (deviceSetting != null) {
                visit.setString("device_name", deviceSetting.getString("name"));
            }
            visit.setString("company_id", CompanyManager.getCompanyId());
            save(visit);
            saveVisitRecordLastId = person_id;
            saveVisitRecordLastTime = saveVisitRecordCurrentTime;
            SocketUtil.rpcCallSaveVisit(visit);
        }
    }
 
    public static List<ModelAdapter> queryVisitRecords(String selectIdentity, String key_word, boolean descend, long start_time, long end_time, int start, int count) {
        String sql = "select * from visit where visit_time >= '" + start_time + "' and visit_time <= '" + end_time + "'";
        if (!TextUtils.isEmpty(key_word)) {
            sql += " and ( person_name like '%" + key_word + "%' or person_id_number like '%" + key_word + "%'or person_phone  like '%" + key_word + "%'  )";
        }
        if (!"全部".equals(selectIdentity)) {
            sql += " and person_type like '%" + selectIdentity + "%'";
        }
        sql += " order by visit_time ";
        if (descend) {
            sql += " desc ";
        } else {
            sql += " asc ";
        }
        sql += " limit " + start + ", " + count;
        return findList(sql);
    }
}