Bitliker %!s(int64=9) %!d(string=hai) anos
pai
achega
8879406b2b

+ 4 - 5
WeiChat/src/main/AndroidManifest.xml

@@ -19,7 +19,7 @@
     <uses-permission android:name="android.permission.CALL_PHONE" />
     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
-        <uses-permission android:name="android.permission.GET_TASKS" />
+    <uses-permission android:name="android.permission.GET_TASKS" />
     <uses-permission android:name="android.permission.SET_DEBUG_APP" />
     <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
     <uses-permission android:name="android.permission.GET_ACCOUNTS" />
@@ -784,9 +784,7 @@
             android:name="com.xzjmyk.pm.basepedo.ui.MyPedometerActivity"
             android:label="UU运动" />
 
-        <service
-            android:name="com.xzjmyk.pm.basepedo.service.StepService"
-            >
+        <service android:name="com.xzjmyk.pm.basepedo.service.StepService">
             <intent-filter android:priority="1000">
 
                 <!-- 系统启动完成后会调用 -->
@@ -808,7 +806,8 @@
             </intent-filter>
         </receiver>
 
-        <activity android:name=".ui.erp.activity.oa.ErpActivity"></activity>
+        <activity android:name=".ui.erp.activity.oa.ErpActivity" />
+        <activity android:name=".ui.erp.activity.oa.SelectAimActivity"></activity>
     </application>
 
 </manifest>

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

@@ -28,6 +28,7 @@ import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.adapter.MissionAdapter;
 import com.xzjmyk.pm.activity.ui.erp.model.MissionModel;
+import com.xzjmyk.pm.activity.ui.erp.model.SelectAimModel;
 import com.xzjmyk.pm.activity.ui.erp.presenter.MissionPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IMission;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IMissionPresenter;
