Browse Source

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

Arison 8 years ago
parent
commit
6492a79fec

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

@@ -10,6 +10,9 @@ public interface Constants {
         String PDF_FILE_NAME = "statement.pdf";
         String PDF_FILE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/UU/statementFile";
 
+        String DATA_INQUIRY_MENU_CACHE = "data_inquiry_menu_cache";
+        String REPORT_QUERY_MENU_CACHE = "report_query_menu_cache";
+
         //打印成功
         int DOWNLOAD_SUCCESS = 1;
         //打印失败
@@ -18,5 +21,6 @@ public interface Constants {
         int PDF_OVERLOAD = 3;
         //打印进度
         int DOWNLOAD_PROGRESS = 4;
+
     }
 }

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

@@ -3,11 +3,14 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.text.TextUtils;
 import android.widget.ListView;
 
 import com.common.LogUtil;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+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.DataInquiryMenuListAdapter;
@@ -30,9 +33,11 @@ import java.util.Map;
  */
 public class DataInquiryActivity extends BaseActivity {
     private final int GET_MENU_DATA = 0x08;
-    private ListView mMenuListView;
+    private PullToRefreshListView mMenuListView;
     private List<GridMenuDataInquiryBean> mGridMenuDataInquiryBeans;
     private DataInquiryMenuListAdapter mDataInquiryMenuListAdapter;
+    private String mCurrentMaster;
+    private String mCurrentUser;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -40,16 +45,48 @@ public class DataInquiryActivity extends BaseActivity {
         setContentView(R.layout.activity_data_inquiry);
         getSupportActionBar().setTitle(R.string.select_query_service);
 
-        mMenuListView = (ListView) findViewById(R.id.data_inquiry_menu_lv);
+        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
         mGridMenuDataInquiryBeans = new ArrayList<>();
         mDataInquiryMenuListAdapter = new DataInquiryMenuListAdapter(this, mGridMenuDataInquiryBeans);
         mMenuListView.setAdapter(mDataInquiryMenuListAdapter);
 
-        if (!CommonUtil.isNetWorkConnected(this)) {
-            ToastMessage(getString(R.string.networks_out));
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+
+        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)) {
+            if (!CommonUtil.isNetWorkConnected(this)) {
+                ToastMessage(getString(R.string.networks_out));
+            } else {
+                getMenuData();
+            }
         } else {
-            getMenuData();
+            analysisMenuData(dataInquiryMenuCache);
         }
+
+        mMenuListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                if (!CommonUtil.isNetWorkConnected(DataInquiryActivity.this)) {
+                    ToastMessage(getString(R.string.networks_out));
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                mMenuListView.onRefreshComplete();
+                            }
+                        }, 500);
+                } else {
+                    getMenuData();
+                }
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+
+            }
+        });
     }
 
     private void getMenuData() {
@@ -68,66 +105,78 @@ public class DataInquiryActivity extends BaseActivity {
             switch (msg.what) {
                 case GET_MENU_DATA:
                     progressDialog.dismiss();
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.onRefreshComplete();
                     String result = msg.getData().getString("result");
-                    if (result != null) {
-                        LogUtil.prinlnLongMsg("menudata", result);
-                        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) {
-                                        GridMenuDataInquiryBean gridMenuDataInquiryBean = new GridMenuDataInquiryBean();
-                                        String modelName = optStringNotNull(dataObject, "modelName");
-                                        gridMenuDataInquiryBean.setModelName(modelName);
-                                        JSONArray listArray = dataObject.optJSONArray("list");
-                                        if (listArray != null) {
-                                            List<GridMenuDataInquiryBean.QueryScheme> querySchemes = new ArrayList<>();
-                                            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) {
-                                                                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);
-
-                                                                querySchemes.add(queryScheme);
-                                                            }
-                                                        }
-                                                    }
+                    if (result != null)
+                        CommonUtil.setSharedPreferences(DataInquiryActivity.this,
+                                mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.DATA_INQUIRY_MENU_CACHE,
+                                result);
+                    analysisMenuData(result);
+                    break;
+                case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    progressDialog.dismiss();
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.onRefreshComplete();
+                    ToastMessage(msg.getData().getString("result"));
+                    break;
+            }
+        }
+    };
+
+    private void analysisMenuData(String result) {
+        if (result != null) {
+            LogUtil.prinlnLongMsg("menudata", result);
+            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) {
+                            GridMenuDataInquiryBean gridMenuDataInquiryBean = new GridMenuDataInquiryBean();
+                            String modelName = optStringNotNull(dataObject, "modelName");
+                            gridMenuDataInquiryBean.setModelName(modelName);
+                            JSONArray listArray = dataObject.optJSONArray("list");
+                            if (listArray != null) {
+                                List<GridMenuDataInquiryBean.QueryScheme> querySchemes = new ArrayList<>();
+                                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) {
+                                                    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);
+
+                                                    querySchemes.add(queryScheme);
                                                 }
                                             }
