Ver Fonte

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

Bitliker há 8 anos atrás
pai
commit
3ff25fdbbd
23 ficheiros alterados com 458 adições e 53 exclusões
  1. 5 7
      WeiChat/build.gradle
  2. 1 1
      WeiChat/src/main/AndroidManifest.xml
  3. 5 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/TaskAddActivity.java
  4. 53 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  5. 36 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryListActivity.java
  6. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/DataInquiryMoreMenuActivity.java
  7. 207 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/PDFDownloadActivity.java
  8. 46 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportQueryCriteriaActivity.java
  9. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportStatisticsMoreMenuActivity.java
  10. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryFlexAdapter.java
  11. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryFlexChildAdapter.java
  12. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMenuGridAdapter.java
  13. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMenuListAdapter.java
  14. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquiryMoreMenuAdapter.java
  15. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/DataInquirySchemeConditionAdapter.java
  16. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/HistoricalRecordAdapter.java
  17. 63 16
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/ReportQueryConditionAdapter.java
  18. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/adapter/ReportStatisticsMenuListAdapter.java
  19. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/database/HistoricalRecordCursorWrapper.java
  20. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/database/HistoricalRecordSchema.java
  21. 3 13
      WeiChat/src/main/res/layout/activity_report_query_criteria.xml
  22. 1 1
      WeiChat/src/main/res/layout/activity_visit_report_add.xml
  23. 2 2
      WeiChat/src/main/res/raw/versionconfiguration.properties

+ 5 - 7
WeiChat/build.gradle

@@ -17,10 +17,10 @@ android {
             keyPassword '13237658359'
         }
     }
-    
+
     compileSdkVersion rootProject.ext.android.compileSdkVersion
     buildToolsVersion rootProject.ext.android.buildToolsVersion
