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

合并draft 与developer分支

FANGLH 8 лет назад
Родитель
Сommit
63c20641e2
23 измененных файлов с 1395 добавлено и 39 удалено
  1. 3 2
      WeiChat/src/main/AndroidManifest.xml
  2. 3 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/Constants.java
  3. 173 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryActivity.java
  4. 26 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryListActivity.java
  5. 37 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryMoreMenuActivity.java
  6. 351 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquirySearchActivity.java
  7. 341 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportQuerySearchActivity.java
  8. 166 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportStatisticsActivity.java
  9. 38 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportStatisticsMoreMenuActivity.java
  10. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryFlexAdapter.java
  11. 5 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMenuGridAdapter.java
  12. 36 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMenuListAdapter.java
  13. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMoreMenuAdapter.java
  14. 38 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/ReportStatisticsMenuListAdapter.java
  15. 26 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/bean/DataInquirySearchBean.java
  16. 26 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/bean/ReportQuerySearchBean.java
  17. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/view/CircleTextView.java
  18. 12 0
      WeiChat/src/main/res/layout/activity_data_inquiry.xml
  19. 49 0
      WeiChat/src/main/res/layout/activity_data_inquiry_search.xml
  20. 49 0
      WeiChat/src/main/res/layout/activity_report_query_search.xml
  21. 2 1
      WeiChat/src/main/res/layout/item_grid_data_inquiry_menu.xml
  22. 8 7
      WeiChat/src/main/res/layout/item_list_data_inquiry_menu.xml
  23. 1 1
      WeiChat/src/main/res/layout/item_list_data_inquiry_more_menu.xml

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

@@ -824,6 +824,7 @@
         <!-- 动态表单 -->
 
 
+
         <service
             android:name=".util.oa.AutoErpService"
             android:enabled="true"
@@ -842,7 +843,7 @@
         <activity
             android:name=".ui.erp.activity.oa.SelectRemarkActivity"
             android:label="@string/activity_visit_aims"
-            android:windowSoftInputMode="stateUnspecified|adjustNothing">
+            android:windowSoftInputMode="stateUnspecified|adjustNothing" >
             <intent-filter>
                 <action android:name="com.modular.appworks.SelectRemarkActivity" />
                 <category android:name="android.intent.category.DEFAULT" />
@@ -883,7 +884,7 @@
             android:name=".ui.erp.activity.oa.SelectCollisionActivity"
             android:configChanges="keyboardHidden|orientation"
             android:label="@string/select_join_number"
-            android:windowSoftInputMode="stateUnspecified|adjustNothing">
+            android:windowSoftInputMode="stateUnspecified|adjustNothing" >
             <intent-filter>
                 <action android:name="com.modular.main.SelectCollisionActivity" />
                 <category android:name="android.intent.category.DEFAULT" />

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

@@ -13,6 +13,9 @@ public interface Constants {
         String DATA_INQUIRY_MENU_CACHE = "data_inquiry_menu_cache";
         String REPORT_QUERY_MENU_CACHE = "report_query_menu_cache";
 
+        String DATA_INQUIRY_MENU_RECENT_CACHE = "data_inquiry_menu_recent_cache";
+        String REPORT_QUERY_MENU_RECENT_CACHE = "report_query_menu_recent_cache";
+
         //打印成功
         int DOWNLOAD_SUCCESS = 1;
         //打印失败

+ 173 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryActivity.java

@@ -1,21 +1,33 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.widget.AbsListView;
+import android.widget.AdapterView;
+import android.widget.LinearLayout;
 import android.widget.ListView;
+import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+import com.core.widget.view.MyGridView;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.DataInquiryMenuGridAdapter;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.DataInquiryMenuListAdapter;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.GridMenuDataInquiryBean;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.view.DrawableCenterTextView;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -36,6 +48,13 @@ public class DataInquiryActivity extends BaseActivity {
     private PullToRefreshListView mMenuListView;
     private List<GridMenuDataInquiryBean> mGridMenuDataInquiryBeans;
     private DataInquiryMenuListAdapter mDataInquiryMenuListAdapter;
+    private DataInquiryMenuGridAdapter mDataInquiryMenuGridAdapter;
+    private List<DataInquiryGirdItemBean> mDataInquiryGirdItemBeans;
+    private LinearLayout mRecentBrowseLl;
+    private View mDataInquiryModulView;
+    private TextView mDataInquiryModulTitleTv;
+    private MyGridView mDataInquiryModulGv;
+    private DrawableCenterTextView mSearchTextView;
     private String mCurrentMaster;
     private String mCurrentUser;
 
@@ -43,16 +62,22 @@ public class DataInquiryActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_data_inquiry);
-        getSupportActionBar().setTitle(R.string.select_query_service);
+        getSupportActionBar().setTitle("数据查询");
 
-        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
-        mGridMenuDataInquiryBeans = new ArrayList<>();
-        mDataInquiryMenuListAdapter = new DataInquiryMenuListAdapter(this, mGridMenuDataInquiryBeans);
-        mMenuListView.setAdapter(mDataInquiryMenuListAdapter);
+        initViews();
+        initEvents();
+        initDatas();
 
-        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
-        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+    }
 
+    @Override
+    protected void onResume() {
+        super.onResume();
+        refreshRecentHeader();
+    }
+
+
+    private void initDatas() {
         String dataInquiryMenuCache = CommonUtil.getSharedPreferences(this,
                 mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_CACHE);
         if (TextUtils.isEmpty(dataInquiryMenuCache)) {
@@ -65,6 +90,9 @@ public class DataInquiryActivity extends BaseActivity {
             analysisMenuData(dataInquiryMenuCache);
         }
 
+    }
+
+    private void initEvents() {
         mMenuListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
@@ -87,8 +115,130 @@ public class DataInquiryActivity extends BaseActivity {
 
             }
         });
+
+        mDataInquiryModulGv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                DataInquiryGirdItemBean dataInquiryGirdItemBean = mDataInquiryMenuGridAdapter.getObjects().get(position);
+                String iconText = dataInquiryGirdItemBean.getIconText();
+                String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(DataInquiryActivity.this,
+                        mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE);
+                List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+                if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                    try {
+                        recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+
+                        for (int i = 0; i < recentBrowse.size(); i++) {
+                            if (iconText != null && iconText.equals(recentBrowse.get(i).getIconText())) {
+                                recentBrowse.remove(i);
+                            }
+                        }
+                    } catch (Exception e) {
+
+                    }
+                }
+
+                recentBrowse.add(0, dataInquiryGirdItemBean);
+
+                String recentJson = JSON.toJSON(recentBrowse).toString();
+                CommonUtil.setSharedPreferences(DataInquiryActivity.this
+                        , mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE
+                        , recentJson);
+
+//                mDataInquiryGirdItemBeans.clear();
+//                mDataInquiryGirdItemBeans.addAll(recentBrowse);
+//                mDataInquiryMenuGridAdapter.notifyDataSetChanged();
+
+                for (int i = 0; i < mGridMenuDataInquiryBeans.size(); i++) {
+                    List<GridMenuDataInquiryBean.QueryScheme> querySchemes = mGridMenuDataInquiryBeans.get(i).getQuerySchemes();
+                    for (int j = 0; j < querySchemes.size(); j++) {
+                        if (dataInquiryGirdItemBean.getIconText().equals(querySchemes.get(j).getScheme())) {
+                            Intent intent = new Intent();
+                            intent.setClass(DataInquiryActivity.this, DataInquiryListActivity.class);
+                            intent.putExtra("scheme", querySchemes.get(j));
+                            DataInquiryActivity.this.startActivity(intent);
+                            return;
+                        }
+                    }
+                }
+            }
+        });
+
+        mSearchTextView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(DataInquiryActivity.this, DataInquirySearchActivity.class);
+                startActivity(intent);
+            }
+        });
     }
 
