|
|
@@ -11,8 +11,9 @@ import com.xzjmyk.pm.activity.AppConfig;
|
|
|
import com.xzjmyk.pm.activity.BdLocationHelper;
|
|
|
import com.xzjmyk.pm.activity.MyApplication;
|
|
|
import com.xzjmyk.pm.activity.R;
|
|
|
+import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
|
|
|
-import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
|
|
|
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWork;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWorkPresenter;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IWorkView;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.CommonInterfaceUtil;
|
|
|
@@ -20,17 +21,16 @@ 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;
|
|
|
import com.xzjmyk.pm.activity.ui.erp.util.auto.HttpHandler;
|
|
|
+import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
|
|
|
import com.xzjmyk.pm.activity.util.BaiduMapUtil;
|
|
|
import com.xzjmyk.pm.activity.util.PreferenceUtils;
|
|
|
import com.xzjmyk.pm.activity.util.TimeUtils;
|
|
|
-import com.xzjmyk.pm.activity.view.crouton.Style;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
-import static com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.ct;
|
|
|
-
|
|
|
/**
|
|
|
* 班次的管理器,先不处理数据库数据
|
|
|
* Created by Bitliker on 2016/12/12.
|
|
|
@@ -42,7 +42,6 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
private final int MAC_VAL = 0x13;
|
|
|
private final int LOAD_MAC = 0x14;
|
|
|
private final int SIGNING = 0x15;//签到
|
|
|
- private IWorkView iWorkView;
|
|
|
private double distance;
|
|
|
private double longitude;
|
|
|
private double latitude;
|
|
|
@@ -57,6 +56,13 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
private CommonInterfaceUtil util;
|
|
|
|
|
|
|
|
|
+ private IWorkView iWorkView;
|
|
|
+ private IWork iWork;
|
|
|
+
|
|
|
+ public WorkPresenter(IWork iWork) {
|
|
|
+ this.iWork = iWork;
|
|
|
+ }
|
|
|
+
|
|
|
public WorkPresenter(IWorkView iWorkView) {
|
|
|
this.iWorkView = iWorkView;
|
|
|
isMacInNet = true;
|
|
|
@@ -82,15 +88,18 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
}
|
|
|
|
|
|
|
|
|
- private void validatorMac(String macAddress) {
|
|
|
+ private void validatorMac(ArrayList<WorkModel> models, String macAddress) {
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
param.put("macAddress", macAddress);
|
|
|
+ param.put("emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
|
|
|
+ Bundle bundle = new Bundle();
|
|
|
+ bundle.putParcelableArrayList("models", models);
|
|
|
HttpHandler.getInstance().loadERPByNet(MAC_VAL, "mobile/addMobileMac.action",
|
|
|
- param, null, this);
|
|
|
+ param, bundle, this);
|
|
|
}
|
|
|
|
|
|
//签到
|
|
|
- private void signinWork(String code) {
|
|
|
+ private void signinWork(Bundle bunder, String code) {
|
|
|
if (iWorkView != null) iWorkView.showLoading();
|
|
|
isSubmiting = true;
|
|
|
Map<String, Object> param = new HashMap<>();
|
|
|
@@ -98,8 +107,8 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
form.put("cl_code", code);
|
|
|
form.put("cl_address", address);
|
|
|
form.put("cl_phone", MyApplication.getInstance().mLoginUser.getTelephone());
|
|
|
- form.put("cl_emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
|
|
|
- String emname = CommonUtil.getSharedPreferences(ct, "erp_emname");
|
|
|
+ form.put("cl_emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
|
|
|
+ String emname = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_emname");
|
|
|
if (StringUtils.isEmpty(emname)) {
|
|
|
emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
|
|
|
}
|
|
|
@@ -110,7 +119,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
param.put("caller", "CardLog");
|
|
|
param.put("formStore", formStore);
|
|
|
HttpHandler.getInstance().loadERPByNet(SIGNING, "mobile/saveCardLog.action",
|
|
|
- param, null, this);
|
|
|
+ param, bunder, this);
|
|
|
}
|
|
|
|
|
|
//设置位置信息
|
|
|
@@ -283,9 +292,19 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (iWorkView == null) return;
|
|
|
- iWorkView.showModel(models);
|
|
|
- iWorkView.dimssLoading();
|
|
|
+ if (iWorkView != null) {
|
|
|
+ iWorkView.showModel(models);
|
|
|
+ iWorkView.dimssLoading();
|
|
|
+ } else if (iWork != null && !ListUtils.isEmpty(models)) {
|
|
|
+ final List<WorkModel> finaModels = models;
|
|
|
+ ThreadUtil.getInstance().addTask(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ boolean save = WorkModelDao.getInstance().createOrUpdata(finaModels);
|
|
|
+ iWork.saveStatus(save);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -339,8 +358,14 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
/********************
|
|
|
* 对外接口
|
|
|
*********************************/
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void startForSave() {
|
|
|
+ loadWorkData(System.currentTimeMillis());
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
- public void start() {
|
|
|
+ public void startForUi() {
|
|
|
MyApplication.getInstance().getBdLocationHelper().setListener(new BdLocationHelper.OnBaiduResultListener() {
|
|
|
@Override
|
|
|
public void result(boolean isOk) {
|
|
|
@@ -365,10 +390,10 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public void submit(String macAddress) {
|
|
|
+ public void submit(ArrayList<WorkModel> models, String macAddress) {
|
|
|
if (isSubmitAble()) {
|
|
|
if (isMacInNet) {
|
|
|
- submitWork(macAddress);
|
|
|
+ submitWork(models, macAddress);
|
|
|
} else {
|
|
|
if (iWorkView != null)
|
|
|
iWorkView.showFristMac();
|
|
|
@@ -377,8 +402,8 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void submitWork(String macAddress) {
|
|
|
- validatorMac(macAddress);
|
|
|
+ public void submitWork(ArrayList<WorkModel> models, String macAddress) {
|
|
|
+ validatorMac(models, macAddress);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -387,16 +412,18 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
isChangPoi = true;
|
|
|
loaction = StringUtils.isEmpty(poi.name) ? "" : poi.name;//位置名称
|
|
|
address = StringUtils.isEmpty(poi.address) ? "" : poi.address;
|
|
|
- iWorkView.showLocation(address);
|
|
|
latitude = poi.location.latitude;
|
|
|
longitude = poi.location.longitude;
|
|
|
+ if (iWorkView == null) return;
|
|
|
+ iWorkView.showLocation(address);
|
|
|
iWorkView.showDistance(getDistance());
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public void result(int what, boolean isJSON, String message, Bundle bundle) {
|
|
|
+ public void result(int what, boolean isJSON, String message, final Bundle bundle) {
|
|
|
try {
|
|
|
+ ArrayList<WorkModel> models = null;
|
|
|
switch (what) {
|
|
|
case WORK_DATA://打卡班次
|
|
|
long time = System.currentTimeMillis();
|
|
|
@@ -405,7 +432,6 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
break;
|
|
|
case WORK_LOG://打卡列表
|
|
|
long logTime = System.currentTimeMillis();
|
|
|
- ArrayList<WorkModel> models = null;
|
|
|
if (bundle != null) models = bundle.getParcelableArrayList("models");
|
|
|
if (bundle != null) logTime = bundle.getLong("time");
|
|
|
handlerWorkLog(isJSON, message, models, logTime);
|
|
|
@@ -417,8 +443,7 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
getUtil().getCodeByNet("CardLog", new CommonInterfaceUtil.OnResultListener() {
|
|
|
@Override
|
|
|
public void result(int code, String result) {
|
|
|
- signinWork(result);
|
|
|
-
|
|
|
+ signinWork(bundle, result);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
@@ -444,11 +469,11 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
isSubmiting = false;
|
|
|
if (isJSON && JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
|
|
|
if (iWorkView != null)
|
|
|
- iWorkView.showToast(R.string.signin_ok, R.color.load_ok);
|
|
|
- //TODO
|
|
|
- // loadLog(System.currentTimeMillis());
|
|
|
- } else
|
|
|
- ViewUtil.ToastMessage(ct, ct.getResources().getString(R.string.signin_error), Style.holoRedLight, 3000);
|
|
|
+ iWorkView.showToast(R.string.signin_ok, R.color.load_submit);
|
|
|
+ if (bundle != null) models = bundle.getParcelableArrayList("models");
|
|
|
+ loadLog(models, System.currentTimeMillis());
|
|
|
+ } else if (iWorkView != null)
|
|
|
+ iWorkView.showToast(R.string.signin_error, R.color.load_error);
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
@@ -462,7 +487,9 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
|
|
|
|
|
|
@Override
|
|
|
public void error(int what, int statuCode, String message, Bundle bundle) {
|
|
|
-
|
|
|
+ log("what" + what);
|
|
|
+ log("statuCode" + statuCode);
|
|
|
+ log("message" + message);
|
|
|
}
|
|
|
|
|
|
|