-   
+
     defaultConfig {
         applicationId project.applicationId
         minSdkVersion rootProject.ext.android.minSdkVersion
@@ -64,11 +64,10 @@ android {
     productFlavors {  // Gradle 多渠道打包
         baidu {}
         wandoujia {}
-
+//        _360 {}
         xiaomi {}
         tencent {}
         taobao {}
-       
     }
 
     productFlavors.all {
@@ -87,7 +86,7 @@ android {
 }
 
 dependencies {
-    compile fileTree(dir: 'libs', include: ['*.jar'])
+    compile fileTree(include: ['*.jar'], dir: 'libs')
     //依赖库
     testCompile deps.junit
     compile deps.appcompatV7
@@ -108,7 +107,6 @@ dependencies {
     compile deps.stickyListHeaders
     compile deps.stickyGridHeaders
     compile deps.materialDialogs
-
     androidTestCompile deps.leakcanaryNp
     debugCompile deps.leakcanary
     releaseCompile deps.leakcanaryNp
@@ -123,7 +121,7 @@ dependencies {
     compile project(':lib-zxing')
     compile project(':library-refreshlayout')
     compile 'com.squareup.okhttp3:okhttp:3.8.1'
-    //compile project(':android-pdf-viewer')
+    compile project(':android-pdf-viewer')
 }
 
 buildscript {

+ 1 - 1
WeiChat/src/main/AndroidManifest.xml

@@ -997,7 +997,7 @@
         <activity android:name=".ui.erp.activity.datainquiry.activity.ReportQueryCriteriaActivity"
                   android:windowSoftInputMode="adjustPan"/>
         <activity android:name=".ui.erp.activity.datainquiry.activity.ReportStatisticsMoreMenuActivity"/>
-    <!--    <activity android:name=".ui.erp.activity.datainquiry.activity.PDFDownloadActivity"/>-->
+        <activity android:name=".ui.erp.activity.datainquiry.activity.PDFDownloadActivity"/>
     </application>
 
 </manifest>

+ 5 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/TaskAddActivity.java

@@ -183,6 +183,11 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
             @Override
             public void onDateTimePicked(String year, String month, String day, String hour, String minute) {
                 String time = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":00";
+                String curtime = TimeUtils.f_long_2_str(System.currentTimeMillis());
+                if (curtime.compareTo(time) > 0){
+                    Crouton.makeText(ct, "不能选择过去时间");
+                    return;
+                }
                 if (b) {
                     tv_date_start.setText(time);
                 } else {

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

@@ -23,6 +23,7 @@ import android.widget.Button;
 import android.widget.EditText;
 import android.widget.PopupWindow;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -46,6 +47,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
@@ -79,6 +81,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     private static final int RES_SUBMIT_VISITRECORD = 0x213;
     private static final int UPDATE_VISITRECORD = 0x214;
     private static final int DELETE_VISITRECORD = 0x215;
+    private static final int CURRENT_DUR = 0x216;
     @ViewInject(R.id.tv_address_login)
     private FormEditText tv_address_login;
     @ViewInject(R.id.tv_customer_login)
@@ -239,6 +242,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             tv_address_login.setFocusable(false);
             tv_linksman_login.setFocusable(false);
             tv_visit_type.setFocusable(false);
+            tv_visit_steps.setOnClickListener(this);
             if (status != 2) {
                 save_btn.setFocusable(false);
                 delete_btn.setFocusable(false);
@@ -248,7 +252,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             }
         } else {
             phone_tv.setFocusableInTouchMode(true);
-            tv_visit_steps.setFocusableInTouchMode(true);
+            tv_visit_steps.setFocusable(false);
             tv_visit_content.setFocusableInTouchMode(true);
             tv_address_login.setFocusableInTouchMode(true);
             tv_linksman_login.setFocusableInTouchMode(true);
@@ -262,6 +266,7 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
             tv_visit_theme.setFocusable(false);
             save_btn.setOnClickListener(this);
             delete_btn.setOnClickListener(this);
+            tv_visit_steps.setOnClickListener(this);
             if (isOutplan) {
                 setFocusable(tv_date_start, isMe && TextUtils.isEmpty(tv_date_start.getText()));
                 setFocusable(tv_date_end, isMe && TextUtils.isEmpty(tv_date_end.getText()));
@@ -409,10 +414,46 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                     ToastUtil.showToast(ct, R.string.delete_succeed_notice1);
                     endActivity();
                     break;
+                case CURRENT_DUR:
+                    if (!StringUtils.isEmpty(msg.getData().toString())){
+                        String result = msg.getData().getString("result");
+                        LogUtil.prinlnLongMsg("CURRENT_DUR",result+"");
+
+                        doSelectCurDur(result);
+                    }
+                    break;
             }
         }
     };
 
+    //当前阶段请求后的数据处理并跳转传值
+    private void doSelectCurDur(String result) {
+
+        JSONObject object = JSON.parseObject(result);
+        if (object == null) return;
+        JSONArray array = object.getJSONArray("stages");
+        if (ListUtils.isEmpty(array)) return;
+
+        ArrayList<SelectBean> formBeaan = new ArrayList<>();
+        SelectBean selectBean;
+        for (int i = 0; i < array.size(); i++) {
+            selectBean = new SelectBean();
+            if (!StringUtils.isEmpty(array.getJSONObject(i).getString("BS_NAME"))){
+                selectBean.setName(array.getJSONObject(i).getString("BS_NAME"));
+                formBeaan.add(selectBean);
+            }
+
+            if (i == array.size()-1 && !ListUtils.isEmpty(formBeaan)){
+                Intent intent = new Intent();
+                intent.setClass(this, SelectActivity.class);
+                intent.putExtra("type", 2);
+                intent.putExtra("title", getString(R.string.current_stage));
+                intent.putParcelableArrayListExtra("data", formBeaan);
+                startActivityForResult(intent, 0x828);
+            }
+        }
+    }
+
     private void endActivity() {
         if (isOutplan && isB2b)
             CommonInterface.getInstance().endMission(vp_id, true);
@@ -495,7 +536,12 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                 startActivityForResult(intent, 0x22);
                 break;
             case R.id.tv_visit_steps:
-
+//                Toast.makeText(this,"当前阶段",Toast.LENGTH_SHORT).show();
+                String url = Constants.getAppBaseUrl(getApplicationContext()) + "mobile/crm/getBusinessChanceStage.action";
+                Map<String, Object> params = new HashMap<>();
+                LinkedHashMap headers = new LinkedHashMap();
+                headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(getApplicationContext(), "sessionId"));
+                ViewUtil.httpSendRequest(getApplicationContext(), url, params, mHandler, headers, CURRENT_DUR, null, null, "post");
                 break;
             case R.id.tv_relate_business:
                 param = new HashMap<>();
@@ -646,6 +692,11 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
         } else if (requestCode == 0x29) {
             String message = data.getStringExtra("data");
             tv_visit_theme.setText(StringUtils.isEmpty(message) ? getString(R.string.maintain_customers) : message);
+        }else if (requestCode == 0x828 && resultCode == 0x20){
+            SelectBean b = data.getParcelableExtra("data");
+            if (b != null && !StringUtils.isEmpty(b.getName())){
+                tv_visit_steps.setText(b.getName());
+            }
         }
     }
 

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

@@ -54,7 +54,9 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -156,6 +158,13 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                                             } else if ("D".equals(type) || "CD".equals(type)) {
                                                 for (int m = 0; m < 2; m++) {
                                                     SchemeConditionBean.Property property = new SchemeConditionBean.Property();
+                                                    if (m == 0){
+                                                        property.setDisplay(getMonthFirstDay());
+                                                        property.setValue(getMonthFirstDay());
+                                                    }else if (m == 1){
+                                                        property.setDisplay(getMonthLastDay());
+                                                        property.setValue(getMonthLastDay());
+                                                    }
                                                     properties.add(property);
                                                 }
                                             } else if ("CBG".equals(type) || "EC".equals(type) || "C".equals(type) || "R".equals(type)) {
@@ -613,6 +622,7 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
                 break;
             case R.id.data_inquiry_list_option_cancel_tv:
                 mExactWholeLl.setVisibility(View.GONE);
+                CommonUtil.closeKeybord(mSearchEditText, DataInquiryListActivity.this);
                 break;
             case R.id.data_inquiry_list_option_reset_tv:
                 mAppSchemeConditions.clear();
@@ -791,4 +801,30 @@ public class DataInquiryListActivity extends BaseActivity implements View.OnClic
         List<T> dest = (List<T>) in.readObject();
         return dest;
     }
+
+    /**
+     * 得到本月的第一天
+     */
+    public static String getMonthFirstDay() {
+        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");
+        return simpleFormate.format(calendar.getTime());
+    }
+
+    /**
+     * 得到本月的最后一天
+     */
+    public static String getMonthLastDay() {
+        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");
+        return simpleFormate.format(calendar.getTime());
+    }
+
 }

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

@@ -16,6 +16,7 @@ import java.util.List;
 
 /**
  * Created by RaoMeng on 2017/8/14.
+ * 数据查询九宫格更多菜单页面
  */
 public class DataInquiryMoreMenuActivity extends BaseActivity implements AdapterView.OnItemClickListener {
     private ListView mMenuListView;

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

@@ -0,0 +1,207 @@
+package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.activity;
+
+import android.content.Intent;
+import android.graphics.Canvas;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+import android.view.View;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.github.barteksc.pdfviewer.PDFView;
+import com.github.barteksc.pdfviewer.listener.OnDrawListener;
+import com.github.barteksc.pdfviewer.listener.OnErrorListener;
+import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener;
+import com.github.barteksc.pdfviewer.listener.OnPageChangeListener;
+import com.github.barteksc.pdfviewer.listener.OnPageScrollListener;
+import com.github.barteksc.pdfviewer.listener.OnRenderListener;
+import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.ui.base.BaseActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.Constants;
+import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.PDFUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
+
+import java.io.File;
+
+/**
+ * Created by RaoMeng on 2017/8/17.
+ * 报表统计PDF文件下载并展示页面
+ */
+public class PDFDownloadActivity extends BaseActivity implements View.OnClickListener, OnDrawListener, OnLoadCompleteListener, OnPageChangeListener, OnPageScrollListener, OnErrorListener, OnRenderListener {
+    private PDFView mPDFView;
+    private TextView mStateTextView, mRemainTextView, mReloadTextView, mExitTextView;
+    private ProgressBar mDownloadProgressBar;
+    private RelativeLayout mDownloadRelativeLayout;
+    private LinearLayout mErrorLinearLayout;
+    private String downloadUrl = "", mReportName = "";
+    private String mCondition;
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case Constants.CONSTANT.DOWNLOAD_PROGRESS:
+                    try {
+                        int progress = (int) msg.obj;
+                        Log.d("progress", progress + "");
+                        mStateTextView.setText(R.string.str_loading);
+                        mDownloadProgressBar.setProgress(progress);
+                        mRemainTextView.setText((100 - progress) + "");
+                    } catch (Exception e) {
+
+                    }
+                    break;
+                case Constants.CONSTANT.DOWNLOAD_SUCCESS:
+                    mStateTextView.setText("报表文件下载成功!");
+                    mDownloadProgressBar.setProgress(100);
+                    mRemainTextView.setText("0");
+                    mDownloadRelativeLayout.postDelayed(new Runnable() {
+                        @Override
+                        public void run() {
+                            mDownloadRelativeLayout.setVisibility(View.GONE);
+                        }
+                    }, 1000);
+                    displayFromFile(new File(Constants.CONSTANT.PDF_FILE_PATH, Constants.CONSTANT.PDF_FILE_NAME));
+                    break;
+                case Constants.CONSTANT.PDF_OVERLOAD:
+                    mErrorLinearLayout.setVisibility(View.VISIBLE);
+                    mStateTextView.setText("数据量过载,报表文件获取失败!");
+                    mDownloadProgressBar.setProgress(0);
+                    mRemainTextView.setText(100 + "");
+                    break;
+                case Constants.CONSTANT.DOWNLOAD_FAILED:
+                    mErrorLinearLayout.setVisibility(View.VISIBLE);
+                    String info = "";
+                    if (msg.obj != null) {
+                        info = "\n" + (String) msg.obj;
+                    }
+                    mStateTextView.setText("报表文件下载失败" + info);
+                    mDownloadProgressBar.setProgress(0);
+                    mRemainTextView.setText(100 + "");
+                    break;
+            }
+        }
+    };
+
+    private void displayFromFile(File fileName) {
+        mPDFView.fromFile(fileName)
+//                .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default
+                .enableSwipe(true) // allows to block changing pages using swipe
+                .swipeHorizontal(true)
+                .enableDoubletap(true)
+                .defaultPage(0)
+                        // allows to draw something on the current page, usually visible in the middle of the screen
+                .onDraw(this)
+                        // allows to draw something on all pages, separately for every page. Called only for visible pages
+                .onDrawAll(this)
+                .onLoad(this) // called after document is loaded and starts to be rendered
+                .onPageChange(this)
+                .onPageScroll(this)
+                .onError(this)
+                .onRender(this) // called after document is rendered for the first time
+                .enableAnnotationRendering(false) // render annotations (such as comments, colors or forms)
+                .password(null)
+                .scrollHandle(null)
+                .enableAntialiasing(true) // improve rendering a little bit on low-res screens
+                        // spacing between pages in dp. To define spacing color, set view background
+                .spacing(10)
+                .load();
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_pdf_download);
+
+        initViews();
+        initEvents();
+        downloadPDF();
+    }
+
+    private void downloadPDF() {
+        PDFUtils.downloadPDF(downloadUrl, mHandler);
+    }
+
+    private void initViews() {
+        Intent intent = getIntent();
+        if (intent != null) {
+            mCondition = intent.getStringExtra("condition");
+            mReportName = intent.getStringExtra("reportName");
+        }
+
+//        downloadUrl = com.xzjmyk.pm.activity.ui.erp.util.Constants.getAppBaseUrl(this)
+//                + "report/pdf/data?u=" + CommonUtil.getSharedPreferences(ct, "erp_master")
+//                + "&pf=phone&r=" + mReportName + "&w=" + mCondition;
+//        downloadUrl = "http://192.168.253.60:8090/report/pdf/data?u=" + CommonUtil.getSharedPreferences(ct, "erp_master")
+//                + "&pf=phone&r=" + mReportName + "&w=where " + mCondition;
+        downloadUrl = "http://print.ubtob.com/report/pdf/data?u=" + CommonUtil.getSharedPreferences(ct, "erp_master")
+                + "&pf=phone&r=" + mReportName + "&w=where " + mCondition;
+
+        Log.d("downloadUrl", downloadUrl);
+
+        mPDFView = (PDFView) findViewById(R.id.pdf_download_pdfview);
+        mPDFView.useBestQuality(true);
+
+        mStateTextView = (TextView) findViewById(R.id.pdf_download_state_tv);
+        mRemainTextView = (TextView) findViewById(R.id.pdf_download_remain_tv);
+        mDownloadProgressBar = (ProgressBar) findViewById(R.id.pdf_download_progress_pb);
+        mDownloadRelativeLayout = (RelativeLayout) findViewById(R.id.pdf_download_progress_rl);
+        mReloadTextView = (TextView) findViewById(R.id.pdf_download_reload_tv);
+        mExitTextView = (TextView) findViewById(R.id.pdf_download_exit_tv);
+        mErrorLinearLayout = (LinearLayout) findViewById(R.id.pdf_download_error_menu_ll);
+    }
+
+    private void initEvents() {
+        mExitTextView.setOnClickListener(this);
+        mReloadTextView.setOnClickListener(this);
+        mDownloadRelativeLayout.setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(View v) {
+        switch (v.getId()) {
+            case R.id.pdf_download_exit_tv:
+                onBackPressed();
+                break;
+            case R.id.pdf_download_reload_tv:
+                mStateTextView.setText(R.string.str_loading);
+                mErrorLinearLayout.setVisibility(View.GONE);
+                PDFUtils.downloadPDF(downloadUrl, mHandler);
+                break;
+        }
+    }
+
+    @Override
+    public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
+
+    }
+
+    @Override
+    public void loadComplete(int nbPages) {
+
+    }
+
+    @Override
+    public void onPageChanged(int page, int pageCount) {
+
+    }
+
+    @Override
+    public void onPageScrolled(int page, float positionOffset) {
+
+    }
+
+    @Override
+    public void onError(Throwable t) {
+
+    }
+
+    @Override
+    public void onInitiallyRendered(int nbPages, float pageWidth, float pageHeight) {
+        mPDFView.fitToWidth();
+    }
+}

