Browse Source

修改消息首页内容

Bitliker 8 years ago
parent
commit
ae6f848e4c

+ 1 - 3
app_core/common/src/main/java/com/core/utils/CommonInterface.java

@@ -179,8 +179,7 @@ public class CommonInterface implements OnHttpResultListener {
         param.put("id", id);
         String url = isB2b ? ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().updateOutplanStatus : "mobile/mobileplanUpdate.action";
         if (isB2b)
-            param.put("statuscode", isDone ? "done" : "CHECKOUT");//TODO done使用小写
-
+            param.put("statuscode", isDone ? "done" : "CHECKOUT");
         Request request = new Request.Bulider()
                 .setWhat(END_MISSION)
                 .setUrl(url)
@@ -188,7 +187,6 @@ public class CommonInterface implements OnHttpResultListener {
                 .setMode(Request.Mode.POST)
                 .bulid();
         OAHttpHelper.getInstance().requestHttp(request, this);
-
     }
 
     //获取打卡数据

+ 46 - 11
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/presenter/MissionPresenter.java

@@ -52,6 +52,7 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 	private final int SAVE_ADDRESS = 0x13;
 	private final int SIGNIN_MISSION = 0x17;
 	private final int FIND_LIKER = 0x18;
+	private final int END_MISSION = 0x19;
 	private IMission iMission;
 	private boolean isB2b;
 	private MissionModel modelIntent;
@@ -115,15 +116,12 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 		if (isSubmiting) return;
 		List<MissionModel> plans = new ArrayList<>();
 		for (MissionModel e : models) {
-			LogUtil.i(JSON.toJSONString(e));
-			LogUtil.i("_________________________");
 			if (e.getStatus() != 0) {
 				plans.add(e);
 			}
 		}
 		MissionModel mission = reckonMission(plans);//判断
 		if (mission != null) {
-			//TODO 打卡
 			LogUtil.i(JSON.toJSONString(mission));
 			signinMission(mission);
 		}
@@ -383,6 +381,7 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 
 	//获取外勤计划列表
 	public void loadMissionPlan() {
+		iMission.showLoading();
 		Map<String, Object> param = new HashMap<>();
 		param.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
 
@@ -414,12 +413,16 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 		OAHttpHelper.getInstance().requestHttp(request, this);
 	}
 
+	private boolean submiting = false;
+
 	public void signinMission(MissionModel model) {
 		if (model == null) return;
 		if (!MyApplication.getInstance().isNetworkActive()) {
 			iMission.showToast(R.string.networks_out, R.color.load_error);
 			return;
 		}
+		if (submiting) return;
+		submiting = true;
 		iMission.showLoading();
 		Map<String, Object> param = new HashMap<>();
 		Map<String, Object> formStore = new HashMap<>();
@@ -428,8 +431,7 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 		String address = MyApplication.getInstance().getBdLocationHelper().getAddress();
 		if (StringUtil.isEmpty(address))
 			address = model.getCompanyAddr();
-		String remark = model.getStatus() == 2 ? MyApplication.getInstance().getString(R.string.auto_mission_signindown)
-				: MyApplication.getInstance().getString(R.string.auto_mission_signinup);
+		String remark = model.getStatus() == 2 ? "手动外勤签退" : "手动外勤签到";
 		String location = model.getCompanyName();
 		if (StringUtil.isEmpty(location) || isB2b)
 			location = MyApplication.getInstance().getBdLocationHelper().getName();
@@ -461,6 +463,29 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 		OAHttpHelper.getInstance().requestHttp(request, this);
 	}
 
+	/**
+	 * 更新外勤计划状态
+	 *
+	 * @param id     外勤id
+	 * @param isDone 是否已完成,否则未签退
+	 */
+	public void endMission(int id, boolean isDone) {
+		if (id == 0) return;
+		boolean isB2b = ApiUtils.getApiModel() instanceof ApiPlatform;
+		Map<String, Object> param = new HashMap<>();
+		param.put("id", id);
+		String url = isB2b ? ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().updateOutplanStatus : "mobile/mobileplanUpdate.action";
+		if (isB2b)
+			param.put("statuscode", isDone ? "done" : "CHECKOUT");
+		Request request = new Request.Bulider()
+				.setWhat(END_MISSION)
+				.setUrl(url)
+				.setParam(param)
+				.setMode(Request.Mode.POST)
+				.bulid();
+		OAHttpHelper.getInstance().requestHttp(request, this);
+	}
+
 	@Override
 	public void result(int what, boolean isJSON, String message, Bundle bundle) {
 		try {
@@ -475,6 +500,7 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 							array = object.getJSONArray("success");
 						}
 						handlerData(array);
+						submiting = false;
 						break;
 					case SAVE_PLAN:
 						isSubmiting = false;
@@ -527,13 +553,22 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 					case SIGNIN_MISSION:
 						if (JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
 							//成功  更新数据库
-//							if (bundle == null) return;
-//							MissionModel mission = bundle.getParcelable("data");
-//							if (mission == null) return;
-							iMission.showToast("手动签到成功", R.color.load_error);
-							loadMissionPlan();
+							if (bundle != null) {
+								MissionModel mission = bundle.getParcelable("data");
+								if (mission == null) {
+									if (mission.getStatus() == 2) {//签退
+										iMission.showToast("手动签退成功", R.color.load_error);
+										endMission(mission.getId(), false);
+									} else {
+										loadMissionPlan();
+									}
+								}
+							}
 						}
 						break;
+					case END_MISSION:
+						loadMissionPlan();
+						break;
 					case FIND_LIKER:
 						if (isJSON) {
 							JSONArray datas = JSONUtil.getJSONArray(object, "datas");
@@ -624,7 +659,7 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
 			return minBean;
 		}
 		for (MissionModel e : list) {
-			if (!timeAllowMission(e)) continue;//时间上不符合该外勤签到或签退
+//			if (!timeAllowMission(e)) continue;//时间上不符合该外勤签到或签退
 			if (e.getLatLng() == null) continue;//定位不存在
 			//获取当前与目的地的距离
 			float distance = BaiduMapUtil.getInstence().autoDistance(e.getLatLng());