|
|
@@ -15,7 +15,6 @@ import com.xzjmyk.pm.activity.db.dao.MissionDao;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IMission;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IMissionPresenter;
|
|
|
-import com.xzjmyk.pm.activity.ui.erp.util.CommonInterfaceUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
|
|
|
@@ -30,12 +29,16 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import static com.xzjmyk.pm.activity.R.id.position;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* Created by Bitliker on 2016/12/19.
|
|
|
*/
|
|
|
|
|
|
public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResultListener {
|
|
|
+ private final int CODE_WHAT = 0x15;
|
|
|
+ private final int ID_WHAT = 0x14;
|
|
|
private final int LOAD_PLAN = 0x11;
|
|
|
private final int SAVE_PLAN = 0x12;
|
|
|
private final int SAVE_ADDRESS = 0x13;
|
|
|
@@ -84,12 +87,11 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
if (iMission != null) iMission.showToast(R.string.networks_out, R.color.load_warning);
|
|
|
return;
|
|
|
}
|
|
|
- CommonInterfaceUtil idUtil = new CommonInterfaceUtil();
|
|
|
if (ListUtils.isEmpty(models)) return;
|
|
|
for (int i = 0; i < models.size(); i++) {
|
|
|
MissionModel e = models.get(i);
|
|
|
if (canSubmit(e, i + 1)) {
|
|
|
- savePlan2Net(e, i, idUtil);
|
|
|
+ savePlan2Net(e, i);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -99,39 +101,37 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
*
|
|
|
* @param mode 对象
|
|
|
* @param postion 指针
|
|
|
- * @param idUtil id、code获取工具类
|
|
|
*/
|
|
|
- private void savePlan2Net(final MissionModel mode, final int postion, final CommonInterfaceUtil idUtil) {
|
|
|
+ private void savePlan2Net(MissionModel mode, int postion) {
|
|
|
isSubmiting = true;
|
|
|
- idUtil.getIdByNet("MOBILE_OUTPLAN_SEQ", new CommonInterfaceUtil.OnResultListener() {
|
|
|
- @Override
|
|
|
- public void result(int code, String result) {
|
|
|
- try {
|
|
|
- if (StringUtils.isEmpty(result)) {
|
|
|
- if (iMission != null) iMission.showToast("获取id错误", R.color.load_warning);
|
|
|
- return;
|
|
|
- }
|
|
|
- final int id = Integer.valueOf(result);
|
|
|
- idUtil.getCodeByNet("MOBILE_OUTPLAN", new CommonInterfaceUtil.OnResultListener() {
|
|
|
- @Override
|
|
|
- public void result(int code, String result) {
|
|
|
- if (StringUtils.isEmpty(result)) {
|
|
|
- iMission.showToast("获取编号错误", R.color.load_warning);
|
|
|
- return;
|
|
|
- }
|
|
|
- savePlan2Net(id, result, mode, postion);
|
|
|
- }
|
|
|
- });
|
|
|
- } catch (Exception e) {
|
|
|
+ loadId(mode, postion);
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
+ private void loadId(MissionModel entity, int position) {
|
|
|
+ isSubmiting = true;
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("seq", "MOBILE_OUTPLAN_SEQ");
|
|
|
+ Bundle bundle = new Bundle();
|
|
|
+ bundle.putParcelable("data", entity);
|
|
|
+ bundle.putInt("position", position);
|
|
|
+ HttpHandler.getInstance().loadERPByNet(ID_WHAT, "common/getId.action", param, bundle, this);
|
|
|
}
|
|
|
|
|
|
+ private void loadCode(Bundle bundle) {
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("caller", "MOBILE_OUTPLAN");
|
|
|
+ param.put("type", 2);
|
|
|
+ HttpHandler.getInstance().loadERPByNet(CODE_WHAT, "common/getCodeString.action",
|
|
|
+ param, bundle, this);
|
|
|
+ }
|
|
|
|
|
|
//保存外勤计划接口
|
|
|
- private void savePlan2Net(int id, String code, MissionModel entity, int position) {
|
|
|
+ private void savePlan2Net(Bundle bundle) {
|
|
|
+ if (bundle == null) return;
|
|
|
+ int id = bundle.getInt("id");
|
|
|
+ String code = bundle.getString("code");
|
|
|
+ MissionModel entity = bundle.getParcelable("data");
|
|
|
+ if (id == 0 || StringUtils.isEmpty(code) || entity == null) return;
|
|
|
isSubmiting = true;
|
|
|
//获取网络数据
|
|
|
if (iMission != null) iMission.showLoading();
|
|
|
@@ -153,6 +153,7 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
/***params***/
|
|
|
params.put("mpd_detno", position + 1);
|
|
|
params.put("mpd_id", "");
|
|
|
+ params.put("mpd_remark", entity.getRemark());
|
|
|
params.put("mpd_distance", BaiduMapUtil.getInstence().getDistance(entity.getLatLng()));
|
|
|
params.put("mpd_arrivedate", entity.getVisitTime());
|
|
|
params.put("mpd_mpid", id);
|
|
|
@@ -166,9 +167,6 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
|
|
|
param.put("formStore", StringUtils.mapToJson(formStore));
|
|
|
param.put("param", "[" + StringUtils.mapToJson(params) + "]");
|
|
|
- Bundle bundle = new Bundle();
|
|
|
- bundle.putInt("position", position);
|
|
|
- bundle.putParcelable("data", entity);
|
|
|
HttpHandler.getInstance().loadERPByNet(SAVE_PLAN, "mobile/addOutPlan.action", param, bundle, this);
|
|
|
saveOutAddress(entity);
|
|
|
}
|
|
|
@@ -225,6 +223,7 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
//没有网络情况下获取缓存的数据
|
|
|
List<MissionModel> models = MissionDao.getInstance().queryByEnCode();
|
|
|
if (!ListUtils.isEmpty(models)) {
|
|
|
+ this.models = models;
|
|
|
if (iMission != null) {
|
|
|
iMission.dimssLoading();
|
|
|
iMission.showModels(models);
|
|
|
@@ -287,6 +286,22 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
iMission.changModelStatus(1, position);
|
|
|
}
|
|
|
break;
|
|
|
+ case ID_WHAT:
|
|
|
+ if (isJSON && JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
|
|
|
+ int id = JSON.parseObject(message).getInteger("id");
|
|
|
+ if (id != 0 && bundle != null) {
|
|
|
+ bundle.putInt("id", id);
|
|
|
+ loadCode(bundle);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case CODE_WHAT:
|
|
|
+ String code = JSON.parseObject(message).getString("code");
|
|
|
+ if (!StringUtils.isEmpty(code) && bundle != null) {
|
|
|
+ bundle.putString("code", code);
|
|
|
+ savePlan2Net(bundle);
|
|
|
+ }
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
@@ -316,8 +331,9 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
private void handlerData(JSONArray array) throws Exception {
|
|
|
if (ListUtils.isEmpty(array)) {
|
|
|
if (iMission != null) {
|
|
|
- iMission.dimssLoading();
|
|
|
- iMission.showModels(models);
|
|
|
+ loadMissionByDB();
|
|
|
+// iMission.dimssLoading();
|
|
|
+// iMission.showModels(models);
|
|
|
}
|
|
|
return; //获取到拜访计划数据
|
|
|
} else {
|
|
|
@@ -351,6 +367,7 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
}
|
|
|
entity.setStatus(1);
|
|
|
//TODO 添加时间和位置数据
|
|
|
+ entity.setRemark(object.getString("mpd_remark"));
|
|
|
entity.setDistance(object.getDoubleValue("MPD_DISTANCE"));
|
|
|
entity.setLocation(object.getString("MPD_LOCATION"));
|
|
|
entity.setRecorddate(object.getString("MPD_RECORDDATE"));
|
|
|
@@ -363,14 +380,22 @@ public class MissionPresenter implements IMissionPresenter, HttpHandler.OnResult
|
|
|
}
|
|
|
|
|
|
private void setModels() {
|
|
|
- if (iMission != null) {
|
|
|
- iMission.dimssLoading();
|
|
|
- iMission.showModels(models);
|
|
|
- }
|
|
|
+// if (iMission != null) {
|
|
|
+// iMission.dimssLoading();
|
|
|
+// iMission.showModels(models);
|
|
|
+// }
|
|
|
ThreadUtil.getInstance().addTask(new Runnable() {
|
|
|
@Override
|
|
|
public void run() {
|
|
|
- MissionDao.getInstance().updataOrCreate(models);
|
|
|
+ boolean saveOk = MissionDao.getInstance().updataOrCreate(models);
|
|
|
+ if (saveOk) {
|
|
|
+ HttpHandler.getInstance().post(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ loadMissionByDB();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
}
|