+ 46 - 10
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/activity/ReportQueryCriteriaActivity.java

@@ -12,6 +12,7 @@ import android.os.Message;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
+import android.widget.ListView;
 import android.widget.TextView;
 
 import com.xzjmyk.pm.activity.R;
@@ -24,7 +25,6 @@ import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.util.PermissionUtil;
-import com.xzjmyk.pm.activity.view.MyListView;
 
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -35,7 +35,9 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -43,11 +45,12 @@ import java.util.Map;
 
 /**
  * Created by RaoMeng on 2017/8/16.
+ * 报表统计查询页面
  */
 public class ReportQueryCriteriaActivity extends BaseActivity implements View.OnClickListener {
     private final int REQUEST_WRITE_EXTERNAL_STORAGE = 0X22;
     private final int GET_OPTION_DATA = 0X11;
-    private MyListView mOptionListView;
+    private ListView mOptionListView;
     private TextView mCancelTextView, mResetTextView, mConfirmTextView;
     private GridMenuReportStatisticsBean.ListBean mReportInfo;
     private String mCondition = "";
@@ -105,6 +108,13 @@ public class ReportQueryCriteriaActivity extends BaseActivity implements View.On
                                             } else if ("D".equals(type) || "CD".equals(type)) {
                                                 for (int m = 0; m < 2; m++) {
                                                     ReportConditionBean.Property property = new ReportConditionBean.Property();
+                                                    if (m == 0){
+                                                        property.setDisplay(getMonthFirstDay());
+                                                        property.setValue(getMonthFirstDay());
+                                                    }else if (m == 1){
+                                                        property.setDisplay(getMonthLastDay());
+                                                        property.setValue(getMonthLastDay());
+                                                    }
                                                     properties.add(property);
                                                 }
                                             } else if ("CBG".equals(type) || "C".equals(type) || "R".equals(type)) {
@@ -163,7 +173,7 @@ public class ReportQueryCriteriaActivity extends BaseActivity implements View.On
     private void initViews() {
         getSupportActionBar().setTitle(R.string.report_query);
 
-        mOptionListView = (MyListView) findViewById(R.id.report_query_criteria_lv);
+        mOptionListView = (ListView) findViewById(R.id.report_query_criteria_lv);
         mCancelTextView = (TextView) findViewById(R.id.report_query_criteria_cancel_btn);
         mResetTextView = (TextView) findViewById(R.id.report_query_criteria_reset_btn);
         mConfirmTextView = (TextView) findViewById(R.id.report_query_criteria_confirm_btn);
@@ -318,13 +328,13 @@ public class ReportQueryCriteriaActivity extends BaseActivity implements View.On
         if (mCondition.length() == 0) {
             ToastMessage("请确认报表查询条件");
         } else {
-//            Intent intent = new Intent();
-//            intent.setClass(this, PDFDownloadActivity.class);
-//            intent.putExtra("condition", mCondition);
-//            if (mReportInfo != null)
-//                intent.putExtra("reportName", mReportInfo.getReportName());
-//
-//            startActivity(intent);
+            Intent intent = new Intent();
+            intent.setClass(this, PDFDownloadActivity.class);
+            intent.putExtra("condition", mCondition);
+            if (mReportInfo != null)
+                intent.putExtra("reportName", mReportInfo.getReportName());
+
+            startActivity(intent);
         }
     }
 
@@ -348,6 +358,32 @@ public class ReportQueryCriteriaActivity extends BaseActivity implements View.On
         return dest;
     }
 
