From e90fb8dc455cb0d94c5bd16120427dbfbad7b0b0 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期一, 24 七月 2017 17:45:49 +0800
Subject: [PATCH] 

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java                      |    2 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java                         |    4 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/CheckInDao.java                 |   62 +++------
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillancePhotoEmulateThread.java       |    3 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/VisitorRegisterUpSync.java     |   83 +++++++++++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/AttenderRegisterUpSync.java    |   25 ++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/CheckInUpSync.java             |   21 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/OfflineSurveillanceUpSync.java |   19 +++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java                  |    3 
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/CheckInMng.java                        |   20 ++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SyncUpAndDownThread.java                  |   53 ++++++++
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/BaseSync.java                  |   47 +++++++
 12 files changed, 293 insertions(+), 49 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
index 7be8068..dd920df 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/base/BaseApplication.java
@@ -87,7 +87,7 @@
     }
 
     public boolean networkAvailable() {
-        boolean connected = true;
+        boolean connected = false;
 //        ConnectivityManager connectivityManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
 //        if(connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState() == NetworkInfo.State.CONNECTED ||
 //                connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
index 51dc9a2..77206e6 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/CheckInFragment.java
@@ -36,6 +36,7 @@
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.UUID;
 
 import cn.com.basic.face.discern.common.CommonVariables;
 import cn.com.basic.face.discern.entity.Visit;
@@ -221,6 +222,7 @@
             params.addBodyParameter(VisitDetail.FieldNames.createTime, sdf.format(new Date()));
             params.addBodyParameter(VisitDetail.FieldNames.deviceId, BaseApplication.getInstance().getAndroidDevice().getDeviceId());
         } else {
+            offlineVisitItem.setVisitId(UUID.randomUUID().toString());
             offlineVisitItem.setVisitReasonId(visitReasonId);
             offlineVisitItem.setVisitReason(fragment_check_in_right_visitor_reason.getText().toString());
             offlineVisitItem.setRemark(fragment_check_in_right_remark.getText().toString());
@@ -234,6 +236,7 @@
             offlineVisitItem.setWarning(visitor.getWarning());
             offlineVisitItem.setCreateTime(sdf.format(new Date()));
             offlineVisitItem.setDeviceId(BaseApplication.getInstance().getAndroidDevice().getDeviceId());
+            offlineVisitItem.setDeviceCompanyId(BaseApplication.getInstance().getAndroidDevice().getCompanyId());
             offlineVisitItem.setIsSynchron("N");
         }
         CheckInMng.getInstance().add(params, visitReasonId, offlineVisitItem);
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 f37ac81..e811393 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
@@ -61,10 +61,22 @@
                 }
             });
         } else {
-            CheckInDao.getInstance().addOfflineVisit(offlineVisitItem);
-            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();
+                    }
+                }
+            });
         }
     }
 
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
index 0fb724f..c6253f0 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DeviceMng.java
@@ -198,7 +198,7 @@
         return sharedPreferences.getString(key, "");
     }
 