@@ -214,7 +215,8 @@ public class MissionActivity extends BaseActivity implements View.OnClickListene
         switch (view.getId()) {
             case R.id.item_company_tv://选择公司名称
                 if (model == null || model.getStatus() == 1) return;
-                intent = new Intent(ct, DestinationActivity.class);
+                intent = new Intent(ct, SelectAimActivity.class);
+//                intent = new Intent(ct, DestinationActivity.class);
                 startActivityForResult(intent, 0x20);
                 break;
             case R.id.item_companyaddr_tv://选择公司地址
@@ -295,22 +297,26 @@ public class MissionActivity extends BaseActivity implements View.OnClickListene
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (resultCode != 0x20 || data == null) return;
         if (requestCode == 0x20) {//选择公司
-            MissionModel entity = data.getParcelableExtra("data");
-            if (entity == null) return;
-            if (ListUtils.isEmpty(adapter.getModels()) || adapter.getModels().size() <= position)
-                return;
-            adapter.getModels().get(position).setCompanyName(StringUtils.isEmpty(entity.getCompanyName()) ? "" : entity.getCompanyName());
-            adapter.getModels().get(position).setCompanyAddr(StringUtils.isEmpty(entity.getCompanyAddr()) ? "" : entity.getCompanyAddr());
-            adapter.getModels().get(position).setVisitcount(1 + entity.getVisitcount());
-            if (entity.getLatLng() != null) {
-                adapter.getModels().get(position).setLatLng(entity.getLatLng());
-                adapter.getModels().get(position).setDistance(BaiduMapUtil.getInstence().distance(adapter.getModels().get(position).getLatLng()
-                        , new LatLng(MyApplication.getInstance().getBdLocationHelper().getLatitude(),
-                                MyApplication.getInstance().getBdLocationHelper().getLongitude())));
-            }
-            adapter.notifyItemChanged(position);
-            if (entity.getLatLng() != null)
-                setEndTime(entity.getLatLng(), entity.getDistance());
+            SelectAimModel entity = data.getParcelableExtra("data");
+            showSaveCompany(entity);
+
+
+//            MissionModel entity = data.getParcelableExtra("data");
+//            if (entity == null) return;
+//            if (ListUtils.isEmpty(adapter.getModels()) || adapter.getModels().size() <= position)
+//                return;
+//            adapter.getModels().get(position).setCompanyName(StringUtils.isEmpty(entity.getCompanyName()) ? "" : entity.getCompanyName());
+//            adapter.getModels().get(position).setCompanyAddr(StringUtils.isEmpty(entity.getCompanyAddr()) ? "" : entity.getCompanyAddr());
+//            adapter.getModels().get(position).setVisitcount(1 + entity.getVisitcount());
+//            if (entity.getLatLng() != null) {
+//                adapter.getModels().get(position).setLatLng(entity.getLatLng());
+//                adapter.getModels().get(position).setDistance(BaiduMapUtil.getInstence().distance(adapter.getModels().get(position).getLatLng()
+//                        , new LatLng(MyApplication.getInstance().getBdLocationHelper().getLatitude(),
+//                                MyApplication.getInstance().getBdLocationHelper().getLongitude())));
+//            }
+//            adapter.notifyItemChanged(position);
+//            if (entity.getLatLng() != null)
+//                setEndTime(entity.getLatLng(), entity.getDistance());
         } else if (requestCode == 0x21) {//选择地址
             PoiInfo info = data.getParcelableExtra("resultName");
             if (info == null) {
@@ -362,6 +368,12 @@ public class MissionActivity extends BaseActivity implements View.OnClickListene
         }
     }
 
+    //显示确认公司
+    private void showSaveCompany(SelectAimModel entity) {
+
+
+    }
+
 
     /**
      * @param location

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

@@ -0,0 +1,110 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.oa;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.view.View;
+
+import com.baidu.mapapi.map.MapView;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.adapter.SelectAimAdapter;
+import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
+import com.xzjmyk.pm.activity.ui.erp.model.SelectAimModel;
+import com.xzjmyk.pm.activity.ui.erp.presenter.SelectAimPresenter;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectAim;
+import com.xzjmyk.pm.activity.util.BaiduMapUtil;
+import com.xzjmyk.pm.activity.view.ClearEditText;
+import com.xzjmyk.pm.activity.view.crouton.Crouton;
+
+import java.util.List;
+
+public class SelectAimActivity extends BaseActivity implements ISelectAim {
+
+    @ViewInject(R.id.search_edit)
+    private ClearEditText search_edit;
+    @ViewInject(R.id.mapView)
+    private MapView mapView;
+    @ViewInject(R.id.listview)
+    private RecyclerView listview;
+    private SelectAimAdapter adapter;
+    private SelectAimPresenter presenter;
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_select_aim);
+        ViewUtils.inject(this);
+        initView();
+        initEvent();
+        initData();
+    }
+
+    private void initData() {
+        presenter = new SelectAimPresenter(this);
+        presenter.start();
+    }
+
+    private void initEvent() {
+        search_edit.addTextChangedListener(new EditChangeListener() {
+            @Override
+            public void afterTextChanged(Editable editable) {
+                String input = editable.toString();
+                presenter.seachByKey(input);
+            }
+        });
+        adapter.setOnitemClickListener(new SelectAimAdapter.OnitemClickListener() {
+            @Override
+            public void click(SelectAimModel model) {
+                Intent intent = new Intent();
+                intent.putExtra("data", model);
+                setResult(0x20, intent);
+            }
+        });
+    }
+
+    private void initView() {
+        BaiduMapUtil.getInstence().setMapViewPoint(mapView, MyApplication.getInstance().getBdLocationHelper().getLocation());
+        listview.setLayoutManager(new LinearLayoutManager(this));
+        adapter = new SelectAimAdapter();
+        listview.setAdapter(adapter);
+    }
+
+
+    @Override
+    public void showLoading() {
+        progressDialog.show();
+    }
+
+    @Override
+    public void dimssLoading() {
+        if (progressDialog.isShowing())
+            progressDialog.dismiss();
+    }
+
+    @Override
+    public void showToast(String message, int colorId) {
+        Crouton.showToast(this, message, colorId);
+    }
+
+    @Override
+    public void showToast(int reId, int colorId) {
+        Crouton.showToast(this, reId, colorId);
+    }
+
+    @Override
+    public void showModel(List<SelectAimModel> models) {
+        if (!TextUtils.isEmpty(search_edit.getText())) {
+            mapView.setVisibility(View.GONE);
+        } else mapView.setVisibility(View.VISIBLE);
+        adapter.setModels(models);
+        adapter.notifyDataSetChanged();
+    }
+}

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

@@ -0,0 +1,152 @@
+package com.xzjmyk.pm.activity.ui.erp.adapter;
+
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.model.SelectAimModel;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.util.BaiduMapUtil;
+
+import java.util.List;
+
+/**
+ * Created by Bitliker on 2017/1/12.
+ */
+
+public class SelectAimAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
+    private List<SelectAimModel> models;
+
+    public List<SelectAimModel> getModels() {
+        return models;
+    }
+
+    public void setModels(List<SelectAimModel> models) {
+        this.models = models;
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return models.get(position).getType();
+    }
+
+    @Override
+    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        RecyclerView.ViewHolder holder = null;
+        View view = null;
+        if (viewType == 1) {
+            view = LayoutInflater.from(MyApplication.getInstance()).inflate(R.layout.item_select_aim_empty, parent, false);
+            holder = new EmptyViewHolder(view);
+        } else if (viewType == 2) {
+            view = LayoutInflater.from(MyApplication.getInstance()).inflate(R.layout.item_select_aim_load, parent, false);
+            holder = new LoadViewHolder(view);
+        } else if (viewType == 3) {
+            view = LayoutInflater.from(MyApplication.getInstance()).inflate(R.layout.item_select_aim_map, parent, false);
+            holder = new MapViewHolder(view);
+        }
+        return holder;
+    }
+
+    @Override
+    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
+        try {
+            final SelectAimModel model = models.get(position);
+            if (holder instanceof EmptyViewHolder) {
+                bindEmptyView((EmptyViewHolder) holder, model);
+            } else if (holder instanceof LoadViewHolder) {
+                bindLoadView((LoadViewHolder) holder, model);
+            } else if (holder instanceof MapViewHolder) {
+                bindMapView((MapViewHolder) holder, model);
+            }
+            holder.itemView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View view) {
+                    if (onitemClickListener != null)
+                        onitemClickListener.click(model);
+                }
+            });
+        } catch (Exception e) {
+            if (e != null)
+                Log.i("gongpengming", "onBindViewHolder Exception e=" + e.getMessage());
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        return ListUtils.isEmpty(models) ? 0 : models.size();
+    }
+
+    private void bindEmptyView(EmptyViewHolder holder, SelectAimModel model) throws Exception {
+
+    }
+
+    private void bindLoadView(LoadViewHolder holder, SelectAimModel model) throws Exception {
+        holder.title_tv.setText(getNull(model.getName()));
+        holder.sub_tv.setText(getNull(model.getAddress()));
+        holder.time_tv.setText(getNull(model.getTime()));
+        holder.times_tv.setText(getNull(model.getTimes() + ""));
+        holder.distance_tv.setText(BaiduMapUtil.getInstence().getDistance(model.getLatLng()));
+    }
+
+    private void bindMapView(MapViewHolder holder, SelectAimModel model) throws Exception {
+        holder.title_tv.setText(getNull(model.getName()));
+        holder.sub_tv.setText(getNull(model.getAddress()));
+        holder.distance_tv.setText(BaiduMapUtil.getInstence().getDistance(model.getLatLng()));
+    }
+
+    class EmptyViewHolder extends RecyclerView.ViewHolder {
+        public EmptyViewHolder(View itemView) {
+            super(itemView);
+        }
+    }
+
+    class MapViewHolder extends RecyclerView.ViewHolder {
+        TextView distance_tv,
+                title_tv,
+                sub_tv;
+
+        public MapViewHolder(View itemView) {
+            super(itemView);
+            distance_tv = (TextView) itemView.findViewById(R.id.distance_tv);
+            title_tv = (TextView) itemView.findViewById(R.id.title_tv);
+            sub_tv = (TextView) itemView.findViewById(R.id.sub_tv);
+        }
+    }
+
+    class LoadViewHolder extends RecyclerView.ViewHolder {
+        TextView distance_tv,
+                title_tv,
+                sub_tv,
+                times_tv,
+                time_tv;
+
+        public LoadViewHolder(View itemView) {
+            super(itemView);
+            distance_tv = (TextView) itemView.findViewById(R.id.distance_tv);
+            title_tv = (TextView) itemView.findViewById(R.id.title_tv);
+            sub_tv = (TextView) itemView.findViewById(R.id.sub_tv);
+            times_tv = (TextView) itemView.findViewById(R.id.times_tv);
+            time_tv = (TextView) itemView.findViewById(R.id.time_tv);
+        }
+    }
+
+    public void setOnitemClickListener(OnitemClickListener onitemClickListener) {
+        this.onitemClickListener = onitemClickListener;
+    }
+
+    private OnitemClickListener onitemClickListener;
+
+    public interface OnitemClickListener {
+        void click(SelectAimModel model);
+    }
+
+    private String getNull(String messgae) {
+        return StringUtils.isEmpty(messgae) ? "" : messgae;
+    }
+}

