sujinwen
2017-07-25 8f003b35b74d5e84db192376b49404ae7666aa01
VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/util/SyncUpAndDownThread.java
@@ -1,8 +1,22 @@
package cn.com.basic.face.util;
import cn.com.basic.face.service.sync.down.AttendanceDownSync;
import cn.com.basic.face.service.sync.down.CompanyDownSync;
import cn.com.basic.face.service.sync.down.DepartmentDownSync;
import cn.com.basic.face.service.sync.down.DeviceDownSync;
import cn.com.basic.face.service.sync.down.DictionaryDownSync;
import cn.com.basic.face.service.sync.down.EmployeeDownSync;
import cn.com.basic.face.service.sync.down.PhoneCallDownSync;
import cn.com.basic.face.service.sync.down.PostDownSync;
import cn.com.basic.face.service.sync.down.RegisterDownSync;
import cn.com.basic.face.service.sync.down.VisitDetailDownSync;
import cn.com.basic.face.service.sync.down.VisitDownSync;
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.CompanyUpSync;
import cn.com.basic.face.service.sync.up.DeviceUpSync;
import cn.com.basic.face.service.sync.up.DictionaryUpSync;
import cn.com.basic.face.service.sync.up.OfflineSurveillanceUpSync;
import cn.com.basic.face.service.sync.up.VisitorRegisterUpSync;
@@ -10,29 +24,63 @@
    public boolean isThisTimeSyncComplete = false;
    BaseSync baseSync;
    BaseSync firstSync;
    public BaseSync buildUpChain() {
    public BaseSync buildSyncChain() {
        VisitorRegisterUpSync visitorRegisterSync = VisitorRegisterUpSync.getInstance();
        AttenderRegisterUpSync attenderRegisterSync = AttenderRegisterUpSync.getInstance();
        visitorRegisterSync.setNext(attenderRegisterSync);
        CheckInUpSync checkInUpSync = CheckInUpSync.getInstance();
        attenderRegisterSync.setNext(checkInUpSync);
        //up
        firstSync = DictionaryUpSync.getInstance();
        DeviceUpSync deviceUpSync = DeviceUpSync.getInstance();
        CompanyUpSync companyUpSync = CompanyUpSync.getInstance();
        VisitorRegisterUpSync visitorRegisterUpSync = VisitorRegisterUpSync.getInstance();
        AttenderRegisterUpSync attenderRegisterUpSync = AttenderRegisterUpSync.getInstance();
        OfflineSurveillanceUpSync offlineSurveillanceUpSync = OfflineSurveillanceUpSync.getInstance();
        CheckInUpSync checkInUpSync = CheckInUpSync.getInstance();
        firstSync.setNext(companyUpSync);
        companyUpSync.setNext(deviceUpSync);
        deviceUpSync.setNext(visitorRegisterUpSync);
        visitorRegisterUpSync.setNext(attenderRegisterUpSync);
        attenderRegisterUpSync.setNext(checkInUpSync);
        checkInUpSync.setNext(offlineSurveillanceUpSync);
        return visitorRegisterSync;
        // down
        AttendanceDownSync attendanceDownSync = AttendanceDownSync.getInstance();
        CompanyDownSync companyDownSync = CompanyDownSync.getInstance();
        DepartmentDownSync departmentDownSync = DepartmentDownSync.getInstance();
        DeviceDownSync deviceDownSync = DeviceDownSync.getInstance();
        DictionaryDownSync dictionaryDownSync = DictionaryDownSync.getInstance();
        EmployeeDownSync employeeDownSync = EmployeeDownSync.getInstance();
        PhoneCallDownSync phoneCallDownSync = PhoneCallDownSync.getInstance();
        PostDownSync postDownSync = PostDownSync.getInstance();
        RegisterDownSync registerDownSync = RegisterDownSync.getInstance();
        VisitDetailDownSync visitDetailDownSync = VisitDetailDownSync.getInstance();
        VisitDownSync visitDownSync = VisitDownSync.getInstance();
        offlineSurveillanceUpSync.setNext(attendanceDownSync);
        attendanceDownSync.setNext(companyDownSync);
        companyDownSync.setNext(departmentDownSync);
        departmentDownSync.setNext(deviceDownSync);
        deviceDownSync.setNext(dictionaryDownSync);
        dictionaryDownSync.setNext(employeeDownSync);
        employeeDownSync.setNext(phoneCallDownSync);
        phoneCallDownSync.setNext(postDownSync);
        postDownSync.setNext(registerDownSync);
        registerDownSync.setNext(visitDetailDownSync);
        visitDetailDownSync.setNext(visitDownSync);
        return firstSync;
    }
    @Override
    public void run() {
        BaseSync baseSync = buildUpChain();
        firstSync = buildSyncChain();
        while (true) {
            try {
                baseSync.setComplete(false);
                if (baseSync.lastUpSyncComplete()) {
                firstSync.setAllSyncComplete(false);
                if (firstSync.lastUpSyncComplete()) {
                    firstSync.sync();
                    Thread.sleep(5 * 60 * 1000);
                } else {
                    Thread.sleep(10*1000);