-    public String getCamera1Address() {
+    public String getCamera2Address() {
         String username = "admin";
         String password = "admin12345";
         String ip = "192.168.1.70";
@@ -225,7 +225,7 @@
 //        return "rtsp://admin:a1234567@192.168.1.132:554/h264/ch1/main/av_stream";
     }
 
-    public String getCamera2Address() {
+    public String getCamera1Address() {
         String username = "admin";
         String password = "a1234567";
         String ip = "192.168.1.68";
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/CheckInDao.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/CheckInDao.java
index 4f21f6c..71f66ab 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/CheckInDao.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sqlite/CheckInDao.java
@@ -1,5 +1,6 @@
 package cn.com.basic.face.service.sqlite;
 
+import android.content.ContentValues;
 import android.database.Cursor;
 import android.database.CursorJoiner;
 import android.database.sqlite.SQLiteDatabase;
@@ -231,46 +232,29 @@
 
     /**
      * 绂荤嚎瀛樺偍璁垮鐧昏淇℃伅
-     * @param entity
+     * @param item
      */
-    public void addOfflineVisit(OfflineVisitItem entity) {
-        String sql =
-                "INSERT INTO visit (\n" +
-                        "	visit_id,\n" +
-                        "	visit_reason_id,\n" +
-                        "	remark,\n" +
-                        "	enter_time,\n" +
-                        "	exit_time,\n" +
-                        "	visitor_type_id,\n" +
-                        "	visitor_id,\n" +
-                        "	visitor_company_id,\n" +
-                        "	visitee_id,\n" +
-                        "	visitee_company_id,\n" +
-                        "	current_state_id,\n" +
-                        "	warning,\n" +
-                        "	update_time,\n" +
-                        "	is_synchron,\n" +
-                        "	device_company_id\n" +
-                        ")\n" +
-                        "VALUES\n" +
-                        "	(\n" +
-                        " '"+entity.getVisitId()+"', "+
-                        " '"+entity.getVisitReasonId()+"', "+
-                        " '"+entity.getRemark()+"', "+
-                        " '"+entity.getEnterTime()+"', "+
-                        " '"+entity.getExitTime()+"', "+
-                        " '"+entity.getVisitorTypeId()+"', "+
-                        " '"+entity.getVisitorId()+"', "+
-                        " '"+entity.getVisitorCompanyId()+"', "+
-                        " '"+entity.getVisiteeId()+"', "+
-                        " '"+entity.getVisiteeCompanyId()+"', "+
-                        " '"+entity.getCurrentStateId()+"', "+
-                        " '"+entity.getWarning()+"', "+
-                        " '"+entity.getUpdateTime()+"', "+
-                        " 'N', "+
-                        " '"+entity.getDeviceCompanyId()+"' "+
-                        "	)";
-        MainActivity.getInstance().db.execSQL(sql);
+    public long addOfflineVisit(OfflineVisitItem item) {
+        ContentValues contentValues = new ContentValues();
+        contentValues.put("visit_id",item.getVisitId());
+        contentValues.put("visit_reason_id",item.getVisitReasonId());
+        contentValues.put("remark",item.getRemark());
+        contentValues.put("enter_time",item.getEnterTime());
+        contentValues.put("exit_time",item.getExitTime());
+        contentValues.put("visitor_type_id",item.getVisitorTypeId());
+        contentValues.put("visitor_id",item.getVisitorId());
+        contentValues.put("visitor_company_id",item.getVisitorCompanyId());
+        contentValues.put("visitee_id",item.getVisiteeId());
+        contentValues.put("visitee_company_id",item.getVisiteeCompanyId());
+        contentValues.put("current_state_id",item.getCurrentStateId());
+        contentValues.put("warning",item.getWarning());
+        contentValues.put("update_time",item.getUpdateTime());
+        contentValues.put("is_synchron",item.getIsSynchron());
+        contentValues.put("device_company_id",item.getDeviceCompanyId());
+        contentValues.put("create_time",item.getCreateTime());
+
+        long registerId = MainActivity.getInstance().db.insert("visit", "", contentValues);
+        return registerId;
     }
 
 
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/AttenderRegisterUpSync.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/AttenderRegisterUpSync.java
new file mode 100644
index 0000000..8b98166
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/AttenderRegisterUpSync.java
@@ -0,0 +1,25 @@
+package cn.com.basic.face.service.sync.up;
+
+public class AttenderRegisterUpSync extends BaseSync {
+    private BaseSync next;
+    public boolean upToMysqlComplete = false;
+
+    private static AttenderRegisterUpSync instance = new AttenderRegisterUpSync();
+
+    public static AttenderRegisterUpSync getInstance() {
+        return instance;
+    }
+
+    public void setNext(BaseSync next) {
+        this.next = next;
+    }
+
+    public void doSync() {
+
+    }
+
+    public boolean hasMore() {
+        return false;
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/BaseSync.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/BaseSync.java
new file mode 100644
index 0000000..6f29a72
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/BaseSync.java
@@ -0,0 +1,47 @@
+package cn.com.basic.face.service.sync.up;
+
+public abstract class BaseSync {
+
+    private BaseSync next;
+    public boolean syncComplete = false;
+
+    public boolean getSyncComplete() {
+        return syncComplete;
+    }
+
+    public void setNext(BaseSync next) {
+        this.next = next;
+    }
+
+    public void sync() {
+        if (hasMore()) {
+            syncComplete = false;
+            doSync();
+        } else {
+            syncComplete = true;
+            if (next != null) {
+                next.sync();
+            }
+        }
+    }
+
+    public abstract void doSync();
+
+    public abstract boolean hasMore();
+
+    public void setComplete(boolean syncComplete) {
+        this.syncComplete = syncComplete;
+        if (next != null) {
+            next.setComplete(syncComplete);
+        }
+    }
+
+    public boolean lastUpSyncComplete() {
+        BaseSync last = this;
+        while (last.next != null) {
+            last = last.next;
+        }
+        return last.getSyncComplete();
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/CheckInUpSync.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/CheckInUpSync.java
new file mode 100644
index 0000000..0faf4ea
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/CheckInUpSync.java
@@ -0,0 +1,21 @@
+package cn.com.basic.face.service.sync.up;
+
+public class CheckInUpSync extends BaseSync {
+
+    @Override
+    public void doSync() {
+
+    }
+
+    @Override
+    public boolean hasMore() {
+        return false;
+    }
+
+    public static CheckInUpSync instance = new CheckInUpSync();
+
+    public static CheckInUpSync getInstance() {
+        return instance;
+    }
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/OfflineSurveillanceUpSync.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/OfflineSurveillanceUpSync.java
new file mode 100644
index 0000000..6f11149
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/OfflineSurveillanceUpSync.java
@@ -0,0 +1,19 @@
+package cn.com.basic.face.service.sync.up;
+
+public class OfflineSurveillanceUpSync extends BaseSync {
+
+    private static OfflineSurveillanceUpSync instance = new OfflineSurveillanceUpSync();
+    public static OfflineSurveillanceUpSync getInstance() {
+        return instance;
+    }
+
+    @Override
+    public void doSync() {
+
+    }
+
+    @Override
+    public boolean hasMore() {
+        return false;
+    }
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/VisitorRegisterUpSync.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/VisitorRegisterUpSync.java
new file mode 100644
index 0000000..96b3971
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/sync/up/VisitorRegisterUpSync.java
@@ -0,0 +1,83 @@
+package cn.com.basic.face.service.sync.up;
+
+import android.widget.Toast;
+
+import org.xutils.http.RequestParams;
+import org.xutils.x;
+
+import java.io.File;
+import java.io.FileWriter;
+
+import cn.com.basic.face.base.BaseApplication;
+import cn.com.basic.face.discern.common.BaseCommonCallBack;
+import cn.com.basic.face.discern.common.SqliteSqlBean;
+import cn.com.basic.face.discern.entity.Register;
+import cn.com.basic.face.discern.query.item.OfflineVisitorRegisterItem;
+import cn.com.basic.face.fragment.VisitorRegisterFragment;
+import cn.com.basic.face.service.sqlite.RegisterDao;
+import cn.com.basic.face.util.AppApi;
+import cn.com.basic.face.util.SqliteSqlUtil;
+
+public class VisitorRegisterUpSync extends BaseSync {
+
+    private static VisitorRegisterUpSync instance = new VisitorRegisterUpSync();
+    public static VisitorRegisterUpSync getInstance() {
+        return instance;
+    }
+
+    public void doSync() {
+        final OfflineVisitorRegisterItem item = RegisterDao.getInstance().readOfflineVisitorRegister();
+        RequestParams params = new RequestParams();
+
+        params.addBodyParameter(Register.FieldNames.username, item.getUsername());
+        params.addBodyParameter(Register.FieldNames.mobilePhone, item.getMobilePhone());
+        params.addBodyParameter(Register.FieldNames.genderId, item.getGenderId());
+        params.addBodyParameter(Register.FieldNames.identityTypeId, item.getIdentityTypeId());
+        params.addBodyParameter(Register.FieldNames.countryId, item.getCountryId());
+        params.addBodyParameter(Register.FieldNames.visitorTypeId, item.getVisitorTypeId());
+        params.addBodyParameter(Register.FieldNames.identifyNum, item.getIdentifyNum());
+        params.addBodyParameter(Register.FieldNames.companyId, item.getCompanyId());
+        params.addBodyParameter(Register.FieldNames.birthday, item.getBirthday());
+        params.addBodyParameter(Register.FieldNames.remark, item.getRemark());
+        params.addBodyParameter("width", item.getRawSurveillancePhotoWidth());
+        params.addBodyParameter("height", item.getRawSurveillancePhotoHeight());
+
+        item.loadFiles();
+
+        params.addBodyParameter("rawSurveillancePhoto", item.getRawSurveillancePhotoPath());
+        params.addBodyParameter("surveillancePhoto", item.getSurveillancePhoto());
+        params.addBodyParameter("uploadCustomPhoto", item.getUploadCustomPhoto());
+        params.addBodyParameter("idCardPhoto", item.getIdCardPhoto());
+        params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+        try {
+            File path = BaseApplication.getInstance().getFilesDir();
+            File f0 = new File(path, "f0");
+            if (!f0.exists()) {
+                f0.createNewFile();
+            }
+            FileWriter fw0 = new FileWriter(f0);
+            fw0.write("test1");
+            fw0.close();
+            params.setUri(AppApi.BASE_URL +AppApi.REGISTER_ADD);
+            params.addBodyParameter("f0", f0);
+            x.http().post(params, new BaseCommonCallBack() {
+                @Override
+                public void success() {
+                    SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class));
+                    Toast.makeText(BaseApplication.getInstance(),"娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show();
+                    VisitorRegisterFragment.getInstance().resetForm();
+                    RegisterDao.getInstance().removeOfflineVisitorRegister(item);
+                    sync();
+                }
+            });
+        }catch(Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public boolean hasMore() {
+        return false;
+    }
+
+
+}
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillancePhotoEmulateThread.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillancePhotoEmulateThread.java
index 180da46..f97d61c 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillancePhotoEmulateThread.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SurveillancePhotoEmulateThread.java
@@ -30,9 +30,6 @@
                     List bitmapList = new ArrayList();
                     NativeImg nativeImg = new NativeImg();
                     File file = new File(surveillancePhotoName);
-                    if (file.exists()) {
-                        System.out.println("file exisit");
-                    }
                     nativeImg.image = FileUtil.readFile(file);
                     nativeImg.size = nativeImg.image.length;
                     SurveillanceQueryItem surveillanceQueryItem = new SurveillanceQueryItem();
diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SyncUpAndDownThread.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SyncUpAndDownThread.java
new file mode 100644
index 0000000..1132b2f
--- /dev/null
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SyncUpAndDownThread.java
@@ -0,0 +1,53 @@
+package cn.com.basic.face.util;
+
+import cn.com.basic.face.service.sync.up.AttenderRegisterUpSync;
+import cn.com.basic.face.service.sync.up.BaseSync;
+import cn.com.basic.face.service.sync.up.CheckInUpSync;
+import cn.com.basic.face.service.sync.up.OfflineSurveillanceUpSync;
+import cn.com.basic.face.service.sync.up.VisitorRegisterUpSync;
+
+public class SyncUpAndDownThread extends Thread {
+
+    public boolean isThisTimeSyncComplete = false;
+
+    BaseSync baseSync;
+
+    public BaseSync buildUpChain() {
+
+        VisitorRegisterUpSync visitorRegisterSync = VisitorRegisterUpSync.getInstance();
+        AttenderRegisterUpSync attenderRegisterSync = AttenderRegisterUpSync.getInstance();
+        visitorRegisterSync.setNext(attenderRegisterSync);
+        CheckInUpSync checkInUpSync = CheckInUpSync.getInstance();
+        attenderRegisterSync.setNext(checkInUpSync);
+        OfflineSurveillanceUpSync offlineSurveillanceUpSync = OfflineSurveillanceUpSync.getInstance();
+        checkInUpSync.setNext(offlineSurveillanceUpSync);
+
+        return visitorRegisterSync;
+    }
+
+
+    @Override
+    public void run() {
+        BaseSync baseSync = buildUpChain();
+        while (true) {
+            try {
+                baseSync.setComplete(false);
+                if (baseSync.lastUpSyncComplete()) {
+                    Thread.sleep(5 * 60 * 1000);
+                } else {
+                    Thread.sleep(10*1000);
+                    return;
+                }
+            } catch (Exception e) {
+                try {
+                    Thread.sleep(30 * 1000);
+                } catch (Exception e2) {
+                    e2.printStackTrace();
+                }
+                e.printStackTrace();
+            }
+        }
+
+    }
+
+}

--
Gitblit v1.8.0