Explorar el Código

手动外勤也插入签到记录

RaoMeng hace 6 años
padre
commit
d19e7849b9

+ 9 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/presenter/MissionPresenter.java

@@ -24,6 +24,7 @@ import com.core.app.AppConfig;
 import com.core.app.AppConstant;
 import com.core.app.MyApplication;
 import com.core.broadcast.MsgBroadcast;
+import com.core.dao.MessageDao;
 import com.core.model.MissionModel;
 import com.core.model.SelectBean;
 import com.core.net.http.http.OAHttpHelper;
@@ -41,6 +42,7 @@ 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.OA.erp.utils.AutoErpSigninUitl;
 import com.uas.appworks.R;
 import com.uas.appworks.dao.MissionDao;
 
@@ -598,6 +600,9 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
                             if (bundle != null) {
                                 MissionModel mission = bundle.getParcelable("data");
                                 if (mission != null) {
+                                    //数据库插入手动外勤记录
+                                    MessageDao.getInstance().instartSignin(getString(R.string.manual_mission_alert)
+                                            , AutoErpSigninUitl.getMissionSubTitle(mission));
                                     if (mission.getStatus() == 2) {//签退
                                         iMission.showToast("手动签退成功", R.color.load_error);
                                         endMission(mission, false);
@@ -606,7 +611,6 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
                                         loadMissionPlan();
                                     }
 
-
                                     String faceBase64 = bundle.getString("faceBase64", null);
                                     if (!TextUtils.isEmpty(faceBase64)) {
                                         iMission.faceUpload(mission, faceBase64);
@@ -822,4 +826,8 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
             return false;
         }
     }
+
+    private String getString(int id) {
+        return MyApplication.getInstance().getString(id);
+    }
 }

+ 41 - 23
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/utils/AutoErpSigninUitl.java

