Browse Source

彻底解决百度地图无法定位顽疾问题-10-14;

Arison 9 years ago
parent
commit
bd9047ecfa
31 changed files with 451 additions and 273 deletions
  1. 2 1
      WeiChat/src/main/AndroidManifest.xml
  2. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java
  3. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/OutSigninBean.java
  4. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DetailTaskActivity.java
  5. 16 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  6. 9 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportPlanActivity.java
  7. 0 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java
  8. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AlarmReceiver.java
  9. 0 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  10. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutLogListActivity.java
  11. 123 63
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutSigninOKActivity.java
  12. 1 14
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectActivity.java
  13. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectListActivity.java
  14. 0 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/SigninAdapter.java
  15. 56 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/ContactFragment.java
  16. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/OutofficeFragment.java
  17. 36 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  18. 20 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java
  19. 30 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CodeUtil.java
  20. 0 9
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/calendar/views/MonthView.java
  21. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java
  22. 51 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java
  23. 0 1
      WeiChat/src/main/res/layout/activity_oamain.xml
  24. 7 8
      WeiChat/src/main/res/layout/activity_visit_report_add.xml
  25. 42 0
      WeiChat/src/main/res/layout/fragment_contact.xml
  26. 0 117
      WeiChat/src/main/res/layout/fragment_contacts.xml
  27. 17 0
      WeiChat/src/main/res/layout/header_fragment_contact.xml
  28. 1 1
      WeiChat/src/main/res/layout/headview_cantacts_menus.xml
  29. 14 0
      WeiChat/src/main/res/layout/layout_large_image.xml
  30. 4 11
      WeiChat/src/main/res/layout/oa_empty_list.xml
  31. 1 0
      WeiChat/src/main/res/values/styles.xml

+ 2 - 1
WeiChat/src/main/AndroidManifest.xml

@@ -102,6 +102,7 @@
     <application
         android:name=".MyApplication"
         android:allowBackup="true"
+        android:hardwareAccelerated="false"
         android:icon="@drawable/uuu"
         android:label="@string/app_name"
         android:largeHeap="true"
@@ -159,7 +160,7 @@
         <activity android:name=".ui.erp.activity.InformActivity" />
         <activity android:name=".ui.erp.activity.TaskActivity" />
         <activity android:name=".ui.erp.activity.ScheduleActivity" />
-        <activity android:name=".ui.erp.activity.SubscribeDetailActivity"/>
+        <activity android:name=".ui.erp.activity.SubscribeDetailActivity" />
         <!-- Contacts 模块 -->
         <activity android:name=".ui.erp.activity.CompanyContactsActivity" />
         <!-- 通用的activity 加载fragment -->

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java

