Sfoglia il codice sorgente

合并代码developer

Bitliker 8 anni fa
parent
commit
fa3b8c64a6
35 ha cambiato i file con 960 aggiunte e 214 eliminazioni
  1. 4 1
      WeiChat/build.gradle
  2. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/Constants.java
  3. 96 54
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryActivity.java
  4. 45 17
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryListActivity.java
  5. 4 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/PDFDownloadActivity.java
  6. 91 48
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportStatisticsActivity.java
  7. 42 16
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquirySchemeConditionAdapter.java
  8. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingAddActivity.java
  9. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingDetailActivity.java
  10. 14 28
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingListActivity.java
  11. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/booking/BookAdapter.java
  12. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/dialog/QSComShowPpUtils.java
  13. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/dialog/QSearchPpwindowUtils.java
  14. 137 2
      WeiChat/src/main/res/layout/activity_booking_list.xml
  15. 1 1
      WeiChat/src/main/res/layout/activity_data_inquiry.xml
  16. 1 0
      app_core/common/src/main/java/com/core/utils/CommonUtil.java
  17. 60 26
      app_core/common/src/main/java/com/core/utils/timeutils/wheel/OASigninPicker.java
  18. 17 10
      app_core/common/src/main/java/com/core/xmpp/XmppConnectionManager.java
  19. 136 2
      app_core/common/src/main/res/layout/activity_booking_list.xml
  20. 1 0
      app_modular/appbooking/.gitignore
  21. 29 0
      app_modular/appbooking/build.gradle
  22. 25 0
      app_modular/appbooking/proguard-rules.pro
  23. 26 0
      app_modular/appbooking/src/androidTest/java/base/android/com/appbooking/ExampleInstrumentedTest.java
  24. 10 0
      app_modular/appbooking/src/main/AndroidManifest.xml
  25. 19 0
      app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BbookingAddActivity.java
  26. 15 0
      app_modular/appbooking/src/main/java/com/modular/booking/activity/shares/SharesListActivity.java
  27. 122 0
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/BookAdapter.java
  28. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/model/BookingModel.java
  29. 1 1
      app_modular/appbooking/src/main/java/com/modular/booking/model/SureBookModel.java
  30. 9 0
      app_modular/appbooking/src/main/res/layout/activity_bbooking_add.xml
  31. 12 0
      app_modular/appbooking/src/main/res/layout/activity_shares_list.xml
  32. 10 0
      app_modular/appbooking/src/main/res/values/strings.xml
  33. 17 0
      app_modular/appbooking/src/test/java/base/android/com/appbooking/ExampleUnitTest.java
  34. 3 0
      build.gradle
  35. 3 1
      settings.gradle

+ 4 - 1
WeiChat/build.gradle

@@ -106,6 +106,8 @@ dependencies {
     compile deps.stickyListHeaders
     compile deps.stickyGridHeaders
     compile deps.materialDialogs
+    compile deps.okhttp
+    
     androidTestCompile deps.leakcanaryNp
     debugCompile deps.leakcanary
     releaseCompile deps.leakcanaryNp
@@ -119,7 +121,8 @@ dependencies {
     compile project(':appcontact')
     compile project(':appme')
     compile project(':appworks')
-    compile 'com.squareup.okhttp3:okhttp:3.8.1'
+    compile project(":appbooking")
+  
     compile project(':android-pdf-viewer')
 }
 

+ 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;
+
     }
 }

+ 96 - 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,7 +33,7 @@ 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;
 
@@ -40,16 +43,44 @@ 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));
+        String dataInquiryMenuCache = CommonUtil.getSharedPreferences(this, 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 +99,77 @@ 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, 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) {

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

@@ -113,7 +113,8 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                 case GET_QUERY_CRITERIA:
                     if (mDataListView.isRefreshing())
                         mDataListView.onRefreshComplete();
-                    analysisCondition(msg);
+                    String result = msg.getData().getString("result");
+                    analysisCondition(result);
                     getSchemeData();
                     break;
                 case GET_DATA_RESULT:
@@ -167,7 +168,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                 }
                 mHistoricalRecordAdapter.notifyDataSetChanged();
             }
