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