Browse Source

合并代码

RaoMeng 9 years ago
parent
commit
d332635642

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

@@ -158,6 +158,7 @@ public class BdLocationHelper {
                     if (mFaildCount < 3) {
                         mFaildCount++;
                         requestLocation();
+                        return;
                     }
                 }
                 //TODO 发送广播

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

@@ -196,7 +196,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                             }
                         });
                     } else {
-                        Crouton.makeText(ct, "开始时间不能大于结束时间");
+                        Crouton.makeText(ct, R.string.end_less_start);
                     }
                 } else
                     Crouton.makeText(ct, "网络连接错误,请检查网络");
@@ -535,7 +535,8 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
 
     //提交审批流
     private void submit() {
-        String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") + "crm/customermgr/submitVisitRecord.action";
+        String url = CommonUtil.getSharedPreferences(this, "erp_baseurl") +
+                "crm/customermgr/submitVisitRecord.action";
         Map<String, Object> param = new HashMap<>();
         param.put("caller", "VisitRecord");
         param.put("id", mVrId);

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

@@ -149,12 +149,15 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
             case R.id.btn_save:
                 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) {
+                if (StringUtils.isEmpty(start)) {
+                    Crouton.makeText(ct, "开始时间不能为空");
+                } else if (StringUtils.isEmpty(end)) {
+                    Crouton.makeText(ct, "截止时间不能为空");
+                } else if (start.compareTo(end) < 0) {
                     sendHttpResquest(Constants.HTTP_SUCCESS_INIT);
                 } else {
-                    Crouton.makeText(ct, "开始时间不能大于结束时间");
+                    Crouton.makeText(ct, R.string.end_less_start);
                 }
-
                 break;
             case android.R.id.home:
                 onBackPressed();
@@ -260,7 +263,7 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
                     emname +
                     "\",\n" +
                     "\"vp_recordman\":\"" +
-                     emname +
+                    emname +
                     "\",\n" +
                     "\"vp_status\":\"" +
                     "未拜访" +

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

@@ -85,6 +85,7 @@ public class DestinationActivity extends BaseActivity {
 
         }
     };
