From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001
From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 18 八月 2017 18:12:17 +0800
Subject: [PATCH] H264 NALU解析  并在RTSPServer判断

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/CheckInMng.java |  124 ++++++++++++++++++++++++++++++++--------
 1 files changed, 98 insertions(+), 26 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/CheckInMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/CheckInMng.java
index 918349f..588f975 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/CheckInMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/CheckInMng.java
@@ -1,8 +1,11 @@
 package cn.com.basic.face.service;
 
+import android.database.Cursor;
+import android.database.sqlite.SQLiteDatabase;
 import android.widget.Toast;
 
 import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.base.MainActivity;
 import cn.com.basic.face.discern.common.CommonVariables;
 import cn.com.basic.face.discern.common.ResultBean;
 import cn.com.basic.face.discern.common.SqliteSqlBean;
@@ -10,6 +13,8 @@
 import cn.com.basic.face.discern.entity.VisitDetail;
 import cn.com.basic.face.discern.query.condition.AttendanceQueryCondition;
 import cn.com.basic.face.discern.query.condition.CheckInQueryCondition;
+import cn.com.basic.face.discern.query.item.OfflineAttenderRegisterItem;
+import cn.com.basic.face.discern.query.item.OfflineVisitItem;
 import cn.com.basic.face.fragment.CheckInFragment;
 import cn.com.basic.face.service.sqlite.CheckInDao;
 import cn.com.basic.face.service.sqlite.DictionaryDao;
@@ -28,6 +33,7 @@
 import cn.com.basic.face.discern.common.BaseCommonCallBack;
 import cn.com.basic.face.discern.query.item.CheckInQueryItem;
 import cn.com.basic.face.util.CharacterParser;
+import cn.com.basic.face.util.DateUtil;
 import cn.com.basic.face.util.SqliteSqlUtil;
 
 //鐧昏
@@ -39,7 +45,7 @@
         return instance;
     }
 
-    public void add(RequestParams params, final String visitReasonId) {
+    public void add(RequestParams params, final String visitReasonId, OfflineVisitItem offlineVisitItem) {
         if (!BaseApplication.deviceAvailable) {
             return;
         }
@@ -58,25 +64,22 @@
                 }
             });
         } else {
-//            params.addBodyParameter(Visit.FieldNames.visitReasonId, visitReasonId);
-//            params.addBodyParameter(Visit.FieldNames.visitReason, fragment_check_in_right_visitor_reason.getText().toString());
-//            params.addBodyParameter(Visit.FieldNames.remark, fragment_check_in_right_remark.getText().toString());
-//            params.addBodyParameter(Visit.FieldNames.visitorId, visitor.getRegisterId());
-//            params.addBodyParameter(Visit.FieldNames.visiteeId, interviewee.getRegisterId());
-//            params.addBodyParameter(Visit.FieldNames.visitorCompanyId, visitor.getCompanyId());
-//            params.addBodyParameter(Visit.FieldNames.visiteeCompanyId, interviewee.getCompanyId());
-//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//            params.addBodyParameter(Visit.FieldNames.enterTime, sdf.format(new Date()));
-//            params.addBodyParameter(Visit.FieldNames.currentStateId, ""+ CommonVariables.VisitType.VISITOR_ENTERED);
-//            params.addBodyParameter(Visit.FieldNames.warning, visitor.getWarning());
-//
-//            params.addBodyParameter(VisitDetail.FieldNames.stateId, ""+CommonVariables.VisitType.VISITOR_ENTERED);
-//            params.addBodyParameter(VisitDetail.FieldNames.createTime, sdf.format(new Date()));
-//            params.addBodyParameter(VisitDetail.FieldNames.deviceId, BaseApplication.getInstance().getAndroidDevice().getDeviceId());
-            CheckInDao.getInstance().add(params);
-            if (visitReasonId == null || "".equals(visitReasonId)) {
-                DictionaryMng.getInstance().loadVisitReasonList();
-            }
+            final long result = CheckInDao.getInstance().addOfflineVisit(offlineVisitItem);
+
+            MainActivity.getInstance().runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    if (result > 0) {
+                        Toast.makeText(BaseApplication.getInstance(), "娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show();
+                        if (visitReasonId == null || "".equals(visitReasonId)) {
+                            DictionaryMng.getInstance().loadVisitReasonList();
+                        }
+                        CheckInFragment.getInstance().resetForm();
+                    } else {
+                        Toast.makeText(BaseApplication.getInstance(), "娣诲姞澶辫触", Toast.LENGTH_SHORT).show();
+                    }
+                }
+            });
         }
     }
 
