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.OfflineSurveillanceUpSync;
|
import cn.com.basic.face.service.sync.up.VisitorRegisterUpSync;
|
|
public class SyncDownThread extends Thread {
|
|
BaseSync firstDownSync;
|
|
public void buildSyncChain() {
|
|
// down
|
firstDownSync = 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();
|
|
firstDownSync.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);
|
|
}
|
|
|
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()) {
|
firstDownSync.setAllSyncComplete(false);
|
firstDownSync.sync();
|
lastTime = now;
|
}
|
} else {
|
Thread.sleep(10*1000);
|
}
|
} catch (Exception e) {
|
try {
|
Thread.sleep(10 * 1000);
|
} catch (Exception e2) {
|
e2.printStackTrace();
|
}
|
e.printStackTrace();
|
}
|
}
|
|
}
|
|
}
|