+    private ClearEditText search_edit;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -135,6 +136,8 @@ public class DestinationActivity extends BaseActivity {
             @Override
             public void onRefresh(PullToRefreshBase<ListView> refreshView) {
                 pager = 1;
+                if (search_edit != null)
+                    search_edit.getText().clear();
 //                search_edit.setText("");
                 loadOutAddress();
             }
@@ -155,11 +158,12 @@ public class DestinationActivity extends BaseActivity {
     private void setHeader() {
         View headview = LayoutInflater.from(ct).inflate(R.layout.search_header, null);
         listView.getRefreshableView().addHeaderView(headview);
-        ClearEditText search_edit = (ClearEditText) headview.findViewById(R.id.search_edit);
+        search_edit = (ClearEditText) headview.findViewById(R.id.search_edit);
         search_edit.addTextChangedListener(new EditChangeListener() {
             @Override
             public void afterTextChanged(Editable editable) {
                 String str = editable.toString().replaceAll(" ", "");
+                str = str.replaceAll("\n", "");
                 showList.clear();
                 for (MissionModel e : allList) {
                     if (isinclude(str, e)) {

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

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.Editable;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.Menu;
 import android.view.MenuItem;
@@ -11,7 +12,6 @@ import android.view.ViewGroup;
 import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.EditText;
-import android.widget.ListView;
 import android.widget.RelativeLayout;
 import android.widget.TextView;
 
@@ -20,6 +20,7 @@ import com.baidu.mapapi.model.LatLng;
 import com.baidu.mapapi.search.core.PoiInfo;
 import com.baidu.mapapi.search.core.SearchResult;
 import com.baidu.mapapi.search.poi.PoiResult;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.BdLocationHelper;
@@ -53,7 +54,7 @@ public class LocationSearchActivity extends BaseActivity {
     @ViewInject(R.id.bmapView)
     private MapView bmapView;
     @ViewInject(R.id.listview)
-    private ListView listview;
+    private PullToRefreshListView listview;
     @ViewInject(R.id.search_rl)
     private RelativeLayout search_rl;
 
@@ -129,7 +130,7 @@ public class LocationSearchActivity extends BaseActivity {
         type = intent.getIntExtra("type", 1);
         radius = intent.getIntExtra("radius", 1000);
         keyWork = intent.getStringExtra("keyWork");
-        if (StringUtils.isEmpty(keyWork)) keyWork = "优软科技";
+        if (StringUtils.isEmpty(keyWork)) keyWork = "";
     }
 
     //选定退出
@@ -144,6 +145,8 @@ public class LocationSearchActivity extends BaseActivity {
     }
 
     private void initView() {
+        View view = LayoutInflater.from(this).inflate(R.layout.empty_locayion, null);
+        listview.setEmptyView(view);
         search_rl.setVerticalGravity(search ? View.VISIBLE : View.GONE);
         BaiduMapUtil.getInstence().setMapViewPoint(bmapView, true);
         adapter = new LocationAdapter();
@@ -157,7 +160,11 @@ public class LocationSearchActivity extends BaseActivity {
                 loadDataByNeer();
                 break;
             case 2:
-                loadDataByCity();
+                if (StringUtils.isEmpty(keyWork)) {
+                    loadDataByNeer();
+                } else
+                    loadDataByCity(StringUtils.isEmpty(keyWork) ? "" : keyWork);
+
                 break;
             default:
                 break;
@@ -173,19 +180,23 @@ public class LocationSearchActivity extends BaseActivity {
                 if (editable == null) return;
                 String key = editable.toString();
                 List<PoiInfo> chche = new ArrayList<>();
-                for (PoiInfo e : listData) {
-                    String text = e.city + e.name + e.address;
-                    boolean isOK = StringUtils.isInclude(text, key);
-                    if (isOK)
-                        chche.add(e);
-                }
-                if (ListUtils.isEmpty(chche)) {//如果数据为空,就获取输入的地址对应的数据
-                    if (type == 2) {
-                        loadDataByCity(key);
-                    } else adapter.setListData(null);
-                    return;
+                if (!ListUtils.isEmpty(listData)) {
+                    for (PoiInfo e : listData) {
+                        String text = e.city + e.name + e.address;
+                        boolean isOK = StringUtils.isInclude(text, key);
+                        if (isOK)
+                            chche.add(e);
+                    }
+                    if (ListUtils.isEmpty(chche)) {//如果数据为空,就获取输入的地址对应的数据
+                        if (type == 2) {
+                            loadDataByCity(key);
+                        } else adapter.setListData(null);
+                        return;
+                    } else {
+                        adapter.setListData(chche);
+                    }
                 } else {
-                    adapter.setListData(chche);
+                    loadDataByCity(key);
                 }
             }
         });
@@ -200,9 +211,6 @@ public class LocationSearchActivity extends BaseActivity {
         });
     }
 
-    private void loadDataByCity() {
-        loadDataByCity(StringUtils.isEmpty(keyWork) ? "" : keyWork);
-    }
 
     private void loadDataByCity(String keyWork) {
         isChina = true;
@@ -225,27 +233,34 @@ public class LocationSearchActivity extends BaseActivity {
     private BaiduMapUtil.OnSearchPoiListener listener = new BaiduMapUtil.OnSearchPoiListener() {
         @Override
         public void result(SearchResult result) {
-            if (result == null) return;
-//            if (isChina)
-
-            PoiResult poiResult = (PoiResult) result;
-            List<PoiInfo> chches = poiResult.getAllPoi();
-            if (ListUtils.isEmpty(chches)) {
-                if (isChina) {
-                    isChina = false;
-                    BaiduMapUtil.getInstence().searchByInput(keyWork, pageNum, listener);
-                }
+            if (result == null) {
+                Log.i("gongpengming", "返回为空");
+                listData = null;
+                adapter.setListData(listData);
                 return;
-            }
-            BaiduMapUtil.getInstence().setMapViewPoint(bmapView, chches.get(0).location, true);
-            for (int i = 0; i < chches.size(); i++) {
-                if (StringUtils.isEmpty(chches.get(i).name) || StringUtils.isEmpty(chches.get(i).address)) {
-                    chches.remove(i);
-                    i--;
+            } else {
+                PoiResult poiResult = (PoiResult) result;
+                List<PoiInfo> chches = poiResult.getAllPoi();
+                if (ListUtils.isEmpty(chches)) {
+                    Log.i("gongpengming", "chches==nulll");
+                    if (isChina) {
+                        isChina = false;
+                        BaiduMapUtil.getInstence().searchByInput(keyWork, pageNum, listener);
+                        return;
+                    }
+                } else {
+                    BaiduMapUtil.getInstence().setMapViewPoint(bmapView, chches.get(0).location, true);
+                    for (int i = 0; i < chches.size(); i++) {
+                        if (StringUtils.isEmpty(chches.get(i).name) || StringUtils.isEmpty(chches.get(i).address)) {
+                            chches.remove(i);
+                            i--;
+                        }
+                    }
                 }
+                listData = chches;
+                adapter.setListData(listData);
             }
-            listData = chches;
-            adapter.setListData(listData);
+
         }
     };
 

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

@@ -369,8 +369,15 @@ public class MissionActivity extends BaseActivity implements View.OnClickListene
     }
 
     public void showNotLocation() {
+        int stringId = 0;
+        if (MyApplication.getInstance().isNetworkActive()) {
+            stringId = R.string.open_location;
+        } else
+            stringId = R.string.networks_out;
+
+        if (stringId == 0) return;
         MaterialDialog dialog = new MaterialDialog.Builder(ct).title(R.string.prompt_title).
-                content(R.string.open_location)
+                content(stringId)
                 .positiveText(R.string.sure).
                         autoDismiss(false).callback(new MaterialDialog.ButtonCallback() {
                     @Override

+ 63 - 52
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/attendance/AutoErpService.java

@@ -50,17 +50,25 @@ public class AutoErpService extends Service {
     private ReckonAutoUtil reckonAutoUtil;//计算工具
     private NotificationManage notificationManage;//通知管理器
 
-    private final long MINUTE = 60 * 1000;//一分钟的时间戳
-    private long workInterval = 5 * MINUTE;//计算循环的时间
-    private long missionInterval = 2 * MINUTE;//分钟计算一次
+    private final long INTERVAL = 2 * 60 * 1000;//每两分钟回来一次,防止时间太久出现回不来情况 通过 iter来判断是否进入判断
+    private final int WORK_ITER = 5;//计算循环的时间
     private final int MISSION_ITER = 10;//外勤时间  2分钟的倍数
+
     private AutoErpSigninUitl signinUitl;
 
+    private int missionIter;
+    private int workIter;
+
+
+    private boolean isWorkRuning = false;
+    private boolean isMissionRuning = false;
+    private boolean canWork = false;
+    private boolean canMission = false;
+
     private final String[] flags = {
             CHANGE_WORK_TASK,//
             CHANGE_MISSION_TASK,//
             INIT_MISSION_TASK,//初始化外勤签到任务
-
             UPDATA_ERP_CHANGE//更换账套
     };
     private Handler handler = new Handler() {
@@ -95,11 +103,6 @@ public class AutoErpService extends Service {
         }
     };
 
-    private boolean isWorkRuning = false;
-    private boolean isMissionRuning = false;
-    private boolean canWork = false;
-    private boolean canMission = false;
-
     private BroadcastReceiver updateReceiver = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
@@ -111,13 +114,17 @@ public class AutoErpService extends Service {
                 } else if (intent.getAction().equals(CHANGE_WORK_TASK)) {//自动打卡任务变更
                     log(CHANGE_WORK_TASK);
                     canWork = intent.getBooleanExtra(CHANGE_WORK_TASK, true);//获取是否开启任务
-                    if (canWork && !isWorkRuning)
+                    if (canWork && !isWorkRuning) {
                         startWorkTask();
+                    } else
+                        workIter = 0;
                 } else if (intent.getAction().equals(CHANGE_MISSION_TASK)) {//自动外勤任务开启变更
                     log(CHANGE_MISSION_TASK);
                     canMission = intent.getBooleanExtra(CHANGE_MISSION_TASK, true);
                     if (canMission && !isMissionRuning) {
                         startMissionTask();
+                    } else {
+                        missionIter = 0;
                     }
                 } else if (intent.getAction().equals(INIT_MISSION_TASK)) {
                     initMission();
@@ -174,7 +181,7 @@ public class AutoErpService extends Service {
     private void startWorkTask() throws Exception {
         log("startWorkTask");
         isWorkRuning = true;
-        iter = 1;
+        workIter = 0;
         ThreadUtil.getInstance().addLoopTask(new Runnable() {
             @Override
             public void run() {
@@ -184,43 +191,46 @@ public class AutoErpService extends Service {
                             isWorkRuning = false;
                             break;
                         }
-                        //百度地图定位
+                        //如果外勤没有打开,由内勤作为定位
                         if (!isMissionRuning) {
-                            iter++;
-                            if (iter == 2) {
-                                iter = 1;
+                            int i = WORK_ITER - 1;
+                            if (workIter == i) {
                                 MyApplication.getInstance().getBdLocationHelper().requestLocation();
                             }
                         }
-                        log("startWorkTask run");
-                        //是否提醒
-                        if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(),
-                                AppConfig.AUTO_SIGNIN, true)) {
-                            WorkModel model = getReckonAutoUtil().reckonAutoWork();
-                            if (model != null) {
-                                log("符合打卡");
-                                //TODO 符合打卡
-                                Message message = handler.obtainMessage();
-                                message.what = STATUS_SIGNING;
-                                Bundle bundle = new Bundle();
-                                bundle.putParcelable("data", model);
-                                message.setData(bundle);
-                                handler.sendMessage(message);
-                            }
-                        } else if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.ALARMA_CLICK, false)) {//提醒  1.离开办公室 2.上班提醒   3.下班提醒
-                            int type = getReckonAutoUtil().reckonAlarm(workInterval);
-                            if (type == 1) {
-                                //TODO 符合离开办公室提醒
-                                handler.sendEmptyMessage(STATUS_LEAVE_ALARM);
-                            } else if (type == 2) {
-                                //TODO 符合上班提醒
-                                handler.sendEmptyMessage(STATUS_WORK_ALARM);
-                            } else if (type == 3) {
-                                //TODO 符合下班提醒
-                                handler.sendEmptyMessage(STATUS_OFF_ALARM);
+                        if (workIter == 0 || workIter == WORK_ITER) {
+                            workIter = 0;
+                            log("startWorkTask run");
+                            if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(),
+                                    AppConfig.AUTO_SIGNIN, true)) {
+                                //计算打卡
+                                WorkModel model = getReckonAutoUtil().reckonAutoWork();
+                                if (model != null) {
+                                    log("符合打卡");
+                                    //TODO 符合打卡
+                                    Message message = handler.obtainMessage();
+                                    message.what = STATUS_SIGNING;
+                                    Bundle bundle = new Bundle();
+                                    bundle.putParcelable("data", model);
+                                    message.setData(bundle);
+                                    handler.sendMessage(message);
+                                }
+                            } else if (CommonUtil.getSharedPreferencesBoolean(MyApplication.getInstance(), AppConfig.ALARMA_CLICK, false)) {//提醒  1.离开办公室 2.上班提醒   3.下班提醒
+                                int type = getReckonAutoUtil().reckonAlarm(INTERVAL);
+                                if (type == 1) {
+                                    //TODO 符合离开办公室提醒
+                                    handler.sendEmptyMessage(STATUS_LEAVE_ALARM);
+                                } else if (type == 2) {
+                                    //TODO 符合上班提醒
+                                    handler.sendEmptyMessage(STATUS_WORK_ALARM);
+                                } else if (type == 3) {
+                                    //TODO 符合下班提醒
+                                    handler.sendEmptyMessage(STATUS_OFF_ALARM);
+                                }
                             }
                         }
-                        Thread.sleep(workInterval);
+                        workIter++;
+                        Thread.sleep(INTERVAL);
                     } catch (InterruptedException e) {
                         if (e != null)
                             log("startWorkTask InterruptedException=" + e.getMessage());
@@ -231,11 +241,8 @@ public class AutoErpService extends Service {
                 }
             }
         });
-
     }
 
-    private int iter;
-
     /**
      * 开启自动外勤任务
      * 在获取外勤计划列表之后
@@ -244,7 +251,7 @@ public class AutoErpService extends Service {
      */
     private void startMissionTask() throws Exception {
         log("startMissionTask");
-        iter = 0;
+        missionIter = 0;
         isMissionRuning = true;
         ThreadUtil.getInstance().addLoopTask(new Runnable() {
             @Override
@@ -259,12 +266,12 @@ public class AutoErpService extends Service {
                         log("startMissionTask run");
                         save("外勤", "startMissionTask run");
                         int i = MISSION_ITER - 1;
-                        if (iter == i) {
+                        if (missionIter == i) {
                             MyApplication.getInstance().getBdLocationHelper().requestLocation();
                         }
-                        if (iter == 0 || iter == MISSION_ITER) {
+                        if (missionIter == 0 || missionIter == MISSION_ITER) {
                             save("外勤", "符合进来计算");
-                            iter = 1;
+                            missionIter = 0;
                             List<MissionModel> plans = MissionDao.getInstance().queryByEnCode();
                             log("自动外勤 plans==" + (ListUtils.isEmpty(plans) ? 0 : plans.size()));
                             //符合外勤判断
@@ -284,8 +291,8 @@ public class AutoErpService extends Service {
                                 }
                             }
                         }
-                        iter++;
-                        Thread.sleep(missionInterval);
+                        missionIter++;
+                        Thread.sleep(INTERVAL);
                     } catch (InterruptedException e) {
                         if (e != null)
                             log("startWorkTask InterruptedException=" + e.getMessage());
@@ -326,7 +333,11 @@ public class AutoErpService extends Service {
     }
 
 
-    private void init() {
+    private void init() throws Exception {
+        try {
+            MyApplication.getInstance().getBdLocationHelper().requestLocation();
+        } catch (Exception e) {
+        }
         signinUitl = new AutoErpSigninUitl();
         initWork();
         initMission();

+ 15 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/BaiduMapUtil.java

@@ -145,9 +145,15 @@ public class BaiduMapUtil {
     }
 
     public void setMapViewPoint(MapView mapView, boolean isClear) {
-        LatLng point = new LatLng(MyApplication.getInstance().getBdLocationHelper().getLatitude(),
-                MyApplication.getInstance().getBdLocationHelper().getLongitude());
-        setMapViewPoint(mapView, point, isClear);
+        try {
+            LatLng point = new LatLng(MyApplication.getInstance().getBdLocationHelper().getLatitude(),
+                    MyApplication.getInstance().getBdLocationHelper().getLongitude());
+            setMapViewPoint(mapView, point, isClear);
+        } catch (NullPointerException e) {
+
+        } catch (Exception e) {
+
+        }
     }
 
     /**
@@ -260,18 +266,23 @@ public class BaiduMapUtil {
         public void onGetPoiResult(PoiResult result) {
             //获取POI检索结果
             Log.i("gongpengming", "onGetPoiResult");
-            if (onSearchPoiListener == null || result == null) return;
+            if (onSearchPoiListener == null || result == null){
+                Log.i("gongpengming", "result == null");
+                return;
+            }
             onSearchPoiListener.result(result);
         }
 
         public void onGetPoiDetailResult(PoiDetailResult result) {
             //获取Place详情页检索结果
+            Log.i("gongpengming", "onGetPoiDetailResult");
             if (onSearchPoiListener == null || result == null) return;
             onSearchPoiListener.result(result);
         }
 
         @Override
         public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
+            Log.i("gongpengming", "onGetPoiIndoorResult");
             if (onSearchPoiListener == null || poiIndoorResult == null) return;
             onSearchPoiListener.result(poiIndoorResult);
         }

+ 58 - 15
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/wheel/DatePicker.java

@@ -4,14 +4,18 @@ import android.app.Activity;
 import android.support.annotation.IntDef;
 import android.support.annotation.NonNull;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.Gravity;
 import android.view.View;
 import android.widget.LinearLayout;
 import android.widget.TextView;
+
 import com.xzjmyk.pm.activity.util.DateFormatUtil;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Collections;
 import java.util.Comparator;
 
@@ -60,8 +64,9 @@ public class DatePicker extends WheelPicker {
     public DatePicker(Activity activity) {
         this(activity, YEAR_MONTH_DAY);
     }
-    
-    private boolean loadMoreMonth=false;
+
+    private boolean loadMoreMonth = false;
+
     /**
      * Instantiates a new Date picker.
      *
@@ -75,21 +80,21 @@ public class DatePicker extends WheelPicker {
         super(activity);
         this.mode = mode;
         for (int i = 2000; i <= 2050; i++) {
-            if (!loadMoreMonth){
-                if (i<=DateFormatUtil.getCurrentYear()) {
+            if (!loadMoreMonth) {
+                if (i <= DateFormatUtil.getCurrentYear()) {
                     years.add(String.valueOf(i));
                 }
-            }else{
+            } else {
                 years.add(String.valueOf(i));
             }
-          
+
         }
         for (int i = 1; i <= 12; i++) {
-            if (!loadMoreMonth){
-                if (i<=DateFormatUtil.getCurrentMonth()) {
+            if (!loadMoreMonth) {
+                if (i <= DateFormatUtil.getCurrentMonth()) {
                     months.add(DateUtils.fillZero(i));
                 }
-            }else{
+            } else {
                 months.add(DateUtils.fillZero(i));
             }
         }
@@ -120,14 +125,14 @@ public class DatePicker extends WheelPicker {
     public void setRange(int startYear, int endYear) {
         years.clear();
         for (int i = startYear; i <= endYear; i++) {
-            if (!loadMoreMonth){
-                if (i<=DateFormatUtil.getCurrentYear()){
+            if (!loadMoreMonth) {
+                if (i <= DateFormatUtil.getCurrentYear()) {
                     years.add(String.valueOf(i));
                 }
-            }else{
+            } else {
                 years.add(String.valueOf(i));
             }
-          
+
         }
     }
 
@@ -209,7 +214,7 @@ public class DatePicker extends WheelPicker {
             yearTextView.setText(yearLabel);
         }
         layout.addView(yearTextView);
-        WheelView monthView = new WheelView(activity.getBaseContext());
+        final WheelView monthView = new WheelView(activity.getBaseContext());
         monthView.setLayoutParams(new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT));
         monthView.setTextSize(textSize);
         monthView.setTextColor(textColorNormal, textColorFocus);
@@ -248,7 +253,7 @@ public class DatePicker extends WheelPicker {
             yearView.setVisibility(View.GONE);
             yearTextView.setVisibility(View.GONE);
         }
-        if (mode != MONTH_DAY) {
+        if (mode != YEAR_MONTH) {
             if (!TextUtils.isEmpty(yearLabel)) {
                 yearTextView.setText(yearLabel);
             }
@@ -274,6 +279,44 @@ public class DatePicker extends WheelPicker {
                     dayView.setItems(days, selectedDayIndex);
                 }
             });
+        } else {
+            //TODO update by gongpengming 2017/1/5 月份不出来问题
+            if (!TextUtils.isEmpty(yearLabel)) {
+                yearTextView.setText(yearLabel);
+            }
+            if (selectedYearIndex == 0) {
+                yearView.setItems(years);
+            } else {
+                yearView.setItems(years, selectedYearIndex);
+            }
+            yearView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
+                @Override
+                public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
+                    Log.i("gongpengming", "进来了");
+                    selectedYearIndex = selectedIndex;
+                    int maxMonth = 1;
+                    try {
+                        int year = Integer.valueOf(years.get(selectedYearIndex));
+                        Calendar c = Calendar.getInstance();
+                        int newYear = c.get(Calendar.YEAR);
+                        if (newYear == year) {
+                            maxMonth = c.get(Calendar.MONTH) + 1;
+                            selectedMonthIndex = maxMonth;
+                        } else {
+                            maxMonth = 12;
+                        }
+                        months.clear();
+                        for (int i = 1; i <= maxMonth; i++) {
+                            months.add(DateUtils.fillZero(i));
+                        }
+                        selectedMonthIndex = Math.min(selectedMonthIndex, months.size());
+                        monthView.setItems(months, selectedMonthIndex);
+                    } catch (Exception e) {
+                        if (e != null)
+                            Log.i("gongpengming", "Exception =" + e.getMessage());
+                    }
+                }
+            });
         }
         if (!TextUtils.isEmpty(monthLabel)) {
             monthTextView.setText(monthLabel);

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/wheel/OASigninPicker.java

@@ -41,7 +41,7 @@ public class OASigninPicker extends WheelPicker {
     public OASigninPicker(Activity activity) {
         super(activity);
         textSize = 16;//年月日时分,比较宽,设置字体小一点才能显示完整
-        for (int i = 2011; i <= 2017; i++) {
+        for (int i = 2015; i <= 2017; i++) {
             years.add(String.valueOf(i));
         }
         for (int i = 1; i <= 12; i++) {

BIN
WeiChat/src/main/res/drawable-xhdpi/location_empty.png


BIN
WeiChat/src/main/res/drawable-xxhdpi/location_empty.png


+ 16 - 12
WeiChat/src/main/res/layout/activity_location_search.xml

@@ -40,48 +40,51 @@
         android:layout_height="0dp"
         android:layout_weight="3"
         android:clickable="false" />
+
     <LinearLayout
         android:id="@+id/qzone_map_ll"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:orientation="vertical"
         android:visibility="gone">
+
         <TextView
             android:id="@+id/hidden_location_tv"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginTop="5dp"
             android:layout_marginBottom="5dp"
+            android:layout_marginTop="5dp"
             android:padding="5dp"
             android:text="不显示位置"
-            android:textSize="@dimen/text_main"
             android:textColor="@color/titleBlue"
-            android:visibility="visible"
-            />
+            android:textSize="@dimen/text_main"
+            android:visibility="visible" />
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
             android:layout_marginTop="8dp"
             android:background="@color/light_gray"
-            android:visibility="visible"/>
+            android:visibility="visible" />
+
         <TextView
             android:id="@+id/location_city_tv"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_marginTop="5dp"
             android:layout_marginBottom="5dp"
+            android:layout_marginTop="5dp"
             android:padding="5dp"
             android:text=""
-            android:textSize="@dimen/text_main"
-            />
+            android:textSize="@dimen/text_main" />
+
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/line"
             android:layout_marginTop="8dp"
-            android:background="@color/light_gray"
-            />
+            android:background="@color/light_gray" />
     </LinearLayout>
-    <ListView
+
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
         android:id="@+id/listview"
         android:layout_width="match_parent"
         android:layout_height="0dp"
@@ -89,5 +92,6 @@
         android:divider="@color/item_line"
         android:dividerHeight="1dp"
         android:focusableInTouchMode="false"
-        android:scrollingCache="false" />
+        android:scrollingCache="false"
+        />
 </LinearLayout>

+ 20 - 0
WeiChat/src/main/res/layout/empty_locayion.xml

@@ -0,0 +1,20 @@
+<?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">
+
+    <ImageView
+        android:id="@+id/empty_img"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_centerInParent="true"
+        android:src="@drawable/location_empty" />
+
+    <TextView
+        android:layout_marginTop="10dp"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/empty_img"
+        android:layout_centerHorizontal="true"
+        android:text="未找到公司位置,请搜索地址" />
+</RelativeLayout>

+ 5 - 3
WeiChat/src/main/res/layout/item_mission.xml

@@ -185,15 +185,17 @@
     <RelativeLayout
         android:layout_width="wrap_content"
         android:layout_height="@dimen/misson_item_height"
+        android:minHeight="@dimen/misson_item_height"
         android:paddingLeft="@dimen/misson_item_pl"
         android:paddingRight="@dimen/misson_item_pr">
 
         <TextView
             android:id="@+id/remark_tag"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:layout_marginRight="20dp"
             android:gravity="center"
+            android:minHeight="@dimen/misson_item_height"
             android:text="拜访目的"
             android:textColor="@color/text_main"
             android:textSize="@dimen/text_main" />
@@ -201,13 +203,13 @@
         <EditText
             android:id="@+id/item_remark_tv"
             android:layout_width="wrap_content"
-            android:layout_height="match_parent"
+            android:layout_height="wrap_content"
             android:layout_alignParentRight="true"
             android:layout_toRightOf="@+id/remark_tag"
             android:background="@null"
             android:gravity="center|right"
             android:hint="@string/input_must"
-            android:maxLines="3"
+            android:minHeight="@dimen/misson_item_height"
             android:textColor="@color/text_hine"
             android:textSize="@dimen/text_hine" />
     </RelativeLayout>

+ 2 - 1
WeiChat/src/main/res/values/strings.xml

@@ -17,6 +17,7 @@
         <item>30分钟</item>
     </string-array>
     <string name="open_location">定位失败,请确认允许程序使用定位权限</string>
+    <string name="end_less_start">结束时间不能小于或等于开始时间</string>
     <string name="delete_item">确定要删除吗</string>
     <string name="select_must">选择(必填)</string>
     <string name="input_must">输入(必填)</string>
@@ -60,7 +61,7 @@
     <string name="send_mail">发送短信</string>
     <string name="add_plan">请添加工作计划!</string>
     <string name="add_learned">请添加心得体会!</string>
-    <string name="networks_out">网络未连接!</string>
+    <string name="networks_out">网络未连接,请检查网络!</string>
     <string name="session_out">会话已断开</string>
     <string name="crm_sale_num">****元  (第**名)</string>
     <string name="not_format_phone">手机格式不正确!</string>