Просмотр исходного кода

Merge branch 'developer' of https://gitlab.com/Arisono/SkWeiChat-Baidu into draft

FANGLH 9 лет назад
Родитель
Сommit
46ba7983e9
18 измененных файлов с 411 добавлено и 91 удалено
  1. 1 1
      WeiChat/build.gradle
  2. 21 17
      WeiChat/src/main/AndroidManifest.xml
  3. 5 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/BdLocationHelper.java
  4. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/OABean.java
  5. 32 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  6. 15 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/DestinationActivity.java
  7. 15 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/ErpActivity.java
  8. 38 16
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/LocationSearchActivity.java
  9. 12 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MissionActivity.java
  10. 58 23
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  11. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/MissionAdapter.java
  12. 5 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/OAListAdapter.java
  13. 4 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/HttpUtil.java
  14. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java
  15. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/WorkPresenter.java
  16. 5 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/AutoErpSigninUitl.java
  17. 16 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/PreferenceUtils.java
  18. 177 0
      WeiChat/src/main/res/layout/activity_erp.xml

+ 1 - 1
WeiChat/build.gradle

@@ -13,7 +13,7 @@ android {
     }
     }
     signingConfigs {
     signingConfigs {
         config {
         config {
-            storeFile file('C:/Users/FANGlh/Desktop/UUAPP/applicationsignname[20150409]')
+            storeFile file('D:/config/applicationsignname[20150409]')
             storePassword '13237658359'
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'
             keyPassword '13237658359'

+ 21 - 17
WeiChat/src/main/AndroidManifest.xml

@@ -105,7 +105,7 @@
     <uses-feature android:name="android.hardware.camera" />
     <uses-feature android:name="android.hardware.camera" />
     <!-- 使用照相机权限 -->
     <!-- 使用照相机权限 -->
     <uses-feature android:name="android.hardware.camera.autofocus" />
     <uses-feature android:name="android.hardware.camera.autofocus" />
-    <!--计步器用到-->
+    <!-- 计步器用到 -->
     <uses-feature android:name="android.hardware.sensor.accelerometer" />
     <uses-feature android:name="android.hardware.sensor.accelerometer" />
 
 
     <!-- 自动聚焦权限 -->
     <!-- 自动聚焦权限 -->
@@ -116,8 +116,8 @@
         android:hardwareAccelerated="false"
         android:hardwareAccelerated="false"
         android:icon="@drawable/uuu"
         android:icon="@drawable/uuu"
         android:label="@string/app_name"
         android:label="@string/app_name"
-        android:persistent="true"
         android:largeHeap="true"
         android:largeHeap="true"
+        android:persistent="true"
         android:theme="@style/AppTheme">
         android:theme="@style/AppTheme">
         <meta-data
         <meta-data
             android:name="UMENG_CHANNEL"
             android:name="UMENG_CHANNEL"
@@ -670,7 +670,6 @@
             android:name=".ui.erp.activity.message.ProcessMsgActivity"
             android:name=".ui.erp.activity.message.ProcessMsgActivity"
             android:label="@string/title_activity_process_msg" />
             android:label="@string/title_activity_process_msg" />
 
 
-
         <!-- 百度推送相关 -->
         <!-- 百度推送相关 -->
         <!-- push必须的receviver和service声明 -->
         <!-- push必须的receviver和service声明 -->
         <receiver
         <receiver
@@ -767,9 +766,9 @@
         <activity
         <activity
             android:name=".ui.message.Subscription2Activity"
             android:name=".ui.message.Subscription2Activity"
             android:label="订阅号" />
             android:label="订阅号" />
-        <activity android:name=".ui.erp.activity.oa.LocationSearchActivity"
-            android:windowSoftInputMode="stateUnspecified|adjustNothing"
-            />
+        <activity
+            android:name=".ui.erp.activity.oa.LocationSearchActivity"
+            android:windowSoftInputMode="stateUnspecified|adjustNothing" />
         <activity
         <activity
             android:name=".ui.erp.activity.oa.MissionSetActivity"
             android:name=".ui.erp.activity.oa.MissionSetActivity"
             android:label="@string/activity_mission_set" />
             android:label="@string/activity_mission_set" />
@@ -784,8 +783,8 @@
         <activity
         <activity
             android:name=".ui.erp.activity.form.FormListSelectActivity"
             android:name=".ui.erp.activity.form.FormListSelectActivity"
             android:hardwareAccelerated="false"
             android:hardwareAccelerated="false"
-            android:windowSoftInputMode="adjustPan"
-            android:launchMode="singleTask" />
+            android:launchMode="singleTask"
+            android:windowSoftInputMode="adjustPan" />
         <activity
         <activity
             android:name=".ui.erp.activity.oa.WorkActivity"
             android:name=".ui.erp.activity.oa.WorkActivity"
             android:label="@string/activity_signing" />
             android:label="@string/activity_signing" />
@@ -798,16 +797,18 @@
         <activity
         <activity
             android:name=".ui.erp.activity.oa.MissionActivity"
             android:name=".ui.erp.activity.oa.MissionActivity"
             android:label="@string/activity_mission_plan" />
             android:label="@string/activity_mission_plan" />
-        <activity android:name="basepedo.ui.MyPedometerActivity"
-            android:label="UU运动"/>
+        <activity
+            android:name="basepedo.ui.MyPedometerActivity"
+            android:label="UU运动" />
+
         <service
         <service
             android:name="basepedo.service.StepService"
             android:name="basepedo.service.StepService"
-            android:process="com.base.basepedo.step"
-            >
+            android:process="com.base.basepedo.step">
             <intent-filter android:priority="1000">
             <intent-filter android:priority="1000">
-                <!-- 系统启动完成后会调用-->
-                <action android:name="android.intent.action.BOOT_COMPLETED"/>
-                <action android:name="android.intent.action.DATE_CHANGED"/>
+
+                <!-- 系统启动完成后会调用 -->
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
+                <action android:name="android.intent.action.DATE_CHANGED" />
                 <action android:name="android.intent.action.MEDIA_MOUNTED" />
                 <action android:name="android.intent.action.MEDIA_MOUNTED" />
                 <action android:name="android.intent.action.USER_PRESENT" />
                 <action android:name="android.intent.action.USER_PRESENT" />
                 <action android:name="android.intent.action.ACTION_TIME_TICK" />
                 <action android:name="android.intent.action.ACTION_TIME_TICK" />
@@ -815,13 +816,16 @@
                 <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
                 <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />
             </intent-filter>
             </intent-filter>
         </service>
         </service>
+
         <receiver android:name="basepedo.service.BootCompleteReceiver">
         <receiver android:name="basepedo.service.BootCompleteReceiver">
             <intent-filter>
             <intent-filter>
-                <action android:name="android.intent.action.BOOT_COMPLETED"/>
+                <action android:name="android.intent.action.BOOT_COMPLETED" />
                 <action android:name="android.intent.action.USER_PRESENT" />
                 <action android:name="android.intent.action.USER_PRESENT" />
-                <action android:name="uu.step.destory"/>
+                <action android:name="uu.step.destory" />
             </intent-filter>
             </intent-filter>
         </receiver>
         </receiver>
+
+        <activity android:name=".ui.erp.activity.oa.ErpActivity"></activity>
     </application>
     </application>
 
 
 </manifest>
 </manifest>

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

@@ -11,6 +11,7 @@ import com.baidu.location.LocationClientOption;
 import com.xzjmyk.pm.activity.bean.LocationEntity;
 import com.xzjmyk.pm.activity.bean.LocationEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
 import com.xzjmyk.pm.activity.ui.tool.ThreadUtil;
+import com.xzjmyk.pm.activity.util.PreferenceUtils;
 
 
 public class BdLocationHelper {
 public class BdLocationHelper {
     public static final String UPLOCATION_ACTION = "UPLOCATION_ACTION";//更新位置时候广播数据
     public static final String UPLOCATION_ACTION = "UPLOCATION_ACTION";//更新位置时候广播数据
@@ -135,6 +136,10 @@ public class BdLocationHelper {
                     locationEntity.setProvince(location.getProvince());
                     locationEntity.setProvince(location.getProvince());
                     locationEntity.setCityName(location.getCity());
                     locationEntity.setCityName(location.getCity());
                     locationEntity.setDistrict(location.getDistrict());
                     locationEntity.setDistrict(location.getDistrict());
+                    if (StringUtils.isEmpty(location.getLocationDescribe()))
+                        PreferenceUtils.putString("bdlocation", location.getLocationDescribe());
+                    if (StringUtils.isEmpty(location.getAddrStr()))
+                        PreferenceUtils.putString("bdaddress", location.getAddrStr());
                 } else {
                 } else {
                     //统一未定位失败
                     //统一未定位失败
                     locationEntity.setLocationOk(false);
                     locationEntity.setLocationOk(false);

+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/OABean.java

@@ -7,7 +7,6 @@ import android.os.Parcelable;
  * oa首页对象实体
  * oa首页对象实体
  * Created by gongp on 2016/8/17.
  * Created by gongp on 2016/8/17.
  */
  */
-@Deprecated
 public class OABean implements Parcelable {
 public class OABean implements Parcelable {
     //通用属性
     //通用属性
     private int type;//类型  1、任务 2、日程 3、拜访
     private int type;//类型  1、任务 2、日程 3、拜访

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

@@ -86,7 +86,20 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     }
     }
 
 
     private void initListener() {
     private void initListener() {
-        if (getIntent().getBooleanExtra("isMe", true)) {
+        boolean isMe = getIntent().getBooleanExtra("isMe", true);
+//        setFocusable(tv_date_start, isMe);
+//        setFocusable(tv_date_end, isMe);
+//        setFocusable(tv_customer_login, isMe);
+//        setFocusable(tv_visit_steps, isMe);
+//        setFocusable(tv_relate_business, isMe);
+
+//        setFocusable(tv_visit_content, isMe);
+//        setFocusable(tv_visit_theme, isMe);
+//        setFocusable(tv_address_login, isMe);
+//        setFocusable(tv_linksman_login, isMe);
+
+
+        if (isMe) {
             tv_date_start.setOnClickListener(this);
             tv_date_start.setOnClickListener(this);
             tv_date_end.setOnClickListener(this);
             tv_date_end.setOnClickListener(this);
             tv_date_start.setKeyListener(null);
             tv_date_start.setKeyListener(null);
@@ -151,19 +164,35 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             nichecode = object.getString(getJSONString(object, "vr_nichecode"));
             nichecode = object.getString(getJSONString(object, "vr_nichecode"));
             tv_relate_business.setText(getJSONString(object, "vr_nichename"));
             tv_relate_business.setText(getJSONString(object, "vr_nichename"));
 //            tv_visit_content.setText(getJSONString(object, "vr_detail"));
 //            tv_visit_content.setText(getJSONString(object, "vr_detail"));
-            Log.i("VisitRecord2", chche);
         } else if (type == 3) {
         } else if (type == 3) {
             //1.开始日期==预计拜访时间  2.客户名称==公司名称  客户地址
             //1.开始日期==预计拜访时间  2.客户名称==公司名称  客户地址
             String chche = getIntent().getStringExtra("data");
             String chche = getIntent().getStringExtra("data");
             JSONObject object = JSON.parseObject(chche);
             JSONObject object = JSON.parseObject(chche);
+            vp_id = object.containsKey("mpd_id") ? object.getInteger("mpd_id") : -1;
             tv_date_start.setText(getJSONString(object, "mpd_actdate"));
             tv_date_start.setText(getJSONString(object, "mpd_actdate"));
             tv_date_end.setText(getJSONString(object, "mpd_outdate"));
             tv_date_end.setText(getJSONString(object, "mpd_outdate"));
             tv_customer_login.setText(getJSONString(object, "mpd_company"));
             tv_customer_login.setText(getJSONString(object, "mpd_company"));
             tv_address_login.setText(getJSONString(object, "mpd_address"));
             tv_address_login.setText(getJSONString(object, "mpd_address"));
-            Log.i("gongpengming", chche);
+            tv_visit_theme.setText(getJSONString(object, "mpd_remark"));
+            boolean isMe = getIntent().getBooleanExtra("isMe", true);
+            setFocusable(tv_date_start, isMe && TextUtils.isEmpty(tv_date_start.getText()));
+            setFocusable(tv_date_end, isMe && TextUtils.isEmpty(tv_date_end.getText()));
+            setFocusable(tv_customer_login, isMe && TextUtils.isEmpty(tv_customer_login.getText()));
+            setFocusable(tv_address_login, isMe && TextUtils.isEmpty(tv_address_login.getText()));
+            setFocusable(tv_visit_theme, isMe && TextUtils.isEmpty(tv_visit_theme.getText()));
+            Log.i("gongpengming", "vp_id=" + vp_id);
         }
         }
     }
     }
 
 
+    private void setFocusable(FormEditText v, boolean focusable) {
+        if (focusable) {
+            v.setOnClickListener(this);
+            v.setKeyListener(null);
+        } else
+            v.setFocusable(focusable);
+
+    }
+
     private String getJSONString(JSONObject object, String key) {
     private String getJSONString(JSONObject object, String key) {
         if (object.containsKey(key) && !StringUtils.isEmpty(object.getString(key))) {
         if (object.containsKey(key) && !StringUtils.isEmpty(object.getString(key))) {
             return object.getString(key);
             return object.getString(key);

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

@@ -42,6 +42,7 @@ import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.view.ClearEditText;
 import com.xzjmyk.pm.activity.view.ClearEditText;
 import com.xzjmyk.pm.activity.view.crouton.Style;
 import com.xzjmyk.pm.activity.view.crouton.Style;
 
 
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.LinkedHashMap;
@@ -52,9 +53,6 @@ public class DestinationActivity extends BaseActivity {
 
 
     @ViewInject(R.id.listView)
     @ViewInject(R.id.listView)
     private PullToRefreshListView listView;
     private PullToRefreshListView listView;
-//    @ViewInject(R.id.search_edit)
-//    private EditText search_edit;
-
     private int pager = 1;
     private int pager = 1;
     private List<MissionModel> allList;//所有数据搜索
     private List<MissionModel> allList;//所有数据搜索
     private List<MissionModel> showList;//适配器数据
     private List<MissionModel> showList;//适配器数据
@@ -309,7 +307,7 @@ public class DestinationActivity extends BaseActivity {
                 holder.companyaddr_tv.setText(getNotNull(entity.getCompanyAddr()));
                 holder.companyaddr_tv.setText(getNotNull(entity.getCompanyAddr()));
                 holder.visit_num_tv.setText("总拜访 " + entity.getVisitcount() + "次");
                 holder.visit_num_tv.setText("总拜访 " + entity.getVisitcount() + "次");
                 holder.last_time_tv.setText("上次拜访 " + getLastime(entity.getVisitTime()));
                 holder.last_time_tv.setText("上次拜访 " + getLastime(entity.getVisitTime()));
-                holder.long_tv.setText(BaiduMapUtil.getInstence().getDistance(entity.getLatLng()) + "m");
+                holder.long_tv.setText(getKm(BaiduMapUtil.getInstence().getDistance(entity.getLatLng())) + "km");
             }
             }
             return view;
             return view;
         }
         }
@@ -338,6 +336,19 @@ public class DestinationActivity extends BaseActivity {
         }
         }
     }
     }
 
 
+    private String getKm(String dis) {
+        if (StringUtils.isEmpty(dis)) return String.valueOf(0);
+        try {
+            DecimalFormat fnum = new DecimalFormat("##0.00");
+            String dd = fnum.format(Float.valueOf(dis) / 1000);
+            return dd;
+        } catch (ClassCastException e) {
+            return String.valueOf(0);
+        } catch (Exception e) {
+            return String.valueOf(0);
+        }
+    }
+
     private String getNotNull(String str) {
     private String getNotNull(String str) {
         return StringUtils.isEmpty(str) ? "" : str;
         return StringUtils.isEmpty(str) ? "" : str;
     }
     }

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

@@ -0,0 +1,15 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.oa;
+
+import android.os.Bundle;
+import android.support.v7.app.AppCompatActivity;
+
+import com.xzjmyk.pm.activity.R;
+
+public class ErpActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_erp);
+    }
+}

+ 38 - 16
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/LocationSearchActivity.java

@@ -32,6 +32,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 import com.xzjmyk.pm.activity.util.BaiduMapUtil;
 
 
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 
 
@@ -47,6 +48,7 @@ import java.util.List;
  * 1、title(标题String) 2、style(主题 int)
  * 1、title(标题String) 2、style(主题 int)
  * 3、latlng(对比距离的位置)   l 4、search(是否有搜索框 boolean)
  * 3、latlng(对比距离的位置)   l 4、search(是否有搜索框 boolean)
  * 5、resultCode(返回码 int) 6、resultName(返回key String )
  * 5、resultCode(返回码 int) 6、resultName(返回key String )
+ * 6、isKm(是否使用km距离计算 boolean)
  */
  */
 public class LocationSearchActivity extends BaseActivity {
 public class LocationSearchActivity extends BaseActivity {
     @ViewInject(R.id.search_edit)
     @ViewInject(R.id.search_edit)
@@ -65,6 +67,7 @@ public class LocationSearchActivity extends BaseActivity {
     private String resultName = "resultName";//返回的参数名称
     private String resultName = "resultName";//返回的参数名称
     private String keyWork;//返回的参数名称
     private String keyWork;//返回的参数名称
     private int radius = 1000;
     private int radius = 1000;
+    private boolean isKm = false;
 
 
 
 
     private List<PoiInfo> listData;  //周围地址主体;列表
     private List<PoiInfo> listData;  //周围地址主体;列表
@@ -118,6 +121,7 @@ public class LocationSearchActivity extends BaseActivity {
         if (!StringUtils.isEmpty(title))
         if (!StringUtils.isEmpty(title))
             getSupportActionBar().setTitle(title);
             getSupportActionBar().setTitle(title);
         single = intent.getBooleanExtra("single", true);
         single = intent.getBooleanExtra("single", true);
+        isKm = intent.getBooleanExtra("isKm", false);
         search = intent.getBooleanExtra("search", false);
         search = intent.getBooleanExtra("search", false);
         resultCode = intent.getIntExtra("resultCode", 0x20);
         resultCode = intent.getIntExtra("resultCode", 0x20);
         resultName = intent.getStringExtra("resultName");
         resultName = intent.getStringExtra("resultName");
@@ -164,7 +168,6 @@ public class LocationSearchActivity extends BaseActivity {
                     loadDataByNeer();
                     loadDataByNeer();
                 } else
                 } else
                     loadDataByCity();
                     loadDataByCity();
-
                 break;
                 break;
             default:
             default:
                 break;
                 break;
@@ -177,11 +180,14 @@ public class LocationSearchActivity extends BaseActivity {
         search_edit.addTextChangedListener(new EditChangeListener() {
         search_edit.addTextChangedListener(new EditChangeListener() {
             @Override
             @Override
             public void afterTextChanged(Editable editable) {
             public void afterTextChanged(Editable editable) {
-                if (editable == null || StringUtils.isEmpty(editable.toString())) return;
+                if (editable == null) return;
                 keyWork = editable.toString();
                 keyWork = editable.toString();
-                if (StringUtils.isEmpty(keyWork))
-                    loadDataByNeer();
-                else
+                if (StringUtils.isEmpty(keyWork)) {
+                    keyWork = getIntent().getStringExtra("keyWork");
+                    if (StringUtils.isEmpty(keyWork))
+                        loadDataByNeer();
+                    else search();
+                } else
                     search();
                     search();
             }
             }
         });
         });
@@ -243,34 +249,28 @@ public class LocationSearchActivity extends BaseActivity {
         @Override
         @Override
         public void result(SearchResult result) {
         public void result(SearchResult result) {
             if (result == null) {
             if (result == null) {
-                Log.i("gongpengming", "返回为空");
-                listData = null;
+                listData.clear();
                 adapter.setListData(listData);
                 adapter.setListData(listData);
                 return;
                 return;
             }
             }
-            Log.i("gongpengming", "进来else ");
             PoiResult poiResult = (PoiResult) result;
             PoiResult poiResult = (PoiResult) result;
             List<PoiInfo> chches = poiResult.getAllPoi();
             List<PoiInfo> chches = poiResult.getAllPoi();
             if (ListUtils.isEmpty(chches)) {
             if (ListUtils.isEmpty(chches)) {
-                Log.i("gongpengming", "chches==nulll");
-                Log.i("gongpengming", "isChina=" + isChina);
                 if (isChina) {
                 if (isChina) {
                     isChina = false;
                     isChina = false;
                     BaiduMapUtil.getInstence().searchByInput(keyWork, pageNum, listener);
                     BaiduMapUtil.getInstence().searchByInput(keyWork, pageNum, listener);
                     return;
                     return;
-                }
+                } else listData.clear();
             } else {
             } else {
-                Log.i("gongpengming", "chches!!!!!!!!!!!!=nulll ");
                 BaiduMapUtil.getInstence().setMapViewPoint(bmapView, chches.get(0).location, true);
                 BaiduMapUtil.getInstence().setMapViewPoint(bmapView, chches.get(0).location, true);
                 for (int i = 0; i < chches.size(); i++) {
                 for (int i = 0; i < chches.size(); i++) {
-                    Log.i("gongpengming", "chches.get(i).name=" + chches.get(i).name);
                     if (StringUtils.isEmpty(chches.get(i).name) || StringUtils.isEmpty(chches.get(i).address)) {
                     if (StringUtils.isEmpty(chches.get(i).name) || StringUtils.isEmpty(chches.get(i).address)) {
                         chches.remove(i);
                         chches.remove(i);
                         i--;
                         i--;
                     }
                     }
                 }
                 }
+                listData = chches;
             }
             }
-            listData = chches;
             adapter.setListData(listData);
             adapter.setListData(listData);
         }
         }
     };
     };
@@ -318,11 +318,33 @@ public class LocationSearchActivity extends BaseActivity {
             }
             }
             holder.address_tv.setText(listData.get(i).address);
             holder.address_tv.setText(listData.get(i).address);
             holder.name_tv.setText(listData.get(i).name);
             holder.name_tv.setText(listData.get(i).name);
-            holder.distance_tv.setText(BaiduMapUtil.getInstence().
-                    getDistance(listData.get(i).location, companyLat) + " m");
+            holder.distance_tv.setText(getDistance(listData.get(i).location));
             return view;
             return view;
         }
         }
 
 
+        private String getDistance(LatLng location) {
+            String dis = BaiduMapUtil.getInstence().getDistance(location, companyLat);
+            if (StringUtils.isEmpty(dis)) return String.valueOf(0);
+            if (isKm) {
+                return getKm(dis) + " km";
+            } else {
+                return dis + " m";
+            }
+        }
+
+        private String getKm(String dis) {
+            if (StringUtils.isEmpty(dis)) return String.valueOf(0);
+            try {
+                DecimalFormat fnum = new DecimalFormat("##0.00");
+                String dd = fnum.format(Float.valueOf(dis) / 1000);
+                return dd;
+            } catch (ClassCastException e) {
+                return String.valueOf(0);
+            } catch (Exception e) {
+                return String.valueOf(0);
+            }
+        }
+
         class ViewHolder {
         class ViewHolder {
             TextView name_tv, address_tv, distance_tv;
             TextView name_tv, address_tv, distance_tv;
         }
         }

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

@@ -217,13 +217,13 @@ public class MissionActivity extends BaseActivity implements View.OnClickListene
                 intent.putExtra("title", "选择地址");
                 intent.putExtra("title", "选择地址");
                 intent.putExtra("single", true);
                 intent.putExtra("single", true);
                 intent.putExtra("resultCode", 0x20);
                 intent.putExtra("resultCode", 0x20);
+                intent.putExtra("isKm", true);
                 intent.putExtra("resultName", "resultName");
                 intent.putExtra("resultName", "resultName");
                 startActivityForResult(intent, 0x21);
                 startActivityForResult(intent, 0x21);
                 break;
                 break;
             case R.id.item_delete_tv://删除选项
             case R.id.item_delete_tv://删除选项
                 try {
                 try {
                     MissionModel m = adapter.getModels().get(position);
                     MissionModel m = adapter.getModels().get(position);
-                    Log.i("gongpengming", "position1=" + position);
                     if (!StringUtils.isEmpty(m.getCompanyName()) || !StringUtils.isEmpty(m.getCompanyAddr()) ||
                     if (!StringUtils.isEmpty(m.getCompanyName()) || !StringUtils.isEmpty(m.getCompanyAddr()) ||
                             !StringUtils.isEmpty(m.getVisitTime())) {
                             !StringUtils.isEmpty(m.getVisitTime())) {
                         AlertDialog.Builder builder = new AlertDialog.Builder(ct);
                         AlertDialog.Builder builder = new AlertDialog.Builder(ct);
@@ -347,6 +347,12 @@ public class MissionActivity extends BaseActivity implements View.OnClickListene
     }
     }
 
 
 
 
+    /**
+     *
+     * @param name
+     * @param dis
+     * @update by 2017/1/11
+     */
     private void setEndTime(String name, final double dis) {
     private void setEndTime(String name, final double dis) {
         BaiduMapUtil.getInstence().getDrivingRoute(MyApplication.getInstance().
         BaiduMapUtil.getInstence().getDrivingRoute(MyApplication.getInstance().
                 getBdLocationHelper().getCityName(), MyApplication.getInstance().
                 getBdLocationHelper().getCityName(), MyApplication.getInstance().
@@ -378,9 +384,14 @@ public class MissionActivity extends BaseActivity implements View.OnClickListene
 
 
     /**
     /**
      * @param time 秒
      * @param time 秒
+     * @update by 2017/1/11
      */
      */
     private void setVoisitTime(long time) {
     private void setVoisitTime(long time) {
+        //TODO 修改通过经纬度获取地址,在通过地址获取路线
         String realTime = TimeUtils.f_long_2_str(System.currentTimeMillis() + (time * 1000));
         String realTime = TimeUtils.f_long_2_str(System.currentTimeMillis() + (time * 1000));
+
+
+
         adapter.getModels().get(position).setVisitTime(realTime);
         adapter.getModels().get(position).setVisitTime(realTime);
         adapter.notifyItemChanged(position);
         adapter.notifyItemChanged(position);
     }
     }

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

@@ -392,20 +392,28 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                     intent.putExtra("data", object.toString());
                     intent.putExtra("data", object.toString());
                     startActivityForResult(intent, isMe ? 0x20 : 0x21);
                     startActivityForResult(intent, isMe ? 0x20 : 0x21);
                 } else if (adapter.isOutplan(object)) {
                 } else if (adapter.isOutplan(object)) {
+                    String status = adapter.getJSONString(object, "mpd_status");
                     String actdate = adapter.getJSONString(object, "mpd_actdate");
                     String actdate = adapter.getJSONString(object, "mpd_actdate");
                     String outdate = adapter.getJSONString(object, "mpd_outdate");
                     String outdate = adapter.getJSONString(object, "mpd_outdate");
-                    if (StringUtils.isEmpty(actdate) || StringUtils.isEmpty(outdate)) {
-                        try {
-                            Crouton.makeText(ct, "当前外勤计划未完成,不能创建拜访报告");
-                        } catch (Exception e) {
+                    //TODO 根据状态判断是否可以对外勤计划进行录入
+                    if ("已完成".equals(status)) {
+                        intent = new Intent(activity, VisitReportAddActivity.class);
+                        intent.putExtra("type", 3);
+                        intent.putExtra("isMe", false);//可以提交拜访报告
+                        intent.putExtra("data", object.toString());
+                        startActivityForResult(intent, isMe ? 0x20 : 0x21);
+                    } else {
+                        if (StringUtils.isEmpty(actdate) || StringUtils.isEmpty(outdate)) {
+                            if (isMe)
+                                Crouton.makeText(ct, "外勤计划尚未完成");
+                            return;
                         }
                         }
-                        return;
+                        intent = new Intent(activity, VisitReportAddActivity.class);
+                        intent.putExtra("type", 3);
+                        intent.putExtra("isMe", isMe);//可以提交拜访报告
+                        intent.putExtra("data", object.toString());
+                        startActivityForResult(intent, isMe ? 0x20 : 0x21);
                     }
                     }
-                    intent = new Intent(activity, VisitReportAddActivity.class);
-                    intent.putExtra("type", 3);
-                    intent.putExtra("isMe", isMe);//可以提交拜访报告
-                    intent.putExtra("data", object.toString());
-                    startActivityForResult(intent, isMe ? 0x20 : 0x21);
                 }
                 }
             }
             }
         });
         });
@@ -607,24 +615,15 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
         String time = null;
         String time = null;
         for (int i = 0; i < array.size(); i++) {
         for (int i = 0; i < array.size(); i++) {
             object = array.getJSONObject(i);
             object = array.getJSONObject(i);
-            time = (object.containsKey("startdate") &&
-                    !StringUtils.isEmpty(object.getString("startdate"))) ?
-                    object.getString("startdate") :
-                    ((object.containsKey("vr_visittime") &&
-                            !StringUtils.isEmpty(object.getString("vr_visittime")))
-                            ? object.getString("vr_visittime") : ((object.containsKey("mpd_arrivedate") &&
-                            !StringUtils.isEmpty(object.getString("mpd_arrivedate"))) ? object.getString("mpd_arrivedate") : ""));
+            time = getTimeForObject(object);
+            if (adapter.isOutplan(object) && !StringUtils.isEmpty(adapter.getJSONString(object, "mpd_status")) && "已完成".equals(adapter.getJSONString(object, "mpd_status")))
+                continue;
             if (!StringUtils.isEmpty(time) && getIsDecorat(time, TimeUtils.s_format.format(curDate))) {//该时间为选择时间
             if (!StringUtils.isEmpty(time) && getIsDecorat(time, TimeUtils.s_format.format(curDate))) {//该时间为选择时间
                 //判断是否为该下属
                 //判断是否为该下属
                 chche.add(object);
                 chche.add(object);
                 size++;
                 size++;
-                if (!object.containsKey("status") ||
-                        (object.containsKey("status") &&
-                                !StringUtils.isEmpty(object.getString("status")) &&
-                                "已拜访".equals(object.getString("status")) ||
-                                "已完成".equals(object.getString("status")))) {
+                if (isTaskOk(object))
                     ok++;
                     ok++;
-                }
             }
             }
         }
         }
         if (chche.size() <= 0) {
         if (chche.size() <= 0) {
@@ -641,6 +640,42 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
     }
     }
 
 
 
 
+    /**
+     * 通过JSONObject获取开始时间,用于筛选
+     *
+     * @param object
+     * @return
+     */
+    private String getTimeForObject(JSONObject object) {
+        return (object.containsKey("startdate") &&
+                !StringUtils.isEmpty(object.getString("startdate"))) ?
+                object.getString("startdate") :
+                ((object.containsKey("vr_visittime") &&
+                        !StringUtils.isEmpty(object.getString("vr_visittime")))
+                        ? object.getString("vr_visittime") : ((object.containsKey("mpd_arrivedate") &&
+                        !StringUtils.isEmpty(object.getString("mpd_arrivedate"))) ? object.getString("mpd_arrivedate")
+                        : ""));
+    }
+
+    /**
+     * 用于判断该任务是否已经完成
+     *
+     * @param object
+     * @return
+     */
+    private boolean isTaskOk(JSONObject object) {
+        if (!object.containsKey("status") || StringUtils.isEmpty(object.getString("status"))) {
+            String actdate = object.getString("mpd_actdate");
+            String outdate = object.getString("mpd_outdate");
+            if ((adapter != null && adapter.isVisitRecord(object)) ||
+                    (!StringUtils.isEmpty(actdate) && !StringUtils.isEmpty(outdate))) return true;
+            else return false;
+        } else if ("已拜访".equals(object.getString("status")) || "已完成".equals(object.getString("status")))
+            return true;
+        return false;
+    }
+
+
     //弹出菜单
     //弹出菜单
     private PopupWindow popupWindow = null;
     private PopupWindow popupWindow = null;
 
 

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

@@ -236,7 +236,6 @@ public class MissionAdapter extends RecyclerView.Adapter<MissionAdapter.BaseView
         } catch (Exception e) {
         } catch (Exception e) {
             return String.valueOf(0);
             return String.valueOf(0);
         }
         }