@@ -44,7 +44,7 @@ public class BdLocationHelper {
         LocationClientOption option = new LocationClientOption();
         option.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
         option.setCoorType("bd09ll");//可选,默认gcj02,设置返回的定位结果坐标系
-        option.setScanSpan(5000);// 设置发起定位请求的间隔时间为10s;//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
+        option.setScanSpan(0);// 设置发起定位请求的间隔时间为10s;//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的
         option.setIsNeedAddress(true);//可选,设置是否需要地址信息,默认不需要
         option.setOpenGps(true);//可选,默认false,设置是否使用gps
         option.setLocationNotify(true);//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
@@ -88,7 +88,7 @@ public class BdLocationHelper {
             if (location != null) {
                 resultCode = location.getLocType();
             }
-            BdLocationHelper.this.resultCode=resultCode;
+            BdLocationHelper.this.resultCode = resultCode;
             // 百度定位失败
             if (resultCode != BDLocation.TypeGpsLocation && resultCode != BDLocation.TypeCacheLocation
                     && resultCode != BDLocation.TypeOffLineLocation && resultCode != BDLocation.TypeNetWorkLocation) {

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/OutSigninBean.java

@@ -4,6 +4,7 @@ package com.xzjmyk.pm.activity.bean.oa;
  * Created by gongpm on 2016/7/22.
  */
 public class OutSigninBean {
+    private int mo_id;
     private String mo_code;
 //    private String mo_signtime;
     private String mo_address;
@@ -13,6 +14,14 @@ public class OutSigninBean {
     private int mo_attachid;
     private String mo_company;
 
+    public int getMo_id() {
+        return mo_id;
+    }
+
+    public void setMo_id(int mo_id) {
+        this.mo_id = mo_id;
+    }
+
     public String getMo_code() {
         return mo_code;
     }

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DetailTaskActivity.java

@@ -481,7 +481,6 @@ public class DetailTaskActivity extends BaseActivity implements OnClickListener
         String url = "plm/record/msgTask.action";
         Map<String, Object> param = new HashMap<String, Object>();
         param.put("ra_id", ra_id);
-        Log.i("gongpengming", "ra_id=" + ra_id);
         sendDataToServer(url, param, LOAD_SUCCESS_MSGTASK);
     }
 

+ 16 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java

@@ -89,17 +89,18 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     }
 
     private void initListener() {
-        tv_address_refresh.setOnClickListener(this);
-        tv_date_start.setOnClickListener(this);
-        tv_date_end.setOnClickListener(this);
-        tv_date_start.setKeyListener(null);
-        tv_date_end.setKeyListener(null);
-        tv_customer_login.setOnClickListener(this);
-        tv_visit_steps.setKeyListener(null);
-        tv_relate_business.setKeyListener(null);
-        tv_visit_steps.setOnClickListener(this);
-        tv_relate_business.setOnClickListener(this);
-        if (!getIntent().getBooleanExtra("isMe", true)) {
+        if (getIntent().getBooleanExtra("isMe", true)) {
+            tv_address_refresh.setOnClickListener(this);
+            tv_date_start.setOnClickListener(this);
+            tv_date_end.setOnClickListener(this);
+            tv_date_start.setKeyListener(null);
+            tv_date_end.setKeyListener(null);
+            tv_customer_login.setOnClickListener(this);
+            tv_visit_steps.setKeyListener(null);
+            tv_relate_business.setKeyListener(null);
+            tv_visit_steps.setOnClickListener(this);
+            tv_relate_business.setOnClickListener(this);
+        } else {
             //当不可编辑tv_date_end
             tv_date_start.setFocusable(false);
             tv_date_end.setFocusable(false);
@@ -139,6 +140,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             tv_address_login.setText(getJSONString(object, "address"));
             tv_visit_theme.setText(getJSONString(object, "vr_title"));
             tv_visit_steps.setText(getJSONString(object, "vr_nichestep"));
+            tv_visit_content.setText(getJSONString(object, "vr_detail"));
         }
     }
 
@@ -285,6 +287,9 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                             "\"vr_cuname\":\"" +
                             CommonUtil.getNoMarkEditText(tv_customer_login) +
                             "\",\n" +
+                            "\"vr_cucontact\":\"" +
+                            CommonUtil.getNoMarkEditText(tv_linksman_login) +
+                            "\",\n" +
                             "\"vr_contact\":\"" +
                             CommonUtil.getNoMarkEditText(tv_linksman_login) +
                             "\",\n" +
@@ -297,7 +302,6 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                             "\"vr_detail\":\"" +
                             CommonUtil.getNoMarkEditText(tv_visit_content) +
                             "\",\n" +
-
                             "\"vr_recorddate\":\"" +
                             DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd") +
                             "\",\n" +
@@ -394,7 +398,6 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             if (validator.validate(b.getObject())) {
                 com.alibaba.fastjson.JSONObject object = JSON.parseObject(b.getObject());
                 cu_code = object.containsKey("CU_CODE") ? object.getString("CU_CODE") : "";
-                Log.i("gongpengming", "cu_code=" + (StringUtils.isEmpty(cu_code) ? "空的" : cu_code));
                 tv_customer_login.setText(object.containsKey("CU_NAME") ? object.getString("CU_NAME") : " ");
                 tv_linksman_login.setText(object.containsKey("CU_CONTACT") ? object.getString("CU_CONTACT") : " ");
                 tv_address_login.setText(object.containsKey("CU_ADD1") ? object.getString("CU_ADD1") : " ");

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

@@ -30,6 +30,7 @@ import com.xzjmyk.pm.activity.ui.erp.view.SingleDialog;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.util.StringUtils;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.wheel.DateTimePicker;
 
 import java.util.ArrayList;
@@ -151,7 +152,14 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
             case R.id.btn_save:
-                sendHttpResquest(Constants.HTTP_SUCCESS_INIT);
+                String start = tv_date_select.getText().toString().trim();
+                String end = tv_date_end.getText().toString().trim();
+                if (!StringUtils.isEmpty(start) && !StringUtils.isEmpty(end) && start.compareTo(end) < 0) {
+                    sendHttpResquest(Constants.HTTP_SUCCESS_INIT);
+                } else {
+                    Crouton.makeText(ct, "开始时间不能小于结束时间");
+                }
+
                 break;
             case android.R.id.home:
                 onBackPressed();

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

@@ -4,7 +4,6 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.util.Log;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
@@ -470,11 +469,8 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
                 String json = b.getJson();
                 String o = (String) b.getObject();
                 if (StringUtils.isEmpty(json)) {
-                    Log.i("gongpengming", "返回为空的");
                     return;
                 }
-                Log.i("gongpengming", "json=" + json);
-                Log.i("gongpengming", "object=" + o);
                 JsonValidator validator = new JsonValidator();
                 if (validator.validate(json)) {
                     JSONObject object = JSON.parseObject(json);

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

@@ -209,7 +209,6 @@ public class AlarmReceiver extends BroadcastReceiver {
         AlarmManager alarm = (AlarmManager) ct.getSystemService(ct.ALARM_SERVICE);
         alarm.cancel(pi);
     }
-
     //TODO 在这里提醒时候会延迟6分钟不知道为什么
     private void setArmmanager(Context ct, long time) {
         unArmmanager(ct);

+ 0 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java

@@ -10,7 +10,6 @@ import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -274,9 +273,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                     intent = new Intent(activity, VisitReportAddActivity.class);
                     intent.putExtra("type", 1);
                     String chche = object.containsKey("status") ? object.getString("status") == null ? "" : object.getString("status") : "";
-                    Log.i("gongpengming", "chche=" + chche);
                     boolean me = (isMe && !"已拜访".equals(chche));
-                    Log.i("gongpengming", "me=" + me);
                     intent.putExtra("isMe", me);
                     intent.putExtra("isAgen", true);
                     OABean bean = JSON.parseObject(object.toString(), OABean.class);
@@ -286,9 +283,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener {
                     intent = new Intent(activity, VisitReportAddActivity.class);
                     intent.putExtra("type", 2);
                     String chche = object.containsKey("status") ? object.getString("status") == null ? "" : object.getString("status") : "";
-                    Log.i("gongpengming", "chche=" + chche);
                     boolean me = (isMe && !"已拜访".equals(chche) && !"".equals(chche));
-                    Log.i("gongpengming", "me=" + me);
                     intent.putExtra("isMe", me);
                     intent.putExtra("isAgen", true);
                     intent.putExtra("data", object.toString());

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

@@ -4,6 +4,7 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -236,7 +237,8 @@ public class OutLogListActivity extends BaseActivity {
         }
 
         private String getImageUrl(int id) {
-            return Constants.getAppBaseUrl(ct) + "common/downloadbyId.action?id=" + id;
+            Log.i("gongpengming", Constants.getAppBaseUrl(ct) + "common/downloadbyId.action?id=" + id+"&sessionId="+ CommonUtil.getSharedPreferences(ct, "sessionId")+"&master="+CommonUtil.getSharedPreferences(ct, "erp_master"));
+            return Constants.getAppBaseUrl(ct) + "common/downloadbyId.action?id=" + id+"&sessionId="+ CommonUtil.getSharedPreferences(ct, "sessionId")+"&master="+CommonUtil.getSharedPreferences(ct, "erp_master");
         }
 
         class ViewHolder {

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

@@ -1,22 +1,25 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
 import android.app.Activity;
-import android.content.DialogInterface;
+import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.support.v7.app.AlertDialog;
 import android.text.Editable;
 import android.text.TextWatcher;
+import android.view.Gravity;
+import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
-import android.view.WindowManager;
+import android.view.inputmethod.InputMethodManager;
 import android.widget.EditText;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.PopupWindow;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
@@ -73,6 +76,7 @@ public class OutSigninOKActivity extends BaseActivity {
     private ImageView image;
     private String baseUrl;
     private Uri mNewPhotoUri;
+    private int mo_id = 0;
     private boolean isSubmit = false;
 
     @Override
@@ -97,25 +101,14 @@ public class OutSigninOKActivity extends BaseActivity {
             if (!StringUtils.isEmpty(path) && new File(path).isFile())
                 uploadFile(path);
             else
-                CodeUtil.getInstance().getCode(ct, "mobile_outsign", new CodeUtil.OnCodeLinstener() {
-                    @Override
-                    public void callBack(String code) {
-                        doSignin(code, 0);
-                    }
-                });
+                doSigninn();
+        } else if (item.getItemId() == android.R.id.home) {
+            InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+            imm.hideSoftInputFromWindow(text_edit.getWindowToken(), 0);
         }
         return super.onOptionsItemSelected(item);
     }
 
-    @Override
-    protected void onStop() {
-        super.onStop();
-        if (getWindow().getAttributes().softInputMode == WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED) {
-            //隐藏软键盘
-            getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
-        }
-    }
-
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         getMenuInflater().inflate(R.menu.menu_push, menu);
@@ -166,29 +159,8 @@ public class OutSigninOKActivity extends BaseActivity {
     private String path = null;
 
     private void showPopup() {
-        AlertDialog.Builder builder = new AlertDialog.Builder(ct);
-        String[] items = {"拍照", "从相册中选择"};
-        builder.setTitle("选择操作");
-        builder.setItems(items, new DialogInterface.OnClickListener() {
-            @Override
-            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);
-                    }
-                }
-            }
-        });
-        builder.show();
+        mNewPhotoUri = CameraUtil.getOutputMediaFileUri(OutSigninOKActivity.this, CameraUtil.MEDIA_TYPE_IMAGE);
+        CameraUtil.captureImage(OutSigninOKActivity.this, mNewPhotoUri, REQUEST_CODE_CAPTURE_PHOTO);
     }
 
     private int getID(String chche) {
@@ -206,17 +178,15 @@ public class OutSigninOKActivity extends BaseActivity {
 
     private void uploadFile(String path) {
         if (StringUtils.isEmpty(path)) return;
-        File finalFile = new File(path);
-        if (!finalFile.isFile()) return;
+        File waterBitmapToFile = ImageUtil.compressWaterBitmapToFile(path, 100, 300, 300
+                , time_tv.getText().toString().trim(), addr_tv.getText().toString().trim(), 0);
+        if (!waterBitmapToFile.isFile()) return;
         RequestParams params = new RequestParams();
         params.addQueryStringParameter("master", CommonUtil.getSharedPreferences(ct, "erp_master"));
         params.addHeader("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         params.addBodyParameter("em_code", CommonUtil.getSharedPreferences(ct, "erp_username"));
         params.addBodyParameter("type", "common");
-        if (isTask)
-            params.addBodyParameter("img", ImageUtil.compressBitmapToFile(path, 100, 300, 300));
-        else
-            params.addBodyParameter("img", finalFile);
+        params.addBodyParameter("img", waterBitmapToFile);
         String url = Constants.getAppBaseUrl(ct) + "mobile/uploadEmployeeAttach.action";
         final HttpUtils http = new HttpUtils();
         http.send(HttpRequest.HttpMethod.POST, url, params, new RequestCallBack<String>() {
@@ -229,9 +199,7 @@ public class OutSigninOKActivity extends BaseActivity {
             @Override
             public void onLoading(long total, long current, boolean isUploading) {
                 if (isUploading) {
-
                 } else {
-
                 }
             }
 
@@ -243,14 +211,10 @@ public class OutSigninOKActivity extends BaseActivity {
                 if (validator.validate(responseInfo.result) && JSON.parseObject(responseInfo.result).getBoolean("success")) {
                     id = getID(JSON.parseObject(responseInfo.result).getString("id"));
                 }
-                CodeUtil.getInstance().getCode(ct, "mobile_outsign", new CodeUtil.OnCodeLinstener() {
-                    @Override
-                    public void callBack(String code) {
-                        doSignin(code, id);
-                    }
-                });
+                doSigninn();
             }
 
+
             @Override
             public void onFailure(HttpException error, String msg) {
                 ViewUtil.ToastMessage(ct, "上传失败:" + msg);
@@ -266,22 +230,74 @@ public class OutSigninOKActivity extends BaseActivity {
                     path = mNewPhotoUri.getPath();
 //                    path = CameraUtil.getImagePathFromUri(ct, mNewPhotoUri);
                     if (StringUtils.isEmpty(path)) return;
-                    ImageLoader.getInstance().displayImage(Uri.fromFile(new File(path)).toString(), image);
+                    final File waterBitmapToFile = ImageUtil.compressWaterBitmapToFile(path, 100, 300, 300
+                            , time_tv.getText().toString().trim(), addr_tv.getText().toString().trim(), 0);
+//                    ImageLoader.getInstance().displayImage(Uri.fromFile(new File(path)).toString(), image);
+                    ImageLoader.getInstance().displayImage(Uri.fromFile(waterBitmapToFile).toString(), image);
+                    image.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            LayoutInflater inflater = LayoutInflater.from(OutSigninOKActivity.this);
+                            final View largeImageView = inflater.inflate(R.layout.layout_large_image, null);
+                            ImageView imageView = (ImageView) largeImageView.findViewById(R.id.large_image_iv);
+                            ImageLoader.getInstance().displayImage(Uri.fromFile(waterBitmapToFile).toString(), imageView);
+                            final PopupWindow largeImageWindow = new PopupWindow(largeImageView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
+                            largeImageWindow.setAnimationStyle(R.style.Animation_CustomPopup);
+                            largeImageWindow.setFocusable(true);
+                            largeImageWindow.setOutsideTouchable(true);
+                            largeImageWindow.showAtLocation(View.inflate(OutSigninOKActivity.this, R.layout.activity_out_signin_ok, null), Gravity.CENTER, 0, 0);
+
+                            imageView.setOnClickListener(new View.OnClickListener() {
+                                @Override
+                                public void onClick(View v) {
+                                    if (largeImageWindow.isShowing()) {
+                                        largeImageWindow.dismiss();
+                                    }
+                                }
+                            });
+                        }
+                    });
                 } else {
                     ToastUtil.showToast(this, R.string.c_take_picture_failed);
                 }
             }
-        } else if (requestCode == REQUEST_CODE_PICK_PHOTO) {// 选择一张图片,然后立即调用裁减
+        }
+        /*else if (requestCode == REQUEST_CODE_PICK_PHOTO) {// 选择一张图片,然后立即调用裁减
             if (resultCode == Activity.RESULT_OK) {
                 if (data != null && data.getData() != null) {
                     path = CameraUtil.getImagePathFromUri(ct, data.getData());
+                    final File waterBitmapToFile = ImageUtil.compressWaterBitmapToFile(path, 100, 300, 300
+                            , time_tv.getText().toString().trim(), addr_tv.getText().toString().trim(), 0);
                     if (StringUtils.isEmpty(path)) return;
-                    ImageLoader.getInstance().displayImage(Uri.fromFile(new File(path)).toString(), image);
+                    ImageLoader.getInstance().displayImage(Uri.fromFile(waterBitmapToFile).toString(), image);
+                    image.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View v) {
+                            LayoutInflater inflater = LayoutInflater.from(OutSigninOKActivity.this);
+                            final View largeImageView = inflater.inflate(R.layout.layout_large_image, null);
+                            ImageView imageView = (ImageView) largeImageView.findViewById(R.id.large_image_iv);
+                            ImageLoader.getInstance().displayImage(Uri.fromFile(waterBitmapToFile).toString(), imageView);
+                            final PopupWindow largeImageWindow = new PopupWindow(largeImageView, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
+                            largeImageWindow.setAnimationStyle(R.style.Animation_CustomPopup);
+                            largeImageWindow.setFocusable(true);
+                            largeImageWindow.setOutsideTouchable(true);
+                            largeImageWindow.showAtLocation(View.inflate(OutSigninOKActivity.this, R.layout.activity_out_signin_ok, null), Gravity.CENTER, 0, 0);
+
+                            imageView.setOnClickListener(new View.OnClickListener() {
+                                @Override
+                                public void onClick(View v) {
+                                    if (largeImageWindow.isShowing()) {
+                                        largeImageWindow.dismiss();
+                                    }
+                                }
+                            });
+                        }
+                    });
                 } else {
                     ToastUtil.showToast(this, R.string.c_photo_album_failed);
                 }
             }
-        }
+        }*/
     }
 
 
@@ -293,8 +309,16 @@ public class OutSigninOKActivity extends BaseActivity {
             String message = (String) msg.getData().get("result");
             switch (msg.what) {
                 case whatSignin:
+                    isSubmit = false;
                     JSONObject json = JSON.parseObject(message);
                     if (json.containsKey("success") && json.getBoolean("success")) {
+                        doNextNet();
+                    } else {
+                        ToastUtil.showToast(ct, "签到失败");
+                    }
+                    break;
+                case 0x13:
+                    if (JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
                         ToastUtil.showToast(ct, "签到成功");
                         Intent intent = new Intent();
                         intent.putExtra("result", true);
@@ -311,6 +335,7 @@ public class OutSigninOKActivity extends BaseActivity {
         }
     };
 
+
     AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>() {
         @Override
         protected Void doInBackground(Void... voids) {
@@ -331,18 +356,53 @@ public class OutSigninOKActivity extends BaseActivity {
         }
     };
 
+    private void doSigninn() {
+        if (isSubmit) {
+            Crouton.makeText(ct, "当前正在提交");
+            return;
+        }
+        isSubmit = true;
+        CodeUtil.getInstance().getId(ct, "MOBILE_OUTSIGN_SEQ", new CodeUtil.OnCodeLinstener() {
+            @Override
+            public void callBack(String code) {
+                if (!StringUtils.isEmpty(code) && isNum(code))
+                    mo_id = Integer.valueOf(code);
+                doSignin(mo_id, id);
+            }
+        });
+    }
+
+    private boolean isNum(String chche) {
+        Pattern pattern = Pattern.compile("[0-9]+");
+        Matcher matcher = pattern.matcher(chche);
+        return matcher.matches();
+    }
+
+
+    private void doNextNet() {
+        progressDialog.show();
+        //获取网络数据
+        String url = baseUrl + "common/submitCommon.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("caller", "Mobile_outsign");
+        param.put("id", mo_id);
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x13, null, null, "post");
+    }
+
     /**
      * 签到
-     *
-     * @param code 编号
      */
-    private void doSignin(String code, int id) {
+    private void doSignin(int mo_id, int id) {
         progressDialog.show();
         //获取网络数据
         String url = baseUrl + "mobile/oa/saveOutSign.action";
         final Map<String, Object> param = new HashMap<>();
         OutSigninBean bean = new OutSigninBean();
-        bean.setMo_code(code);
+        if (mo_id > 0)
+            bean.setMo_id(mo_id);
         bean.setMo_address(addr_tv.getText().toString().trim());
         bean.setMo_mancode(CommonUtil.getSharedPreferences(this, "erp_username"));
         bean.setMo_man(MyApplication.getInstance().mLoginUser.getNickName());

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

@@ -4,7 +4,6 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -119,12 +118,11 @@ public class SelectActivity extends BaseActivity {
     private void initView() {
         if (!StringUtils.isEmpty(title)) getSupportActionBar().setTitle(title);
         list = (ListView) findViewById(R.id.list);
-
         emptyLayout = new EmptyLayout(ct, list);
         emptyLayout.setShowLoadingButton(false);
         emptyLayout.setShowEmptyButton(false);
         emptyLayout.setShowErrorButton(false);
-        emptyLayout.setEmptyViewRes(R.layout.oa_empty_list);
+        emptyLayout.setEmptyViewRes(R.layout.view_empty);
         adapter = new ListAdapter();
         list.setAdapter(adapter);
         if (type == 1)
@@ -134,10 +132,6 @@ public class SelectActivity extends BaseActivity {
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                 if (isSingle) {
                     SelectBean bean = formBeaan.get(i);
-                    if (bean.getObject() == null) {
-                        Log.i("gongpengming", "空的");
-                    } else
-                        Log.i("gongpengming", "不是空的" + bean.getObject());
                     Intent intent = new Intent();
                     intent.putExtra("data", bean);
                     setResult(0x20, intent);
@@ -166,11 +160,6 @@ public class SelectActivity extends BaseActivity {
             param = intent.getParcelableExtra("showKey");
             Bundle bundle = getIntent().getExtras();
             param = (HashMap<String, Object>) bundle.getSerializable("param");
-            Log.i("gongpengming", "action=" + action);
-            Log.i("gongpengming", "key=" + key);
-            Log.i("gongpengming", "showKey=" + showKey);
-            Log.i("gongpengming", "param=" + param == null ? "空的" : "不为空");
-            Log.i("gongpengming", "param1=" + param.get("caller"));
         } else if (type == 2) {
             formBeaan = intent.getParcelableArrayListExtra("data");
         }
@@ -185,10 +174,8 @@ public class SelectActivity extends BaseActivity {
         if (param != null) {
             param.put("sessionId", sessionId);
         } else {
-            Log.i("gongepngming", "是空的的");
             return;
         }
-        Log.i("gongpengming", "url" + url);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, param, handler, headers, 0x11, null, null, "post");

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

@@ -96,7 +96,7 @@ public class SelectListActivity extends BaseActivity {
                     break;
                 case VISIT_NICHECODES:
                     message = msg.getData().getString("result");
-                    Log.d("handlemessage:",message);
+                    Log.d("handlemessage:", message);
                     if (JSON.parseObject(message) != null ||
                             JSON.parseObject(message).containsKey("success") || JSON.parseObject(message).getBoolean("success")
                             && JSON.parseObject(message).containsKey("stages")) {
@@ -184,6 +184,7 @@ public class SelectListActivity extends BaseActivity {
     private void init() {
         recycler = (ListView) findViewById(R.id.list);
         emptyLayout = new EmptyLayout(ct, recycler);
+        emptyLayout.setEmptyViewRes(R.layout.view_empty);
         emptyLayout.setShowLoadingButton(false);
         emptyLayout.setShowEmptyButton(false);
         emptyLayout.setShowErrorButton(false);
@@ -232,6 +233,7 @@ public class SelectListActivity extends BaseActivity {
             }
         });
     }
+
     public void nichecodes(String chche) {
         progressDialog.show();
         String url = Constants.getAppBaseUrl(ct) + "mobile/crm/getnichecodes.action";

+ 0 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/SigninAdapter.java

@@ -93,10 +93,7 @@ public class SigninAdapter extends RecyclerView.Adapter<SigninAdapter.ViewHoler>
                     end = "";
             boolean isFrist = false;
             for (String e : b.getSigninList()) {
-                Log.i("gongpengmingTime", e);
-                Log.i("gongpengmingTime", b.getStartSignin());
                 if (!isFrist && e.compareTo(b.getStartSignin()) > 0 && e.compareTo(getNext90(b.getStartTime(), true)) < 0) {
-                    Log.i("gongpengmingTime", "进来了");
                     holder.signin.setText(e);
                     start = getTag(b.getStartTime(), b.getStartSignin(), getNext90(b.getStartTime(), true), e, true);
                     isFrist = true;

+ 56 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/ContactFragment.java

@@ -0,0 +1,56 @@
+package com.xzjmyk.pm.activity.ui.erp.fragment;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.sortlist.SideBar;
+import com.xzjmyk.pm.activity.ui.base.EasyFragment;
+
+import static com.xzjmyk.pm.activity.R.id.listview;
+
+
+/**
+ * Created by pengminggong on 2016/10/12.
+ */
+
+public class ContactFragment extends EasyFragment {
+    @ViewInject(R.id.sidebar)
+    private SideBar sidebar;
+    @ViewInject(R.id.text_dialog)
+    private TextView text_dialog;
+    @ViewInject(listview)
+    private PullToRefreshListView refreshListView;
+    private ListView listView;
+    private View headerView;
+
+    @Override
+    protected int inflateLayoutId() {
+        return R.layout.fragment_contact;
+    }
+
+    @Override
+    protected void onCreateView(Bundle savedInstanceState, boolean createView) {
+        ViewUtils.inject(getmRootView());
+        initView();
+    }
+
+    private void initView() {
+        View headerView = LayoutInflater.from(ct).inflate(R.layout.header_fragment_contact, null);
+        listView = refreshListView.getRefreshableView();
+        setHeaderView(headerView);
+
+    }
+
+
+    public void setHeaderView(View headerView) {
+        listView.addHeaderView(headerView);
+
+    }
+}

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

@@ -102,7 +102,9 @@ public class OutofficeFragment extends EasyFragment implements View.OnClickListe
                         isAdmin = object.containsKey("isAdmin") ? ("1".equals(object.getString("isAdmin")) ? true : false) : false;
                     }
                     if (!isAdmin) {
-                        ct.getWindow().findViewById(R.id.title).setVisibility(View.GONE);
+                        if (ct != null)
+                            if (ct.getWindow().findViewById(R.id.title) != null)
+                                ct.getWindow().findViewById(R.id.title).setVisibility(View.GONE);
                     }
                     break;
                 case 0x13:

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

@@ -11,6 +11,7 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.text.Html;
 import android.text.Spanned;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.ImageView;
@@ -22,6 +23,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baidu.mapapi.search.core.PoiInfo;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
@@ -39,6 +41,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.CalendarUtils;
+import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.wheel.OASigninPicker;
@@ -56,6 +59,9 @@ import java.util.LinkedHashMap;
 import java.util.Locale;
 import java.util.Map;
 
+import static com.umeng.socialize.utils.DeviceConfig.context;
+import static com.xzjmyk.pm.activity.ui.erp.activity.WebViewCommActivity.TIME;
+
 /**
  * 常量:
  * 0x11:下拉班次数据what
@@ -96,6 +102,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
     private long time = System.currentTimeMillis();
     private String signinTime;
     BdLocationHelper locationHelper = null;//
+    private int loginNum = 0;
     private Handler handler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
@@ -111,7 +118,13 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                             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());
+                            if (loginNum < 3 && distance > 1000000) {
+                                returnLogin();
+                            }
                         } else {
+                            if (loginNum < 3) {
+                                returnLogin();
+                            }
                             Crouton.makeText(ct, "当前账号没有分配公司地址,请联系管理员!!");
                         }
                         if (jsonObject.containsKey("wd_degree")) {//当该用户有排班
@@ -140,15 +153,19 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                     else
                         Crouton.makeText(ct, "签到失败");
                     break;
+                case 0x16:
+                    //登陆成功
+                    loadNetData(System.currentTimeMillis());
+                    break;
                 case 0x19:
                     String str = msg.getData().getString("time");
                     signinTime = StringUtils.isEmpty(str) ? TimeUtils.f_long_2_str(time) : str;
                     break;
                 default:
-                    if ("网络未连接!".equals(message))
-                        Crouton.makeText(ct, message);
-                    else
-                        Crouton.makeText(ct, message);
+                    Crouton.makeText(ct, message);
+                    if (StringUtils.isInclude(message, "会话已断开")) {
+                        returnLogin();
+                    }
                     break;
             }
         }
@@ -234,6 +251,16 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
         listener();
     }
 
+    private void returnLogin() {
+        //TODO 重新登陆
+        loginNum++;
+        if (AppConfig.DEBUG)
+            Log.i("gongpengming", "重新登陆");
+        ViewUtil.ct = ct;
+        ViewUtil.LoginERPTask(ct, handler, 0x16);
+        PreferenceUtils.putLong(context, TIME, System.currentTimeMillis());
+    }
+
     private boolean isOpenGps() {
         LocationManager locationManager = (LocationManager) getContext().
                 getSystemService(Context.LOCATION_SERVICE);
@@ -307,6 +334,9 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                 int resultCode = MyApplication.getInstance().getBdLocationHelper().getResultCode();
                 if (isOk) {
                     setBaiduLocation();
+                    if (distance > companyDistance && !isOpenGps()) {
+                        Crouton.makeText(ct, "如果发现定位不准,请及时打开gps并重新定位", 1000);
+                    }
                 } else {
                     if (resultCode == 62) {
                         Crouton.makeText(ct, "定位失败,请查看是否开启定位权限", 2000);
@@ -609,6 +639,8 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
             code = CommonUtil.getSharedPreferences(ct, "erp_username");
         }
         param.put("emcode", code);
+        param.put("master", CommonUtil.getSharedPreferences(ct, "erp_master"));
+        param.put("sessionUser", CommonUtil.getSharedPreferences(ct, "erp_master"));
         param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));

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

@@ -258,12 +258,14 @@ public class ViewUtil {
         if (!(ct instanceof LoginActivity)){
             //取缓存
             if (!StringUtils.isEmpty(CommonUtil.getSharedPreferences(ct,"loginJson"))){
+                Log.i("company", "切换公司走缓存 手机号:"+user_phone+"密码:"+user_password);
                 showDialogCompany(CommonUtil.getSharedPreferences(ct,"loginJson"), user_phone, user_password);
             }else{
                 ToastMessage(ct,"缓存没有公司信息,请重新登录!");
             }
           
         }else{
+            Log.i("company", "切换公司走网络");
             //登录界面过来,不走缓存
             String url = Constants.BASE_URL_LOGIN;
             Map<String, String> params = new HashMap<String, String>();
@@ -313,15 +315,19 @@ public class ViewUtil {
                     break;
                 case Constants.SUCCESS_ERP:
                     String result = msg.getData().getString("result");
-                    boolean success = JSON.parseObject(result).getBoolean("success");
-                    if (success) {
-                        Intent intent = new Intent("com.app.home.update");
-                        intent.putExtra("falg", "home");
-                        ct.sendBroadcast(intent);
-                        ChangeStatusERP(msg.getData().getString("result"));
-                    } else {
-                        String reason = JSON.parseObject(result).getString("reason");
-                        ToastMessage(ct, reason);
+                    if (new JsonValidator().validate(result)){
+                        boolean success = JSON.parseObject(result).getBoolean("success");
+                        if (success) {
+                            Intent intent = new Intent("com.app.home.update");
+                            intent.putExtra("falg", "home");
+                            ct.sendBroadcast(intent);
+                            ChangeStatusERP(msg.getData().getString("result"));
+                        } else {
+                            String reason = JSON.parseObject(result).getString("reason");
+                            ToastMessage(ct, reason);
+                        }
+                    }else{
+                        ToastMessage(ct,"接口数据非法!");
                     }
                     break;
                 case Constants.SUCCESS_B2B:
@@ -377,6 +383,8 @@ public class ViewUtil {
             CommonUtil.setSharedPreferences(ct, "erp_login", true);
         }
         if (erp_phone != null) {
+            Log.i("login_status", "ChangeStatusERP:"+erp_phone);
+            Log.i("login_status", "ChangeStatusERP:"+erp_password);
             CommonUtil.setSharedPreferences(ct, "user_phone", erp_phone);
             CommonUtil.setSharedPreferences(ct, "user_password", erp_password);
         }
@@ -400,6 +408,8 @@ public class ViewUtil {
 
     public static void ChangeStatusB2B(String result) {
         if (erp_phone != null) {
+            Log.i("login_status", "ChangeStatusB2B:"+erp_phone);
+            Log.i("login_status", "ChangeStatusB2B:"+erp_password);
             CommonUtil.setSharedPreferences(ct, "user_phone", erp_phone);
             CommonUtil.setSharedPreferences(ct, "user_password", erp_password);
         }
@@ -505,6 +515,7 @@ public class ViewUtil {
                 } else if (map.getPlatform().equals("B2B")) {
                     b2b_uu = map.getAccount();
                     erp_phone = phone;
+                    erp_password=password;
                 }
 
             }

+ 30 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/CodeUtil.java

@@ -6,11 +6,14 @@ import android.os.Message;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
+import static com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.ct;
+
 /**
  * 多数用到了code  抽取出来使用
  * Created by gongpm on 2016/8/5.
@@ -41,6 +44,16 @@ public class CodeUtil {
                     linstener.callBack(code);
                     return;
                 }
+            } else if (msg.what == 0x12) {
+                if (JSON.parseObject(message).containsKey("success") && JSON.parseObject(message).getBoolean("success")) {
+                    code = String.valueOf(JSON.parseObject(message).getInteger("id"));
+                } else {
+                    Crouton.makeText(ct, "获取id错误");
+                }
+                if (linstener != null) {
+                    linstener.callBack(code);
+                    return;
+                }
             }
             //TODO 容错、待修改(网络修复后)
             if (linstener != null) {
@@ -49,6 +62,17 @@ public class CodeUtil {
         }
     };
 
+    //外勤
+    private void getIdByNet(Context context, String sql) {
+        String url = CommonUtil.getSharedPreferences(context, "erp_baseurl") + "common/getId.action";
+        final Map<String, Object> param = new HashMap<>();
+        param.put("seq", sql);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(context, "sessionId"));
+        com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.httpSendRequest(context, url, param, handler, headers, 0x12, null, null, "post");
+    }
+
+    //    private void
     private void getCodeByNet(Context context, String titleName) {
         String url = CommonUtil.getSharedPreferences(context, "erp_baseurl") + "common/getCodeString.action";
         final Map<String, Object> param = new HashMap<>();
@@ -64,6 +88,12 @@ public class CodeUtil {
 
     private CodeUtil() {
     }
+
+    public void getId(Context context, String sql, OnCodeLinstener linstener) {
+        this.linstener = linstener;
+        getIdByNet(context, sql);
+    }
+
     public void getCode(Context context, String titleName, OnCodeLinstener linstener) {
         this.linstener = linstener;
         getCodeByNet(context, titleName);

+ 0 - 9
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/calendar/views/MonthView.java

@@ -128,10 +128,8 @@ public class MonthView extends View {
 
     @Override
     public boolean onTouchEvent(MotionEvent event) {
-        Log.i("gongpengming", "onTouchEvent");
         switch (event.getAction()) {
             case MotionEvent.ACTION_DOWN:
-                Log.i("gongpengming", "MotionEvent.ACTION_DOWN");
                 mScroller.forceFinished(true);
                 mSlideMode = null;
                 isNewEvent = true;
@@ -139,7 +137,6 @@ public class MonthView extends View {
                 lastPointY = (int) event.getY();
                 break;
             case MotionEvent.ACTION_MOVE:
-                Log.i("gongpengming", "MotionEvent.ACTION_MOVE");
                 if (isNewEvent) {
                     if (Math.abs(lastPointX - event.getX()) > 100) {
                         mSlideMode = SlideMode.HOR;
@@ -158,7 +155,6 @@ public class MonthView extends View {
                 }
                 break;
             case MotionEvent.ACTION_UP:
-                Log.i("gongpengming", "MotionEvent.ACTION_UP");
                 if (mSlideMode == SlideMode.VER) {
                     if (Math.abs(lastPointY - event.getY()) > 25) {
                         if (lastPointY < event.getY()) {
@@ -221,13 +217,8 @@ public class MonthView extends View {
 
     @Override
     protected void onSizeChanged(int w, int h, int oldW, int oldH) {
-        Log.i("gongpengming", "onSizeChanged");
-        Log.i("gongpengming", "w=" + w + "   oldW=" + oldW);
-        Log.i("gongpengming", "h=" + h + "    h=" + oldH);
-
         width = w;
         height = h;
-
         criticalWidth = (int) (1F / 5F * width);
         criticalHeight = (int) (1F / 5F * height);
 

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java

@@ -292,7 +292,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         switch (id) {
             case R.id.rl_company_change:
                 com.xzjmyk.pm.activity.ui.erp.net.ViewUtil.LoginTask(MyApplication.getInstance().mLoginUser.getTelephone()
-                        , CommonUtil.getSharedPreferences(ct, "user_password"), ct);
+                        , CommonUtil.getSharedPreferences(ct,"user_password"), ct);
                 break;
             case R.id.info_rl://个人资料
                 startActivity(new Intent(getActivity(), BaseInfoActivity.class));

+ 51 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/ImageUtil.java

@@ -3,7 +3,11 @@ package com.xzjmyk.pm.activity.util;
 import android.content.Context;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
 import android.graphics.Matrix;
+import android.graphics.Paint;
+import android.graphics.Rect;
 import android.media.ExifInterface;
 import android.util.Log;
 
@@ -199,6 +203,52 @@ public class ImageUtil {
     }
 
 
+    /**
+     * 压缩已存在的图片对象,并添加水印,并返回压缩后的图片文件(压缩质量,压缩尺寸函数)
+     * @param  :图片对象
+     * @param quality:1-100;100表示不质量压缩
+     * @param reqsW:压缩宽度
+     * @param reqsH:压缩高度
+     * @param time: 照片拍摄时间
+     * @param address:照片拍摄地点
+     * @param alpha:水印透明度
+     * @return
+     */
+    public final static File compressWaterBitmapToFile(String filePath, int quality,int reqsW, int reqsH, String time, String address, int alpha) {
+        Bitmap bitmap=compressBitmapWithFilePath(filePath,reqsW,reqsH);
+        try {
+            // ByteArrayOutputStream baos = new ByteArrayOutputStream();//放入内存
+            Paint paint = new Paint();
+            paint.setTextSize(16);
+            paint.setAlpha(alpha);
+            paint.setAntiAlias(true);
+            paint.setColor(Color.RED);
+
+            //如果不用copy的方法,直接引用会对资源文件进行修改,而Android是不允许在代码里修改res文件里的图片
+            bitmap = bitmap.copy(Bitmap.Config.ARGB_8888,true);
+
+            Rect bounds = new Rect();
+            Canvas canvas = new Canvas(bitmap);
+            canvas.drawBitmap(bitmap,0,0,null);
+            paint.getTextBounds(time, 0, time.length(), bounds);
+            canvas.drawText(time, 10, 25, paint);
+            paint.getTextBounds(address,0,address.length(),bounds);
+            canvas.drawText(address,10,50,paint);
+
+            File file=new File(filePath);
+            BufferedOutputStream baos = new BufferedOutputStream(new FileOutputStream(file));
+            bitmap.compress(Bitmap.CompressFormat.JPEG, quality, baos);//压缩质量
+            baos.flush();
+            baos.close();
+            return file;
+        } catch (IOException e) {
+            e.printStackTrace();
+            return null;
+        }
+    }
+
+
+
     /**
      * 压缩已存在的图片对象,并返回压缩后的图片文件(压缩质量,压缩尺寸函数)
      * @param bitmap :图片对象
@@ -248,7 +298,7 @@ public class ImageUtil {
         final BitmapFactory.Options options = new BitmapFactory.Options();
         options.inJustDecodeBounds = true;
         BitmapFactory.decodeFile(filePath, options);
-        options.inSampleSize =   calculateInSampleSize(options, reqsW, reqsH);
+        options.inSampleSize = calculateInSampleSize(options, reqsW, reqsH);
         options.inJustDecodeBounds = false;
         return BitmapFactory.decodeFile(filePath, options);
     }

+ 0 - 1
WeiChat/src/main/res/layout/activity_oamain.xml

@@ -296,7 +296,6 @@
 
         <com.xzjmyk.pm.activity.view.MyListView
             android:id="@+id/oa_listview"
-            android:layout_marginTop="6dp"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_marginBottom="30dp"

+ 7 - 8
WeiChat/src/main/res/layout/activity_visit_report_add.xml

@@ -218,23 +218,22 @@
                 android:textSize="@dimen/text_main" />
 
             <TextView
+                android:id="@+id/textView"
                 style="@style/form_relative_left_text"
                 android:layout_marginLeft="20dp"
                 android:layout_toRightOf="@+id/tv_id6"
                 android:text="*"
-                android:textColor="@color/red"
-                android:id="@+id/textView" />
+                android:textColor="@color/red" />
 
             <com.andreabaccega.widget.FormEditText
                 android:id="@+id/tv_visit_theme"
                 style="@style/form_relative_right_text"
-                android:hint="请输入"
-                editTextFormExample:testType="nocheck"
                 android:layout_centerVertical="true"
-                android:layout_toRightOf="@+id/textView"
-                android:layout_toEndOf="@+id/textView"
                 android:layout_marginLeft="11dp"
-                android:layout_marginStart="11dp" />
+                android:layout_toEndOf="@+id/textView"
+                android:layout_toRightOf="@+id/textView"
+                android:hint="请输入"
+                editTextFormExample:testType="nocheck" />
         </RelativeLayout>
 
         <RelativeLayout
@@ -292,7 +291,7 @@
                 android:layout_toRightOf="@+id/tv_id9"
                 android:text="*"
                 android:textColor="@color/red"
-                android:visibility="gone"/>
+                android:visibility="gone" />
 
             <com.andreabaccega.widget.FormEditText xmlns:editTextFormExample="http://schemas.android.com/apk/res-auto"
                 android:id="@+id/tv_relate_business"

+ 42 - 0
WeiChat/src/main/res/layout/fragment_contact.xml

@@ -0,0 +1,42 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    xmlns:ptr="http://schemas.android.com/tools"
+    android:background="@drawable/bg_main">
+
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/listview"
+        ptr:ptrAnimationStyle="flip"
+        ptr:ptrDrawableEnd="@drawable/default_ptr_rotate"
+        ptr:ptrDrawableStart="@drawable/default_ptr_flip"
+        ptr:ptrHeaderTextColor="@color/refresh"
+        ptr:ptrMode="both"
+        ptr:ptrOverScroll="false"
+        ptr:ptrScrollingWhileRefreshingEnabled="true"
+        ptr:ptrShowIndicator="false"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="#00000000"
+        android:dividerHeight="0dip"
+        android:listSelector="@android:color/transparent" />
+
+    <TextView
+        android:id="@+id/text_dialog"
+        android:layout_width="60.0dip"
+        android:layout_height="60.0dip"
+        android:layout_centerInParent="true"
+        android:layout_gravity="center"
+        android:background="@color/black_trans_99"
+        android:gravity="center"
+        android:textColor="#ffffffff"
+        android:textSize="30.0dip"
+        android:visibility="invisible" />
+
+    <com.xzjmyk.pm.activity.sortlist.SideBar
+        android:id="@+id/sidebar"
+        android:layout_width="30.0dip"
+        android:layout_height="match_parent"
+        android:layout_alignParentRight="true"
+        android:layout_gravity="right|center"
+        android:layout_marginTop="100dp" />
+</RelativeLayout>

+ 0 - 117
WeiChat/src/main/res/layout/fragment_contacts.xml

@@ -1,117 +0,0 @@
-<!--<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"-->
-    <!--android:layout_width="match_parent"-->
-    <!--android:layout_height="match_parent"-->
-    <!--android:background="@color/normal_bg">-->
-
-    <LinearLayout
-        xmlns:android="http://schemas.android.com/apk/res/android"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:orientation="vertical"
-        android:padding="9dp">
-
-        <RelativeLayout
-            android:id="@+id/my_data_rl"
-            style="@style/IMTbleLine">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:drawableLeft="@drawable/set_resume"
-                android:drawablePadding="10dp"
-                android:gravity="center"
-                android:text="企业通讯录"
-                android:textColor="@color/black"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:layout_centerVertical="true"
-                android:background="@drawable/set_list_next"
-                android:contentDescription="@string/app_name" />
-        </RelativeLayout>
-
-        <RelativeLayout
-            android:id="@+id/my_friend_rl"
-            style="@style/IMTbleLine">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:drawableLeft="@drawable/set_fans"
-                android:drawablePadding="10dp"
-                android:gravity="center"
-                android:text="我的群组"
-                android:textColor="@color/black"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:layout_centerVertical="true"
-                android:background="@drawable/set_list_next"
-                android:contentDescription="@string/app_name" />
-        </RelativeLayout>
-
-        <RelativeLayout
-            android:id="@+id/local_video_rl"
-            style="@style/IMTbleLine">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:drawableLeft="@drawable/set_video"
-                android:drawablePadding="10dp"
-                android:gravity="center"
-                android:text="商务伙伴"
-                android:textColor="@color/black"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:layout_centerVertical="true"
-                android:background="@drawable/set_list_next"
-                android:contentDescription="@string/app_name" />
-        </RelativeLayout>
-
-     <!--   <RelativeLayout
-            android:id="@+id/setting_rl"
-            style="@style/IMTbleLine"
-            android:layout_marginTop="9dp">
-
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_centerVertical="true"
-                android:drawableLeft="@drawable/title_set"
-                android:drawablePadding="10dp"
-                android:gravity="center"
-                android:text="常用联系人"
-                android:textColor="@color/black"
-                android:textSize="14sp" />
-
-            <ImageView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_alignParentRight="true"
-                android:layout_centerVertical="true"
-                android:background="@drawable/set_list_next"
-                android:contentDescription="@string/app_name" />
-        </RelativeLayout>-->
-        
-        <!--<FrameLayout-->
-            <!--android:id="@+id/frame_friend_list"-->
-            <!--android:layout_width="match_parent"-->
-            <!--android:layout_height="wrap_content">-->
-        <!--</FrameLayout>-->
-    </LinearLayout>
-
-<!--</ScrollView>-->

+ 17 - 0
WeiChat/src/main/res/layout/header_fragment_contact.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal">
+
+        <TextView
+            android:layout_width="0dp"
+            android:text="企业架构"
+            android:layout_height="wrap_content"
+            android:layout_weight="1" />
+    </LinearLayout>
+</RelativeLayout>

+ 1 - 1
WeiChat/src/main/res/layout/headview_cantacts_menus.xml

@@ -273,7 +273,7 @@
             android:layout_centerVertical="true"
             android:background="@drawable/set_list_next"
             android:contentDescription="@string/app_name"
-            android:visibility="gone" />
+          />
 
     </RelativeLayout>
 

+ 14 - 0
WeiChat/src/main/res/layout/layout_large_image.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/black"
+    android:orientation="vertical">
+
+    <ImageView
+        android:id="@+id/large_image_iv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scaleType="fitCenter"
+        />
+</LinearLayout>

+ 4 - 11
WeiChat/src/main/res/layout/oa_empty_list.xml

@@ -3,23 +3,16 @@
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:background="#EBE9E9"
-    android:orientation="horizontal">
+    android:orientation="vertical">
 
     <View
-        android:layout_width="0dp"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:background="#EBE9E9" />
+        android:layout_width="match_parent"
+        android:layout_height="20dp" />
 
     <ImageView
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_gravity="center"
         android:src="@drawable/oa_empty" />
 
-    <View
-        android:layout_width="0dp"
-        android:layout_height="match_parent"
-        android:layout_weight="1"
-        android:background="#EBE9E9" />
 </LinearLayout>

+ 1 - 0
WeiChat/src/main/res/values/styles.xml

@@ -969,4 +969,5 @@
         <item name="android:textColor">#ffffff</item>
         <item name="android:background">@drawable/bg_blue_button</item>
     </style>
+
 </resources>