-                                            gridMenuDataInquiryBean.setQuerySchemes(querySchemes);
                                         }
-                                        mGridMenuDataInquiryBeans.add(gridMenuDataInquiryBean);
                                     }
                                 }
-                                mDataInquiryMenuListAdapter.notifyDataSetChanged();
+                                gridMenuDataInquiryBean.setQuerySchemes(querySchemes);
                             }
-                        } catch (JSONException e) {
-                            e.printStackTrace();
+                            mGridMenuDataInquiryBeans.add(gridMenuDataInquiryBean);
                         }
                     }
-                    break;
-                case Constants.APP_SOCKETIMEOUTEXCEPTION:
-                    progressDialog.dismiss();
-                    ToastMessage(msg.getData().getString("result"));
-                    break;
+                    mDataInquiryMenuListAdapter.notifyDataSetChanged();
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
             }
         }
-    };
+    }
 
 
     public String optStringNotNull(JSONObject json, String key) {

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

@@ -105,15 +105,18 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
     private int mOldPosition = -1;
     private DataInquiryTotalAdapter mDataInquiryTotalAdapter;
     private List<DataInquiryTotalBean> mDataInquiryTotalBeans;
+    private boolean isConditionSuccess = false;
 
     private Handler mHandler = new Handler() {
         @Override
         public void handleMessage(Message msg) {
             switch (msg.what) {
                 case GET_QUERY_CRITERIA:
+                    isConditionSuccess = true;
                     if (mDataListView.isRefreshing())
                         mDataListView.onRefreshComplete();
-                    analysisCondition(msg);
+                    String result = msg.getData().getString("result");
+                    analysisCondition(result);
                     getSchemeData();
                     break;
                 case GET_DATA_RESULT:
@@ -167,7 +170,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                 }
                 mHistoricalRecordAdapter.notifyDataSetChanged();
             }
-        }catch (Exception e){
+        } catch (Exception e) {
 
         }
 
@@ -176,16 +179,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
             mEmptyLayout.setErrorMessage(getString(R.string.networks_out));
             mEmptyLayout.showError();
         } else {
-            if (mQueryScheme != null) {
-                progressDialog.show();
-                String url = CommonUtil.getAppBaseUrl(this) + "mobile/qry/schemeCondition.action";
-                Map<String, Object> params = new HashMap<>();
-                params.put("caller", mQueryScheme.getCaller());
-                params.put("id", mQueryScheme.getSchemeId());
-                LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-                headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-                ViewUtil.httpSendRequest(this, url, params, mHandler, headers, GET_QUERY_CRITERIA, null, null, "post");
-            }
+            getQueryCriteria();
         }
 
     }
@@ -291,8 +285,17 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                 if (CommonUtil.isNetWorkConnected(DataInquiryListActivity.this)) {
                     mPageIndex = 1;
-                    getSchemeData();
+                    if (isConditionSuccess)
+                        getSchemeData();
+                    else
+                        getQueryCriteria();
                 } else {
+                    mDataListView.postDelayed(new Runnable() {
+                        @Override
+                        public void run() {
+                            mDataListView.onRefreshComplete();
+                        }
+                    },500);
                     mEmptyLayout.setErrorMessage(getString(R.string.networks_out));
                     mEmptyLayout.showError();
                 }
@@ -301,11 +304,23 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
             @Override
             public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                 if (!CommonUtil.isNetWorkConnected(DataInquiryListActivity.this)) {
+                    mDataListView.postDelayed(new Runnable() {
+                        @Override
+                        public void run() {
+                            mDataListView.onRefreshComplete();
+                        }
+                    },500);
                     mEmptyLayout.setErrorMessage(getString(R.string.networks_out));
                     mEmptyLayout.showError();
                 } else {
-                    mPageIndex++;
-                    getSchemeData();
+                    if (isConditionSuccess) {
+                        mPageIndex++;
+                        getSchemeData();
+                    } else {
+                        mPageIndex = 1;
+                        getQueryCriteria();
+                    }
+
                 }
             }
         });