@@ -115,9 +115,9 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
         if (isB2b) {
             signinWork(bundle, "");
         } else {
-            if(SwitchUtil.needMacForSign()){
+            if (SwitchUtil.needMacForSign()) {
                 validatorMac(model, SystemUtil.getMac(MyApplication.getInstance()));  // 关闭mac地址验证
-            }else{
+            } else {
                 CommonInterface.getInstance().getCodeByNet("CardLog", new CommonInterface.OnResultListener() {
                     @Override
                     public void result(boolean isOk, int result, String message) {
@@ -262,18 +262,18 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
             form.put("cl_address", address);
             form.put("cl_location", "android " + MyApplication.getInstance().getString(R.string.auto_work_signin_log));
 //            int comDistance = PreferenceUtils.getInt("distance", 0);
-            float distance =-1;
+            float distance = -1;
             List<WorkLocationModel> beanList = WorkLocationDao.getInstance().queryByEnCode();
             if (!ListUtils.isEmpty(beanList)) {
                 for (WorkLocationModel bean : beanList) {
-                    float dis=LocationDistanceUtils.distanceMeBack(bean.getLocation());
-                    if ( dis< bean.getValidrange()) {
-                        distance=dis;
+                    float dis = LocationDistanceUtils.distanceMeBack(bean.getLocation());
+                    if (dis < bean.getValidrange()) {
+                        distance = dis;
                         break;
                     }
                 }
             }
-            if (distance==-1) {
+            if (distance == -1) {
                 //判断是否有外勤
                 boolean isOutPlan = PreferenceUtils.getBoolean(AppConfig.HAVE_OUT_PLAN, false);
                 return false;
@@ -454,13 +454,13 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
                             LocalBroadcastManager.getInstance(MyApplication.getInstance()).sendBroadcast(intent);
                             PreferenceUtils.putBoolean("hasAutoSign", true);
                             int isWork = bundle == null ? -1 : bundle.getInt("isWork", -1);
-                            int rawId=R.raw.voice_work;
+                            int rawId = R.raw.voice_work;
                             switch (isWork) {
                                 case 0:
-                                    rawId=R.raw.voice_off;
+                                    rawId = R.raw.voice_off;
                                     break;
                                 case 1:
-                                    rawId=R.raw.voice_work;
+                                    rawId = R.raw.voice_work;
                                     break;
                             }
                             VoiceUtils.signVoice(rawId);
@@ -481,7 +481,7 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
                             if (bundle == null) return;
                             MissionModel mission = bundle.getParcelable("data");
                             if (mission == null) return;
-                            updataMissonDB(mission);
+                            updataMissonDB(mission, true);
                         }
                     }
                     break;
@@ -589,7 +589,7 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
      * @throws Exception
      */
 
-    private void updataMissonDB(MissionModel mission) throws Exception {
+    public void updataMissonDB(MissionModel mission, boolean isAuto) throws Exception {
         //更新数据库
         if (mission == null) return;//如果数据库没有,一般不会出现这样的情况
         if (StringUtil.isEmpty(mission.getRealTime()))
@@ -598,21 +598,23 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
         String title = "";
         String subTitle = "";
         if (mission.getStatus() == 2) {//签退
-            title = MyApplication.getInstance().getString(R.string.auto_mission_alert);
-            if (StringUtil.isEmpty(mission.getCompanyName()))
-                subTitle = MyApplication.getInstance().getString(R.string.uu_auto_signined_down);
-            else
-                subTitle = MyApplication.getInstance().getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_down);
+            if (isAuto) {
+                title = getString(R.string.auto_mission_alert);
+            } else {
+                title = getString(R.string.manual_mission_alert);
+            }
+            subTitle = getMissionSubTitle(mission);
 
             CommonInterface.getInstance().endMission(mission.getId(), false);
             loadIsMission(mission);
         } else {//签到
             if (mission.getStatus() < 1) {
-                title = getString(R.string.auto_mission_alert);
-                if (StringUtil.isEmpty(mission.getCompanyName()))
-                    subTitle = getString(R.string.uu_auto_signined_up);
-                else
-                    subTitle = getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_up);
+                if (isAuto) {
+                    title = getString(R.string.auto_mission_alert);
+                } else {
+                    title = getString(R.string.manual_mission_alert);
+                }
+                subTitle = getMissionSubTitle(mission);
                 mission.setStatus(1);//说明没有打过卡
                 boolean saveOk = MissionDao.getInstance().updata(mission);
                 if (saveOk)//XXX公司自动外勤签到成功
@@ -626,6 +628,22 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
             MessageDao.getInstance().instartSignin(title, subTitle);
     }
 
+    public static String getMissionSubTitle(MissionModel mission) {
+        String subTitle;
+        if (mission.getStatus() == 2) {
+            if (StringUtil.isEmpty(mission.getCompanyName()))
+                subTitle = MyApplication.getInstance().getString(R.string.uu_auto_signined_down);
+            else
+                subTitle = MyApplication.getInstance().getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_down);
+        } else {
+            if (StringUtil.isEmpty(mission.getCompanyName()))
+                subTitle = getString(R.string.uu_auto_signined_up);
+            else
+                subTitle = getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_up);
+        }
+        return subTitle;
+    }
+
     /**
      * 外勤签退后判断时候还有外勤计划,如果没有,判断是否符合返回公司  返回提示请返回公司签到
      *
@@ -930,7 +948,7 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
         return (int) (time2 / 1000);
     }
 
-    private String getString(int id) {
+    private static String getString(int id) {
         return MyApplication.getInstance().getString(id);
     }
 

+ 1 - 0
app_modular/appworks/src/main/res/values-en/strings.xml

@@ -210,4 +210,5 @@
     <string name="project_business_chance">项目商机</string>
     <string name="oem_business_chance">OEM商机</string>
     <string name="no_fields_to_update">没有可更新的字段</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>

+ 1 - 0
app_modular/appworks/src/main/res/values-zh-rCN/strings.xml

@@ -209,4 +209,5 @@
     <string name="project_business_chance">项目商机</string>
     <string name="oem_business_chance">OEM商机</string>
     <string name="no_fields_to_update">没有可更新的字段</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>

+ 1 - 0
app_modular/appworks/src/main/res/values-zh-rTW/strings.xml

@@ -209,4 +209,5 @@
     <string name="project_business_chance">项目商机</string>
     <string name="oem_business_chance">OEM商机</string>
     <string name="no_fields_to_update">没有可更新的字段</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>

+ 1 - 0
app_modular/appworks/src/main/res/values/strings.xml

@@ -253,4 +253,5 @@
     <string name="project_business_chance">项目商机</string>
     <string name="oem_business_chance">OEM商机</string>
     <string name="no_fields_to_update">没有可更新的字段</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>