-        }catch (Exception e){
+        } catch (Exception e) {
 
         }
 
@@ -478,7 +479,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                                 }
                                 mHistoricalRecordAdapter.notifyDataSetChanged();
                             }
-                        }catch (Exception e){
+                        } catch (Exception e) {
 
                         }
                     }
@@ -504,7 +505,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 +580,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 +626,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 +811,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 +914,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 = "";
@@ -961,25 +989,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

+ 91 - 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,7 +36,7 @@ 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;
 
@@ -43,16 +46,45 @@ 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));
+        String reportQueryMenuCache = CommonUtil.getSharedPreferences(this, 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 +103,70 @@ 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, 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);

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingAddActivity.java

@@ -43,7 +43,7 @@ import com.lidroid.xutils.view.annotation.ViewInject;
 import com.uas.appcontact.model.contacts.ContactsModel;
 import com.uas.appcontact.ui.activity.ContactsActivity;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.model.book.BookingModel;
+import com.modular.booking.model.BookingModel;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 
 import java.util.ArrayList;

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingDetailActivity.java

@@ -44,7 +44,7 @@ import com.uas.appworks.OA.erp.model.SelectCollisionTurnBean;
 import com.uas.appworks.OA.erp.model.SelectEmUser;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectCollisionActivity;
-import com.xzjmyk.pm.activity.ui.erp.model.book.BookingModel;
+import com.modular.booking.model.BookingModel;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 
 import java.util.HashMap;

+ 14 - 28
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/secretary/BookingListActivity.java

@@ -19,26 +19,25 @@ import com.alibaba.fastjson.JSONObject;
 import com.common.LogUtil;
 import com.common.data.CalendarUtil;
 import com.common.data.DateFormatUtil;
+import com.common.data.ListUtils;
 import com.common.data.StringUtil;
-import com.lidroid.xutils.ViewUtils;
-import com.lidroid.xutils.view.annotation.ViewInject;
+import com.core.app.Constants;
 import com.core.app.MyApplication;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.MainActivity;
+import com.core.base.HttpImp;
 import com.core.base.OABaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.adapter.booking.BookAdapter;
-import com.xzjmyk.pm.activity.ui.erp.adapter.oa.OACalenderViewPagerAdapter;
-import com.xzjmyk.pm.activity.ui.erp.model.book.BookingModel;
-import com.xzjmyk.pm.activity.ui.erp.model.book.SureBookModel;
 import com.core.net.http.ViewUtil;
-import com.core.base.HttpImp;
-import com.xzjmyk.pm.activity.util.oa.CommonUtil;
-import com.core.app.Constants;
-import com.common.data.ListUtils;
+import com.core.selectcalendar.OACalendarView;
+import com.core.utils.CommonUtil;
 import com.core.widget.CustomerScrollView;
 import com.core.widget.EmptyLayout;
 import com.core.widget.MyListView;
-import com.core.selectcalendar.OACalendarView;
+import com.lidroid.xutils.ViewUtils;
+import com.lidroid.xutils.view.annotation.ViewInject;
+import com.modular.booking.adapter.BookAdapter;
+import com.modular.booking.model.BookingModel;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.MainActivity;
+import com.xzjmyk.pm.activity.ui.erp.adapter.oa.OACalenderViewPagerAdapter;
 
 import java.util.ArrayList;
 import java.util.Calendar;
@@ -77,7 +76,6 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
     private BookAdapter mAdapter;
     private OACalendarView calendarView;
     private OACalenderViewPagerAdapter pagerAdapter;//当前Viewpager适配器
-    private List<SureBookModel> mSureBookModel;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -86,18 +84,6 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
         ViewUtils.inject(this);
         initView();
         initEvent();
-        // TODO test
-       /* mSureBookModel = new ArrayList<>();
-        DepositNoticeUtil m = new DepositNoticeUtil();
-        m.loadDepostNotice();
-        new Handler().postDelayed(new Runnable() {
-            @Override
-            public void run() {
-                mSureBookModel = DepositNoticeUtil.getsureBookData();
-                Lg.prinlnLongMsg("mSureBookModel",JSON.toJSONString(mSureBookModel));
-            }
-        },2000);*/
-        // TODO test
     }
 
 
