package cn.com.basic.face.service;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import org.xutils.http.RequestParams;
|
import org.xutils.x;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
import cn.com.basic.face.discern.common.BaseCommonCallBack;
|
import cn.com.basic.face.discern.common.SqliteSqlBean;
|
import cn.com.basic.face.service.sqlite.CompanyDao;
|
import cn.com.basic.face.service.sqlite.DeviceDao;
|
import cn.com.basic.face.service.sqlite.DictionaryDao;
|
import cn.com.basic.face.util.AppApi;
|
import cn.com.basic.face.util.SqliteSqlUtil;
|
|
|
/**
|
* 数据同步服务接口
|
* Created by SJW
|
* 2017/7/18 0018.
|
*/
|
|
public class DataSynchronService {
|
|
|
public static DataSynchronService instance=new DataSynchronService();
|
|
public static DataSynchronService getInstance(){
|
return instance;
|
}
|
|
|
/***
|
* 向下同步,请求服务端,本地更新对应的数据库
|
* @param synDate 同步时间
|
* @param tableName 表名
|
* @param deviceCompanyId 设备所在机构id
|
* @return
|
*/
|
public void serviceToClient(Date synDate, final String tableName, String deviceCompanyId){
|
try{
|
RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.DOWN_SYNCHRON);
|
params.addBodyParameter("tableName", tableName);
|
params.addBodyParameter("synDate",String.valueOf(synDate));
|
params.addBodyParameter("deviceCompanyId",deviceCompanyId);
|
x.http().post(params, new BaseCommonCallBack() {
|
public void success() {
|
SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class));
|
}
|
});
|
}catch(Exception e){
|
e.printStackTrace();
|
}
|
|
}
|
|
|
/***
|
* 双向同步
|
* @param synDate 同步时间
|
* @param deviceCompanyId 设备所在机构id
|
* @param tableName 表名
|
*/
|
public void twoWaySynchron(Date synDate, final String deviceCompanyId, String tableName){
|
try{
|
RequestParams params = new RequestParams(AppApi.BASE_URL + AppApi.TWO_WAY_SYNCHRON);
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
final String temp=tableName;
|
params.addBodyParameter("tableName", tableName);
|
params.addBodyParameter("synDate",sdf.format(synDate));
|
if("company".equals(tableName)){
|
params.addBodyParameter("data", JSONArray.toJSONString(CompanyDao.getInstance().getCompanyList(deviceCompanyId)));
|
}
|
if("device".equals(tableName)){
|
params.addBodyParameter("data", JSONArray.toJSONString(DeviceDao.getInstance().getDeviceList(deviceCompanyId)));
|
}
|
if("dictionary".equals(tableName)){
|
params.addBodyParameter("data", JSONArray.toJSONString(DictionaryDao.getInstance().getDictionayList(deviceCompanyId)));
|
}
|
params.addBodyParameter("deviceCompanyId",deviceCompanyId);
|
x.http().post(params, new BaseCommonCallBack() {
|
public void success() {
|
if("company".equals(temp)){
|
CompanyDao.getInstance().delCompanyList(deviceCompanyId);
|
}
|
if("device".equals(temp)){
|
DeviceDao.getInstance().delDevice(deviceCompanyId);
|
}
|
if("dictionary".equals(temp)){
|
DictionaryDao.getInstance().delDictionary(deviceCompanyId);
|
}
|
|
List<SqliteSqlBean> result= getExtraList(SqliteSqlBean.class);
|
SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class));
|
}
|
});
|
}catch(Exception e){
|
e.printStackTrace();
|
}
|
|
}
|
|
|
|
}
|