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

---
 VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java |   79 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 77 insertions(+), 2 deletions(-)

diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
index b03ea79..2ad661c 100644
--- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
+++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/SurveillanceMng.java
@@ -10,10 +10,16 @@
 import cn.com.basic.face.base.BaseApplication;
 import cn.com.basic.face.base.MainActivity;
 import cn.com.basic.face.discern.common.BaseCommonCallBack;
+import cn.com.basic.face.discern.common.CommonVariables;
+import cn.com.basic.face.discern.common.SqliteSqlBean;
 import cn.com.basic.face.discern.query.item.SurveillanceQueryItem;
+import cn.com.basic.face.discern.query.item.UnknownQueryItem;
+import cn.com.basic.face.service.sqlite.SurveillanceDao;
 import cn.com.basic.face.util.AppApi;
 import cn.com.basic.face.util.FileUtil;
+import cn.com.basic.face.util.SqliteSqlUtil;
 import cn.com.basic.face.util.SurveillanceQueryItemUtil;
+import cn.com.basic.face.util.UnknownSurveillanceQueryItemUtil;
 
 public class SurveillanceMng {
 
@@ -21,6 +27,11 @@
 
     public static SurveillanceMng getInstance() {
         return instance;
+    }
+
+    public void addOfflineBitmap(final List<SurveillanceQueryItem> bitmapList, final byte[] rawData, final String cameraInOrOut) {
+        SurveillanceDao.getInstance().saveOfflineUnknownToLocal(bitmapList, rawData, cameraInOrOut);
+        UnknownSurveillanceQueryItemUtil.getInstance().addItems(bitmapList);
     }
 
     public static class SurveillanceListThread extends Thread {
@@ -31,7 +42,11 @@
                     MainActivity.getInstance().runOnUiThread(new Runnable() {
                         @Override
                         public void run() {
-                            SurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow();
+                            if (BaseApplication.getInstance().networkAvailable()) {
+                                SurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow();
+                            } else {
+                                UnknownSurveillanceQueryItemUtil.getInstance().removeTimeoutItemAndShow();
+                            }
                         }
                     });
                     Thread.sleep(1000*60*5);
@@ -78,11 +93,71 @@
             params.setUri(AppApi.BASE_URL + AppApi.SURVEILLANCE_UPLOAD);
             params.addBodyParameter("f0", f0);
             params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile);
+            params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
             x.http().post(params, new BaseCommonCallBack() {
                 @Override
                 public void success() {
                     try {
-                        SurveillanceQueryItemUtil.getInstance().addItems(resultBean.getListBeanOfType(SurveillanceQueryItem.class), bitmapList, cameraInOrOut);
+                        SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class));
+                        SurveillanceQueryItemUtil.getInstance().addItems(resultBean.getList(SurveillanceQueryItem.class), bitmapList, cameraInOrOut);
+                    } catch(Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            });
+        }catch(Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public void sendOfflineUnknownToServer() {
+        if (!BaseApplication.deviceAvailable) {
+            return;
+        }
+        UnknownQueryItem item = SurveillanceDao.getInstance().readOfflineUnknownFromLocal();
+        if (item == null) {
+            return;
+        }
+        syncOfflineData(item);
+    }
+
+    private void syncOfflineData(final UnknownQueryItem item) {
+        try {
+            if (fileIndex > 30) {
+                fileIndex = 1;
+            }
+            fileIndex++;
+            RequestParams params = new RequestParams();
+
+            File rawSurveillancePhotoFile = FileUtil.getFile(item.getRawDataPath());
+
+            params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+            params.addBodyParameter("InOrOutCamera", item.getCameraInOrOut() + "");
+            params.addBodyParameter("deviceId", BaseApplication.getInstance().getAndroidDevice().getDeviceId());
+            params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile);
+
+            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.SURVEILLANCE_UPLOAD);
+            params.addBodyParameter("f0", f0);
+            params.addBodyParameter("rawSurveillancePhoto", rawSurveillancePhotoFile);
+            params.addBodyParameter("androidCreateTime", item.getCreateTime());
+            params.addBodyParameter("offlineUnknown", CommonVariables.Surveillance.OFFLINE_SURVEILLANCE_ITEM_TYPE +"");
+            params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId());
+            x.http().post(params, new BaseCommonCallBack() {
+                @Override
+                public void success() {
+                    try {
+                        if (1==1) {
+                            SurveillanceDao.getInstance().removeLocalSqliteRecord(item);
+                        }
                     } catch(Exception e) {
                         e.printStackTrace();
                     }

--
Gitblit v1.8.0