@@ -126,13 +112,13 @@ public class BookingListActivity extends OABaseActivity implements HttpImp, View
 
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.menu_nearby, menu);
+        getMenuInflater().inflate(R.menu.menu_about, menu);
         return super.onCreateOptionsMenu(menu);
     }
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == R.id.search) {
+        if (item.getItemId() ==R.id.app_about) {
             startActivity(new Intent(mContext, BookingAddActivity.class));
         }
 

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

@@ -9,8 +9,8 @@ import android.widget.ImageView;
 import android.widget.TextView;
 
 import com.common.data.DateFormatUtil;
+import com.modular.booking.model.BookingModel;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.ui.erp.model.book.BookingModel;
 
 import java.util.ArrayList;
 import java.util.Date;

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/dialog/QSComShowPpUtils.java

@@ -24,7 +24,7 @@ import com.core.app.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.activity.secretary.BookingDetailActivity;
 import com.xzjmyk.pm.activity.ui.erp.model.QSCModel;
-import com.xzjmyk.pm.activity.ui.erp.model.book.BookingModel;
+import com.modular.booking.model.BookingModel;
 import com.common.data.ListUtils;
 import com.core.widget.MyListView;
 import com.core.app.MyActivityManager;

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/dialog/QSearchPpwindowUtils.java

@@ -30,7 +30,7 @@ import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
 import com.core.app.Constants;
 import com.xzjmyk.pm.activity.ui.MainActivity;
 import com.xzjmyk.pm.activity.ui.erp.model.QSCModel;
-import com.xzjmyk.pm.activity.ui.erp.model.book.BookingModel;
+import com.modular.booking.model.BookingModel;
 import com.core.net.http.ViewUtil;
 import com.xzjmyk.pm.activity.util.oa.CommonUtil;
 import com.core.utils.RecognizerDialogUtil;

+ 137 - 2
WeiChat/src/main/res/layout/activity_booking_list.xml

@@ -5,8 +5,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fillViewport="true"
-    android:descendantFocusability="blocksDescendants"
-    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.secretary.BookingListActivity">
+    android:descendantFocusability="blocksDescendants">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -17,6 +16,7 @@
             style="@style/crm_ll_card"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
+            android:visibility="gone"
             android:weightSum="2">
 
             <TextView
@@ -39,6 +39,141 @@
                 android:padding="10dp"
                 android:text="@string/booking_shared" />
         </LinearLayout>
+
+        <!--new layout-->
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:background="#6A6A6A"
+            android:paddingTop="10dp"
+            android:paddingBottom="10dp">
+            <RelativeLayout
+                android:layout_weight="1"
+                android:layout_width="0dp"
+                android:layout_height="match_parent">
+                <TextView
+                    android:id="@+id/tv_signin_num"
+                    android:layout_width="10dp"
+                    android:layout_height="10dp"
+                    android:layout_marginRight="10dp"
+                    android:background="@drawable/hongdian"
+                    android:layout_gravity="top|right"
+                    android:gravity="center"
+                    android:text=""
+                    android:textColor="@android:color/white"
+                    android:textSize="10.0dip"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentEnd="true"
+                    android:layout_alignTop="@+id/signin" />
+                <TextView
+                    android:id="@+id/mbook"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:drawablePadding="@dimen/drawable_padding"
+                    android:drawableTop="@drawable/oa_1"
+                    android:layout_centerInParent="true"
+                    android:text="@string/booking_personal"
+                    android:textColor="@color/white"
+                    android:layout_marginTop="2dp"/>
+            </RelativeLayout>
+            <RelativeLayout
+                android:layout_weight="1"
+                android:layout_width="0dp"
+                android:layout_height="match_parent">
+                <TextView
+                    android:id="@+id/tv_signout_num"
+                    android:layout_width="10dp"
+                    android:layout_height="10dp"
+                    android:layout_marginRight="10dp"
+                    android:background="@drawable/hongdian"
+                    android:layout_gravity="top|right"
+                    android:layout_alignParentRight="true"
+                    android:gravity="center"
+                    android:text=""
+                    android:textColor="@android:color/white"
+                    android:textSize="10.0dip"
+                    />
+                <TextView
+                    android:id="@+id/outoffice"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="2dp"
+                    android:gravity="center"
+                    android:drawablePadding="@dimen/drawable_padding"
+                    android:drawableTop="@drawable/oa_2"
+                    android:layout_centerInParent="true"
+                    android:text="@string/booking_business"
+                    android:textColor="@color/white" />
+            </RelativeLayout>
+
+            <TextView
+                android:id="@+id/worklog"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:drawablePadding="@dimen/drawable_padding"
+                android:drawableTop="@drawable/oa_4"
+                android:gravity="center"
+                android:text="@string/booking_service"
+                android:textColor="@color/white" />
+            <TextView
+                android:id="@+id/erp"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:drawablePadding="@dimen/drawable_padding"
+                android:drawableTop="@drawable/oa_5"
+                android:gravity="center"
+                android:text="@string/booking_shared"
+                android:textColor="@color/white" />
+            <LinearLayout
+                android:id="@+id/oamain_more_menu_ll"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:orientation="vertical"
+                android:paddingLeft="5dp"
+                android:visibility="gone">
+
+                <FrameLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    >
+
+                    <ImageView
+                        android:id="@+id/oamain_more_menu_iv"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:gravity="center"
+                        android:src="@drawable/ic_oa_more" />
+
+                    <TextView
+                        android:id="@+id/oamain_more_menu_hd_tv"
+                        android:layout_width="10dp"
+                        android:layout_height="10dp"
+                        android:layout_gravity="top|right"
+                        android:layout_marginRight="15dp"
+                        android:background="@drawable/hongdian"
+                        android:textColor="@android:color/white"
+                        android:textSize="10.0dip"
+                        />
+                </FrameLayout>
+
+                <TextView
+                    android:id="@+id/more_menu_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="5dp"
+                    android:gravity="center"
+                    android:text="@string/oamore_tltle"
+                    android:textColor="@color/white" />
+            </LinearLayout>
+
+        </LinearLayout>
         <!--年月日布局-->
         <LinearLayout
             android:layout_width="match_parent"

+ 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

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

+ 60 - 26
app_core/common/src/main/java/com/core/utils/timeutils/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);
     }
 
     /**

+ 17 - 10
app_core/common/src/main/java/com/core/xmpp/XmppConnectionManager.java

@@ -9,8 +9,10 @@ import android.os.Handler;
 import android.os.Message;
 import android.util.Log;
 
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
 import com.core.app.MyApplication;
-import com.core.utils.CommonUtil;
+import com.core.net.utils.NetUtils;
 
 import org.apache.harmony.javax.security.sasl.SaslException;
 import org.jivesoftware.smack.AbstractConnectionListener;
@@ -107,18 +109,22 @@ public class XmppConnectionManager {
 //		NetworkInfo wifi = mConnectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
 //		boolean isConnectedGprs = gprs != null && gprs.isConnected();
 //		boolean isConnectedWifi = wifi != null && wifi.isConnected();
-		return CommonUtil.isNetWorkConnected(MyApplication.getInstance());
+		return NetUtils.isNetWorkConnected(MyApplication.getInstance());
 	}
 
 	private BroadcastReceiver mNetWorkChangeReceiver = new BroadcastReceiver() {
 		@Override
 		public void onReceive(Context context, Intent intent) {
+			LogUtil.d("roamer","app net intent:"+ JSON.toJSONString(intent));
 			if (!intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
 				return;
 			}
 			final boolean isConnected = isGprsOrWifiConnected();
-			if (mIsNetWorkActive != isConnected) {// 和之前的状态不同
-				Log.d("roamer", "网络状态改变了doLogining:"+doLogining);
+			LogUtil.d("roamer"," app net isConnected:"+isConnected);
+			LogUtil.d("roamer"," app net mIsNetWorkActive:"+mIsNetWorkActive);
+			LogUtil.d("roamer"," app net mConnection:"+mConnection.isConnected());
+			if (mIsNetWorkActive != isConnected||!mConnection.isConnected()) {// 和之前的状态不同
+				Log.d("roamer", " doLogining:"+doLogining);
 				mIsNetWorkActive = isConnected;
 				// 网络状态改变了
 				if (!mIsNetWorkActive) {// 由有网变为没网
@@ -128,6 +134,7 @@ public class XmppConnectionManager {
 				} else {
 					doLogining=true;
 					if (isLoginAllowed()) {
+						Log.d("roamer", "app try login:"+isLoginAllowed());
 						login(mLoginUserId, mLoginPassword);
 					}
 				}
@@ -198,12 +205,12 @@ public class XmppConnectionManager {
 	private boolean doLogining = false;
 
 	private boolean isLoginAllowed() {
-//		LogUtil.d("Xmpp","---------isLoginAllowed()------------");
-//		LogUtil.d("Xmpp","doLogining:"+doLogining);
-//		LogUtil.d("Xmpp","mIsNetWorkActive:"+mIsNetWorkActive);
-//		LogUtil.d("Xmpp","!mConnection.isConnected():"+!mConnection.isConnected());
-//		LogUtil.d("Xmpp","!mConnection.isAuthenticated():"+!mConnection.isAuthenticated());
-//		LogUtil.d("Xmpp","---------isLoginAllowed()------------");
+		LogUtil.d("roamer","---------isLoginAllowed()------------");
+		LogUtil.d("roamer","doLogining:"+doLogining);
+		LogUtil.d("roamer","mIsNetWorkActive:"+mIsNetWorkActive);
+		LogUtil.d("roamer","!mConnection.isConnected():"+!mConnection.isConnected());
+		LogUtil.d("roamer","!mConnection.isAuthenticated():"+!mConnection.isAuthenticated());
+		LogUtil.d("roamer","---------isLoginAllowed()------------");
 		return doLogining && mIsNetWorkActive && (!mConnection.isConnected() || !mConnection.isAuthenticated());
 	}
 

+ 136 - 2
app_core/common/src/main/res/layout/activity_booking_list.xml

@@ -5,8 +5,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:fillViewport="true"
-    android:descendantFocusability="blocksDescendants"
-    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.secretary.BookingListActivity">
+    android:descendantFocusability="blocksDescendants">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -17,6 +16,7 @@
             style="@style/crm_ll_card"
             android:layout_height="wrap_content"
             android:orientation="horizontal"
+            android:visibility="gone"
             android:weightSum="2">
 
             <TextView
@@ -39,6 +39,140 @@
                 android:padding="10dp"
                 android:text="@string/booking_shared" />
         </LinearLayout>
+        
+        <!--new layout-->
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal"
+            android:background="#6A6A6A"
+            android:paddingBottom="10dp">
+            <RelativeLayout
+                android:layout_weight="1"
+                android:layout_width="0dp"
+                android:layout_height="match_parent">
+                <TextView
+                    android:id="@+id/tv_signin_num"
+                    android:layout_width="10dp"
+                    android:layout_height="10dp"
+                    android:layout_marginRight="10dp"
+                    android:background="@drawable/hongdian"
+                    android:layout_gravity="top|right"
+                    android:gravity="center"
+                    android:text=""
+                    android:textColor="@android:color/white"
+                    android:textSize="10.0dip"
+                    android:layout_alignParentRight="true"
+                    android:layout_alignParentEnd="true"
+                    android:layout_alignTop="@+id/signin" />
+                <TextView
+                    android:id="@+id/mbook"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:drawablePadding="@dimen/drawable_padding"
+                    android:drawableTop="@drawable/oa_1"
+                    android:layout_centerInParent="true"
+                    android:text="@string/oasign_title"
+                    android:textColor="@color/white"
+                    android:layout_marginTop="2dp"/>
+            </RelativeLayout>
+            <RelativeLayout
+                android:layout_weight="1"
+                android:layout_width="0dp"
+                android:layout_height="match_parent">
+                <TextView
+                    android:id="@+id/tv_signout_num"
+                    android:layout_width="10dp"
+                    android:layout_height="10dp"
+                    android:layout_marginRight="10dp"
+                    android:background="@drawable/hongdian"
+                    android:layout_gravity="top|right"
+                    android:layout_alignParentRight="true"
+                    android:gravity="center"
+                    android:text=""
+                    android:textColor="@android:color/white"
+                    android:textSize="10.0dip"
+                    />
+                <TextView
+                    android:id="@+id/outoffice"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="2dp"
+                    android:gravity="center"
+                    android:drawablePadding="@dimen/drawable_padding"
+                    android:drawableTop="@drawable/oa_2"
+                    android:layout_centerInParent="true"
+                    android:text="@string/oaoutplan_title"
+                    android:textColor="@color/white" />
+            </RelativeLayout>
+
+            <TextView
+                android:id="@+id/worklog"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:drawablePadding="@dimen/drawable_padding"
+                android:drawableTop="@drawable/oa_4"
+                android:gravity="center"
+                android:text="@string/oaworkdaily_title"
+                android:textColor="@color/white" />
+            <TextView
+                android:id="@+id/erp"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:drawablePadding="@dimen/drawable_padding"
+                android:drawableTop="@drawable/oa_5"
+                android:gravity="center"
+                android:text="@string/oavacation_apply"
+                android:textColor="@color/white" />
+            <LinearLayout
+                android:id="@+id/oamain_more_menu_ll"
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:orientation="vertical"
+                android:paddingLeft="5dp"
+                android:visibility="gone">
+
+                <FrameLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    >
+
+                    <ImageView
+                        android:id="@+id/oamain_more_menu_iv"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:gravity="center"
+                        android:src="@drawable/ic_oa_more" />
+
+                    <TextView
+                        android:id="@+id/oamain_more_menu_hd_tv"
+                        android:layout_width="10dp"
+                        android:layout_height="10dp"
+                        android:layout_gravity="top|right"
+                        android:layout_marginRight="15dp"
+                        android:background="@drawable/hongdian"
+                        android:textColor="@android:color/white"
+                        android:textSize="10.0dip"
+                        />
+                </FrameLayout>
+
+                <TextView
+                    android:id="@+id/more_menu_tv"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginTop="5dp"
+                    android:gravity="center"
+                    android:text="@string/oamore_tltle"
+                    android:textColor="@color/white" />
+            </LinearLayout>
+
+        </LinearLayout>
         <!--年月日布局-->
         <LinearLayout
             android:layout_width="match_parent"

+ 1 - 0
app_modular/appbooking/.gitignore

@@ -0,0 +1 @@
+/build

+ 29 - 0
app_modular/appbooking/build.gradle

@@ -0,0 +1,29 @@
+apply plugin: 'com.android.library'
+
+
+android {
+    compileSdkVersion rootProject.ext.android.compileSdkVersion
+    buildToolsVersion rootProject.ext.android.buildToolsVersion
+    defaultConfig {
+        minSdkVersion rootProject.ext.android.minSdkVersion
+        targetSdkVersion rootProject.ext.android.targetSdkVersion
+        versionCode rootProject.ext.android.versionCode
+        versionName rootProject.ext.android.versionName
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
+        }
+    }
+}
+
+dependencies {
+    compile fileTree(dir: 'libs', include: ['*.jar'])
+    compile deps.appcompatV7
+    testCompile deps.junit
+
+    compile project(':common')
+
+    compile 'com.android.support.constraint:constraint-layout:+'
+}

+ 25 - 0
app_modular/appbooking/proguard-rules.pro

@@ -0,0 +1,25 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in C:\Android\sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile

+ 26 - 0
app_modular/appbooking/src/androidTest/java/base/android/com/appbooking/ExampleInstrumentedTest.java

@@ -0,0 +1,26 @@
+package base.android.com.appbooking;
+
+import android.content.Context;
+import android.support.test.InstrumentationRegistry;
+import android.support.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import static org.junit.Assert.*;
+
+/**
+ * Instrumentation test, which will execute on an Android device.
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+@RunWith(AndroidJUnit4.class)
+public class ExampleInstrumentedTest {
+    @Test
+    public void useAppContext() throws Exception {
+        // Context of the app under test.
+        Context appContext = InstrumentationRegistry.getTargetContext();
+
+        assertEquals("base.android.com.appbooking.test", appContext.getPackageName());
+    }
+}

+ 10 - 0
app_modular/appbooking/src/main/AndroidManifest.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.modular.booking">
+
+    <application>
+        <activity android:name=".activity.business.BbookingAddActivity" />
+        <activity android:name=".activity.shares.SharesListActivity"></activity>
+    </application>
+
+</manifest>

+ 19 - 0
app_modular/appbooking/src/main/java/com/modular/booking/activity/business/BbookingAddActivity.java

@@ -0,0 +1,19 @@
+package com.modular.booking.activity.business;
+
+import android.os.Bundle;
+
+import com.core.base.BaseActivity;
+import com.modular.booking.R;
+
+/**
+  * @desc:商务预约新增界面
+  * @author:Arison on 2017/9/7
+  */
+public class BbookingAddActivity extends BaseActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_bbooking_add);
+    }
+}