@@ -426,6 +441,9 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                 JSONArray listArray = resultObject.optJSONArray("listdata");
                 JSONObject totalObject = resultObject.optJSONObject("summaryField");
 
+                if ((listArray == null || listArray.length() < mPagesize) && mPageIndex > 1) {
+                    ToastMessage("已加载全部数据");
+                }
                 if (totalObject != null) {
                     for (int j = 0; j < mAllSchemeConditions.size(); j++) {
                         String field = mAllSchemeConditions.get(j).getField();
@@ -478,7 +496,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                                 }
                                 mHistoricalRecordAdapter.notifyDataSetChanged();
                             }
-                        }catch (Exception e){
+                        } catch (Exception e) {
 
                         }
                     }
@@ -504,7 +522,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                                     if ("null".equals(value)) {
                                         rowChildBean.setValue("");
                                     } else {
-                                        if ("D".equals(type) || "CD".equals(type)) {
+                                        if (("D".equals(type) || "CD".equals(type)) && value.length() > 8) {
                                             value = value.substring(0, value.length() - 8);
                                         }
                                         rowChildBean.setValue(value);
@@ -579,10 +597,9 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
         }
     }
 
-    private void analysisCondition(Message msg) {
-        String result = msg.getData().getString("result");
+    private void analysisCondition(String result) {
         if (result != null) {
-            LogUtil.prinlnLongMsg("querycriteria", msg.getData().getString("result"));
+            LogUtil.prinlnLongMsg("querycriteria", result);
             try {
                 JSONObject resultObject = new JSONObject(result);
                 JSONArray dataArray = resultObject.optJSONArray("data");
@@ -626,15 +643,25 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                                         SchemeConditionBean.Property property = new SchemeConditionBean.Property();
                                         properties.add(property);
                                     }
-                                } else if ("D".equals(type) || "CD".equals(type)) {
+                                } else if ("D".equals(type) || "CD".equals(type) || "YM".equals(type) || "YMV".equals(type)) {
                                     for (int m = 0; m < 2; m++) {
                                         SchemeConditionBean.Property property = new SchemeConditionBean.Property();
                                         if (m == 0) {
-                                            property.setDisplay(getMonthFirstDay());
-                                            property.setValue(getMonthFirstDay());
+                                            if ("YM".equals(type) || "YMV".equals(type)) {
+                                                property.setDisplay(getMonthFirstDay("yyyyMM"));
+                                                property.setValue(getMonthFirstDay("yyyyMM"));
+                                            } else {
+                                                property.setDisplay(getMonthFirstDay("yyyy-MM-dd"));
+                                                property.setValue(getMonthFirstDay("yyyy-MM-dd"));
+                                            }
                                         } else if (m == 1) {
-                                            property.setDisplay(getMonthLastDay());
-                                            property.setValue(getMonthLastDay());
+                                            if ("YM".equals(type) || "YMV".equals(type)) {
+                                                property.setDisplay(getMonthLastDay("yyyyMM"));
+                                                property.setValue(getMonthLastDay("yyyyMM"));
+                                            } else {
+                                                property.setDisplay(getMonthLastDay("yyyy-MM-dd"));
+                                                property.setValue(getMonthLastDay("yyyy-MM-dd"));
+                                            }
                                         }
                                         properties.add(property);
                                     }
@@ -801,6 +828,24 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                         + schemeConditionBean.getField()
                         + " <= to_date(\'" + schemeConditionBean.getProperties().get(1).getDisplay()
                         + "\',\'yyyy-MM-dd\')) and ";
+            } else if ("YMV".equals(schemeConditionBean.getType()) && schemeConditionBean.getProperties().size() == 2) {
+                mCondition = mCondition + "(ym_view_param.set_from("
+                        + schemeConditionBean.getProperties().get(0).getDisplay()
+                        + ") = " + schemeConditionBean.getProperties().get(0).getDisplay()
+                        + " and ym_view_param.set_to("
+                        + schemeConditionBean.getProperties().get(1).getDisplay()
+                        + ") = " + schemeConditionBean.getProperties().get(1).getDisplay()
+                        + ") and ";
+            } else if ("YM".equals(schemeConditionBean.getType()) && schemeConditionBean.getProperties().size() == 2) {
+                mCondition = mCondition + "("
+                        + (TextUtils.isEmpty(schemeConditionBean.getTable()) ? "" : (schemeConditionBean.getTable() + "."))
+                        + schemeConditionBean.getField()
+                        + " >= \'" + schemeConditionBean.getProperties().get(0).getDisplay()
+                        + "\' and "
+                        + (TextUtils.isEmpty(schemeConditionBean.getTable()) ? "" : (schemeConditionBean.getTable() + "."))
+                        + schemeConditionBean.getField()
+                        + " <= \'" + schemeConditionBean.getProperties().get(1).getDisplay()
+                        + "\') and ";
             } else if ("CBG".equals(schemeConditionBean.getType()) || "C".equals(schemeConditionBean.getType())
                     || "R".equals(schemeConditionBean.getType()) || "EC".equals(schemeConditionBean.getType())) {
                 String gridCondition = "";
@@ -886,7 +931,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
             String searchField = mSearchEditText.getText().toString().trim();
             if (!TextUtils.isEmpty(searchField)) {
                 if (mfuzzySchemeConditionBeans.size() == 0) {
-                    ToastMessage("该方案没有可用于模糊查询的字段!");
+                    ToastMessage("请前往系统配置模糊搜索字段,或尝试高级查询方式");
                     mSearchEditText.setText("");
                 } else {
                     mCondition = "";
@@ -917,6 +962,19 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
         }
     }
 
+    private void getQueryCriteria() {
+        if (mQueryScheme != null) {
+            progressDialog.show();
+            String url = CommonUtil.getAppBaseUrl(this) + "mobile/qry/schemeCondition.action";
+            Map<String, Object> params = new HashMap<>();
+            params.put("caller", mQueryScheme.getCaller());
+            params.put("id", mQueryScheme.getSchemeId());
+            LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+            headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+            ViewUtil.httpSendRequest(this, url, params, mHandler, headers, GET_QUERY_CRITERIA, null, null, "post");
+        }
+    }
+
     private void getSchemeData() {
         String url = CommonUtil.getAppBaseUrl(this) + "mobile/qry/schemeResult.action";
         Map<String, Object> params = new HashMap<>();
@@ -961,25 +1019,25 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
     /**
      * 得到本月的第一天
      */
-    public static String getMonthFirstDay() {
+    public static String getMonthFirstDay(String pattern) {
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.DAY_OF_MONTH, calendar
                 .getActualMinimum(Calendar.DAY_OF_MONTH));
 //        calendar.set( Calendar.DATE, 1);
-        SimpleDateFormat simpleFormate = new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat simpleFormate = new SimpleDateFormat(pattern);
         return simpleFormate.format(calendar.getTime());
     }
 
     /**
      * 得到本月的最后一天
      */
-    public static String getMonthLastDay() {
+    public static String getMonthLastDay(String pattern) {
         Calendar calendar = Calendar.getInstance();
         calendar.set(Calendar.DAY_OF_MONTH, calendar
                 .getActualMaximum(Calendar.DAY_OF_MONTH));
 //        calendar.set( Calendar.DATE, 1);
 //        calendar.roll(Calendar.DATE, - 1);
-        SimpleDateFormat simpleFormate = new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat simpleFormate = new SimpleDateFormat(pattern);
         return simpleFormate.format(calendar.getTime());
     }
 

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

@@ -214,7 +214,10 @@ public class PDFDownloadActivity extends BaseActivity implements View.OnClickLis
 
     @Override
     public void onError(Throwable t) {
-
+        mErrorLinearLayout.setVisibility(View.VISIBLE);
+        mStateTextView.setText("报表文件加载失败!");
+        mDownloadProgressBar.setProgress(0);
+        mRemainTextView.setText(100 + "");
     }
 
     @Override

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

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.text.TextUtils;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ListAdapter;
@@ -11,6 +12,8 @@ import android.widget.ListView;
 import com.common.LogUtil;
 import com.core.app.Constants;
 import com.core.utils.CommonUtil;
+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.ReportStatisticsMenuListAdapter;
@@ -33,9 +36,11 @@ import java.util.Map;
  */
 public class ReportStatisticsActivity extends BaseActivity {
     private final int GET_MENU_DATA = 0x16;
-    private ListView mMenuListView;
+    private PullToRefreshListView mMenuListView;
     private List<GridMenuReportStatisticsBean> mGridMenuReportStatisticsBeans;
     private ReportStatisticsMenuListAdapter mReportStatisticsMenuListAdapter;
+    private String mCurrentMaster;
+    private String mCurrentUser;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -43,16 +48,49 @@ public class ReportStatisticsActivity extends BaseActivity {
         setContentView(R.layout.activity_data_inquiry);
         getSupportActionBar().setTitle(R.string.select_query_service);
 
-        mMenuListView = (ListView) findViewById(R.id.data_inquiry_menu_lv);
+        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
         mGridMenuReportStatisticsBeans = new ArrayList<>();
         mReportStatisticsMenuListAdapter = new ReportStatisticsMenuListAdapter(this, mGridMenuReportStatisticsBeans);
         mMenuListView.setAdapter(mReportStatisticsMenuListAdapter);
 
-        if (!CommonUtil.isNetWorkConnected(this)) {
-            ToastMessage(getString(R.string.networks_out));
+        mCurrentMaster = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = com.xzjmyk.pm.activity.util.oa.CommonUtil.getSharedPreferences(this, "erp_username");
+
+        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)) {
+            if (!CommonUtil.isNetWorkConnected(this)) {
+                ToastMessage(getString(R.string.networks_out));
+            } else {
+                getMenuData();
+            }
         } else {
-            getMenuData();
+            analysisMenuData(reportQueryMenuCache);
         }
+
+        mMenuListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                if (!CommonUtil.isNetWorkConnected(ReportStatisticsActivity.this)) {
+                    ToastMessage(getString(R.string.networks_out));
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                mMenuListView.onRefreshComplete();
+                            }
+                        }, 500);
+                } else {
+                    getMenuData();
+                }
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+
+            }
+        });
+
     }
 
     private void getMenuData() {
@@ -71,59 +109,71 @@ public class ReportStatisticsActivity extends BaseActivity {
             switch (msg.what) {
                 case GET_MENU_DATA:
                     progressDialog.dismiss();
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.onRefreshComplete();
                     String result = msg.getData().getString("result");
-                    if (result != null) {
-                        LogUtil.prinlnLongMsg("menudata", result);
-                        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) {
-                                        GridMenuReportStatisticsBean gridMenuReportStatisticsBean
-                                                = new GridMenuReportStatisticsBean();
-                                        String modelName = optStringNotNull(dataObject, "modelName");
-                                        gridMenuReportStatisticsBean.setModelName(modelName);
-                                        JSONArray listArray = dataObject.optJSONArray("list");
-                                        List<GridMenuReportStatisticsBean.ListBean> listBeans = new ArrayList<>();
-                                        if (listArray != null) {
-                                            for (int j = 0; j < listArray.length(); j++) {
-                                                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);
-
-                                                    listBeans.add(listBean);
-                                                }
-                                            }
-                                            gridMenuReportStatisticsBean.setList(listBeans);
-                                        }
-                                        mGridMenuReportStatisticsBeans.add(gridMenuReportStatisticsBean);
-                                    }
-                                }
-                                mReportStatisticsMenuListAdapter.notifyDataSetChanged();
-                                //setListViewHeightBasedOnChildren(mMenuListView);
-                            }
-                        } catch (JSONException e) {
-                            e.printStackTrace();
-                        }
-                    }
+                    if (result != null)
+                        CommonUtil.setSharedPreferences(ReportStatisticsActivity.this,
+                                mCurrentUser + mCurrentMaster + com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_CACHE,
+                                result);
+                    analysisMenuData(result);
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                     progressDialog.dismiss();
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.onRefreshComplete();
                     ToastMessage(msg.getData().getString("result"));
                     break;
             }
         }
     };
 