+    private void initViews() {
+        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
+        mSearchTextView = (DrawableCenterTextView) findViewById(R.id.data_inquiry_menu_search_tv);
+
+        mGridMenuDataInquiryBeans = new ArrayList<>();
+        mDataInquiryMenuListAdapter = new DataInquiryMenuListAdapter(this, mGridMenuDataInquiryBeans);
+        mMenuListView.setAdapter(mDataInquiryMenuListAdapter);
+
+        mRecentBrowseLl = (LinearLayout) View.inflate(this, R.layout.item_list_data_inquiry_menu, null);
+        mDataInquiryModulView = (View) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_view);
+        mDataInquiryModulTitleTv = (TextView) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_title_tv);
+        mDataInquiryModulGv = (MyGridView) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_gv);
+
+        mDataInquiryGirdItemBeans = new ArrayList<>();
+        mDataInquiryMenuGridAdapter = new DataInquiryMenuGridAdapter(this, mDataInquiryGirdItemBeans);
+        mDataInquiryModulGv.setAdapter(mDataInquiryMenuGridAdapter);
+
+        mDataInquiryModulView.setBackgroundColor(getResources().getColor(R.color.black));
+        mDataInquiryModulTitleTv.setText("最近查询业务");
+
+        AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT);
+        mRecentBrowseLl.setLayoutParams(layoutParams);
+
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+    }
+
+    private void getRecentBrowse() {
+        try {
+            String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(this,
+                    mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE);
+            if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                List<GridMenuDataInquiryBean> dataInquiryBeans = mDataInquiryMenuListAdapter.getObjects();
+                mDataInquiryGirdItemBeans.clear();
+
+                List<DataInquiryGirdItemBean> recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+                for (int i = 0; i < recentBrowse.size(); i++) {
+                    DataInquiryGirdItemBean inquiryGirdItemBean = recentBrowse.get(i);
+                    boolean isExist = false;
+                    if (dataInquiryBeans != null)
+                        for (int j = 0; j < dataInquiryBeans.size(); j++) {
+                            List<GridMenuDataInquiryBean.QueryScheme> querySchemes = dataInquiryBeans.get(j).getQuerySchemes();
+                            if (querySchemes != null)
+                                for (int k = 0; k < querySchemes.size(); k++) {
+                                    if (inquiryGirdItemBean.getIconText().equals(querySchemes.get(k).getScheme())) {
+                                        isExist = true;
+                                        break;
+                                    }
+                                }
+                        }
+
+                    if (i < 9 && isExist) {
+                        mDataInquiryGirdItemBeans.add(inquiryGirdItemBean);
+                    }
+                }
+
+                mDataInquiryMenuGridAdapter.notifyDataSetChanged();
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
     private void getMenuData() {
         progressDialog.show();
         String url = CommonUtil.getAppBaseUrl(this) + "mobile/qry/queryJsp.action";
@@ -171,6 +321,8 @@ public class DataInquiryActivity extends BaseActivity {
                         }
                     }
                     mDataInquiryMenuListAdapter.notifyDataSetChanged();
+
+                    refreshRecentHeader();
                 }
             } catch (JSONException e) {
                 e.printStackTrace();
@@ -178,6 +330,20 @@ public class DataInquiryActivity extends BaseActivity {
         }
     }
 
+    private void refreshRecentHeader() {
+        getRecentBrowse();
+        ListView refreshableView = mMenuListView.getRefreshableView();
+        int headerViewsCount = refreshableView.getHeaderViewsCount();
+        Log.d("headerViewsCount", headerViewsCount + "");
+        if (mDataInquiryGirdItemBeans.size() == 0) {
+            if (headerViewsCount == 2)
+                refreshableView.removeHeaderView(mRecentBrowseLl);
+        } else {
+            if (headerViewsCount == 1)
+                refreshableView.addHeaderView(mRecentBrowseLl);
+        }
+    }
+
 
     public String optStringNotNull(JSONObject json, String key) {
         if (json.isNull(key)) {

+ 26 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryListActivity.java

@@ -295,7 +295,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                         public void run() {
                             mDataListView.onRefreshComplete();
                         }
-                    },500);
+                    }, 500);
                     mEmptyLayout.setErrorMessage(getString(R.string.networks_out));
                     mEmptyLayout.showError();
                 }
@@ -309,7 +309,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                         public void run() {
                             mDataListView.onRefreshComplete();
                         }
-                    },500);
+                    }, 500);
                     mEmptyLayout.setErrorMessage(getString(R.string.networks_out));
                     mEmptyLayout.showError();
                 } else {
@@ -532,7 +532,29 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                                     mAllRowChildBeans.add(rowChildBean);
                                 }
                             }
-                            List<DataInquiryFlexBean.RowBean.RowChildBean> shortChildBeans = new ArrayList<>();
+
+                            for (int k = 0; k < mAllRowChildBeans.size(); k++) {
+                                DataInquiryFlexBean.RowBean rowBean = new DataInquiryFlexBean.RowBean();
+
+                                List<DataInquiryFlexBean.RowBean.RowChildBean> childBeans = new ArrayList<>();
+
+                                DataInquiryFlexBean.RowBean.RowChildBean rowChildBean1 = mAllRowChildBeans.get(k);
+                                childBeans.add(rowChildBean1);
+                                if (rowChildBean1.getWidth() <= 100 && k < (mAllRowChildBeans.size() - 1)) {
+                                    DataInquiryFlexBean.RowBean.RowChildBean rowChildBean2 = mAllRowChildBeans.get(k + 1);
+                                    if (rowChildBean2.getWidth() <= 100) {
+                                        childBeans.add(rowChildBean2);
+                                        k++;
+                                    }
+                                }
+
+                                rowBean.setRowChildBeans(childBeans);
+
+                                rowBeans.add(rowBean);
+                            }
+
+                            ////////////////////////////////////////
+                            /*List<DataInquiryFlexBean.RowBean.RowChildBean> shortChildBeans = new ArrayList<>();
                             List<DataInquiryFlexBean.RowBean.RowChildBean> longChildBeans = new ArrayList<>();
                             for (int k = 0; k < mAllRowChildBeans.size(); k++) {
                                 DataInquiryFlexBean.RowBean.RowChildBean rowChildBean = mAllRowChildBeans.get(k);
@@ -576,7 +598,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
 
                                 rowBeans.add(rowBean);
                             }
-
+*/
                             dataInquiryFlexBean.setRowBeans(rowBeans);
 
                             mDataInquiryFlexBeans.add(dataInquiryFlexBean);

+ 37 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryMoreMenuActivity.java

@@ -2,13 +2,17 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
 
+import com.alibaba.fastjson.JSON;
+import com.core.utils.CommonUtil;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.DataInquiryMoreMenuAdapter;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.GridMenuDataInquiryBean;
 
 import java.util.ArrayList;
@@ -25,6 +29,8 @@ public class DataInquiryMoreMenuActivity extends BaseActivity implements Adapter
     private int mColor;
     private String mModelName;
     private List<GridMenuDataInquiryBean.QueryScheme> mQuerySchemes;
+    private String mCurrentMaster;
+    private String mCurrentUser;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -34,6 +40,9 @@ public class DataInquiryMoreMenuActivity extends BaseActivity implements Adapter
         mMenuListView = (ListView) findViewById(R.id.data_inquiry_more_menu_lv);
         mMenuStrings = new ArrayList<>();
 
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+
         Intent intent = getIntent();
         if (intent != null) {
             mColor = intent.getIntExtra("menu_color", -1);
@@ -58,6 +67,34 @@ public class DataInquiryMoreMenuActivity extends BaseActivity implements Adapter
 
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        DataInquiryGirdItemBean dataInquiryGirdItemBean = new DataInquiryGirdItemBean();
+        dataInquiryGirdItemBean.setColor(mColor);
+        dataInquiryGirdItemBean.setIconText(mQuerySchemes.get(position).getScheme());
+
+        String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(DataInquiryMoreMenuActivity.this,
+                mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE);
+        List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+        if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+            try {
+                recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+
+                for (int i = 0; i < recentBrowse.size(); i++) {
+                    if (mQuerySchemes.get(position).getScheme() != null && mQuerySchemes.get(position).getScheme().equals(recentBrowse.get(i).getIconText())) {
+                        recentBrowse.remove(i);
+                    }
+                }
+            } catch (Exception e) {
+
+            }
+        }
+
+        recentBrowse.add(0, dataInquiryGirdItemBean);
+
+        String recentJson = JSON.toJSON(recentBrowse).toString();
+        CommonUtil.setSharedPreferences(DataInquiryMoreMenuActivity.this
+                , mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE
+                , recentJson);
+
         Intent intent = new Intent();
         intent.setClass(this, DataInquiryListActivity.class);
         intent.putExtra("scheme", mQuerySchemes.get(position));