-
     }
     }
 
 
     public interface OnitemClickListener {
     public interface OnitemClickListener {

+ 5 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/OAListAdapter.java

@@ -152,13 +152,14 @@ public class OAListAdapter extends BaseAdapter {
         } else if (isOutplan(object)) {
         } else if (isOutplan(object)) {
             holder.addr_time_tv.setCompoundDrawables(null, null, null, null);
             holder.addr_time_tv.setCompoundDrawables(null, null, null, null);
             holder.title_tv.setText(getJSONString(object, "mpd_address"));
             holder.title_tv.setText(getJSONString(object, "mpd_address"));
-            holder.name_remak_tv.setText(getJSONString(object, "mpd_company"));
+            String title = getJSONString(object, "mpd_company") + "   " + getJSONString(object, "mpd_remark");
+            holder.name_remak_tv.setText(title);
             String actdate = getJSONString(object, "mpd_actdate");
             String actdate = getJSONString(object, "mpd_actdate");
             String outdate = getJSONString(object, "mpd_outdate");
             String outdate = getJSONString(object, "mpd_outdate");
-            holder.addr_time_tv.setText(actdate);//实际到达时间
+            holder.object_tv.setText("");//实际到达时间
             if (!isMe)
             if (!isMe)
-                holder.object_tv.setText(getJSONString(object, "mp_recorder"));//实际离开时间
-            else holder.object_tv.setText("");//实际离开时间
+                holder.addr_time_tv.setText(getJSONString(object, "mp_recorder"));//显示人员
+            else holder.addr_time_tv.setText("");//实际离开时间
             //当天未完成的不显示任何图标,状态为未完成,超过拜访时间,即第二天0点,添加图标 未完成。
             //当天未完成的不显示任何图标,状态为未完成,超过拜访时间,即第二天0点,添加图标 未完成。
             holder.status_tv.setText("");
             holder.status_tv.setText("");
             if (isMoreToday) {
             if (isMoreToday) {

+ 4 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/HttpUtil.java

@@ -107,11 +107,10 @@ public class HttpUtil {
             if (params != null && !params.isEmpty()) {
             if (params != null && !params.isEmpty()) {
                 Set<Entry<String, Object>> entrys = params.entrySet();
                 Set<Entry<String, Object>> entrys = params.entrySet();
                 for (Map.Entry<String, Object> entry : entrys) {
                 for (Map.Entry<String, Object> entry : entrys) {
-                    nvps.add(new BasicNameValuePair(entry.getKey(),
-                            URLDecoder.decode(
-                                    entry.getValue().toString()
-                                    , "utf-8")
-                    ));
+                    if (entry.getValue() != null)
+                        nvps.add(new BasicNameValuePair(entry.getKey(), URLDecoder.decode(entry.getValue().toString(), "utf-8")));
+                    else
+                        nvps.add(new BasicNameValuePair(entry.getKey(), URLDecoder.decode("", "utf-8")));
                 }
                 }
             }
             }
             httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
             httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));

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

@@ -190,7 +190,7 @@ public class ViewUtil {
                 crouton.show();
                 crouton.show();
             }
             }
         } else {
         } else {
-            if(cont!=null) {
+            if (cont != null) {
                 Toast.makeText(cont, msg, Toast.LENGTH_SHORT).show();
                 Toast.makeText(cont, msg, Toast.LENGTH_SHORT).show();
             }
             }
         }
         }
@@ -811,6 +811,8 @@ public class ViewUtil {
                 response = HttpUtil.sendPostRequest(url, params, headers, false);
                 response = HttpUtil.sendPostRequest(url, params, headers, false);
             }
             }
         } catch (Exception e) {
         } catch (Exception e) {
+            if (e != null)
+                Log.i("gongpengming", "httpSendTask Exception=" + e.getMessage());
             e.printStackTrace();
             e.printStackTrace();
         }
         }
         return response;
         return response;

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

