|
|
@@ -1,19 +1,21 @@
|
|
|
package com.uas.appworks.OA.erp.presenter;
|
|
|
|
|
|
-import android.Manifest;
|
|
|
import android.content.Context;
|
|
|
import android.content.Intent;
|
|
|
import android.os.Bundle;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.widget.Toast;
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
-import com.baidu.aip.excep.activity.RealTimeDetectFaceActivty;
|
|
|
+import com.baidu.aip.excep.utils.Base64Util;
|
|
|
import com.common.LogUtil;
|
|
|
import com.common.data.DateFormatUtil;
|
|
|
import com.common.data.JSONUtil;
|
|
|
import com.common.data.ListUtils;
|
|
|
import com.common.data.StringUtil;
|
|
|
+import com.common.file.FileUtils;
|
|
|
import com.common.preferences.PreferenceUtils;
|
|
|
import com.core.api.wxapi.ApiConfig;
|
|
|
import com.core.api.wxapi.ApiPlatform;
|
|
|
@@ -27,21 +29,29 @@ import com.core.model.SelectBean;
|
|
|
import com.core.net.http.http.OAHttpHelper;
|
|
|
import com.core.net.http.http.OnHttpResultListener;
|
|
|
import com.core.net.http.http.Request;
|
|
|
+import com.core.utils.BitmapUtils;
|
|
|
import com.core.utils.CommonUtil;
|
|
|
import com.core.utils.TimeUtils;
|
|
|
import com.core.utils.ToastUtil;
|
|
|
import com.core.utils.WorkHandlerUtil;
|
|
|
+import com.me.network.app.base.HttpCallback;
|
|
|
+import com.me.network.app.base.HttpParams;
|
|
|
+import com.me.network.app.http.HttpRequest;
|
|
|
+import com.me.network.app.http.Method;
|
|
|
import com.uas.applocation.UasLocationHelper;
|
|
|
import com.uas.applocation.utils.LocationDistanceUtils;
|
|
|
import com.uas.appworks.OA.erp.model.IMission;
|
|
|
import com.uas.appworks.R;
|
|
|
import com.uas.appworks.dao.MissionDao;
|
|
|
|
|
|
+import java.io.File;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import cc.cloudist.acplibrary.ACProgressFlower;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* Created by Bitliker on 2016/12/19.
|
|
|
@@ -60,7 +70,8 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
|
|
|
private IMission iMission;
|
|
|
private boolean isB2b;
|
|
|
private MissionModel modelIntent;
|
|
|
-
|
|
|
+ private int mFaceSign;
|
|
|
+ private ACProgressFlower mUploadLoading;
|
|
|
|
|
|
public MissionPresenter(IMission iMission) {
|
|
|
this.iMission = iMission;
|
|
|
@@ -136,10 +147,11 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
|
|
|
if (mission == null) {
|
|
|
iMission.showToast("无可签到签退的计划", R.color.load_error);
|
|
|
} else {
|
|
|
- if (false) {
|
|
|
+ mFaceSign = PreferenceUtils.getInt(AppConfig.FACE_SIGN, -1);//-1:人脸设置不存在 1:打开 0:关闭
|
|
|
+ if (mFaceSign == 1) {
|
|
|
iMission.faceSign(mission);
|
|
|
} else {
|
|
|
- signinMission(mission);
|
|
|
+ signinMission(mission, null);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -442,7 +454,7 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
|
|
|
private boolean submiting = false;
|
|
|
|
|
|
@Override
|
|
|
- public void signinMission(MissionModel model) {
|
|
|
+ public void signinMission(MissionModel model, String faceBase64) {
|
|
|
if (model == null) return;
|
|
|
if (!MyApplication.getInstance().isNetworkActive()) {
|
|
|
iMission.showToast(R.string.networks_out, R.color.load_error);
|
|
|
@@ -478,6 +490,7 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
|
|
|
param.put("formStore", JSONUtil.map2JSON(formStore));
|
|
|
Bundle bundle = new Bundle();
|
|
|
bundle.putParcelable("data", model);
|
|
|
+ bundle.putString("faceBase64", faceBase64);
|
|
|
String url = isB2b ? ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().saveOutSign :
|
|
|
"mobile/addAutoSign.action";
|
|
|
Request request = new Request.Bulider()
|
|
|
@@ -592,6 +605,12 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
|
|
|
iMission.showToast("手动签到成功", R.color.load_error);
|
|
|
loadMissionPlan();
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ String faceBase64 = bundle.getString("faceBase64", null);
|
|
|
+ if (!TextUtils.isEmpty(faceBase64)) {
|
|
|
+ iMission.faceUpload(mission, faceBase64);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -646,7 +665,52 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
|
|
|
if (StringUtil.isEmpty(showMessage)) return;
|
|
|
if (iMission != null) iMission.showToast(showMessage, R.color.load_error);
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void uploadFace(final Context context, MissionModel mission, String faceBase64) {
|
|
|
+ if (mUploadLoading == null) {
|
|
|
+ mUploadLoading = CommonUtil.newLoading(context, "附件上传中...");
|
|
|
+ }
|
|
|
+ mUploadLoading.show();
|
|
|
+ File faceFile = null;
|
|
|
+ try {
|
|
|
+ faceFile = BitmapUtils.saveBitmapToFile(Base64Util.base64ToBitmap(faceBase64), "face");
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
|
|
|
+ HttpRequest.getInstance().uploadFile(CommonUtil.getAppBaseUrl(context),
|
|
|
+ new HttpParams.Builder()
|
|
|
+ .url("mobile/signUploadPicture.action")
|
|
|
+ .method(Method.GET)
|
|
|
+ .addParam("mpd_id", mission.getId())
|
|
|
+ .addParam("emcode", CommonUtil.getEmcode())
|
|
|
+ .addParam("result", "true")
|
|
|
+ .addParam("master", CommonUtil.getMaster())
|
|
|
+ .addParam("sessionId", CommonUtil.getSharedPreferences(context, "sessionId"))
|
|
|
+ //人脸照
|
|
|
+ .addParam("img", faceFile)
|
|
|
+ .addHeader("Cookie", CommonUtil.getErpCookie(context))
|
|
|
+ .build(), new HttpCallback() {
|
|
|
+ @Override
|
|
|
+ public void onSuccess(int flag, Object o) throws Exception {
|
|
|
+ if (mUploadLoading.isShowing()) {
|
|
|
+ mUploadLoading.dismiss();
|
|
|
+
|
|
|
+ Toast.makeText(context, "附件上传成功", Toast.LENGTH_LONG).show();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onFail(int flag, String failStr) throws Exception {
|
|
|
+ if (mUploadLoading.isShowing()) {
|
|
|
+ mUploadLoading.dismiss();
|
|
|
+
|
|
|
+ Toast.makeText(context, "附件上传失败", Toast.LENGTH_LONG).show();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
|