+ 351 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquirySearchActivity.java

@@ -0,0 +1,351 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.Filter;
+import android.widget.Filterable;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.common.data.StringUtil;
+import com.core.utils.CommonUtil;
+import com.core.widget.ClearEditText;
+import com.core.widget.EmptyLayout;
+import com.core.xmpp.utils.audio.voicerecognition.JsonParser;
+import com.iflytek.cloud.RecognizerResult;
+import com.iflytek.cloud.SpeechConstant;
+import com.iflytek.cloud.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialog;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquirySearchBean;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.GridMenuDataInquiryBean;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.view.CircleTextView;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2017/9/14.
+ */
+
+public class DataInquirySearchActivity extends BaseActivity {
+    private ClearEditText mSearchEditText;
+    private ImageView mVoiceImageView;
+    private ListView mResultListView;
+    private DataInquirySearchAdapter mDataInquirySearchAdapter;
+    private List<DataInquirySearchBean> mDataInquirySearchBeanList;
+    private String mCurrentMaster;
+    private String mCurrentUser;
+    private EmptyLayout mEmptyLayout;
+
+    private int[] mColors = new int[]{R.color.data_inquiry_gird_menu_color1, R.color.data_inquiry_gird_menu_color2
+            , R.color.data_inquiry_gird_menu_color3, R.color.data_inquiry_gird_menu_color4, R.color.data_inquiry_gird_menu_color5,
+            R.color.data_inquiry_gird_menu_color6};
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_data_inquiry_search);
+        getSupportActionBar().setTitle("数据查询");
+
+        initViews();
+        initEvents();
+        initDatas();
+    }
+
+    private void initEvents() {
+        mSearchEditText.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                if (mDataInquirySearchAdapter == null) {
+                    //Toast.makeText(getApplication(), "系统内部错误", Toast.LENGTH_SHORT).show();
+                } else {
+                    if (!StringUtil.isEmpty(s.toString())) {
+                        mDataInquirySearchAdapter.getFilter().filter(s.toString());
+                    } else {
+                        mDataInquirySearchAdapter.getFilter().filter(null);
+                    }
+                }
+            }
+        });
+
+        mResultListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                DataInquiryGirdItemBean dataInquiryGirdItemBean = new DataInquiryGirdItemBean();
+                dataInquiryGirdItemBean.setColor(mDataInquirySearchBeanList.get(position).getColor());
+                dataInquiryGirdItemBean.setIconText(mDataInquirySearchBeanList.get(position).getQueryScheme().getScheme());
+
+                String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(DataInquirySearchActivity.this,
+                        mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE);
+                List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+                if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                    try {
+                        recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+
+                        for (int i = 0; i < recentBrowse.size(); i++) {
+                            if (mDataInquirySearchBeanList.get(position).getQueryScheme().getScheme() != null && mDataInquirySearchBeanList.get(position).getQueryScheme().getScheme().equals(recentBrowse.get(i).getIconText())) {
+                                recentBrowse.remove(i);
+                            }
+                        }
+                    } catch (Exception e) {
+
+                    }
+                }
+
+                recentBrowse.add(0, dataInquiryGirdItemBean);
+
+                String recentJson = JSON.toJSON(recentBrowse).toString();
+                CommonUtil.setSharedPreferences(DataInquirySearchActivity.this
+                        , mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE
+                        , recentJson);
+
+                Intent intent = new Intent();
+                intent.setClass(DataInquirySearchActivity.this, DataInquiryListActivity.class);
+                intent.putExtra("scheme", mDataInquirySearchBeanList.get(position).getQueryScheme());
+                startActivity(intent);
+            }
+        });
+
+        mVoiceImageView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                RecognizerDialog dialog = new RecognizerDialog(DataInquirySearchActivity.this, null);
+                dialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
+                dialog.setParameter(SpeechConstant.ACCENT, "mandarin");
+                dialog.setListener(new RecognizerDialogListener() {
+                    @Override
+                    public void onResult(RecognizerResult recognizerResult, boolean b) {
+                        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+                        String s = mSearchEditText.getText().toString() + CommonUtil.getPlaintext(text);
+                        mSearchEditText.setText(s);
+                        mSearchEditText.setSelection(s.length());
+                    }
+
+                    @Override
+                    public void onError(SpeechError speechError) {
+
+                    }
+                });
+                dialog.show();
+            }
+        });
+    }
+
+    private void initDatas() {
+        String dataInquiryMenuCache = CommonUtil.getSharedPreferences(this,
+                mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_CACHE);
+        if (TextUtils.isEmpty(dataInquiryMenuCache)) {
+            mEmptyLayout.showEmpty();
+        } else {
+            analysisMenuData(dataInquiryMenuCache);
+        }
+    }
+
+    private void initViews() {
+        mSearchEditText = (ClearEditText) findViewById(R.id.data_inquiry_search_et);
+        mVoiceImageView = (ImageView) findViewById(R.id.data_inquiry_search_voice_iv);
+        mResultListView = (ListView) findViewById(R.id.data_inquiry_search_lv);
+
+        mEmptyLayout = new EmptyLayout(this, mResultListView);
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("没有符合条件的数据");
+
+        mDataInquirySearchBeanList = new ArrayList<>();
+        mDataInquirySearchAdapter = new DataInquirySearchAdapter(this, mDataInquirySearchBeanList);
+        mResultListView.setAdapter(mDataInquirySearchAdapter);
+
+
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+    }
+
+    private void analysisMenuData(String result) {
+        if (result != null) {
+            try {
+                JSONObject resultObject = new JSONObject(result);
+                JSONArray dataArray = resultObject.optJSONArray("data");
+                if (dataArray != null) {
+                    for (int i = 0; i < dataArray.length(); i++) {
+                        JSONObject dataObject = dataArray.optJSONObject(i);
+                        if (dataObject != null) {
+                            JSONArray listArray = dataObject.optJSONArray("list");
+                            if (listArray != null) {
+                                for (int j = 0; j < listArray.length(); j++) {
+                                    JSONObject listObject = listArray.optJSONObject(j);
+                                    if (listObject != null) {
+                                        String title = optStringNotNull(listObject, "title");
+                                        String caller = optStringNotNull(listObject, "caller");
+                                        JSONArray schemeArray = listObject.optJSONArray("schemes");
+                                        if (schemeArray != null) {
+                                            for (int k = 0; k < schemeArray.length(); k++) {
+                                                JSONObject schemeObject = schemeArray.optJSONObject(k);
+                                                if (schemeObject != null) {
+                                                    DataInquirySearchBean dataInquirySearchBean = new DataInquirySearchBean();
+
+                                                    String scheme = optStringNotNull(schemeObject, "scheme");
+                                                    String schemeId = optStringNotNull(schemeObject, "schemeId");
+
+                                                    GridMenuDataInquiryBean.QueryScheme queryScheme = new GridMenuDataInquiryBean.QueryScheme();
+                                                    queryScheme.setTitle(title);
+                                                    queryScheme.setCaller(caller);
+                                                    queryScheme.setScheme(scheme);
+                                                    queryScheme.setSchemeId(schemeId);
+
+                                                    dataInquirySearchBean.setQueryScheme(queryScheme);
+                                                    dataInquirySearchBean.setColor(mColors[(i) % mColors.length]);
+
+                                                    mDataInquirySearchBeanList.add(dataInquirySearchBean);
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+
+                mDataInquirySearchAdapter.notifyDataSetChanged();
+                if (mDataInquirySearchBeanList.size() == 0) {
+                    mEmptyLayout.showEmpty();
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public String optStringNotNull(JSONObject json, String key) {
+        if (json.isNull(key)) {
+            return "";
+        } else {
+            return json.optString(key, "");
+        }
+    }
+
+    public class DataInquirySearchAdapter extends BaseAdapter implements Filterable {
+        private List<DataInquirySearchBean> objects = new ArrayList<DataInquirySearchBean>();
+        private List<DataInquirySearchBean> filterObjects = new ArrayList<DataInquirySearchBean>();
+
+        private Context context;
+        private LayoutInflater layoutInflater;
+
+        public DataInquirySearchAdapter(Context context, List<DataInquirySearchBean> objects) {
+            this.context = context;
+            this.layoutInflater = LayoutInflater.from(context);
+            this.objects = objects;
+        }
+
+        public List<DataInquirySearchBean> getObjects() {
+            return objects;
+        }
+
+        @Override
+        public int getCount() {
+            return objects.size();
+        }
+
+        @Override
+        public DataInquirySearchBean getItem(int position) {
+            return objects.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = layoutInflater.inflate(R.layout.item_list_data_inquiry_more_menu, null);
+                convertView.setTag(new ViewHolder(convertView));
+            }
+            initializeViews((DataInquirySearchBean) getItem(position), (ViewHolder) convertView.getTag());
+            return convertView;
+        }
+
+        private void initializeViews(DataInquirySearchBean object, ViewHolder holder) {
+            holder.itemDataInquiryMoreMenuTitle.setText(object.getQueryScheme().getScheme());
+            holder.itemDataInquiryMoreMenuIcon.setText(object.getQueryScheme().getScheme().substring(0, 1));
+            holder.itemDataInquiryMoreMenuIcon.setMyBackgroundColor(context.getResources().getColor(object.getColor()));
+        }
+
+        protected class ViewHolder {
+            private CircleTextView itemDataInquiryMoreMenuIcon;
+            private TextView itemDataInquiryMoreMenuTitle;
+
+            public ViewHolder(View view) {
+                itemDataInquiryMoreMenuIcon = (CircleTextView) view.findViewById(R.id.item_data_inquiry_more_menu_icon);
+                itemDataInquiryMoreMenuTitle = (TextView) view.findViewById(R.id.item_data_inquiry_more_menu_title);
+            }
+        }
+
+        @Override
+        public Filter getFilter() {
+            return new Filter() {
+                @Override
+                protected FilterResults performFiltering(CharSequence constraint) {
+                    FilterResults filterResults = new FilterResults();
+                    if (constraint == null || constraint.length() == 0) {
+                        filterResults.values = mDataInquirySearchBeanList;
+                        filterResults.count = mDataInquirySearchBeanList.size();
+                    } else {
+                        filterObjects = new ArrayList<>();
+                        for (int i = 0; i < mDataInquirySearchBeanList.size(); i++) {
+                            String title = mDataInquirySearchBeanList.get(i).getQueryScheme().getScheme();
+                            if (title.contains(constraint.toString())) {
+                                filterObjects.add(mDataInquirySearchBeanList.get(i));
+                            }
+                        }
+
+                        filterResults.values = filterObjects;
+                        filterResults.count = filterObjects.size();
+                    }
+                    return filterResults;
+                }
+
+                @Override
+                protected void publishResults(CharSequence constraint, FilterResults results) {
+                    objects = (List<DataInquirySearchBean>) results.values;
+                    notifyDataSetChanged();
+                    if (results.count == 0 && mEmptyLayout != null) {
+                        mEmptyLayout.showEmpty();
+                    }
+                }
+            };
+        }
+
+    }
+}

+ 341 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportQuerySearchActivity.java

@@ -0,0 +1,341 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.text.TextWatcher;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.Filter;
+import android.widget.Filterable;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.common.data.StringUtil;
+import com.core.utils.CommonUtil;
+import com.core.widget.ClearEditText;
+import com.core.widget.EmptyLayout;
+import com.core.xmpp.utils.audio.voicerecognition.JsonParser;
+import com.iflytek.cloud.RecognizerResult;
+import com.iflytek.cloud.SpeechConstant;
+import com.iflytek.cloud.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialog;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.GridMenuReportStatisticsBean;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.ReportQuerySearchBean;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.view.CircleTextView;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by RaoMeng on 2017/9/14.
+ */
+
+public class ReportQuerySearchActivity extends BaseActivity {
+    private ClearEditText mSearchEditText;
+    private ImageView mVoiceImageView;
+    private ListView mResultListView;
+    private ReportQuerySearchAdapter mReportQuerySearchAdapter;
+    private List<ReportQuerySearchBean> mQuerySearchBeanList;
+    private String mCurrentMaster;
+    private String mCurrentUser;
+    private EmptyLayout mEmptyLayout;
+
+    private int[] mColors = new int[]{R.color.data_inquiry_gird_menu_color1, R.color.data_inquiry_gird_menu_color2
+            , R.color.data_inquiry_gird_menu_color3, R.color.data_inquiry_gird_menu_color4, R.color.data_inquiry_gird_menu_color5,
+            R.color.data_inquiry_gird_menu_color6};
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_report_query_search);
+        getSupportActionBar().setTitle("报表统计");
+
+        initViews();
+        initEvents();
+        initDatas();
+    }
+
+    private void initViews() {
+        mSearchEditText = (ClearEditText) findViewById(R.id.report_query_search_et);
+        mVoiceImageView = (ImageView) findViewById(R.id.report_query_search_voice_iv);
+        mResultListView = (ListView) findViewById(R.id.report_query_search_lv);
+
+        mEmptyLayout = new EmptyLayout(this, mResultListView);
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("没有符合条件的数据");
+
+        mQuerySearchBeanList = new ArrayList<>();
+        mReportQuerySearchAdapter = new ReportQuerySearchAdapter(this, mQuerySearchBeanList);
+        mResultListView.setAdapter(mReportQuerySearchAdapter);
+
+
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+    }
+
+    private void initEvents() {
+        mSearchEditText.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
+
+            }
+
+            @Override
+            public void onTextChanged(CharSequence s, int start, int before, int count) {
+
+            }
+
+            @Override
+            public void afterTextChanged(Editable s) {
+                if (mReportQuerySearchAdapter == null) {
+                    //Toast.makeText(getApplication(), "系统内部错误", Toast.LENGTH_SHORT).show();
+                } else {
+                    if (!StringUtil.isEmpty(s.toString())) {
+                        mReportQuerySearchAdapter.getFilter().filter(s.toString());
+                    } else {
+                        mReportQuerySearchAdapter.getFilter().filter(null);
+                    }
+                }
+            }
+        });
+
+        mResultListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                DataInquiryGirdItemBean dataInquiryGirdItemBean = new DataInquiryGirdItemBean();
+                dataInquiryGirdItemBean.setColor(mQuerySearchBeanList.get(position).getColor());
+                dataInquiryGirdItemBean.setIconText(mQuerySearchBeanList.get(position).getListBean().getTitle());
+
+                String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(ReportQuerySearchActivity.this,
+                        mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
+                List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+                if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                    try {
+                        recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+
+                        for (int i = 0; i < recentBrowse.size(); i++) {
+                            if (mQuerySearchBeanList.get(position).getListBean().getTitle() != null && mQuerySearchBeanList.get(position).getListBean().getTitle().equals(recentBrowse.get(i).getIconText())) {
+                                recentBrowse.remove(i);
+                            }
+                        }
+                    } catch (Exception e) {
+
+                    }
+                }
+
+                recentBrowse.add(0, dataInquiryGirdItemBean);
+
+                String recentJson = JSON.toJSON(recentBrowse).toString();
+                CommonUtil.setSharedPreferences(ReportQuerySearchActivity.this
+                        , mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE
+                        , recentJson);
+
+                Intent intent = new Intent();
+                intent.setClass(ReportQuerySearchActivity.this, ReportQueryCriteriaActivity.class);
+                intent.putExtra("reportinfo", mQuerySearchBeanList.get(position).getListBean());
+                startActivity(intent);
+            }
+        });
+
+        mVoiceImageView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                RecognizerDialog dialog = new RecognizerDialog(ReportQuerySearchActivity.this, null);
+                dialog.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
+                dialog.setParameter(SpeechConstant.ACCENT, "mandarin");
+                dialog.setListener(new RecognizerDialogListener() {
+                    @Override
+                    public void onResult(RecognizerResult recognizerResult, boolean b) {
+                        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+                        String s = mSearchEditText.getText().toString() + CommonUtil.getPlaintext(text);
+                        mSearchEditText.setText(s);
+                        mSearchEditText.setSelection(s.length());
+                    }
+
+                    @Override
+                    public void onError(SpeechError speechError) {
+
+                    }
+                });
+                dialog.show();
+            }
+        });
+    }
+
+    private void initDatas() {
+        String reportQueryMenuCache = CommonUtil.getSharedPreferences(this,
+                mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_CACHE);
+        if (TextUtils.isEmpty(reportQueryMenuCache)) {
+            mEmptyLayout.showEmpty();
+        } else {
+            analysisMenuData(reportQueryMenuCache);
+        }
+    }
+
+    private void analysisMenuData(String result) {
+        if (result != null) {
+            try {
+                JSONObject resultObject = new JSONObject(result);
+                JSONArray dataArray = resultObject.optJSONArray("data");
+                if (dataArray != null) {
+                    for (int i = 0; i < dataArray.length(); i++) {
+                        JSONObject dataObject = dataArray.optJSONObject(i);
+                        if (dataObject != null) {
+                            JSONArray listArray = dataObject.optJSONArray("list");
+                            if (listArray != null) {
+                                for (int j = 0; j < listArray.length(); j++) {
+                                    ReportQuerySearchBean reportQuerySearchBean = new ReportQuerySearchBean();
+                                    JSONObject listObject = listArray.optJSONObject(j);
+                                    if (listObject != null) {
+                                        GridMenuReportStatisticsBean.ListBean listBean = new GridMenuReportStatisticsBean.ListBean();
+                                        String caller = optStringNotNull(listObject, "caller");
+                                        String title = optStringNotNull(listObject, "title");
+                                        String reportName = optStringNotNull(listObject, "reportName");
+
+                                        listBean.setCaller(caller);
+                                        listBean.setReportName(reportName);
+                                        listBean.setTitle(title);
+
+                                        reportQuerySearchBean.setListBean(listBean);
+                                        reportQuerySearchBean.setColor(mColors[(i) % mColors.length]);
+                                        mQuerySearchBeanList.add(reportQuerySearchBean);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+                mReportQuerySearchAdapter.notifyDataSetChanged();
+                if (mQuerySearchBeanList.size() == 0) {
+                    mEmptyLayout.showEmpty();
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+
+    public String optStringNotNull(JSONObject json, String key) {
+        if (json.isNull(key)) {
+            return "";
+        } else {
+            return json.optString(key, "");
+        }
+    }
+
+    public class ReportQuerySearchAdapter extends BaseAdapter implements Filterable {
+        private List<ReportQuerySearchBean> objects = new ArrayList<ReportQuerySearchBean>();
+        private List<ReportQuerySearchBean> filterObjects = new ArrayList<ReportQuerySearchBean>();
+
+        private Context context;
+        private LayoutInflater layoutInflater;
+
+        public ReportQuerySearchAdapter(Context context, List<ReportQuerySearchBean> objects) {
+            this.context = context;
+            this.layoutInflater = LayoutInflater.from(context);
+            this.objects = objects;
+        }
+
+        public List<ReportQuerySearchBean> getObjects() {
+            return objects;
+        }
+
+        @Override
+        public int getCount() {
+            return objects.size();
+        }
+
+        @Override
+        public ReportQuerySearchBean getItem(int position) {
+            return objects.get(position);
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            if (convertView == null) {
+                convertView = layoutInflater.inflate(R.layout.item_list_data_inquiry_more_menu, null);
+                convertView.setTag(new ViewHolder(convertView));
+            }
+            initializeViews((ReportQuerySearchBean) getItem(position), (ViewHolder) convertView.getTag());
+            return convertView;
+        }
+
+        private void initializeViews(ReportQuerySearchBean object, ViewHolder holder) {
+            holder.itemDataInquiryMoreMenuTitle.setText(object.getListBean().getTitle());
+            holder.itemDataInquiryMoreMenuIcon.setText(object.getListBean().getTitle().substring(0, 1));
+            holder.itemDataInquiryMoreMenuIcon.setMyBackgroundColor(context.getResources().getColor(object.getColor()));
+        }
+
+        protected class ViewHolder {
+            private CircleTextView itemDataInquiryMoreMenuIcon;
+            private TextView itemDataInquiryMoreMenuTitle;
+
+            public ViewHolder(View view) {
+                itemDataInquiryMoreMenuIcon = (CircleTextView) view.findViewById(R.id.item_data_inquiry_more_menu_icon);
+                itemDataInquiryMoreMenuTitle = (TextView) view.findViewById(R.id.item_data_inquiry_more_menu_title);
+            }
+        }
+
+        @Override
+        public Filter getFilter() {
+            return new Filter() {
+                @Override
+                protected FilterResults performFiltering(CharSequence constraint) {
+                    FilterResults filterResults = new FilterResults();
+                    if (constraint == null || constraint.length() == 0) {
+                        filterResults.values = mQuerySearchBeanList;
+                        filterResults.count = mQuerySearchBeanList.size();
+                    } else {
+                        filterObjects = new ArrayList<>();
+                        for (int i = 0; i < mQuerySearchBeanList.size(); i++) {
+                            String title = mQuerySearchBeanList.get(i).getListBean().getTitle();
+                            if (title.contains(constraint.toString())) {
+                                filterObjects.add(mQuerySearchBeanList.get(i));
+                            }
+                        }
+
+                        filterResults.values = filterObjects;
+                        filterResults.count = filterObjects.size();
+                    }
+                    return filterResults;
+                }
+
+                @Override
+                protected void publishResults(CharSequence constraint, FilterResults results) {
+                    objects = (List<ReportQuerySearchBean>) results.values;
+                    notifyDataSetChanged();
+                    if (results.count == 0 && mEmptyLayout != null) {
+                        mEmptyLayout.showEmpty();
+                    }
+                }
+            };
+        }
+
+    }
+
+}

+ 166 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportStatisticsActivity.java

@@ -1,24 +1,35 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AbsListView;
+import android.widget.AdapterView;
+import android.widget.LinearLayout;
 import android.widget.ListAdapter;
 import android.widget.ListView;
+import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+import com.core.widget.view.MyGridView;
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.DataInquiryMenuGridAdapter;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.ReportStatisticsMenuListAdapter;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.GridMenuReportStatisticsBean;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
+import com.xzjmyk.pm.activity.view.DrawableCenterTextView;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -39,6 +50,13 @@ public class ReportStatisticsActivity extends BaseActivity {
     private PullToRefreshListView mMenuListView;
     private List<GridMenuReportStatisticsBean> mGridMenuReportStatisticsBeans;
     private ReportStatisticsMenuListAdapter mReportStatisticsMenuListAdapter;
+    private DataInquiryMenuGridAdapter mDataInquiryMenuGridAdapter;
+    private List<DataInquiryGirdItemBean> mDataInquiryGirdItemBeans;
+    private LinearLayout mRecentBrowseLl;
+    private View mReportStatisticsModulView;
+    private TextView mReportStatisticsModulTitleTv;
+    private MyGridView mReportStatisticsModulGv;
+    private DrawableCenterTextView mSearchTextView;
     private String mCurrentMaster;
     private String mCurrentUser;
 
@@ -46,16 +64,20 @@ public class ReportStatisticsActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_data_inquiry);
-        getSupportActionBar().setTitle(R.string.select_query_service);
+        getSupportActionBar().setTitle("报表统计");
 
-        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
-        mGridMenuReportStatisticsBeans = new ArrayList<>();
-        mReportStatisticsMenuListAdapter = new ReportStatisticsMenuListAdapter(this, mGridMenuReportStatisticsBeans);
-        mMenuListView.setAdapter(mReportStatisticsMenuListAdapter);
+        initViews();
+        initEvents();
+        initDatas();
+    }
 
-        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
-        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+    @Override
+    protected void onResume() {
+        super.onResume();
+        refreshRecentHeader();
+    }
 
+    private void initDatas() {
         String reportQueryMenuCache = CommonUtil.getSharedPreferences(this,
                 mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_CACHE);
         if (TextUtils.isEmpty(reportQueryMenuCache)) {
@@ -67,7 +89,9 @@ public class ReportStatisticsActivity extends BaseActivity {
         } else {
             analysisMenuData(reportQueryMenuCache);
         }
+    }
 
+    private void initEvents() {
         mMenuListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
@@ -91,8 +115,143 @@ public class ReportStatisticsActivity extends BaseActivity {
             }
         });
 
+        mReportStatisticsModulGv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                DataInquiryGirdItemBean dataInquiryGirdItemBean = mDataInquiryMenuGridAdapter.getObjects().get(position);
+                String iconText = dataInquiryGirdItemBean.getIconText();
+                String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(ReportStatisticsActivity.this,
+                        mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
+                List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+                if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                    try {
+                        recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+
+                        for (int i = 0; i < recentBrowse.size(); i++) {
+                            if (iconText != null && iconText.equals(recentBrowse.get(i).getIconText())) {
+                                recentBrowse.remove(i);
+                            }
+                        }
+                    } catch (Exception e) {
+
+                    }
+                }
+
+                recentBrowse.add(0, dataInquiryGirdItemBean);
+
+                String recentJson = JSON.toJSON(recentBrowse).toString();
+                CommonUtil.setSharedPreferences(ReportStatisticsActivity.this
+                        , mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE
+                        , recentJson);
+
+//                mDataInquiryGirdItemBeans.clear();
+//                mDataInquiryGirdItemBeans.addAll(recentBrowse);
+//                mDataInquiryMenuGridAdapter.notifyDataSetChanged();
+
+                for (int i = 0; i < mGridMenuReportStatisticsBeans.size(); i++) {
+                    List<GridMenuReportStatisticsBean.ListBean> reportlist = mGridMenuReportStatisticsBeans.get(i).getList();
+                    for (int j = 0; j < reportlist.size(); j++) {
+                        if (dataInquiryGirdItemBean.getIconText().equals(reportlist.get(j).getTitle())) {
+                            Intent intent = new Intent();
+                            intent.setClass(ReportStatisticsActivity.this, ReportQueryCriteriaActivity.class);
+                            intent.putExtra("reportinfo", reportlist.get(j));
+                            ReportStatisticsActivity.this.startActivity(intent);
+                            return;
+                        }
+                    }
+                }
+            }
+        });
+
+        mSearchTextView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(ReportStatisticsActivity.this, ReportQuerySearchActivity.class);
+                startActivity(intent);
+            }
+        });
+    }
+
+    private void initViews() {
+        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
+        mSearchTextView = (DrawableCenterTextView) findViewById(R.id.data_inquiry_menu_search_tv);
+
+        mGridMenuReportStatisticsBeans = new ArrayList<>();
+        mReportStatisticsMenuListAdapter = new ReportStatisticsMenuListAdapter(this, mGridMenuReportStatisticsBeans);
+        mMenuListView.setAdapter(mReportStatisticsMenuListAdapter);
+
+        mRecentBrowseLl = (LinearLayout) View.inflate(this, R.layout.item_list_data_inquiry_menu, null);
+        mReportStatisticsModulView = (View) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_view);
+        mReportStatisticsModulTitleTv = (TextView) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_title_tv);
+        mReportStatisticsModulGv = (MyGridView) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_gv);
+
+        mDataInquiryGirdItemBeans = new ArrayList<>();
+        mDataInquiryMenuGridAdapter = new DataInquiryMenuGridAdapter(this, mDataInquiryGirdItemBeans);
+        mReportStatisticsModulGv.setAdapter(mDataInquiryMenuGridAdapter);
+
+        mReportStatisticsModulView.setBackgroundColor(getResources().getColor(R.color.black));
+        mReportStatisticsModulTitleTv.setText("最近查询业务");
+
+        AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT);
+        mRecentBrowseLl.setLayoutParams(layoutParams);
+
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
     }
 