@@ -118,6 +118,8 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
         Map<String, Object> param = new HashMap<>();
         Map<String, Object> param = new HashMap<>();
         Map<String, Object> form = new HashMap<>();
         Map<String, Object> form = new HashMap<>();
         form.put("cl_code", code);
         form.put("cl_code", code);
+        if (StringUtils.isEmpty(address))
+            address = PreferenceUtils.getString("bdaddress");
         form.put("cl_address", address);
         form.put("cl_address", address);
         form.put("cl_phone", MyApplication.getInstance().mLoginUser.getTelephone());
         form.put("cl_phone", MyApplication.getInstance().mLoginUser.getTelephone());
         form.put("cl_emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
         form.put("cl_emcode", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username"));
@@ -126,6 +128,8 @@ public class WorkPresenter implements HttpHandler.OnResultListener, IWorkPresent
             emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
             emname = MyApplication.getInstance().mLoginUser.getNickName().trim();
         }
         }
         form.put("cl_emname", emname);
         form.put("cl_emname", emname);
+        if (StringUtils.isEmpty(loaction))
+            loaction = PreferenceUtils.getString("bdlocation");
         form.put("cl_location", loaction);
         form.put("cl_location", loaction);
         form.put("cl_distance", distance);
         form.put("cl_distance", distance);
         String formStore = StringUtils.mapToJson(form);
         String formStore = StringUtils.mapToJson(form);