+ 15 - 0
app_modular/appbooking/src/main/java/com/modular/booking/activity/shares/SharesListActivity.java

@@ -0,0 +1,15 @@
+package com.modular.booking.activity.shares;
+
+import android.os.Bundle;
+
+import com.core.base.BaseActivity;
+import com.modular.booking.R;
+
+public class SharesListActivity extends BaseActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_shares_list);
+    }
+}

+ 122 - 0
app_modular/appbooking/src/main/java/com/modular/booking/adapter/BookAdapter.java

@@ -0,0 +1,122 @@
+package com.modular.booking.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.common.data.DateFormatUtil;
+import com.modular.booking.R;
+import com.modular.booking.model.BookingModel;
+
+import java.util.ArrayList;
+import java.util.Date;
+
+/**
+ * Created by Arison on 2017/6/23.
+ */
+
+public class BookAdapter extends BaseAdapter {
+    
+    private Context ct;
+    private int type=1;
+    private Date currentDate;
+
+    public Date getCurrentDate() {
+        return currentDate;
+    }
+
+    public void setCurrentDate(Date currentDate) {
+        this.currentDate = currentDate;
+    }
+
+    private ArrayList<BookingModel> datas=new ArrayList<>();
+    
+    public BookAdapter(Context ct, ArrayList<BookingModel> data){
+        this.ct=ct;
+        this.datas=data;
+    }
+
+    public int getType() {
+        return type;
+    }
+
+    public void setType(int type) {
+        this.type = type;
+    }
+
+    @Override
+    public int getCount() {
+        return datas!=null?datas.size():0;
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return   datas.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder holder = null;
+        if (convertView == null) {
+            holder = new ViewHolder();
+            convertView = LayoutInflater.from(ct).inflate(R.layout.item_booking_list, null);
+            holder.status_img = (ImageView) convertView.findViewById(R.id.status_img);
+            holder.share_img = (ImageView) convertView.findViewById(R.id.iv_share);
+            holder.title_tv = (TextView) convertView.findViewById(R.id.title_tv);
+            holder.status_tv = (TextView) convertView.findViewById(R.id.status_tv);
+            holder.address_tv = (TextView) convertView.findViewById(R.id.address_tv);
+            holder.handler_tv = (TextView) convertView.findViewById(R.id.handler_tv);
+            holder.topic_tv=(TextView) convertView.findViewById(R.id.topic_tv);
+            convertView.setTag(holder);
+        } else {
+            holder = (ViewHolder) convertView.getTag();
+        }
+        try {
+            BookingModel model=datas.get(position);
+            holder.model=model;
+
+            if (DateFormatUtil.getStrDate4Date(currentDate, "yyyy-MM-dd").equals(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd"))){
+                holder.title_tv.setText(model.getAb_starttime().substring(0,10)+" "+model.getAb_starttime().substring(11,16)+"-"+
+                        model.getAb_endtime().substring(11,16));
+            }else{
+                holder.title_tv.setText(model.getAb_starttime().substring(11,16)+"-"+
+                        model.getAb_endtime().substring(11,16));
+            }
+          
+           
+            holder.status_tv.setText(model.getAb_confirmstatus());
+           
+            if(model.getAb_sharestatus().equals("已共享")){
+                holder.share_img.setVisibility(View.VISIBLE);
+            }else{
+                holder.share_img.setVisibility(View.GONE);
+            }
+            if (type==2){
+                holder.handler_tv.setText(model.getAb_recordman()+"—>"+model.getAb_bman());
+            }else{
+                holder.handler_tv.setText(model.getAb_recordman()+"—>"+model.getAb_bman());
+            }
+            
+            holder.topic_tv.setText(model.getAb_type());
+            holder.model.setAb_type(model.getAb_type());
+         
+        } catch (Exception e) {
+        }
+        return convertView;
+    }
+
+    public class ViewHolder {
+        public ImageView status_img,share_img;
+        public TextView title_tv, status_tv, address_tv, handler_tv,topic_tv;
+        public BookingModel model;
+    }
+}

+ 1 - 1
app_modular/appcontact/src/main/java/com/uas/appcontact/model/book/BookingModel.java → app_modular/appbooking/src/main/java/com/modular/booking/model/BookingModel.java

@@ -1,4 +1,4 @@
-package com.uas.appcontact.model.book;
+package com.modular.booking.model;
 
 import android.os.Parcel;
 import android.os.Parcelable;

+ 1 - 1
app_modular/appcontact/src/main/java/com/uas/appcontact/model/book/SureBookModel.java → app_modular/appbooking/src/main/java/com/modular/booking/model/SureBookModel.java

@@ -1,4 +1,4 @@
-package com.uas.appcontact.model.book;
+package com.modular.booking.model;
 
 /**
  * Created by ${FANGLH} on 2017/7/18.

+ 9 - 0
app_modular/appbooking/src/main/res/layout/activity_bbooking_add.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.modular.booking.activity.business.BbookingAddActivity">
+
+</android.support.constraint.ConstraintLayout>

+ 12 - 0
app_modular/appbooking/src/main/res/layout/activity_shares_list.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="com.modular.booking.activity.shares.SharesListActivity">
+    <com.handmark.pulltorefresh.library.PullToRefreshListView
+        android:id="@+id/shareList"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+</android.support.constraint.ConstraintLayout>

+ 10 - 0
app_modular/appbooking/src/main/res/values/strings.xml

@@ -0,0 +1,10 @@
+<resources>
+    <string name="app_name">appbooking</string>
+
+    <!--预约功能-->
+    <string name="booking_personal">个人预约</string>
+    <string name="booking_business">商务预约</string>
+    <string name="booking_service">服务预约</string>
+    <string name="booking_share">共享预约</string>
+
+</resources>

+ 17 - 0
app_modular/appbooking/src/test/java/base/android/com/appbooking/ExampleUnitTest.java

@@ -0,0 +1,17 @@
+package base.android.com.appbooking;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
+ */
+public class ExampleUnitTest {
+    @Test
+    public void addition_isCorrect() throws Exception {
+        assertEquals(4, 2 + 2);
+    }
+}

+ 3 - 0
build.gradle

@@ -18,6 +18,9 @@ allprojects {
     repositories {
         jcenter()
         maven { url "https://jitpack.io" }
+        maven {
+            url 'https://maven.google.com'
+        }
     }
 }
 

+ 3 - 1
settings.gradle

@@ -8,9 +8,10 @@ include ':common'
 include ':message'
 
 //业务模块
+include  ':appmessages'
 include ':applogin'
 include ':appcontact'
-include ':appmessages'
+include  ':appbooking'
 include ':appme'
 include ':appworks'
 include ':appmoments'
@@ -40,6 +41,7 @@ project(':appme').projectDir = new File('app_modular/appme')
 project(':appworks').projectDir = new File('app_modular/appworks')
 project(':appcontact').projectDir = new File('app_modular/appcontact')
 project(':appmessages').projectDir = new File('app_modular/appmessages')
+project(':appbooking').projectDir = new File('app_modular/appbooking')
 project(':appmoments').projectDir = new File('app_modular/appmoments')
 
 //第三库模块