+    /**
+     * 得到本月的第一天
+     */
+    public static String getMonthFirstDay() {
+        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");
+        return simpleFormate.format(calendar.getTime());
+    }
+
+    /**
+     * 得到本月的最后一天
+     */
+    public static String getMonthLastDay() {
+        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");
+        return simpleFormate.format(calendar.getTime());
+    }
+
+
     /**
      * 获取应用详情页面intent
      *

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

@@ -16,6 +16,7 @@ import java.util.List;
 
 /**
  * Created by RaoMeng on 2017/8/14.
+ * 报表统计九宫格更多菜单页面
  */
 public class ReportStatisticsMoreMenuActivity extends BaseActivity implements AdapterView.OnItemClickListener {
     private ListView mMenuListView;

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

@@ -14,6 +14,10 @@ import com.xzjmyk.pm.activity.view.MyListView;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 数据查询列表伸缩菜单适配器
+ */
 public class DataInquiryFlexAdapter extends BaseAdapter {
 
     private List<DataInquiryFlexBean> objects = new ArrayList<DataInquiryFlexBean>();

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

@@ -14,6 +14,10 @@ import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryFlexBe
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 数据查询列表伸缩菜单子适配器
+ */
 public class DataInquiryFlexChildAdapter extends BaseAdapter {
 
     private List<DataInquiryFlexBean.RowBean> objects = new ArrayList<DataInquiryFlexBean.RowBean>();

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

@@ -14,6 +14,10 @@ import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.bean.DataInquiryGirdIt
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 数据查询九宫格菜单子项适配器
+ */
 public class DataInquiryMenuGridAdapter extends BaseAdapter {
 
     private List<DataInquiryGirdItemBean> objects = new ArrayList<DataInquiryGirdItemBean>();

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

@@ -20,6 +20,10 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 数据查询九宫格菜单适配器
+ */
 public class DataInquiryMenuListAdapter extends BaseAdapter {
 
     private List<GridMenuDataInquiryBean> objects = new ArrayList<GridMenuDataInquiryBean>();

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

@@ -13,6 +13,10 @@ import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.CircleTextView;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 数据查询九宫格【更多】菜单适配器
+ */
 public class DataInquiryMoreMenuAdapter extends BaseAdapter {
     private List<String> objects = new ArrayList<String>();
 

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

@@ -25,6 +25,10 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 数据查询列表页面高级查询配置选项适配器
+ */
 public class DataInquirySchemeConditionAdapter extends BaseAdapter {
     private List<SchemeConditionBean> objects = new ArrayList<SchemeConditionBean>();
 

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

@@ -13,6 +13,10 @@ import com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.database.HistoricalRec
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 数据查询历史记录列表适配器
+ */
 public class HistoricalRecordAdapter extends BaseAdapter {
 
     private List<HistoricalRecordBean> objects = new ArrayList<HistoricalRecordBean>();

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

@@ -25,12 +25,17 @@ import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 报表统计高级查询配置选项适配器
+ */
 public class ReportQueryConditionAdapter extends BaseAdapter {
     private List<ReportConditionBean> objects = new ArrayList<ReportConditionBean>();
 
     private Context context;
     private LayoutInflater layoutInflater;
     private boolean strChanged = true, numChanged1 = true, numChanged2 = true;
+    private int mTouchPosition = -1, mTouchIndex = -1;
 
     public ReportQueryConditionAdapter(Context context, List<ReportConditionBean> objects) {
         this.context = context;
@@ -59,11 +64,11 @@ public class ReportQueryConditionAdapter extends BaseAdapter {
         convertView = layoutInflater.inflate(R.layout.item_list_data_inquiry_exact_query, null);
         convertView.setTag(new ViewHolder(convertView));
 //        }
-        initializeViews((ReportConditionBean) getItem(position), (ViewHolder) convertView.getTag());
+        initializeViews((ReportConditionBean) getItem(position), (ViewHolder) convertView.getTag(), position);
         return convertView;
     }
 
-    private void initializeViews(final ReportConditionBean object, final ViewHolder holder) {
+    private void initializeViews(final ReportConditionBean object, final ViewHolder holder, int position) {
         holder.captionTv.setText(object.getTitle());
         holder.captionTv.setOnClickListener(new View.OnClickListener() {
             @Override
@@ -81,6 +86,9 @@ public class ReportQueryConditionAdapter extends BaseAdapter {
                 holder.gridview.setVisibility(View.GONE);
                 List<ReportConditionBean.Property> mProperties = object.getProperties();
 
+                holder.numEdittext1.setTag(position);
+                holder.numEdittext2.setTag(position);
+
                 holder.numEdittext1.addTextChangedListener(new TextWatcher() {
                     @Override
                     public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -121,6 +129,26 @@ public class ReportQueryConditionAdapter extends BaseAdapter {
                     }
                 });
 
+                holder.numEdittext1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+                    @Override
+                    public void onFocusChange(View v, boolean hasFocus) {
+                        if (hasFocus) {
+                            mTouchPosition = (int) holder.numEdittext1.getTag();
+                            mTouchIndex = 1;
+                        }
+                    }
+                });
+
+                holder.numEdittext2.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+                    @Override
+                    public void onFocusChange(View v, boolean hasFocus) {
+                        if (hasFocus) {
+                            mTouchPosition = (int) holder.numEdittext2.getTag();
+                            mTouchIndex = 2;
+                        }
+                    }
+                });
+
                 numChanged1 = true;
                 numChanged2 = true;
                 if (mProperties != null && mProperties.size() == 2) {
@@ -130,6 +158,22 @@ public class ReportQueryConditionAdapter extends BaseAdapter {
                     holder.numEdittext2.setText(mProperties.get(1).getDisplay());
                     numChanged2 = false;
                 }
+
+                if (mTouchPosition == position) {
+                    if (mTouchIndex == 1) {
+                        holder.numEdittext1.requestFocus();
+                        holder.numEdittext1.setSelection(holder.numEdittext1.getText().length());
+                    } else if (mTouchIndex == 2) {
+                        holder.numEdittext2.requestFocus();
+                        holder.numEdittext2.setSelection(holder.numEdittext2.getText().length());
+                    } else {
+                        holder.numEdittext1.clearFocus();
+                        holder.numEdittext2.clearFocus();
+                    }
+                } else {
+                    holder.numEdittext1.clearFocus();
+                    holder.numEdittext2.clearFocus();
+                }
                 break;
             case "D":
             case "CD":
@@ -148,20 +192,6 @@ public class ReportQueryConditionAdapter extends BaseAdapter {
 
                 mProperties = object.getProperties();
 
-                holder.textview1.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-
-                    }
-                });
-
-                holder.textview2.setOnClickListener(new View.OnClickListener() {
-                    @Override
-                    public void onClick(View v) {
-
-                    }
-                });
-
                 holder.calendar1.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
@@ -254,6 +284,8 @@ public class ReportQueryConditionAdapter extends BaseAdapter {
                 holder.gridview.setVisibility(View.GONE);
                 mProperties = object.getProperties();
 
+                holder.stringEdittext.setTag(position);
+
                 holder.stringEdittext.addTextChangedListener(new TextWatcher() {
                     @Override
                     public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@@ -274,11 +306,26 @@ public class ReportQueryConditionAdapter extends BaseAdapter {
                     }
                 });
 
+                holder.stringEdittext.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+                    @Override
+                    public void onFocusChange(View v, boolean hasFocus) {
+                        if (hasFocus)
+                            mTouchPosition = (int) v.getTag();
+                    }
+                });
+
                 strChanged = true;
                 if (mProperties != null && object.getProperties().size() == 1) {
                     holder.stringEdittext.setText(mProperties.get(0).getDisplay());
                     strChanged = false;
                 }
+
+                if (mTouchPosition == position) {
+                    holder.stringEdittext.requestFocus();
+                    holder.stringEdittext.setSelection(holder.stringEdittext.getText().length());
+                } else {
+                    holder.stringEdittext.clearFocus();
+                }
                 break;
         }
     }

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

@@ -20,6 +20,10 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * Created by RaoMeng on 2017/8/14.
+ * 报表统计九宫格【更多】菜单列表适配器
+ */
 public class ReportStatisticsMenuListAdapter extends BaseAdapter {
     private List<GridMenuReportStatisticsBean> objects = new ArrayList<GridMenuReportStatisticsBean>();
 

+ 1 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/datainquiry/database/HistoricalRecordCursorWrapper.java

@@ -5,6 +5,7 @@ import android.database.CursorWrapper;
 
 /**
  * Created by RaoMeng on 2017/8/18.
+ * 历史记录的CursorWrapper封装类
  */
 public class HistoricalRecordCursorWrapper extends CursorWrapper {
 

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

@@ -2,7 +2,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.datainquiry.database;
 
 /**
  * Created by RaoMeng on 2017/8/14.
- * 历史记录表
+ * 数据查询历史记录表
  */
 public class HistoricalRecordSchema {
     public static final class HistoricalRecordTable {

+ 3 - 13
WeiChat/src/main/res/layout/activity_report_query_criteria.xml

@@ -23,21 +23,11 @@
         android:layout_height="1dp"
         android:background="@color/gray_light"/>
 
-    <ScrollView
+    <ListView
+        android:id="@+id/report_query_criteria_lv"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_weight="1">
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-            <com.xzjmyk.pm.activity.view.MyListView
-                android:id="@+id/report_query_criteria_lv"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"/>
-        </LinearLayout>
-    </ScrollView>
+        android:layout_weight="1"/>
 
     <LinearLayout
         android:layout_width="match_parent"

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

@@ -317,7 +317,7 @@
                 android:id="@+id/tv_visit_steps"
                 style="@style/form_relative_right_text"
                 android:drawableRight="@drawable/nav_icon_search_default"
-                android:hint=""
+                android:hint="@string/common_select1"
                 editTextFormExample:testType="nocheck" />
         </RelativeLayout>
 

+ 2 - 2
WeiChat/src/main/res/raw/versionconfiguration.properties

@@ -1,3 +1,3 @@
 #发布版本状态改为true,测试版本状态为false
-release_version=false
-#release_version=true
+#release_version=false
+release_version=true