package cn.com.basic.face.service.sync;
|
|
import java.util.Date;
|
|
import cn.com.basic.face.base.BaseApplication;
|
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.FileUpSync;
|
import cn.com.basic.face.service.sync.up.OfflineSurveillanceUpSync;
|
import cn.com.basic.face.service.sync.up.RegisterUpSync;
|
import cn.com.basic.face.service.sync.up.VisitUpSync;
|
import cn.com.basic.face.service.sync.up.VisitorRegisterUpSync;
|
|
public class SyncUpThread extends Thread {
|
|
BaseSync firstUpSync;
|
|
public void buildSyncChain() {
|
|
//up
|
firstUpSync = DictionaryUpSync.getInstance();
|
DeviceUpSync deviceUpSync = DeviceUpSync.getInstance();
|
CompanyUpSync companyUpSync = CompanyUpSync.getInstance();
|
FileUpSync fileUpSync = new FileUpSync();
|
OfflineSurveillanceUpSync offlineSurveillanceUpSync = new OfflineSurveillanceUpSync();
|
RegisterUpSync registerUpSync = new RegisterUpSync();
|
VisitUpSync visitUpSync = new VisitUpSync();
|
|
firstUpSync.setNext(companyUpSync);
|
companyUpSync.setNext(deviceUpSync);
|
deviceUpSync.setNext(fileUpSync);
|
fileUpSync.setNext(offlineSurveillanceUpSync);
|
offlineSurveillanceUpSync.setNext(registerUpSync);
|
registerUpSync.setNext(visitUpSync);
|
|
}
|
|
Date lastTime = new Date();
|
|
@Override
|
public void run() {
|
buildSyncChain();
|
while (true) {
|
try {
|
Date now = new Date();
|
double minutes = (now.getTime() - lastTime.getTime())*1.0 / 1000 / 60;
|
if (minutes >= 0.3) {
|
if (BaseApplication.getInstance().networkAvailable()) {
|
firstUpSync.setAllSyncComplete(false);
|
firstUpSync.sync();
|
lastTime = now;
|
}
|
} else {
|
Thread.sleep(10*1000);
|
}
|
} catch (Exception e) {
|
try {
|
Thread.sleep(10 * 1000);
|
} catch (Exception e2) {
|
e2.printStackTrace();
|
}
|
e.printStackTrace();
|
}
|
}
|
|
}
|
|
}
|