+    private void analysisMenuData(String result) {
+        if (result != null) {
+            LogUtil.prinlnLongMsg("menudata", result);
+            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) {
+                            GridMenuReportStatisticsBean gridMenuReportStatisticsBean
+                                    = new GridMenuReportStatisticsBean();
+                            String modelName = optStringNotNull(dataObject, "modelName");
+                            gridMenuReportStatisticsBean.setModelName(modelName);
+                            JSONArray listArray = dataObject.optJSONArray("list");
+                            List<GridMenuReportStatisticsBean.ListBean> listBeans = new ArrayList<>();
+                            if (listArray != null) {
+                                for (int j = 0; j < listArray.length(); j++) {
+                                    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);
+
+                                        listBeans.add(listBean);
+                                    }
+                                }
+                                gridMenuReportStatisticsBean.setList(listBeans);
+                            }
+                            mGridMenuReportStatisticsBeans.add(gridMenuReportStatisticsBean);
+                        }
+                    }
+                    mReportStatisticsMenuListAdapter.notifyDataSetChanged();
+                    //setListViewHeightBasedOnChildren(mMenuListView);
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
     public String optStringNotNull(JSONObject json, String key) {
         if (json.isNull(key)) {
             return "";

+ 42 - 16
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquirySchemeConditionAdapter.java

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.adapter;
 import android.app.Activity;
 import android.content.Context;
 import android.text.Editable;
+import android.text.TextUtils;
 import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -180,12 +181,15 @@ public class DataInquirySchemeConditionAdapter extends BaseAdapter {
                 break;
             case "D":
             case "CD":
+            case "YM":
+            case "YMV":
                 holder.stringEdittext.setVisibility(View.GONE);
                 holder.numEdittextLl.setVisibility(View.GONE);
                 holder.textviewLl.setVisibility(View.VISIBLE);
                 holder.gridview.setVisibility(View.GONE);
 
                 mProperties = object.getProperties();
+                String type = object.getType();
 
                 if (mProperties != null && mProperties.size() == 2) {
                     holder.textview1.setText(mProperties.get(0).getDisplay());
@@ -197,10 +201,12 @@ public class DataInquirySchemeConditionAdapter extends BaseAdapter {
                     public void onClick(View v) {
                         String time1 = holder.textview1.getText().toString();
                         String[] times1 = time1.split("-");
-                        if (times1.length >= 3) {
-                            showDateDialog(times1[0], times1[1], times1[2], holder.textview1, object, 0);
+                        if (("YM".equals(type) || "YMV".equals(type)) && time1.length() == 6) {
+                            showDateDialog(time1.substring(0, 4), time1.substring(4, 6), null, holder.textview1, type, object, 0);
+                        } else if (times1.length >= 3) {
+                            showDateDialog(times1[0], times1[1], times1[2], holder.textview1, type, object, 0);
                         } else {
-                            showDateDialog(null, null, null, holder.textview1, object, 0);
+                            showDateDialog(null, null, null, holder.textview1, type, object, 0);
                         }
                     }
                 });
@@ -210,10 +216,12 @@ public class DataInquirySchemeConditionAdapter extends BaseAdapter {
                     public void onClick(View v) {
                         String time2 = holder.textview2.getText().toString();
                         String[] times2 = time2.split("-");
-                        if (times2.length >= 3) {
-                            showDateDialog(times2[0], times2[1], times2[2], holder.textview2, object, 1);
+                        if (("YM".equals(type) || "YMV".equals(type)) && time2.length() == 6) {
+                            showDateDialog(time2.substring(0, 4), time2.substring(4, 6), null, holder.textview2, type, object, 1);
+                        } else if (times2.length >= 3) {
+                            showDateDialog(times2[0], times2[1], times2[2], holder.textview2, type, object, 1);
                         } else {
-                            showDateDialog(null, null, null, holder.textview2, object, 1);
+                            showDateDialog(null, null, null, holder.textview2, type, object, 1);
                         }
                     }
                 });
@@ -223,10 +231,12 @@ public class DataInquirySchemeConditionAdapter extends BaseAdapter {
                     public void onClick(View v) {
                         String time1 = holder.textview1.getText().toString();
                         String[] times1 = time1.split("-");
-                        if (times1.length >= 3) {
-                            showDateDialog(times1[0], times1[1], times1[2], holder.textview1, object, 0);
+                        if (("YM".equals(type) || "YMV".equals(type)) && time1.length() == 6) {
+                            showDateDialog(time1.substring(0, 4), time1.substring(4, 6), null, holder.textview1, type, object, 0);
+                        } else if (times1.length >= 3) {
+                            showDateDialog(times1[0], times1[1], times1[2], holder.textview1, type, object, 0);
                         } else {
-                            showDateDialog(null, null, null, holder.textview1, object, 0);
+                            showDateDialog(null, null, null, holder.textview1, type, object, 0);
                         }
                     }
                 });
@@ -236,10 +246,12 @@ public class DataInquirySchemeConditionAdapter extends BaseAdapter {
                     public void onClick(View v) {
                         String time2 = holder.textview2.getText().toString();
                         String[] times2 = time2.split("-");
-                        if (times2.length >= 3) {
-                            showDateDialog(times2[0], times2[1], times2[2], holder.textview2, object, 1);
+                        if (("YM".equals(type) || "YMV".equals(type)) && time2.length() == 6) {
+                            showDateDialog(time2.substring(0, 4), time2.substring(4, 6), null, holder.textview2, type, object, 1);
+                        } else if (times2.length >= 3) {
+                            showDateDialog(times2[0], times2[1], times2[2], holder.textview2, type, object, 1);
                         } else {
-                            showDateDialog(null, null, null, holder.textview2, object, 1);
+                            showDateDialog(null, null, null, holder.textview2, type, object, 1);
                         }
                     }
                 });
@@ -369,18 +381,32 @@ public class DataInquirySchemeConditionAdapter extends BaseAdapter {
         }
     }
 
-    private void showDateDialog(String year, String month, String day, final TextView tv, SchemeConditionBean object, int i) {
-        OASigninPicker picker = new OASigninPicker((Activity) context, 2000, 2030);
+    private void showDateDialog(String year, String month, String day, final TextView tv, String type, SchemeConditionBean object, int i) {
+        boolean haveDay = true;
+        if (("YM".equals(type) || "YMV".equals(type))) {
+            haveDay = false;
+        }
+        OASigninPicker picker = new OASigninPicker((Activity) context, 2000, 2030, haveDay);
         picker.setRange(2030, 12, 31);
         try {
-            picker.setSelectedItem(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day));
+            if (haveDay && !TextUtils.isEmpty(day))
+                picker.setSelectedItem(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day));
+            else
+                picker.setSelectedItem(Integer.parseInt(year), Integer.parseInt(month));
         } catch (Exception e) {
-            picker.setSelectedItem(CalendarUtil.getYear(), CalendarUtil.getMonth(), CalendarUtil.getDay());
+            if (haveDay)
+                picker.setSelectedItem(CalendarUtil.getYear(), CalendarUtil.getMonth(), CalendarUtil.getDay());
+            else
+                picker.setSelectedItem(CalendarUtil.getYear(), CalendarUtil.getMonth());
         }
+
         picker.setOnDateTimePickListener(new OASigninPicker.OnDateTimePickListener() {
             @Override
             public void setTime(String year, String month, String day) {
                 String time = year + "-" + month + "-" + day;
+                if (TextUtils.isEmpty(day)) {
+                    time = year + month;
+                }
                 tv.setText(time);
                 if (object.getProperties().size() == 2) {
                     object.getProperties().get(i).setDisplay(time);

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

@@ -32,6 +32,7 @@ public class OASigninPicker extends WheelPicker {
     private int selectedYearIndex = 0, selectedMonthIndex = 0, selectedDayIndex = 0;
     private OnDateTimePickListener onDateTimePickListener;
     private int year, month, day = 0;
+    private boolean mHaveDay = true;
 
     @IntDef(flag = false, value = {YEAR_MONTH_DAY})
     @Retention(RetentionPolicy.SOURCE)
@@ -66,6 +67,22 @@ public class OASigninPicker extends WheelPicker {
         }
     }
 
+    public OASigninPicker(Activity activity, int startYear, int endYear, boolean haveDay) {
+        super(activity);
+        mHaveDay = haveDay;
+        textSize = 16;//年月日时分,比较宽,设置字体小一点才能显示完整
+        for (int i = startYear; i <= endYear; i++) {
+            years.add(String.valueOf(i));
+        }
+        for (int i = 1; i <= 12; i++) {
+            months.add(DateUtils.fillZero(i));
+        }
+        if (haveDay)
+            for (int i = 1; i <= 31; i++) {
+                days.add(DateUtils.fillZero(i));
+            }
+    }
+
     @NonNull
     @Override
     protected View makeCenterView() {
@@ -121,7 +138,10 @@ public class OASigninPicker extends WheelPicker {
         if (!TextUtils.isEmpty(dayLabel)) {
             dayTextView.setText(dayLabel);
         }
-        layout.addView(dayTextView);
+        if (mHaveDay) {
+            layout.addView(dayTextView);
+        }
+
         yearView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
             @Override
             public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
@@ -139,15 +159,18 @@ public class OASigninPicker extends WheelPicker {
                     maxDays = DateUtils.calculateDaysInMonth(stringToYearMonthDay(item), stringToYearMonthDay(months.get(selectedMonthIndex)));
                 }
 
-                days.clear();
-                for (int i = 1; i <= maxDays; i++) {
-                    days.add(DateUtils.fillZero(i));
-                }
-                if (selectedDayIndex >= maxDays) {
-                    //年或月变动时,保持之前选择的日不动:如果之前选择的日是之前年月的最大日,则日自动为该年月的最大日
-                    selectedDayIndex = days.size() - 1;
+                if (mHaveDay) {
+                    days.clear();
+                    for (int i = 1; i <= maxDays; i++) {
+                        days.add(DateUtils.fillZero(i));
+                    }
+                    if (selectedDayIndex >= maxDays) {
+                        //年或月变动时,保持之前选择的日不动:如果之前选择的日是之前年月的最大日,则日自动为该年月的最大日
+                        selectedDayIndex = days.size() - 1;
+                    }
+                    dayView.setItems(days, selectedDayIndex);
                 }
-                dayView.setItems(days, selectedDayIndex);
+
                 months.clear();
                 for (int i = 1; i <= maxMonth; i++) {
                     months.add(DateUtils.fillZero(i));
@@ -169,26 +192,31 @@ public class OASigninPicker extends WheelPicker {
                     maxDays = day;
                 } else
                     maxDays = DateUtils.calculateDaysInMonth(stringToYearMonthDay(years.get(selectedYearIndex)), stringToYearMonthDay(item));
-                days.clear();
-                for (int i = 1; i <= maxDays; i++) {
-                    days.add(DateUtils.fillZero(i));
-                }
-                if (selectedDayIndex >= maxDays) {
-                    //年或月变动时,保持之前选择的日不动:如果之前选择的日是之前年月的最大日,则日自动为该年月的最大日
-                    selectedDayIndex = days.size() - 1;
+                if (mHaveDay) {
+                    days.clear();
+                    for (int i = 1; i <= maxDays; i++) {
+                        days.add(DateUtils.fillZero(i));
+                    }
+                    if (selectedDayIndex >= maxDays) {
+                        //年或月变动时,保持之前选择的日不动:如果之前选择的日是之前年月的最大日,则日自动为该年月的最大日
+                        selectedDayIndex = days.size() - 1;
+                    }
+                    dayView.setItems(days, selectedDayIndex);
                 }
-                dayView.setItems(days, selectedDayIndex);
-            }
-        });
-        dayView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
-            @Override
-            public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
-                selectedDayIndex = selectedIndex;
+
             }
         });
+        if (mHaveDay)
+            dayView.setOnWheelViewListener(new WheelView.OnWheelViewListener() {
+                @Override
+                public void onSelected(boolean isUserScroll, int selectedIndex, String item) {
+                    selectedDayIndex = selectedIndex;
+                }
+            });
         yearView.setItems(years, selectedYearIndex);
         monthView.setItems(months, selectedMonthIndex);
-        dayView.setItems(days, selectedDayIndex);
+        if (mHaveDay)
+            dayView.setItems(days, selectedDayIndex);
         return layout;
     }
 
@@ -203,7 +231,7 @@ public class OASigninPicker extends WheelPicker {
         if (onDateTimePickListener != null) {
             String year = getSelectedYear();
             String month = getSelectedMonth();
-            String day = getSelectedDay();
+            String day = mHaveDay ? getSelectedDay() : "";
             onDateTimePickListener.setTime(year, month, day);
         }
     }
@@ -286,10 +314,16 @@ public class OASigninPicker extends WheelPicker {
         return index;
     }
 
+    public void setSelectedItem(int yeas, int month) {
+        selectedYearIndex = findItemIndex(years, yeas);
+        selectedMonthIndex = findItemIndex(months, month);
+//        selectedDayIndex = findItemIndex(days, day);
+    }
+
     public void setSelectedItem(int yeas, int month, int day) {
+        selectedYearIndex = findItemIndex(years, yeas);
         selectedMonthIndex = findItemIndex(months, month);
         selectedDayIndex = findItemIndex(days, day);
-        selectedYearIndex = findItemIndex(years, yeas);
     }
 
     /**

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

@@ -6,7 +6,7 @@
               android:background="@color/bg_underlying"
               android:orientation="vertical">
 
-    <ListView
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
         android:id="@+id/data_inquiry_menu_lv"
         android:layout_width="match_parent"
         android:layout_height="match_parent"

+ 1 - 0
app_core/common/src/main/java/com/core/utils/CommonUtil.java

@@ -53,6 +53,7 @@ public class CommonUtil {
         if (ct == null) return "";
         String baseUrl = getSharedPreferences(ct, "erp_baseurl");
         return baseUrl;
+//        return "http://192.168.253.58:8080/ERP/";
     }
 
     /**

+ 1 - 1
app_modular/applogin/src/main/java/com/modular/login/LoginActivity.java

@@ -123,7 +123,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener
         if (v.getId() == R.id.login_btn){
             login();
         }else if (v.getId() == R.id.tv_register){
-//            startActivity(new Intent(mContext,RegisterSelectActivity.class));
+            startActivity(new Intent(mContext,RegisterSelectActivity.class));
         }else if (v.getId() == R.id.tv_findPwd){
             IntentUtils.webLinks(mContext,
                     "https://account.ubtob.com/user/pwd?appId=home&returnURL=http%3A%2F%2Fwww.ubtob.com%2F",