+ 106 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/SelectAimModel.java

@@ -0,0 +1,106 @@
+package com.xzjmyk.pm.activity.ui.erp.model;
+
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import com.baidu.mapapi.model.LatLng;
+
+/**
+ * Created by Bitliker on 2017/1/12.
+ */
+
+public class SelectAimModel implements Parcelable {
+    private int type;//1.空数据   2.数据库数据  3.地图数据
+    private LatLng latLng;
+    private String name;
+    private String address;
+    private String time;
+    private int times;
+
+    public SelectAimModel() {
+    }
+
+    protected SelectAimModel(Parcel in) {
+        type = in.readInt();
+        latLng = in.readParcelable(LatLng.class.getClassLoader());
+        name = in.readString();
+        address = in.readString();
+        time = in.readString();
+        times = in.readInt();
+    }
+
+    public static final Creator<SelectAimModel> CREATOR = new Creator<SelectAimModel>() {
+        @Override
+        public SelectAimModel createFromParcel(Parcel in) {
+            return new SelectAimModel(in);
+        }
+
+        @Override
+        public SelectAimModel[] newArray(int size) {
+            return new SelectAimModel[size];
+        }
+    };
+
+    @Override
+    public int describeContents() {
+        return 0;
+    }
+
+    @Override
+    public void writeToParcel(Parcel parcel, int i) {
+        parcel.writeInt(type);
+        parcel.writeParcelable(latLng, i);
+        parcel.writeString(name);
+        parcel.writeString(address);
+        parcel.writeString(time);
+        parcel.writeInt(times);
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    public LatLng getLatLng() {
+        return latLng;
+    }
+
+    public void setLatLng(LatLng latLng) {
+        this.latLng = latLng;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public String getTime() {
+        return time;
+    }
+
+    public void setTime(String time) {
+        this.time = time;
+    }
+
+    public int getTimes() {
+        return times;
+    }
+
+    public void setTimes(int times) {
+        this.times = times;
+    }
+}

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

@@ -0,0 +1,275 @@
+package com.xzjmyk.pm.activity.ui.erp.presenter;
+
+import android.os.Bundle;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+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.xzjmyk.pm.activity.AppConfig;
+import com.xzjmyk.pm.activity.BdLocationHelper;
+import com.xzjmyk.pm.activity.MyApplication;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.model.SelectAimModel;
+import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectAim;
+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.auto.HttpHandler;
+import com.xzjmyk.pm.activity.util.BaiduMapUtil;
+import com.xzjmyk.pm.activity.util.TimeUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by Bitliker on 2017/1/12.
+ */
+
+public class SelectAimPresenter implements HttpHandler.OnResultListener {
+    private ISelectAim iSelectAim;
+    private final int LOAD = 0x11;
+    private BdLocationHelper locationHelper;
+    private List<SelectAimModel> models;//从服务其返回的数据列表
+    private String keyWork;
+    private boolean seachChina = false;
+
+
+    public SelectAimPresenter(ISelectAim iSelectAim) {
+        this.iSelectAim = iSelectAim;
+    }
+
+    /******
+     * start 对外接口
+     **********/
+    public void start() {
+        locationHelper = MyApplication.getInstance().getBdLocationHelper();
+        loadOutAddress();
+    }
+
+    public void seachByKey(String keyWork) {
+        this.keyWork = keyWork;
+        if (ListUtils.isEmpty(models)) {
+            if (StringUtils.isEmpty(keyWork)) {
+                loadNeer();
+            } else {
+                loadDataByChina();
+            }
+        } else {
+            if (StringUtils.isEmpty(keyWork)) {
+                if (iSelectAim != null) {
+                    iSelectAim.showModel(models);
+                    return;
+                }
+            }
+            List<SelectAimModel> chche = new ArrayList<>();
+            for (SelectAimModel e : models) {
+                if (isIncude(keyWork, e)) chche.add(e);
+            }
+            if (ListUtils.isEmpty(chche)) {
+                loadDataByChina();
+            } else {
+                if (iSelectAim != null)
+                    iSelectAim.showModel(chche);
+            }
+        }
+    }
+
+    /******
+     * end 对外接口
+     **********/
+
+
+    /***********************
+     * 内部计算函数
+     ***********************************/
+
+    //从服务器获取数据
+    private void loadOutAddress() {
+        log("loadOutAddress");
+        if (!MyApplication.getInstance().isNetworkActive()) {
+            if (iSelectAim != null)
+                iSelectAim.showToast(R.string.networks_out, R.color.load_error);
+            return;
+        }
+        if (iSelectAim != null)
+            iSelectAim.showLoading();
+
+        //获取网络数据
+        Map<String, Object> param = new HashMap<>();
+        param.put("condition", "1=1");
+        param.put("pageIndex", 1);
+        param.put("pageSize", 1000);
+        HttpHandler.getInstance().loadERPByNet(LOAD, "mobile/getOutAddressDate.action", param, null, this);
+    }
+
+    //下载附近数据
+    private void loadNeer() {
+        log("loadNeer");
+        BaiduMapUtil.getInstence().getNearInfo(200, 0, locationHelper.getLocation(), listener);
+    }
+
+    //下载全国数据
+    private void loadDataByChina() {
+        log("loadDataByChina");
+        seachChina = true;
+        BaiduMapUtil.getInstence().searchByInputOnChina(StringUtils.isEmpty(keyWork) ? "" : keyWork, 0, listener);
+    }
+
+    //下载本城市数据
+    private void loadDataByCity() {
+        log("loadDataByCity");
+        seachChina = false;
+        BaiduMapUtil.getInstence().searchByInput(StringUtils.isEmpty(keyWork) ? "" : keyWork, 0, listener);
+    }
+
+    private BaiduMapUtil.OnSearchPoiListener listener = new BaiduMapUtil.OnSearchPoiListener() {
+        @Override
+        public void result(SearchResult result) {
+            if (result == null) {
+                if (seachChina) {
+                    loadDataByCity();
+                    return;
+                } else {
+                    showEmpty();
+                }
+                return;
+            }
+            PoiResult poiResult = (PoiResult) result;
+            List<PoiInfo> chches = poiResult.getAllPoi();
+            if (ListUtils.isEmpty(chches)) {
+                if (seachChina) {
+                    loadDataByCity();
+                    return;
+                } else {//搜索城市为空数据
+                    showEmpty();
+                }
+            } else {
+                List<SelectAimModel> models = new ArrayList<>();
+                SelectAimModel model = null;
+                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 {
+                        model = new SelectAimModel();
+                        model.setType(3);
+                        model.setName(chches.get(i).name);
+                        model.setAddress(chches.get(i).address);
+                        model.setLatLng(chches.get(i).location);
+                        models.add(model);
+                    }
+                }
+                if (ListUtils.isEmpty(models)) {
+                    showEmpty();
+                } else {
+                    if (StringUtils.isEmpty(keyWork)) {
+                        SelectAimPresenter.this.models = models;
+                    }
+                    show(models);
+                }
+            }
+        }
+    };
+
+    @Override
+    public void result(int what, boolean isJSON, String message, Bundle bundle) {
+        if (what == LOAD && isJSON) {
+            JSONArray array = JSON.parseObject(message).getJSONArray("data");
+            handleDada(array);
+        }
+    }
+
+    @Override
+    public void error(int what, int statuCode, String message, Bundle bundle) {
+        if (iSelectAim != null)
+            iSelectAim.dimssLoading();
+    }
+
+
+    //处理请求下来的数据
+    private void handleDada(JSONArray array) {
+        if (ListUtils.isEmpty(array)) {
+            loadNeer();
+            if (iSelectAim != null)
+                iSelectAim.dimssLoading();
+            return;
+        }
+        SelectAimModel model = null;
+        JSONObject object = null;
+        List<SelectAimModel> models = new ArrayList<>();
+        for (int i = 0; i < array.size(); i++) {
+            try {
+                model = new SelectAimModel();
+                object = array.getJSONObject(i);
+                model.setAddress(object.getString("MD_ADDRESS"));
+                model.setTimes(object.getInteger("MD_VISITCOUNT"));
+                model.setName(object.getString("MD_COMPANY"));
+                //TODO id先不要
+//                model.seti(object.getInteger("MD_ID"));
+                model.setType(2);
+                float longitude = object.getFloatValue("MD_LONGITUDE");
+                float latitude = object.getFloatValue("MD_LATITUDE");
+                if (longitude != 0 && latitude != 0) {
+                    model.setLatLng(new LatLng(latitude, longitude));
+                }
+                if (object.getInteger("MD_VISITTIME") != null) {
+                    try {
+                        model.setTime(TimeUtils.f_long_2_str(object.getLong("MD_VISITTIME")));
+                    } catch (Exception e) {
+                        if (e != null)
+                            log("e.getMessage" + e.getMessage());
+                    }
+                }
+                models.add(model);
+
+            } catch (Exception e) {
+
+            }
+        }
+        showByLoad(models);
+    }
+
+    private void showByLoad(List<SelectAimModel> models) {
+        this.models = models;
+        if (iSelectAim != null) {
+            iSelectAim.showModel(models);
+            iSelectAim.dimssLoading();
+        }
+    }
+
+    private void showEmpty() {
+        List<SelectAimModel> models = new ArrayList<>();
+        SelectAimModel model = new SelectAimModel();
+        model.setType(1);
+        models.add(model);
+        show(models);
+    }
+
+    private void show(List<SelectAimModel> models) {
+        if (iSelectAim != null) {
+            iSelectAim.showModel(models);
+            iSelectAim.dimssLoading();
+        }
+    }
+
+    private boolean isIncude(String key, SelectAimModel model) {
+        String text = model.getAddress() + model.getTime() + model.getName();
+        return StringUtils.isInclude(text, key);
+    }
+
+    private void log(String message) {
+        try {
+            if (!AppConfig.DEBUG || StringUtils.isEmpty(message)) return;
+            Log.i("gongpengming", message);
+        } catch (Exception e) {
+            if (e != null)
+                Log.i("gongpengming", "show Exception" + e.getMessage());
+        }
+    }
+}

+ 14 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/imp/ISelectAim.java

@@ -0,0 +1,14 @@
+package com.xzjmyk.pm.activity.ui.erp.presenter.imp;
+
+import com.xzjmyk.pm.activity.ui.erp.model.SelectAimModel;
+
+import java.util.List;
+
+/**
+ * Created by Bitliker on 2017/1/12.
+ */
+
+public interface ISelectAim extends HttpImp {
+
+    void showModel(List<SelectAimModel> models);
+}

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

@@ -240,7 +240,7 @@ public class BaiduMapUtil {
             mPoiSearch.setOnGetPoiSearchResultListener(poiListener);
             mPoiSearch.searchInCity((new PoiCitySearchOption())
                     .city(MyApplication.getInstance().getBdLocationHelper().getCityName())
-                    .keyword(location).pageNum(pagerNum)
+                    .keyword(location).pageNum(pagerNum).pageCapacity(1000)
             );
         } catch (Exception e) {
             if (e != null)
@@ -257,7 +257,7 @@ public class BaiduMapUtil {
             mPoiSearch.searchInCity((new PoiCitySearchOption())
                     .city("中国")
                     .keyword(location)
-                    .pageNum(pagerNum)
+                    .pageNum(pagerNum).pageCapacity(1000)
             );
         } catch (Exception e) {
             if (e != null)

+ 48 - 0
WeiChat/src/main/res/layout/activity_select_aim.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:focusable="true"
+    android:focusableInTouchMode="true"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:id="@+id/search_rl"
+        android:layout_width="match_parent"
+        android:layout_height="48dp"
+        android:background="@drawable/bg_bar"
+        android:focusable="true"
+        android:focusableInTouchMode="true"
+        android:orientation="horizontal"
+        android:paddingBottom="5dp"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp"
+        android:paddingTop="5dp">
+
+        <com.xzjmyk.pm.activity.view.ClearEditText
+            android:id="@+id/search_edit"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:background="@drawable/search_input"
+            android:drawableLeft="@drawable/search"
+            android:drawableRight="@drawable/search_clear"
+            android:hint="@string/search"
+            android:textColor="@color/dark_grey"
+            android:textColorHint="@color/grey"
+            android:textSize="15sp" />
+    </RelativeLayout>
+
+    <com.baidu.mapapi.map.MapView
+        android:id="@+id/mapView"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="3"
+        android:clickable="false" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/listview"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:layout_weight="5"
+        android:dividerHeight="1dp" />
+</LinearLayout>

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

@@ -9,7 +9,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:padding="@dimen/misson_item_pl"
-        android:visibility="gone">
+       >
 
         <TextView
             android:id="@+id/long_tv"

+ 33 - 0
WeiChat/src/main/res/layout/item_select_aim_empty.xml

@@ -0,0 +1,33 @@
+<?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"
+    android:padding="10dp">
+
+    <ImageView
+        android:id="@+id/home_tag"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:src="@drawable/add_address" />
+
+    <TextView
+        android:id="@+id/title"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="10dp"
+        android:layout_toRightOf="@id/home_tag"
+        android:text="没有符合条件的结果"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignLeft="@id/title"
+        android:layout_marginTop="5dp"
+        android:layout_below="@id/title"
+        android:layout_toRightOf="@id/home_tag"
+        android:text="请搜索地址后完善单位名称"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+</RelativeLayout>

+ 61 - 0
WeiChat/src/main/res/layout/item_select_aim_load.xml

@@ -0,0 +1,61 @@
+<?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"
+    android:padding="10dp">
+
+    <TextView
+        android:id="@+id/distance_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:text="10km"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+    <TextView
+        android:id="@+id/title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_toLeftOf="@id/distance_tv"
+        android:text="没有符合条件的结果"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:id="@+id/sub_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignLeft="@id/title_tv"
+        android:layout_below="@id/title_tv"
+        android:layout_marginTop="8dp"
+        android:text="请搜索地址后完善单位名称"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+    <TextView
+        android:id="@+id/times_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_below="@id/sub_tv"
+        android:layout_marginTop="8dp"
+        android:drawableLeft="@drawable/icon_all_mission"
+        android:text="总拜访 2 次"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+    <TextView
+        android:id="@+id/time_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_below="@id/sub_tv"
+        android:layout_marginTop="8dp"
+        android:layout_toLeftOf="@id/times_tv"
+        android:drawableLeft="@drawable/icon_last_missiom"
+        android:text="上次拜访"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+</RelativeLayout>

+ 38 - 0
WeiChat/src/main/res/layout/item_select_aim_map.xml

@@ -0,0 +1,38 @@
+<?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"
+    android:padding="10dp">
+
+    <TextView
+        android:id="@+id/distance_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:text="10km"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+    <TextView
+        android:id="@+id/title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_marginLeft="10dp"
+        android:layout_toLeftOf="@id/distance_tv"
+        android:text="没有符合条件的结果"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_main" />
+
+    <TextView
+        android:id="@+id/sub_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignLeft="@id/title_tv"
+        android:layout_below="@id/title_tv"
+        android:layout_marginTop="8dp"
+        android:text="请搜索地址后完善单位名称"
+        android:textColor="@color/text_hine"
+        android:textSize="@dimen/text_hine" />
+
+</RelativeLayout>