+ 5 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/AutoErpSigninUitl.java

@@ -15,14 +15,12 @@ import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.BdLocationHelper;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.db.dao.ErrorMagDao;
 import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.db.dao.MissionDao;
 import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
 import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.MissionActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.MissionActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutSigninOKActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.OutSigninOKActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.WorkActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.WorkActivity;
-import com.xzjmyk.pm.activity.ui.erp.entity.ErrorEntity;
 import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
 import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.model.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonInterface;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonInterface;
@@ -140,15 +138,7 @@ public class AutoErpSigninUitl implements HttpHandler.OnResultListener {
         form.put("cl_code", code);
         form.put("cl_code", code);
         String phone = MyApplication.getInstance().mLoginUser.getTelephone();
         String phone = MyApplication.getInstance().mLoginUser.getTelephone();
         if (StringUtils.isEmpty(phone)) {
         if (StringUtils.isEmpty(phone)) {
-            try {
-                ErrorEntity bean = new ErrorEntity();
-                bean.setMsg("phone 为空");
-                bean.setTitle("自动打卡");
-                bean.setTime(TimeUtils.f_long_2_str(System.currentTimeMillis()));
-                ErrorMagDao.getInstance().insert(bean);
-            } catch (Exception e) {
-
-            }
+            phone = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "user_phone", "");
         }
         }
         form.put("cl_phone", phone);
         form.put("cl_phone", phone);
         form.put("cl_emcode", getSharedPreferences(ct, "erp_username"));
         form.put("cl_emcode", getSharedPreferences(ct, "erp_username"));