+    private void refreshRecentHeader() {
+        getRecentBrowse();
+        ListView refreshableView = mMenuListView.getRefreshableView();
+        int headerViewsCount = refreshableView.getHeaderViewsCount();
+        Log.d("headerViewsCount", headerViewsCount + "");
+        if (mDataInquiryGirdItemBeans.size() == 0) {
+            if (headerViewsCount == 2)
+                refreshableView.removeHeaderView(mRecentBrowseLl);
+        } else {
+            if (headerViewsCount == 1)
+                refreshableView.addHeaderView(mRecentBrowseLl);
+        }
+    }
+
+    private void getRecentBrowse() {
+        try {
+            String reportRecentMenuRecentCache = CommonUtil.getSharedPreferences(this,
+                    mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
+            if (!TextUtils.isEmpty(reportRecentMenuRecentCache)) {
+                List<GridMenuReportStatisticsBean> reportStatisticsBeans = mReportStatisticsMenuListAdapter.getObjects();
+                mDataInquiryGirdItemBeans.clear();
+
+                List<DataInquiryGirdItemBean> recentBrowse = JSON.parseArray(reportRecentMenuRecentCache, DataInquiryGirdItemBean.class);
+                for (int i = 0; i < recentBrowse.size(); i++) {
+                    DataInquiryGirdItemBean inquiryGirdItemBean = recentBrowse.get(i);
+                    boolean isExist = false;
+                    if (reportStatisticsBeans != null)
+                        for (int j = 0; j < reportStatisticsBeans.size(); j++) {
+                            List<GridMenuReportStatisticsBean.ListBean> reportList = reportStatisticsBeans.get(j).getList();
+                            if (reportList != null)
+                                for (int k = 0; k < reportList.size(); k++) {
+                                    if (inquiryGirdItemBean.getIconText().equals(reportList.get(k).getTitle())) {
+                                        isExist = true;
+                                        break;
+                                    }
+                                }
+                        }
+
+                    if (i < 9 && isExist) {
+                        mDataInquiryGirdItemBeans.add(inquiryGirdItemBean);
+                    }
+                }
+
+                mDataInquiryMenuGridAdapter.notifyDataSetChanged();
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
     private void getMenuData() {
         progressDialog.show();
         String url = CommonUtil.getAppBaseUrl(this) + "mobile/qry/getReport.action";

+ 38 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportStatisticsMoreMenuActivity.java

@@ -2,13 +2,18 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
 
+import com.alibaba.fastjson.JSON;
+import com.core.utils.CommonUtil;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter.DataInquiryMoreMenuAdapter;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.GridMenuReportStatisticsBean;
 
 import java.util.ArrayList;
@@ -25,6 +30,8 @@ public class ReportStatisticsMoreMenuActivity extends BaseActivity implements Ad
     private int mColor;
     private String mModelName;
     private List<GridMenuReportStatisticsBean.ListBean> mListBeans;
+    private String mCurrentMaster;
+    private String mCurrentUser;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -34,6 +41,9 @@ public class ReportStatisticsMoreMenuActivity extends BaseActivity implements Ad
         mMenuListView = (ListView) findViewById(R.id.data_inquiry_more_menu_lv);
         mMenuStrings = new ArrayList<>();
 
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+
         Intent intent = getIntent();
         if (intent != null) {
             mColor = intent.getIntExtra("menu_color", -1);
@@ -58,6 +68,34 @@ public class ReportStatisticsMoreMenuActivity extends BaseActivity implements Ad
 
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+        DataInquiryGirdItemBean dataInquiryGirdItemBean = new DataInquiryGirdItemBean();
+        dataInquiryGirdItemBean.setColor(mColor);
+        dataInquiryGirdItemBean.setIconText(mListBeans.get(position).getTitle());
+
+        String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(ReportStatisticsMoreMenuActivity.this,
+                mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
+        List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+        if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+            try {
+                recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+
+                for (int i = 0; i < recentBrowse.size(); i++) {
+                    if (mListBeans.get(position).getTitle() != null && mListBeans.get(position).getTitle().equals(recentBrowse.get(i).getIconText())) {
+                        recentBrowse.remove(i);
+                    }
+                }
+            } catch (Exception e) {
+
+            }
+        }
+
+        recentBrowse.add(0, dataInquiryGirdItemBean);
+
+        String recentJson = JSON.toJSON(recentBrowse).toString();
+        CommonUtil.setSharedPreferences(ReportStatisticsMoreMenuActivity.this
+                , mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE
+                , recentJson);
+
         Intent intent = new Intent();
         intent.setClass(this, ReportQueryCriteriaActivity.class);
         intent.putExtra("reportinfo", mListBeans.get(position));

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

@@ -20,7 +20,7 @@ import java.util.List;
  * 数据查询列表伸缩菜单适配器
  */
 public class DataInquiryFlexAdapter extends BaseAdapter {
-
+    private final int mFlexLines = 3;
     private List<DataInquiryFlexBean> objects = new ArrayList<DataInquiryFlexBean>();
 
     private Context context;
@@ -73,14 +73,14 @@ public class DataInquiryFlexAdapter extends BaseAdapter {
             holder.itemDataInquiryFlexIv.setImageResource(R.drawable.ic_menu_spread);
         } else {
             holder.itemDataInquiryFlexIv.setImageResource(R.drawable.ic_menu_retract);
-            for (int i = 0; i < (object.getRowBeans().size() < 2 ? object.getRowBeans().size() : 2); i++) {
+            for (int i = 0; i < (object.getRowBeans().size() < mFlexLines ? object.getRowBeans().size() : mFlexLines); i++) {
                 rowBeans.add(object.getRowBeans().get(i));
             }
         }
         DataInquiryFlexChildAdapter dataInquiryFlexChildAdapter = new DataInquiryFlexChildAdapter(context, rowBeans);
 
         holder.itemDataInquiryFlexLv.setAdapter(dataInquiryFlexChildAdapter);
-        if (object.getRowBeans().size() <= 2 || rowBeans.size() < 2) {
+        if (object.getRowBeans().size() <= mFlexLines || rowBeans.size() < mFlexLines) {
             holder.itemDataInquiryFlexIv.setVisibility(View.INVISIBLE);
         } else {
             holder.itemDataInquiryFlexIv.setVisibility(View.VISIBLE);

+ 5 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMenuGridAdapter.java

@@ -8,7 +8,7 @@ import android.widget.BaseAdapter;
 import android.widget.TextView;
 
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.CircleTextView;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.view.CircleTextView;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
 
 import java.util.ArrayList;
@@ -31,6 +31,10 @@ public class DataInquiryMenuGridAdapter extends BaseAdapter {
         this.objects = objects;
     }
 
+    public List<DataInquiryGirdItemBean> getObjects() {
+        return objects;
+    }
+
     @Override
     public int getCount() {
         return objects.size();

+ 36 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMenuListAdapter.java

@@ -2,6 +2,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter;
 
 import android.content.Context;
 import android.content.Intent;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -9,6 +10,8 @@ import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.core.utils.CommonUtil;
 import com.core.widget.view.MyGridView;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity.DataInquiryListActivity;
@@ -25,12 +28,11 @@ import java.util.List;
  * 数据查询九宫格菜单适配器
  */
 public class DataInquiryMenuListAdapter extends BaseAdapter {
-
     private List<GridMenuDataInquiryBean> objects = new ArrayList<GridMenuDataInquiryBean>();
-
     private Context context;
     private LayoutInflater layoutInflater;
-
+    private String mCurrentMaster;
+    private String mCurrentUser;
     private int[] mGridColors = new int[]{R.color.data_inquiry_gird_menu_color1, R.color.data_inquiry_gird_menu_color2
             , R.color.data_inquiry_gird_menu_color3, R.color.data_inquiry_gird_menu_color4, R.color.data_inquiry_gird_menu_color5,
             R.color.data_inquiry_gird_menu_color6};
@@ -39,6 +41,13 @@ public class DataInquiryMenuListAdapter extends BaseAdapter {
         this.context = context;
         this.layoutInflater = LayoutInflater.from(context);
         this.objects = objects;
+
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(context, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(context, "erp_username");
+    }
+
+    public List<GridMenuDataInquiryBean> getObjects() {
+        return objects;
     }
 
     @Override
@@ -110,6 +119,30 @@ public class DataInquiryMenuListAdapter extends BaseAdapter {
 
                     context.startActivity(intent);
                 } else {
+                    try {
+                        String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(context,
+                                mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE);
+                        List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+                        if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                            recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+                            for (int i = 0; i < recentBrowse.size(); i++) {
+                                if (recentBrowse.get(i).getIconText().equals(querySchemes.get(position).getScheme())) {
+                                    recentBrowse.remove(i);
+                                    break;
+                                }
+                            }
+                        }
+                        recentBrowse.add(0, ((DataInquiryMenuGridAdapter) holder.dataInquiryModulGv.getAdapter()).getObjects().get(position));
+
+                        String recentJson = JSON.toJSON(recentBrowse).toString();
+                        CommonUtil.setSharedPreferences(context
+                                , mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_RECENT_CACHE
+                                , recentJson);
+
+                    } catch (Exception e) {
+
+                    }
+
                     intent = new Intent();
                     intent.setClass(context, DataInquiryListActivity.class);
                     intent.putExtra("scheme", querySchemes.get(position));

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

@@ -8,7 +8,7 @@ import android.widget.BaseAdapter;
 import android.widget.TextView;
 
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.CircleTextView;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.view.CircleTextView;
 
 import java.util.ArrayList;
 import java.util.List;

+ 38 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/ReportStatisticsMenuListAdapter.java

@@ -2,6 +2,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter;
 
 import android.content.Context;
 import android.content.Intent;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -9,8 +10,11 @@ import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.core.utils.CommonUtil;
 import com.core.widget.view.MyGridView;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity.ReportQueryCriteriaActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity.ReportStatisticsMoreMenuActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdItemBean;
@@ -26,9 +30,11 @@ import java.util.List;
  */
 public class ReportStatisticsMenuListAdapter extends BaseAdapter {
     private List<GridMenuReportStatisticsBean> objects = new ArrayList<GridMenuReportStatisticsBean>();
-
     private Context context;
     private LayoutInflater layoutInflater;
+    private String mCurrentMaster;
+    private String mCurrentUser;
+
     private int[] mGridColors = new int[]{R.color.data_inquiry_gird_menu_color1, R.color.data_inquiry_gird_menu_color2
             , R.color.data_inquiry_gird_menu_color3, R.color.data_inquiry_gird_menu_color4, R.color.data_inquiry_gird_menu_color5,
             R.color.data_inquiry_gird_menu_color6};
@@ -37,6 +43,13 @@ public class ReportStatisticsMenuListAdapter extends BaseAdapter {
         this.context = context;
         this.layoutInflater = LayoutInflater.from(context);
         this.objects = objects;
+
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(context, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(context, "erp_username");
+    }
+
+    public List<GridMenuReportStatisticsBean> getObjects() {
+        return objects;
     }
 
     @Override
@@ -109,6 +122,30 @@ public class ReportStatisticsMenuListAdapter extends BaseAdapter {
 
                     context.startActivity(intent);
                 } else {
+                    try {
+                        String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(context,
+                                mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
+                        List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+                        if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                            recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+                            for (int i = 0; i < recentBrowse.size(); i++) {
+                                if (recentBrowse.get(i).getIconText().equals(listBeans.get(position).getTitle())) {
+                                    recentBrowse.remove(i);
+                                    break;
+                                }
+                            }
+                        }
+                        recentBrowse.add(0, ((DataInquiryMenuGridAdapter) holder.dataInquiryModulGv.getAdapter()).getObjects().get(position));
+
+                        String recentJson = JSON.toJSON(recentBrowse).toString();
+                        CommonUtil.setSharedPreferences(context
+                                , mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE
+                                , recentJson);
+
+                    } catch (Exception e) {
+
+                    }
+
                     intent = new Intent();
                     intent.setClass(context, ReportQueryCriteriaActivity.class);
                     intent.putExtra("reportinfo", listBeans.get(position));

+ 26 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/bean/DataInquirySearchBean.java

@@ -0,0 +1,26 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean;
+
+/**
+ * Created by RaoMeng on 2017/9/14.
+ */
+
+public class DataInquirySearchBean {
+    private int mColor;
+    private GridMenuDataInquiryBean.QueryScheme mQueryScheme;
+
+    public int getColor() {
+        return mColor;
+    }
+
+    public void setColor(int color) {
+        mColor = color;
+    }
+
+    public GridMenuDataInquiryBean.QueryScheme getQueryScheme() {
+        return mQueryScheme;
+    }
+
+    public void setQueryScheme(GridMenuDataInquiryBean.QueryScheme queryScheme) {
+        mQueryScheme = queryScheme;
+    }
+}

+ 26 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/bean/ReportQuerySearchBean.java

@@ -0,0 +1,26 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean;
+
+/**
+ * Created by RaoMeng on 2017/9/14.
+ */
+
+public class ReportQuerySearchBean {
+    private int mColor;
+    private GridMenuReportStatisticsBean.ListBean mListBean;
+
+    public int getColor() {
+        return mColor;
+    }
+
+    public void setColor(int color) {
+        mColor = color;
+    }
+
+    public GridMenuReportStatisticsBean.ListBean getListBean() {
+        return mListBean;
+    }
+
+    public void setListBean(GridMenuReportStatisticsBean.ListBean listBean) {
+        mListBean = listBean;
+    }
+}

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/CircleTextView.java → WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/view/CircleTextView.java

@@ -1,4 +1,4 @@
-package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry;
+package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.view;
 
 import android.content.Context;
 import android.content.res.TypedArray;

+ 12 - 0
WeiChat/src/main/res/layout/activity_data_inquiry.xml

@@ -6,6 +6,18 @@
               android:background="@color/bg_underlying"
               android:orientation="vertical">
 
+    <com.xzjmyk.pm.activity.view.DrawableCenterTextView
+        android:id="@+id/data_inquiry_menu_search_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_margin="6dp"
+        android:background="@drawable/search_input"
+        android:drawableLeft="@drawable/search"
+        android:drawablePadding="6dp"
+        android:gravity="center_vertical"
+        android:padding="6dp"
+        android:text="@string/search"/>
+
     <com.handmark.pulltorefresh.library.PullToRefreshListView
         android:id="@+id/data_inquiry_menu_lv"
         android:layout_width="match_parent"

+ 49 - 0
WeiChat/src/main/res/layout/activity_data_inquiry_search.xml

@@ -0,0 +1,49 @@
+<?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:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:layout_centerInParent="true"
+        android:background="@drawable/bg_bar"
+        android:padding="7dp"
+        android:visibility="visible">
+
+        <com.core.widget.ClearEditText
+            android:id="@+id/data_inquiry_search_et"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:layout_centerVertical="true"
+            android:background="@drawable/search_input"
+            android:drawableLeft="@drawable/search"
+            android:drawableRight="@drawable/search_clear"
+            android:hint="@string/search"
+            android:imeOptions="actionSearch"
+            android:inputType="text"
+            android:paddingRight="26dp"
+            android:textColor="@color/dark_grey"
+            android:textColorHint="@color/grey"
+            android:textSize="14sp"/>
+
+        <ImageView
+            android:id="@+id/data_inquiry_search_voice_iv"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:layout_alignParentRight="true"
+            android:layout_alignRight="@+id/search_edit"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="6dp"
+            android:background="@drawable/btn_yuyin_nor"
+            android:visibility="visible"/>
+    </RelativeLayout>
+
+    <ListView
+        android:id="@+id/data_inquiry_search_lv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="@color/gray_light"/>
+</LinearLayout>

+ 49 - 0
WeiChat/src/main/res/layout/activity_report_query_search.xml

@@ -0,0 +1,49 @@
+<?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:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:layout_centerInParent="true"
+        android:background="@drawable/bg_bar"
+        android:padding="7dp"
+        android:visibility="visible">
+
+        <com.core.widget.ClearEditText
+            android:id="@+id/report_query_search_et"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent"
+            android:layout_centerVertical="true"
+            android:background="@drawable/search_input"
+            android:drawableLeft="@drawable/search"
+            android:drawableRight="@drawable/search_clear"
+            android:hint="@string/search"
+            android:imeOptions="actionSearch"
+            android:inputType="text"
+            android:paddingRight="26dp"
+            android:textColor="@color/dark_grey"
+            android:textColorHint="@color/grey"
+            android:textSize="14sp"/>
+
+        <ImageView
+            android:id="@+id/report_query_search_voice_iv"
+            android:layout_width="20dp"
+            android:layout_height="20dp"
+            android:layout_alignParentRight="true"
+            android:layout_alignRight="@+id/search_edit"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="6dp"
+            android:background="@drawable/btn_yuyin_nor"
+            android:visibility="visible"/>
+    </RelativeLayout>
+
+    <ListView
+        android:id="@+id/report_query_search_lv"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:divider="@color/gray_light"/>
+</LinearLayout>

+ 2 - 1
WeiChat/src/main/res/layout/item_grid_data_inquiry_menu.xml

@@ -4,11 +4,12 @@
               xmlns:tools="http://schemas.android.com/tools"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
+              android:background="@color/me_menu_item_normal"
               android:gravity="center"
               android:orientation="vertical"
               android:padding="10dp">
 
-    <com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.CircleTextView
+    <com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.view.CircleTextView
         android:id="@+id/grid_data_inquiry_menu_icon"
         android:layout_width="50dp"
         android:layout_height="50dp"

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

@@ -1,9 +1,10 @@
 <?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="wrap_content"
-    android:orientation="vertical"
-    android:padding="6dp">
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:background="@color/me_menu_item_normal"
+              android:orientation="vertical"
+              android:padding="6dp">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -15,13 +16,13 @@
             android:id="@+id/data_inquiry_modul_view"
             android:layout_width="6dp"
             android:layout_height="12dp"
-            android:layout_marginLeft="10dp" />
+            android:layout_marginLeft="10dp"/>
 
         <TextView
             android:id="@+id/data_inquiry_modul_title_tv"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:padding="10dp" />
+            android:padding="10dp"/>
     </LinearLayout>
 
     <LinearLayout
@@ -34,7 +35,7 @@
             android:layout_height="wrap_content"
             android:gravity="center"
             android:numColumns="3"
-            android:scrollbars="none" />
+            android:scrollbars="none"/>
     </LinearLayout>
 
 </LinearLayout>

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

@@ -10,7 +10,7 @@
     android:orientation="horizontal"
     android:padding="6dp">
 
-    <com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.CircleTextView
+    <com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.view.CircleTextView
         android:id="@+id/item_data_inquiry_more_menu_icon"
         android:layout_width="40dp"
         android:layout_height="40dp"