Jelajahi Sumber

2016/09/13 外勤签到设置

Bitliker 9 tahun lalu
induk
melakukan
ebc36a058e

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerListActivity.java

@@ -31,11 +31,12 @@ import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.crm.Business;
-import com.xzjmyk.pm.activity.bean.oa.MeetUserEntity;
+import com.xzjmyk.pm.activity.helper.AvatarHelper;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.UserSelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
+import com.xzjmyk.pm.activity.ui.erp.model.Employees;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;

+ 6 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java

@@ -253,6 +253,11 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
             Crouton.makeText(this, "开始时间不能大于结束时间");
             return;
         }
+        if (start_tv.getText().toString().toString().compareTo(end_tv.getText().toString().trim()) <= 0) {
+            Crouton.makeText(ct, "结束时间不能小于开始时间");
+            return;
+        }
+
         StringBuilder builder = new StringBuilder();
         StringBuilder builderId = new StringBuilder();
         for (int i = 0; i < entities.size(); i++) {
@@ -284,7 +289,7 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
                         start_tv.setText(time);
                         break;
                     case R.id.end_tv:
-                        if (time.compareTo(start_tv.getText().toString()) < 0) {
+                        if (time.compareTo(start_tv.getText().toString()) <= 0) {
                             Crouton.makeText(ct, "结束时间不能小于开始时间");
                         } else {
                             end_tv.setText(time);

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java

@@ -29,6 +29,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
+import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.ClearEditText;
 
@@ -296,7 +297,7 @@ public class MeetingActivity extends BaseActivity {
             viewholder.oa_meeting_addr_tv.setText(entity.getMa_mrname());
             viewholder.oa_meeting_user_tv.setText(entity.getMa_recorder());
             if (entity.getMa_tag() == null || entity.getMa_tag().length() <= 0) return;
-            viewholder.oa_meeting_tag_tv.setText(entity.getMa_type() == null ? "未填写" : entity.getMa_type());
+            viewholder.oa_meeting_tag_tv.setText(StringUtils.isEmpty(entity.getMa_type()) ? "未填写" : entity.getMa_type());
         }
 
         class ViewHolder {

+ 2 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAListActivity.java

@@ -15,13 +15,10 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.nostra13.universalimageloader.core.ImageLoader;
-import com.nostra13.universalimageloader.core.imageaware.ImageAware;
-import com.nostra13.universalimageloader.core.imageaware.ImageViewAware;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
-import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 
 import java.util.HashMap;
@@ -121,6 +118,8 @@ public class OAListActivity extends BaseActivity {
             holder.company.setText(object.getString("mo_company") == null ? "" : object.getString("mo_company"));
             if (object.containsKey("mo_attachid") && object.getInteger("mo_attachid") > 1000) {
                 ImageLoader.getInstance().displayImage(getImageUrl(object.getInteger("mo_attachid")), holder.image);
+            } else {
+                holder.image.setVisibility(View.GONE);
             }
             return view;
         }
@@ -134,7 +133,6 @@ public class OAListActivity extends BaseActivity {
                     name,//签到人
                     addr, //地址
                     company;//签到公司
-
             ImageView image;
         }
     }

+ 9 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java

@@ -40,6 +40,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.util.CameraUtil;
+import com.xzjmyk.pm.activity.util.ImageUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
@@ -136,12 +137,14 @@ public class OutSigninOKActivity extends BaseActivity {
             public void onClick(DialogInterface dialogInterface, int i) {
                 if (i == 0) {
                     //调用拍照
+                    isTask = true;
                     mNewPhotoUri = CameraUtil.getOutputMediaFileUri(OutSigninOKActivity.this, CameraUtil.MEDIA_TYPE_IMAGE);
                     CameraUtil.captureImage(OutSigninOKActivity.this, mNewPhotoUri, REQUEST_CODE_CAPTURE_PHOTO);
                 } else if (i == 1) {
                     if (!getIntent().getBooleanExtra("isImage", false)) {
                         Crouton.makeText(ct, "您没有被允许使用系统相册,请使用拍照");
                     } else {
+                        isTask = false;
                         //调用系统相册
                         CameraUtil.pickImageSimple(OutSigninOKActivity.this, REQUEST_CODE_PICK_PHOTO);
                     }
@@ -161,7 +164,8 @@ public class OutSigninOKActivity extends BaseActivity {
         return -1;
     }
 
-    int id = 0;
+    private int id = 0;
+    private boolean isTask = false;
 
     private void uploadFile(String path) {
         if (StringUtils.isEmpty(path)) return;
@@ -172,7 +176,10 @@ public class OutSigninOKActivity extends BaseActivity {
         params.addHeader("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         params.addBodyParameter("em_code", CommonUtil.getSharedPreferences(ct, "erp_username"));
         params.addBodyParameter("type", "common");
-        params.addBodyParameter("img", finalFile);
+        if (isTask)
+            params.addBodyParameter("img", ImageUtil.compressBitmapToFile(path, 100, 300, 300));
+        else
+            params.addBodyParameter("img", finalFile);
         String url = Constants.getAppBaseUrl(ct) + "mobile/uploadEmployeeAttach.action";
         final HttpUtils http = new HttpUtils();
         http.send(HttpRequest.HttpMethod.POST, url, params, new RequestCallBack<String>() {

+ 26 - 21
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutofficeSetActivity.java

@@ -6,6 +6,7 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.support.v7.app.AlertDialog;
+import android.view.MenuItem;
 import android.view.View;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
@@ -45,6 +46,8 @@ public class OutofficeSetActivity extends BaseActivity {
         @Override
         public void handleMessage(Message msg) {
             String message = msg.getData().getString("result");
+            if (progressDialog.isShowing())
+                progressDialog.dismiss();
             JSONObject object = null;
             switch (msg.what) {
                 case 0x11:
@@ -54,11 +57,18 @@ public class OutofficeSetActivity extends BaseActivity {
                     else
                         Crouton.makeText(ct, "保存失败");
                     break;
-
             }
         }
     };
 
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (item.getItemId() == android.R.id.home) {
+            endActivity();
+        }
+        return super.onOptionsItemSelected(item);
+    }
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -67,23 +77,19 @@ public class OutofficeSetActivity extends BaseActivity {
         initview();
     }
 
-    //form 3:isImage  2:isAddress  1:distance
-    private void saveSet(String... form) {
-        StringBuilder formStore = new StringBuilder();
-        formStore.append("[");
-        switch (form.length) {
-            case 3:
-                formStore.append("{\"isImage\":\"" + form[2] + "\"},");
-            case 2:
-                formStore.append("{\"isAddress\":\"" + form[1] + "\"},");
-            case 1:
-                formStore.append("{\"distance\":\"" + form[0] + "\"},");
-                break;
-        }
-        formStore.append("]");
-        Map<String, Object> param = new HashMap<>();
-        param.put("formStore", formStore.toString());
-        net("mobile/saveconfigs.action", param, 0x11);
+
+    @Override
+    public void onBackPressed() {
+        endActivity();
+    }
+
+    private void endActivity() {
+
+        Intent intent = new Intent();
+        intent.putExtra("isImage", isImage.isChecked());
+        intent.putExtra("isAddress", allow_chance_location.isChecked());
+        intent.putExtra("distance", getMin(location_tv.getText().toString().trim()));
+        setResult(0x21, intent);
     }
 
     private void updataSet(String key, String value) {
@@ -115,11 +121,10 @@ public class OutofficeSetActivity extends BaseActivity {
     private void initview() {
         Intent intent = getIntent();
         if (intent != null) {
-            saveSet(intent.getBooleanExtra("isImage", false) ? "1" : "0", intent.getBooleanExtra("isAddress", false) ? "1" : "0", intent.getIntExtra("distance", 0) + "");
             isImage.setChecked(intent.getBooleanExtra("isImage", false));
             allow_chance_location.setChecked(intent.getBooleanExtra("isAddress", false));
             setClickAble(intent.getBooleanExtra("isAddress", false));
-            location_tv.setText(intent.getIntExtra("distance", 0));
+            location_tv.setText(intent.getIntExtra("distance", 0) + "米");
         }
         isImage.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
             @Override
@@ -132,7 +137,7 @@ public class OutofficeSetActivity extends BaseActivity {
             @Override
             public void onCheckedChanged(View view, boolean isChecked) {
                 setClickAble(isChecked);
-                updataSet("isAddress ", "" + (isChecked ? 1 : 0));
+                updataSet("isAddress", "" + (isChecked ? 1 : 0));
             }
         });
         location_rl.setOnClickListener(new View.OnClickListener() {

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java

@@ -312,7 +312,8 @@ public class UserSelectActivity extends BaseActivity {
             holder.select_scb.setChecked(users.get(i).isClick());
             holder.select_scb.setFocusable(false);
             holder.select_scb.setClickable(false);
-            holder.id_tv.setText(users.get(i).getEm_depart() + "->" + users.get(i).getEm_position());
+            String str = (StringUtils.isEmpty(users.get(i).getEm_position()) ? "" : ("|" + users.get(i).getEm_position()));
+            holder.id_tv.setText(users.get(i).getEm_depart() + str);
             holder.name_tv.setText("姓名:" + users.get(i).getEm_name());
             return view;
         }

+ 28 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java

@@ -5,7 +5,6 @@ import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.text.Html;
-import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
 import android.view.MenuItem;
@@ -36,6 +35,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -96,16 +96,19 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
                 case 0x12:
                     object = JSON.parseObject(message);
                     if (object.containsKey("success") && object.getBoolean("success")) {
-                        Log.i("gongpengming", "进来" + object.getString("isAdmin"));
-                        isAdmin = object.containsKey("isAdmin") ? ("1".equals(object.getString("isAdmin")) ? true : false ): false;
+                        isAdmin = object.containsKey("isAdmin") ? ("1".equals(object.getString("isAdmin")) ? true : false) : false;
                     }
                     break;
                 case 0x13:
                     object = JSON.parseObject(message);
                     if (object.containsKey("success") && object.getBoolean("success")) {
-                        isAddress = object.containsKey("isAddress") ? ("1".equals(object.getString("isAddress")) ? true : false ): false;
-                        isImage = object.containsKey("isImage") ? ("1".equals(object.getString("isImage")) ? true : false ): false;
+                        isAddress = object.containsKey("isAddress") ? ("1".equals(object.getString("isAddress")) ? true : false) : false;
+                        isImage = object.containsKey("isImage") ? ("1".equals(object.getString("isImage")) ? true : false) : false;
                         distance = object.containsKey("distance") ? Integer.parseInt(object.getString("distance")) : 0;
+                        if (isAddress)
+                            do_trim.setVisibility(View.VISIBLE);
+                        else
+                            do_trim.setVisibility(View.GONE);
                     }
                     break;
             }
@@ -117,6 +120,7 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
         return R.layout.fragment_outoffice;
     }
 
+
     @Override
     public void onDestroy() {
         super.onDestroy();
@@ -151,19 +155,23 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == R.id.title) {
-            Intent intent = new Intent(ct, OutofficeSetActivity.class);
-            intent.putExtra("isAddress", isAddress);
-            intent.putExtra("isImage", isImage);
-            intent.putExtra("distance", distance);
-            startActivity(intent);
+            if (isAdmin) {
+                Intent intent = new Intent(ct, OutofficeSetActivity.class);
+                intent.putExtra("isAddress", isAddress);
+                intent.putExtra("isImage", isImage);
+                intent.putExtra("distance", distance);
+                startActivity(intent);
+            } else {
+                Crouton.makeText(ct, "当前账号无权限进行设置");
+            }
+
         }
         return super.onOptionsItemSelected(item);
     }
 
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
-        if (isAdmin)
-            inflater.inflate(R.menu.menu_outoffice, menu);
+        inflater.inflate(R.menu.menu_outoffice, menu);
         super.onCreateOptionsMenu(menu, inflater);
     }
 
@@ -185,6 +193,14 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
                     sigNum++;
                     num_tv.setText(Html.fromHtml("<u>" + sigNum + "</u>"));
                 }
+            } else if (requestCode == 0x21) {
+                isImage = data.getBooleanExtra("isImage", false);
+                isAddress = data.getBooleanExtra("isAddress", false);
+                distance = data.getIntExtra("distance", 100);
+                if (isAddress)
+                    do_trim.setVisibility(View.VISIBLE);
+                else
+                    do_trim.setVisibility(View.GONE);
             }
         }
     }

+ 8 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java

@@ -28,11 +28,11 @@ import com.xzjmyk.pm.activity.ui.base.EasyFragment;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.AlarmaActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.LocationMapActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.SigninAdapter;
+import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.FlexJsonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
-import com.xzjmyk.pm.activity.ui.erp.util.ViewUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.CalendarUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
@@ -105,9 +105,9 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                     JSONObject jsonObject = JSON.parseObject(message);//返回对象
                     if (jsonObject.containsKey("success") && jsonObject.getBoolean("success")) {//返回正常
                         if (jsonObject.containsKey("comaddressset") ? jsonObject.getBoolean("comaddressset") : false) {//如果有分配公司
-                            companyDistance = Integer.parseInt(jsonObject.containsKey("distance") ?(StringUtils.isEmpty(jsonObject.getString("distance") )?"0":jsonObject.getString("distance")) : "0");
-                            companyX = Double.parseDouble(jsonObject.containsKey("longitude") ? (StringUtils.isEmpty(jsonObject.getString("longitude") )?"0":jsonObject.getString("longitude")) : "0");
-                            companyY = Double.parseDouble(jsonObject.containsKey("latitude") ? (StringUtils.isEmpty(jsonObject.getString("latitude") )?"0":jsonObject.getString("latitude")) : "0");
+                            companyDistance = Integer.parseInt(jsonObject.containsKey("distance") ? (StringUtils.isEmpty(jsonObject.getString("distance")) ? "0" : jsonObject.getString("distance")) : "0");
+                            companyX = Double.parseDouble(jsonObject.containsKey("longitude") ? (StringUtils.isEmpty(jsonObject.getString("longitude")) ? "0" : jsonObject.getString("longitude")) : "0");
+                            companyY = Double.parseDouble(jsonObject.containsKey("latitude") ? (StringUtils.isEmpty(jsonObject.getString("latitude")) ? "0" : jsonObject.getString("latitude")) : "0");
                             unoffice_mm.setText(setDistance());
                         } else {
                             Crouton.makeText(ct, "当前账号没有分配公司地址,请联系管理员!!");
@@ -149,7 +149,10 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                     });
                     break;
                 default:
-                    Crouton.makeText(ct, "系统出现错误,请联系管理员!!");
+                    if ("网络未连接!".equals(message))
+                        Crouton.makeText(ct, message);
+                    else
+                        Crouton.makeText(ct, message);
                     break;
             }
 

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java

@@ -642,7 +642,7 @@ public class ViewUtil {
                     }*/
                     Bundle bundle = new Bundle();
                     Message message = new Message();
-                    bundle.putString("result", "网络未连接");
+                    bundle.putString("result", "网络未连接!");
                     message.setData(bundle);
                     message.what = Constants.APP_SOCKETIMEOUTEXCEPTION;
                     handler.sendMessage(message);

+ 0 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java

@@ -28,8 +28,6 @@ public class ImageUtil {
      * 所以要解决这个问题,可以在onActivityResult方法中,
      * 获取到照片数据后,读取它的旋转信息,如果不是0,
      * 说明这个照片已经被旋转过了,那么再使用android.graphics.Matrix将照片旋转回去即可。*/
-
-
     public static Bitmap roateBitmapAndScale(Bitmap bitmap, int degree, int newWidth ,int newHeight ) {
         if (degree == 0) {
             return bitmap;