修改批量上传提示问题,重构批量上传中文件上传部分

This commit is contained in:
2022-10-28 15:46:39 +08:00
parent b32f3f5d09
commit 55537c4967
4 changed files with 452 additions and 267 deletions

View File

@@ -12,8 +12,8 @@ android {
applicationId "com.navinfo.outdoor" applicationId "com.navinfo.outdoor"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 30 targetSdkVersion 30
versionCode 28 versionCode 29
versionName "8.221021" versionName "8.221028"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }
lintOptions { lintOptions {

View File

@@ -87,8 +87,6 @@ import com.otaliastudios.cameraview.size.AspectRatio;
import com.otaliastudios.cameraview.size.SizeSelector; import com.otaliastudios.cameraview.size.SizeSelector;
import com.otaliastudios.cameraview.size.SizeSelectors; import com.otaliastudios.cameraview.size.SizeSelectors;
import com.tencent.map.geolocation.TencentLocation; import com.tencent.map.geolocation.TencentLocation;
import com.tencent.map.geolocation.TencentMotion;
import com.tencent.map.geolocation.TencentPoi;
import com.tencent.tencentmap.mapsdk.maps.CameraUpdate; import com.tencent.tencentmap.mapsdk.maps.CameraUpdate;
import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory; import com.tencent.tencentmap.mapsdk.maps.CameraUpdateFactory;
import com.tencent.tencentmap.mapsdk.maps.TencentMap; import com.tencent.tencentmap.mapsdk.maps.TencentMap;
@@ -439,14 +437,14 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic
} }
}); });
tencentMap.setOnMapClickListener(new TencentMap.OnMapClickListener() { // tencentMap.setOnMapClickListener(new TencentMap.OnMapClickListener() {
@Override // @Override
public void onMapClick(LatLng latLng) { // public void onMapClick(LatLng latLng) {
Message msg = handler.obtainMessage(0x105); // Message msg = handler.obtainMessage(0x105);
msg.obj = obtainTecentLocation(latLng); // msg.obj = obtainTecentLocation(latLng);
handler.sendMessage(msg); // handler.sendMessage(msg);
} // }
}); // });
tencentMap.addTencentMapGestureListener(new TencentMapGestureListener() { tencentMap.addTencentMapGestureListener(new TencentMapGestureListener() {
@Override @Override
@@ -1454,204 +1452,204 @@ public class AutoTakePictureActivity extends BaseActivity implements View.OnClic
// window.setAttributes(lp); // window.setAttributes(lp);
} }
private TencentLocation obtainTecentLocation(LatLng latLng) { // private TencentLocation obtainTecentLocation(LatLng latLng) {
return new TencentLocation() { // return new TencentLocation() {
@Override // @Override
public String getProvider() { // public String getProvider() {
return "NetWork"; // return "NetWork";
} // }
//
@Override // @Override
public String getFusionProvider() { // public String getFusionProvider() {
return null; // return null;
} // }
//
@Override // @Override
public String getSourceProvider() { // public String getSourceProvider() {
return null; // return null;
} // }
//
@Override // @Override
public double getLatitude() { // public double getLatitude() {
return latLng.getLatitude(); // return latLng.getLatitude();
} // }
//
@Override // @Override
public double getLongitude() { // public double getLongitude() {
return latLng.getLongitude(); // return latLng.getLongitude();
} // }
//
@Override // @Override
public double getAltitude() { // public double getAltitude() {
return latLng.getAltitude(); // return latLng.getAltitude();
} // }
//
@Override // @Override
public float getAccuracy() { // public float getAccuracy() {
return 100; // return 100;
} // }
//
@Override // @Override
public String getName() { // public String getName() {
return "null"; // return "null";
} // }
//
@Override // @Override
public String getAddress() { // public String getAddress() {
return "null"; // return "null";
} // }
//
@Override // @Override
public String getNation() { // public String getNation() {
return "null"; // return "null";
} // }
//
@Override // @Override
public String getProvince() { // public String getProvince() {
return "null"; // return "null";
} // }
//
@Override // @Override
public String getCity() { // public String getCity() {
return "null"; // return "null";
} // }
//
@Override // @Override
public String getDistrict() { // public String getDistrict() {
return "null"; // return "null";
} // }
//
@Override // @Override
public String getTown() { // public String getTown() {
return null; // return null;
} // }
//
@Override // @Override
public String getVillage() { // public String getVillage() {
return null; // return null;
} // }
//
@Override // @Override
public String getStreet() { // public String getStreet() {
return null; // return null;
} // }
//
@Override // @Override
public String getStreetNo() { // public String getStreetNo() {
return null; // return null;
} // }
//
@Override // @Override
public Integer getAreaStat() { // public Integer getAreaStat() {
return null; // return null;
} // }
//
@Override // @Override
public List<TencentPoi> getPoiList() { // public List<TencentPoi> getPoiList() {
return null; // return null;
} // }
//
@Override // @Override
public float getBearing() { // public float getBearing() {
return 0; // return 0;
} // }
//
@Override // @Override
public float getSpeed() { // public float getSpeed() {
return 0; // return 0;
} // }
//
@Override // @Override
public long getTime() { // public long getTime() {
return 0; // return 0;
} // }
//
@Override // @Override
public long getElapsedRealtime() { // public long getElapsedRealtime() {
return 0; // return 0;
} // }
//
@Override // @Override
public int getGPSRssi() { // public int getGPSRssi() {
return 0; // return 0;
} // }
//
@Override // @Override
public int getInOutStatus() { // public int getInOutStatus() {
return 0; // return 0;
} // }
//
@Override // @Override
public String getIndoorBuildingId() { // public String getIndoorBuildingId() {
return null; // return null;
} // }
//
@Override // @Override
public String getIndoorBuildingFloor() { // public String getIndoorBuildingFloor() {
return null; // return null;
} // }
//
@Override // @Override
public int getIndoorLocationType() { // public int getIndoorLocationType() {
return 0; // return 0;
} // }
//
@Override // @Override
public double getDirection() { // public double getDirection() {
return 0; // return 0;
} // }
//
@Override // @Override
public String getCityCode() { // public String getCityCode() {
return null; // return null;
} // }
//
@Override // @Override
public String getCityPhoneCode() { // public String getCityPhoneCode() {
return null; // return null;
} // }
//
@Override // @Override
public TencentMotion getMotion() { // public TencentMotion getMotion() {
return null; // return null;
} // }
//
@Override // @Override
public int getGpsQuality() { // public int getGpsQuality() {
return 0; // return 0;
} // }
//
@Override // @Override
public float getDeltaAngle() { // public float getDeltaAngle() {
return 0; // return 0;
} // }
//
@Override // @Override
public float getDeltaSpeed() { // public float getDeltaSpeed() {
return 0; // return 0;
} // }
//
@Override // @Override
public int getCoordinateType() { // public int getCoordinateType() {
return 0; // return 0;
} // }
//
@Override // @Override
public int getFakeReason() { // public int getFakeReason() {
return 0; // return 0;
} // }
//
@Override // @Override
public int isMockGps() { // public int isMockGps() {
return 0; // return 0;
} // }
//
@Override // @Override
public Bundle getExtra() { // public Bundle getExtra() {
return null; // return null;
} // }
}; // };
} // }
private Handler handler = new Handler(new Handler.Callback() { private Handler handler = new Handler(new Handler.Callback() {
@Override @Override

View File

@@ -48,6 +48,7 @@ import io.reactivex.ObservableEmitter;
import io.reactivex.ObservableOnSubscribe; import io.reactivex.ObservableOnSubscribe;
import io.reactivex.ObservableSource; import io.reactivex.ObservableSource;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.Single;
import io.reactivex.SingleObserver; import io.reactivex.SingleObserver;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
@@ -72,22 +73,21 @@ public class DataSaveUtils {
public void onError(); public void onError();
} }
// 批量上传文件 public Single<List<Map.Entry<Integer, File>>> getUploadSpliteFilesObservble(Activity mContext, PoiEntity poiEntity, List<File> poiPicList) {
public void uploadFiles(Activity mContext, PoiEntity poiEntity, List<File> poiPicList, UploadCallback callback) {
int auditId = poiEntity.getBodyId(); int auditId = poiEntity.getBodyId();
File zipFile = new File(poiPicList.get(0).getParentFile(), auditId+".zip"); File zipFile = new File(poiPicList.get(0).getParentFile(), auditId+".zip");
Observable.create(new ObservableOnSubscribe<File>() { return Observable.create(new ObservableOnSubscribe<File>() {
@Override @Override
public void subscribe(ObservableEmitter<File> emitter) throws Exception { public void subscribe(ObservableEmitter<File> emitter) throws Exception {
if (!zipFile.exists()) { if (!zipFile.exists()) {
// 开始压缩文件 // 开始压缩文件
ZipUtil.zipFiles(poiPicList, zipFile, "", null); ZipUtil.zipFiles(poiPicList, zipFile, "", null);
} }
emitter.onNext(zipFile); emitter.onNext(zipFile);
emitter.onComplete(); emitter.onComplete();
} }
}) })
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(Schedulers.computation()) .observeOn(Schedulers.computation())
// 切分数据,发送开始上传请求 // 切分数据,发送开始上传请求
@@ -169,30 +169,29 @@ public class DataSaveUtils {
public void accept(List<Map.Entry<Integer, File>> entries) throws Exception { public void accept(List<Map.Entry<Integer, File>> entries) throws Exception {
// 最终成功调用finish接口 // 最终成功调用finish接口
CommonResponse response = uploadTaskFinish(mContext, auditId); CommonResponse response = uploadTaskFinish(mContext, auditId);
Message obtain1 = Message.obtain();
obtain1.what = Constant.NEST_WORD_SUBMIT;
if (response.getCode() == 200) { // 更新成功,再次更新本地数据库 if (response.getCode() == 200) { // 更新成功,再次更新本地数据库
ToastUtils.Message(mContext, "分包数据上传完成!");
poiEntity.setTaskStatus(100); poiEntity.setTaskStatus(100);
PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity); PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
// 提醒用户数据上传完成
obtain1.obj = "数据:" + poiEntity.getName() + " 上传成功";
// 同时删除关联的照片文件和压缩包文件 // 同时删除关联的照片文件和压缩包文件
if (zipFile.exists()) { if (zipFile.exists()) {
zipFile.delete(); zipFile.delete();
} }
if (poiPicList!=null&&!poiPicList.isEmpty()) { if (poiPicList!=null&&!poiPicList.isEmpty()) {
for (File picFile: poiPicList for (File picFile: poiPicList
) { ) {
picFile.delete(); picFile.delete();
} }
} }
} else { } else {
obtain1.obj = "数据:" + poiEntity.getName() + " 上传失败"; throw new Exception("数据:" + poiEntity.getName() + " 上传失败");
} }
EventBus.getDefault().post(obtain1);
} }
}) });
}
// 批量上传文件
public void uploadFiles(Activity mContext, PoiEntity poiEntity, List<File> poiPicList, UploadCallback callback) {
getUploadSpliteFilesObservble(mContext, poiEntity, poiPicList)
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(new SingleObserver<List<Map.Entry<Integer, File>>>() { .subscribe(new SingleObserver<List<Map.Entry<Integer, File>>>() {
@Override @Override
@@ -202,12 +201,23 @@ public class DataSaveUtils {
@Override @Override
public void onSuccess(List<Map.Entry<Integer, File>> entries) { public void onSuccess(List<Map.Entry<Integer, File>> entries) {
ToastUtils.Message(mContext, "分包数据上传完成!");
Message obtain1 = Message.obtain();
obtain1.what = Constant.NEST_WORD_SUBMIT;
// 提醒用户数据上传完成
obtain1.obj = "数据:" + poiEntity.getName() + " 上传成功";
EventBus.getDefault().post(obtain1);
callback.onFinish(); callback.onFinish();
} }
@Override @Override
public void onError(Throwable e) { public void onError(Throwable e) {
ToastUtils.Message(mContext, e.getMessage()); ToastUtils.Message(mContext, e.getMessage());
Message obtain1 = Message.obtain();
obtain1.what = Constant.NEST_WORD_SUBMIT;
// 提醒用户数据上传完成
obtain1.obj = e.getMessage();
EventBus.getDefault().post(obtain1);
callback.onError(); callback.onError();
callback.onFinish(); callback.onFinish();
} }

View File

@@ -5,6 +5,7 @@ import android.os.Message;
import android.util.Log; import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.github.lazylibrary.util.ToastUtils;
import com.github.lazylibrary.util.ZipUtil; import com.github.lazylibrary.util.ZipUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.lzy.okgo.OkGo; import com.lzy.okgo.OkGo;
@@ -31,7 +32,18 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.function.Predicate;
import java.util.stream.Collectors;
import io.reactivex.Observable;
import io.reactivex.ObservableSource;
import io.reactivex.Observer;
import io.reactivex.Single;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.functions.Function;
import io.reactivex.schedulers.Schedulers;
import okhttp3.Response; import okhttp3.Response;
/* /*
@@ -41,8 +53,9 @@ public class PoiSaveUtils {
private Activity mContext; private Activity mContext;
private Gson gson; private Gson gson;
private static PoiSaveUtils instance; private static PoiSaveUtils instance;
private int anInt = 0; private int anInt = 0; // 上传成功的个数
private int bInt = 0; private int bInt = 0; // 上传失败的个数
private int uploadCount = 0; // 上传的总个数
public static PoiSaveUtils getInstance(Activity mContext) { public static PoiSaveUtils getInstance(Activity mContext) {
if (instance == null) { if (instance == null) {
@@ -60,80 +73,240 @@ public class PoiSaveUtils {
* 批量上传数据到服务端 * 批量上传数据到服务端
*/ */
public void uploadPoiEntityBatch(List<PoiEntity> poiEntityList) { public void uploadPoiEntityBatch(List<PoiEntity> poiEntityList) {
if (poiEntityList != null) { if (poiEntityList != null&&!poiEntityList.isEmpty()) {
new Thread(new Runnable() { // 因为道路任务和POI录像任务需要分包提交因此和其他要素分开分别放在两个管道里
@Override List<PoiEntity> chargePoiEntityList = new ArrayList<>();/*充电站POI列表*/
public void run() { List<PoiEntity> spliteFilePoiEntityList = new ArrayList<>();/*充电站POI列表*/
anInt = 0; List<PoiEntity> otherPoiEntityList = new ArrayList<>();/*充电站POI列表*/
bInt = 0; for (PoiEntity poiEntity: poiEntityList) {
Log.d("PoiSaveUtils", "开始上传"); if (Constant.submitIdSet.contains(poiEntity.getId())) {
for (int i = 0; i < poiEntityList.size(); i++) { continue;
PoiEntity poiEntity = poiEntityList.get(i); }
Log.d("PoiSaveUtils", "poiEntity.getType():"+poiEntity.getType()); if (poiEntity.getType()==2) {
if (Constant.submitIdSet.contains(poiEntity.getId())) { chargePoiEntityList.add(poiEntity);
continue; } if (poiEntity.getType() == 3 || poiEntity.getType() == 4) {
} spliteFilePoiEntityList.add(poiEntity);
if (poiEntity.getType() == 2) { // 如果是充电站数据,首先检查子充电桩的状态 } else {
otherPoiEntityList.add(poiEntity);
}
}
Observable chargePoiObserable = Observable.fromIterable(chargePoiEntityList)
.subscribeOn(Schedulers.io())
.doOnNext(new Consumer<PoiEntity>() {
@Override
public void accept(PoiEntity poiEntity) throws Exception {
Constant.submitIdSet.add(poiEntity.getId()); // 记录全局的正在提交的数据 Constant.submitIdSet.add(poiEntity.getId()); // 记录全局的正在提交的数据
if (savePoiNet(poiEntity) == 200&&saveChargingPileByChargingStation(poiEntity)) { // 网络保存成功 if (savePoiNet(poiEntity) == 200&&saveChargingPileByChargingStation(poiEntity)) { // 网络保存成功
Constant.submitIdSet.remove(poiEntity.getId()); if (Constant.submitIdSet.contains(poiEntity.getId())) {
Constant.submitIdSet.remove(poiEntity.getId());
}
if (savePoiNet(poiEntity) == 200) { // 网络保存-冗余操作 if (savePoiNet(poiEntity) == 200) { // 网络保存-冗余操作
// 开始上传流程 // 开始上传流程
if (saveChargingPileUploadChargingStation(poiEntity)) { if (saveChargingPileUploadChargingStation(poiEntity)) {
uploadPoiNet(poiEntity); uploadPoiNet(poiEntity);
}else { }else {
bInt++;
poiEntity.setChecked(false); poiEntity.setChecked(false);
poiEntity.setWork_type(0); poiEntity.setWork_type(0);
PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity); PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
sendUploadMessage(poiEntityList.size(), anInt, bInt);
} }
}else { }else {
bInt++;
poiEntity.setChecked(false); poiEntity.setChecked(false);
poiEntity.setWork_type(0); poiEntity.setWork_type(0);
PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity); PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
sendUploadMessage(poiEntityList.size(), anInt, bInt);
} }
} else { } else {
bInt++;
poiEntity.setChecked(false); poiEntity.setChecked(false);
poiEntity.setWork_type(0); poiEntity.setWork_type(0);
PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity); PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
Constant.submitIdSet.remove(poiEntity.getId()); Constant.submitIdSet.remove(poiEntity.getId());
sendUploadMessage(poiEntityList.size(), anInt, bInt);
} }
} else {//其他类型 }
});
// 处理普通数据
Observable otherObserable = Observable.fromIterable(otherPoiEntityList)
.subscribeOn(Schedulers.io())
.doOnNext(new Consumer<PoiEntity>() {
@Override
public void accept(PoiEntity poiEntity) throws Exception {
if (savePoiNet(poiEntity) == 200) { // 网络保存成功 if (savePoiNet(poiEntity) == 200) { // 网络保存成功
//走上传流程: //走上传流程:
uploadPoiNet(poiEntity); uploadPoiNet(poiEntity);
}else { }else {
bInt++;
poiEntity.setChecked(false); poiEntity.setChecked(false);
poiEntity.setWork_type(0); poiEntity.setWork_type(0);
PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity); PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
sendUploadMessage(poiEntityList.size(), anInt, bInt);
} }
} }
} });
mContext.runOnUiThread(new Runnable() { // 处理需要分包上传数据的POI录像和道路数据
Observable spliteFileObserable = Observable.fromIterable(spliteFilePoiEntityList)
.subscribeOn(Schedulers.io())
.doOnNext(new Consumer<PoiEntity>() {
@Override @Override
public void run() { public void accept(PoiEntity poiEntity) throws Exception {
if (savePoiNet(poiEntity) == 200) { // 网络保存成功
//走上传流程:
if (poiEntity == null) {
bInt++;
return;
}
int bodyId = poiEntity.getBodyId();
if (bodyId == 0) {
bInt++;
return;
}
}else {
bInt++;
poiEntity.setChecked(false);
poiEntity.setWork_type(0);
PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
sendUploadMessage(poiEntityList.size(), anInt, bInt);
}
}
})
.concatMap(new Function<PoiEntity, ObservableSource<?>>() {
@Override
public ObservableSource<?> apply(PoiEntity poiEntity) throws Exception {
List<File> photoFileList = AWMp4ParserHelper.getInstance().getFileListByUUID(poiEntity.getId());
return DataSaveUtils.getInstance().getUploadSpliteFilesObservble(mContext, poiEntity, photoFileList)
.toObservable();
}
})
.doOnNext(new Consumer<Object>() {
@Override
public void accept(Object o) throws Exception {
anInt++;
}
})
.doOnError(new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
bInt++;
}
});
Observable.concat(
otherObserable, spliteFileObserable, chargePoiObserable
).subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer() {
@Override
public void onSubscribe(Disposable d) {
anInt = 0;
bInt = 0;
uploadCount = chargePoiEntityList.size()+spliteFilePoiEntityList.size()+otherPoiEntityList.size();
Log.d("PoiSaveUtils", "开始上传");
ToastUtils.showToast(mContext, "开始批量上传数据,本次共需上传"+uploadCount+"条数据");
}
@Override
public void onNext(Object o) {
}
@Override
public void onError(Throwable e) {
ToastUtils.showToast(mContext, e.getMessage());
Constant.isPresent = true;
}
@Override
public void onComplete() {
Message obtain = Message.obtain(); Message obtain = Message.obtain();
obtain.what = Constant.STAY_SUBMIT_ITEM; obtain.what = Constant.STAY_SUBMIT_ITEM;
obtain.obj = true; obtain.obj = true;
EventBus.getDefault().post(obtain); EventBus.getDefault().post(obtain);
if (anInt + bInt > 0) { Message obtain1 = Message.obtain();
Message obtain1 = Message.obtain(); obtain1.what = Constant.NEST_WORD_SUBMIT;
obtain1.what = Constant.NEST_WORD_SUBMIT; obtain1.obj = "批量提交数据,共选中"+uploadCount+"条数据,成功:" + anInt + "条, 失败:" + bInt+"";
obtain1.obj = "批量提交 成功:" + anInt + ", 失败:" + bInt; EventBus.getDefault().post(obtain1);
EventBus.getDefault().post(obtain1); Constant.isPresent = true;
} else {
Message obtain1 = Message.obtain();
obtain1.what = Constant.NEST_WORD_SUBMIT;
obtain1.obj = "批量提交 失败";
EventBus.getDefault().post(obtain1);
}
} }
}); });
}
}).start();
// new Thread(new Runnable() {
// @Override
// public void run() {
// anInt = 0;
// bInt = 0;
// Log.d("PoiSaveUtils", "开始上传");
// for (int i = 0; i < poiEntityList.size(); i++) {
// PoiEntity poiEntity = poiEntityList.get(i);
// Log.d("PoiSaveUtils", "poiEntity.getType():"+poiEntity.getType());
// if (Constant.submitIdSet.contains(poiEntity.getId())) {
// continue;
// }
// if (poiEntity.getType() == 2) { // 如果是充电站数据,首先检查子充电桩的状态
// Constant.submitIdSet.add(poiEntity.getId()); // 记录全局的正在提交的数据
// if (savePoiNet(poiEntity) == 200&&saveChargingPileByChargingStation(poiEntity)) { // 网络保存成功
// Constant.submitIdSet.remove(poiEntity.getId());
// if (savePoiNet(poiEntity) == 200) { // 网络保存-冗余操作
// // 开始上传流程
// if (saveChargingPileUploadChargingStation(poiEntity)) {
// uploadPoiNet(poiEntity);
// }else {
// bInt++;
// poiEntity.setChecked(false);
// poiEntity.setWork_type(0);
// PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
// sendUploadMessage(poiEntityList.size(), anInt, bInt);
// }
// }else {
// bInt++;
// poiEntity.setChecked(false);
// poiEntity.setWork_type(0);
// PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
// sendUploadMessage(poiEntityList.size(), anInt, bInt);
// }
// } else {
// bInt++;
// poiEntity.setChecked(false);
// poiEntity.setWork_type(0);
// PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
// Constant.submitIdSet.remove(poiEntity.getId());
// sendUploadMessage(poiEntityList.size(), anInt, bInt);
// }
// } else {//其他类型
// if (savePoiNet(poiEntity) == 200) { // 网络保存成功
// //走上传流程:
// uploadPoiNet(poiEntity);
// }else {
// bInt++;
// poiEntity.setChecked(false);
// poiEntity.setWork_type(0);
// PoiDatabase.getInstance(mContext).getPoiDao().updatePoiEntity(poiEntity);
// sendUploadMessage(poiEntityList.size(), anInt, bInt);
// }
// }
// }
// }
// }).start();
} }
} }
private void sendUploadMessage(int count, int success, int fail) {
if (success+fail == count) { // 成功和失败的个数与数据总数相同
Message obtain = Message.obtain();
obtain.what = Constant.STAY_SUBMIT_ITEM;
obtain.obj = true;
EventBus.getDefault().post(obtain);
}
Message obtain1 = Message.obtain();
obtain1.what = Constant.NEST_WORD_SUBMIT;
obtain1.obj = "批量提交数据,共选中"+count+"条数据,成功:" + anInt + "条, 失败:" + bInt+"";
EventBus.getDefault().post(obtain1);
}
/* /*
* 保存数据到服务 * 保存数据到服务
*/ */
@@ -221,6 +394,10 @@ public class PoiSaveUtils {
return 200; return 200;
} }
// public interface UploadListener {
// public void uploadCallback();
// }
/** /**
* 最终上传POI数据到服务 * 最终上传POI数据到服务
*/ */