@@ -175,7 +165,10 @@ public class AutoErpSigninUitl implements HttpHandler.OnResultListener {
         try {
         try {
             //判断是否符合打卡
             //判断是否符合打卡
             BdLocationHelper helper = MyApplication.getInstance().getBdLocationHelper();
             BdLocationHelper helper = MyApplication.getInstance().getBdLocationHelper();
-            form.put("cl_address", helper.getAddress());
+            String address = helper.getAddress();
+            if (StringUtils.isEmpty(address))
+                address = PreferenceUtils.getString("bdaddress");
+            form.put("cl_address", address);
             form.put("cl_location", "android自动打卡记录");
             form.put("cl_location", "android自动打卡记录");
             int comDistance = PreferenceUtils.getInt("distance", 0);
             int comDistance = PreferenceUtils.getInt("distance", 0);
             float distance = BaiduMapUtil.getInstence().getDistance();
             float distance = BaiduMapUtil.getInstence().getDistance();

+ 16 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/PreferenceUtils.java

@@ -30,9 +30,11 @@ public class PreferenceUtils {
     public static boolean getBoolean(Context context, String key) {
     public static boolean getBoolean(Context context, String key) {
         return getBoolean(context, key, false);
         return getBoolean(context, key, false);
     }
     }
-    public static boolean getBoolean( String key,boolean vaule) {
+
+    public static boolean getBoolean(String key, boolean vaule) {
         return getBoolean(MyApplication.getInstance(), key, vaule);
         return getBoolean(MyApplication.getInstance(), key, vaule);
     }
     }
+
     /**
     /**
      * 获得boolean类型的信息
      * 获得boolean类型的信息
      *
      *
@@ -78,6 +80,13 @@ public class PreferenceUtils {
         edit.commit();
         edit.commit();
     }
     }
 
 
+    public static void putString(String key, String value) {
+        SharedPreferences sp = getPreferences(MyApplication.getInstance());
+        Editor edit = sp.edit();
+        edit.putString(key, value);//去定义一个常量
+        edit.commit();
+    }
+
     public static String getString(Context context, String key, String defValue) {
     public static String getString(Context context, String key, String defValue) {
         SharedPreferences sp = getPreferences(context);
         SharedPreferences sp = getPreferences(context);
         return sp.getString(key, defValue);
         return sp.getString(key, defValue);
@@ -88,6 +97,10 @@ public class PreferenceUtils {
         return getString(context, key, null);
         return getString(context, key, null);
     }
     }
 
 
+    public static String getString(String key) {
+        return getString(MyApplication.getInstance(), key, "");
+    }
+
     /**
     /**
      * 存储int型数据
      * 存储int型数据
      *
      *
@@ -111,9 +124,10 @@ public class PreferenceUtils {
         return getInt(context, key, -1);
         return getInt(context, key, -1);
     }
     }
 
 
-    public static int getInt(  String key,int value) {
+    public static int getInt(String key, int value) {
         return getInt(MyApplication.getInstance(), key, value);
         return getInt(MyApplication.getInstance(), key, value);
     }
     }
+
     /**
     /**
      * 存储long型数据
      * 存储long型数据
      *
      *

+ 177 - 0
WeiChat/src/main/res/layout/activity_erp.xml

@@ -0,0 +1,177 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.handmark.pulltorefresh.library.PullToRefreshScrollView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/pullrefresh_sv"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="#EBE9E9"
+    android:fillViewport="true"
+    android:focusableInTouchMode="true">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:focusableInTouchMode="true"
+        android:orientation="vertical">
+
+        <LinearLayout
+            android:id="@+id/oamain_head_menu_ll"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:focusable="true"
+            android:focusableInTouchMode="true"
+            android:orientation="vertical">
+            <!--头布局-->
+            <LinearLayout
+                android:id="@+id/oa_rl_choose"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/toobar"
+                android:background="#6A6A6A"
+                android:orientation="vertical"
+                android:paddingTop="10dp">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:paddingBottom="10dp">
+
+                    <TextView
+                        android:id="@+id/work_tv"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_1"
+                        android:gravity="center"
+                        android:text="打卡签到"
+                        android:textColor="@color/white" />
+
+                    <TextView
+                        android:id="@+id/mission_tv"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_2"
+                        android:gravity="center"
+                        android:text="外勤签到"
+                        android:textColor="@color/white" />
+
+                    <TextView
+                        android:id="@+id/worklog_tv"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_4"
+                        android:gravity="center"
+                        android:text="工作日报"
+                        android:textColor="@color/white" />
+
+                    <LinearLayout
+                        android:id="@+id/oamain_more_menu_ll"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:orientation="vertical">
+
+                        <ImageView
+                            android:id="@+id/oamain_more_menu_iv"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:gravity="center"
+                            android:src="@drawable/ic_oa_more" />
+
+                        <TextView
+                            android:id="@+id/more_menu_tv"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginTop="5dp"
+                            android:gravity="center"
+                            android:text="更多"
+                            android:textColor="@color/white" />
+                    </LinearLayout>
+
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:paddingBottom="10dp">
+
+
+                    <!--<TextView
+                        android:id="@+id/stroke"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_6"
+                        android:gravity="center"
+                        android:text="我的行程"
+                        android:textColor="@color/white" />-->
+
+
+                    <TextView
+                        android:id="@+id/meeting"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_3"
+                        android:gravity="center"
+                        android:text="会议管理"
+                        android:textColor="@color/white" />
+
+                    <TextView
+                        android:id="@+id/erp"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_5"
+                        android:gravity="center"
+                        android:text="请假申请"
+                        android:textColor="@color/white" />
+
+                    <TextView
+                        android:id="@+id/outtask"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_chuchai"
+                        android:gravity="center"
+                        android:text="出差申请"
+                        android:textColor="@color/white" />
+
+                    <TextView
+                        android:id="@+id/oamain_overtime_apply_tv"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginTop="2dp"
+                        android:layout_weight="1"
+                        android:drawablePadding="@dimen/drawable_padding"
+                        android:drawableTop="@drawable/oa_jiaban"
+                        android:gravity="center"
+                        android:text="加班申请"
+                        android:textColor="@color/white" />
+
+                </LinearLayout>
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+
+    </LinearLayout>
+</com.handmark.pulltorefresh.library.PullToRefreshScrollView>