@@ -106,8 +109,11 @@
         }
     }
 
-    public void findCheckInLeftListAfterReturn(ResultBean resultBean, boolean isVisitorList, boolean isSortByDept, boolean append) {
+    public void findCheckInLeftListAfterReturn(ResultBean resultBean, final boolean isVisitorList, final boolean isSortByDept, final boolean append) {
         List<CheckInQueryItem> list = resultBean.getList(CheckInQueryItem.class);
+        if (list == null) {
+            list = new ArrayList<>();
+        }
 
         List prevList = null;
         if (append) {
@@ -125,7 +131,7 @@
         }
 
         sort(list, isSortByDept);
-        List itemList = new ArrayList();
+        final List itemList = new ArrayList();
         String name = "";
         String prev = "";
         for (int i = 0; i < list.size(); i++) {
@@ -145,16 +151,32 @@
             prev = name;
         }
         addPageFooter(resultBean.hasMorePages(), resultBean.getPageNum(), itemList);
-        if (isVisitorList) {
-            CheckInFragment.getInstance().get_fragment_check_in_left_visitor().show(itemList);
+        if (BaseApplication.getInstance().networkAvailable()) {
+            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);
+            }
         } else {
-            CheckInFragment.getInstance().get_fragment_check_in_left_interviewee().show(itemList, isSortByDept, append);
+            MainActivity.getInstance().runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    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;
+        }
+        if (list == null) {
+            list = new ArrayList<>();
         }
         Collections.sort(list, new Comparator<CheckInQueryItem>() {
             @Override
@@ -186,11 +208,61 @@
     }
 
 
-    public void sendOfflineCheckInToServer() {
+    public void sendOfflineCheckInToServer(Integer mysqlVisitorId, long sqliteVisitorId) {
 
     }
 
     public boolean hasOfflineCheckInData() {
         return CheckInDao.getInstance().hasOfflineCheckInData();
     }
+
+    public void removeVisitorLastMonthData() {
+        try {
+            SQLiteDatabase db = MainActivity.getInstance().db;
+            String sql="SELECT" +
+                    " a.register_id," +
+                    "a.username," +
+                    "a.surveillance_photo," +
+                    "d.company_name," +
+                    "a.tel," +
+                    "a.identify_num," +
+                    "b.dept_name," +
+                    "d.company_id," +
+                    "e.post_name," +
+                    "a.mobile_phone," +
+                    "a.warning," +
+                    "a.company" +
+                    " FROM" +
+                    " register a" +
+                    " LEFT JOIN company d ON d.company_id = a.company_id" +
+                    " LEFT JOIN department b ON a.department_id = b.dept_id" +
+                    " LEFT JOIN post e ON e.post_id = a.post_id" +
+                    " LEFT JOIN ( SELECT register_id, device_company_id from employee  ) f ON f.register_id = a.register_id" +
+                    " WHERE" +
+                    " 1 = 1";
+            String deviceCompanyId = BaseApplication.getInstance().getAndroidDevice().getCompanyId();
+            sql +=  " AND ( f.device_company_id != " + deviceCompanyId+" OR f.device_company_id IS NULL"+")";
+
+            sql+=" order by a.name_en";
+
+            String count = "select count(*) as count from (" + sql + " ) _table";
+            sql += " LIMIT 0, 100000";
+            List<CheckInQueryItem> list = new ArrayList<CheckInQueryItem>();
+            int b = list.size();
+            CheckInQueryItem cqi = null;
+            Cursor c = db.rawQuery(sql,new String[]{});
+            while (c.moveToNext()) {
+                cqi = new CheckInQueryItem();
+                cqi.setRegisterId(c.getString(c.getColumnIndex("register_id")));
+                list.add(cqi);
+            }
+            for (CheckInQueryItem item : list) {
+                String sql1 = "delete from register where 1=1 and register_id = '" + item.getRegisterId() + "'";
+                MainActivity.getInstance().db.execSQL(sql1);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 }

--
Gitblit v1.8.0