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