소스 검색

设备管理代码上传

RaoMeng 6 년 전
부모
커밋
80ed9c52ae
35개의 변경된 파일942개의 추가작업 그리고 207개의 파일을 삭제
  1. 2 2
      WeiChat/build.gradle
  2. 4 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/WebViewLoadActivity.java
  3. 7 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java
  4. 0 72
      WeiChat/src/main/res/layout/activity_data_form_detail.xml
  5. 3 3
      WeiChat/version.properties
  6. BIN
      android-key
  7. 16 11
      app_core/common/src/main/AndroidManifest.xml
  8. 9 0
      app_core/common/src/main/assets/work_menu.json
  9. 5 2
      app_core/common/src/main/java/com/core/net/http/ViewUtil.java
  10. 64 3
      app_core/common/src/main/java/com/core/widget/view/Activity/CommonWebviewActivity.java
  11. BIN
      app_core/common/src/main/res/drawable-hdpi/icon_bi.png
  12. 22 7
      app_core/common/src/main/res/layout/activity_data_form_detail.xml
  13. 7 7
      app_core/common/src/main/res/layout/item_comdoc_am.xml
  14. 3 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/AppWebViewActivity.java
  15. 2 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ApprovalActivity.java
  16. 1 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/ApprovalAdapter.java
  17. 2 2
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/ApprovaPresenter.java
  18. 9 0
      app_modular/appworks/src/main/AndroidManifest.xml
  19. 32 3
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountInfoActivity.java
  20. 8 3
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java
  21. 1 2
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/CommonDocDetailsActivity.java
  22. 79 27
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/DataFormDetailActivity.java
  23. 14 12
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/FormListSelectActivity.java
  24. 10 7
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/TravelDataFormDetailActivity.java
  25. 9 1
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/presenter/MissionPresenter.java
  26. 41 23
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/utils/AutoErpSigninUitl.java
  27. 7 2
      app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/ContactDynamicAddActivity.java
  28. 1 1
      app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/activity/PDFDownloadActivity.java
  29. 66 9
      app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/activity/ReportQuerySearchActivity.java
  30. 470 0
      app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/activity/ReportStatisticsBiActivity.java
  31. 41 1
      app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/adapter/ReportStatisticsMenuListAdapter.java
  32. 1 0
      app_modular/appworks/src/main/res/values-en/strings.xml
  33. 1 0
      app_modular/appworks/src/main/res/values-zh-rCN/strings.xml
  34. 1 0
      app_modular/appworks/src/main/res/values-zh-rTW/strings.xml
  35. 4 0
      app_modular/appworks/src/main/res/values/strings.xml

+ 2 - 2
WeiChat/build.gradle

@@ -88,7 +88,7 @@ android {
         versionCode versionArray[1]
         versionName versionNames
         multiDexEnabled true
-        signingConfig signingConfigs.config
+//        signingConfig signingConfigs.config
         manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
         ndk {
             abiFilters "armeabi", "armeabi-v7a", "x86", "mips", "x86_64", "mips64"
@@ -116,7 +116,7 @@ android {
             signingConfig signingConfigs.config
         }
         debug {
-            signingConfig signingConfigs.config
+            //signingConfig signingConfigs.config
         }
     }
 

+ 4 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/WebViewLoadActivity.java

@@ -66,7 +66,9 @@ public class WebViewLoadActivity extends BaseActivity {
                         String name = bundle.getString("name");
                         String masterId = bundle.getString("masterId");
                         //添加获取报表地址
-                        String extrajaSperurl = JSONUtil.getText(result,"EN_EXTRAJASPERURL");
+                        String en_admin = JSONUtil.getText(result, "EN_ADMIN");
+                        String extrajaSperurl = JSONUtil.getText(result,
+                                "jasper".equals(en_admin) ? "EN_URL" : "EN_EXTRAJASPERURL");
                         CommonUtil.setSharedPreferences(ct, "extrajaSperurl", extrajaSperurl);
                         CommonUtil.setSharedPreferences(WebViewLoadActivity.this, "sessionId", sessionId);
                         CommonUtil.setSharedPreferences(WebViewLoadActivity.this, "erp_username", erpaccount);
@@ -120,7 +122,7 @@ public class WebViewLoadActivity extends BaseActivity {
         title = "";// 动态改变文字显示
         title = intent.getStringExtra("p");
         if (title != null) {
-          setTitle(title);
+            setTitle(title);
         }
         if ("UAS".equals(title)) {
             setTitle("UAS管理系统");

+ 7 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java

@@ -74,7 +74,6 @@ import com.uas.appme.settings.activity.CheckWagesActivity;
 import com.uas.appme.settings.activity.SettingActivity;
 import com.uas.appme.settings.activity.SystemAdminActivity;
 import com.uas.appme.widget.MasterDialog;
-import com.uas.appworks.OA.erp.activity.form.DataFormDetailActivity;
 import com.uas.appworks.crm3_0.activity.CustomerManageActivity;
 import com.uas.appworks.crm3_0.activity.CustomerVisitActivity;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
@@ -187,7 +186,9 @@ public class MeFragment extends EasyFragment implements View.OnClickListener, On
                         String master = msg.getData().getString("master");
                         String master_ch = msg.getData().getString("master_ch");
                         //添加获取报表地址
-                        String extrajaSperurl = JSONUtil.getText(message, "EN_EXTRAJASPERURL");
+                        String en_admin = JSONUtil.getText(message, "EN_ADMIN");
+                        String extrajaSperurl = JSONUtil.getText(message,
+                                "jasper".equals(en_admin) ? "EN_URL" : "EN_EXTRAJASPERURL");
                         CommonUtil.setSharedPreferences(ct, "extrajaSperurl", extrajaSperurl);
                         LogUtil.i("extrajaSperurl=" + extrajaSperurl);
                         CommonUtil.setSharedPreferences(ct, "erp_uu", String.valueOf(results.get("uu")));
@@ -556,6 +557,10 @@ public class MeFragment extends EasyFragment implements View.OnClickListener, On
                 tv_menu_setting.setVisibility(View.GONE);
                 tv_oa_desc.setVisibility(View.GONE);
                 iv_desc_oa.setVisibility(View.GONE);
+                
+//                ct.startActivity(new Intent(getActivity(), CommonWebviewActivity.class)
+//                        .putExtra("scan_url","http://10.1.80.118:3000/android")
+//                .putExtra("title",""));
                 break;
             case R.id.me_admin_rl://系统管理员
                 startActivity(new Intent(getActivity(), SystemAdminActivity.class));

+ 0 - 72
WeiChat/src/main/res/layout/activity_data_form_detail.xml

@@ -1,72 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/sv_top"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fillViewport="true"
-   >
-
-    <LinearLayout
-        android:id="@+id/ll_top"
-       
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:orientation="vertical">
-
-        <com.core.widget.view.ListViewInScroller
-            android:id="@+id/lv_datas"
-            android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:divider="@color/item_line"
-            android:dividerHeight="0.1dp"
-            android:listSelector="@color/transparent" />
-
-        <LinearLayout
-            android:id="@+id/ll_item_add"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:background="@drawable/selector_me_menu_item_bg"
-            android:orientation="vertical"
-            android:visibility="gone">
-
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="0.5dp"
-                android:background="@color/item_line" />
-
-            <TextView
-                android:id="@+id/tv_item_add"
-                android:layout_width="match_parent"
-                android:layout_height="40dp"
-                android:layout_gravity="center"
-                android:gravity="center"
-                android:text="+ 新增明细"
-                android:textColor="@color/titleBlue" />
-        </LinearLayout>
-
-        <Button
-            android:id="@+id/click_btn"
-            android:layout_below="@+id/info"
-            style="@style/commonButtonStyle"
-            android:layout_marginBottom="80dp"
-            android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp"
-            android:layout_marginTop="20dp"
-            android:text="提交"
-            android:visibility="gone"
-             />
-
-        <Button
-            android:id="@+id/btn_update"
-            style="@style/commonButtonStyle"
-            android:layout_below="@+id/info"
-            android:layout_marginBottom="80dp"
-            android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp"
-            android:layout_marginTop="20dp"
-            android:text="更新"
-            android:visibility="gone" />
-    </LinearLayout>
-</ScrollView>
-
-

+ 3 - 3
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Wed Aug 21 11:08:20 CST 2019
+#Mon Aug 26 17:28:30 CST 2019
 debugName=972
-versionName=708
+versionName=695
 debugCode=972
-versionCode=263
+versionCode=250

BIN
android-key


+ 16 - 11
app_core/common/src/main/AndroidManifest.xml

@@ -2,28 +2,33 @@
     package="com.core.app">
 
 
-    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
-    <uses-permission android:name="android.permission.CALL_PHONE"/>
+    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+    <uses-permission android:name="android.permission.CALL_PHONE" />
+
     <application
         android:allowBackup="true"
         android:label="@string/app_name"
         android:supportsRtl="true">
 
 
-        <activity android:name="com.core.widget.view.Activity.CommonWebviewActivity"/>
-        <activity android:name="com.core.widget.view.Activity.ImgFileListActivity"
-            android:label="相册列表"/>
-        <activity android:name="com.core.utils.pictureselector.ImgsActivity"
-            android:label="@string/selector_caption"/>
+        <activity
+            android:name="com.core.widget.view.Activity.CommonWebviewActivity"
+            android:configChanges="keyboardHidden|orientation|screenSize" />
+        <activity
+            android:name="com.core.widget.view.Activity.ImgFileListActivity"
+            android:label="相册列表" />
+        <activity
+            android:name="com.core.utils.pictureselector.ImgsActivity"
+            android:label="@string/selector_caption" />
 
-        <activity android:name="com.core.widget.view.Activity.SearchLocationActivity"
+        <activity
+            android:name="com.core.widget.view.Activity.SearchLocationActivity"
             android:hardwareAccelerated="true"
             android:windowSoftInputMode="stateUnspecified|adjustNothing" />
-        <activity android:name="com.core.widget.view.Activity.SelectActivity">
-        </activity>
+        <activity android:name="com.core.widget.view.Activity.SelectActivity"></activity>
         <activity
             android:name="com.core.widget.view.selectcalendar.SelectCalendarActivity"
-            android:label="@string/title_activity_select_calendar"/>
+            android:label="@string/title_activity_select_calendar" />
         <activity
             android:name="com.core.widget.view.Activity.MultiImagePreviewActivity"
             android:configChanges="orientation|screenSize" />

+ 9 - 0
app_core/common/src/main/assets/work_menu.json

@@ -332,6 +332,15 @@
         "menuUrl": "",
         "caller": "",
         "isHide": false
+      },{
+        "isLocalMenu": true,
+        "menuName": "work_menu_bi",
+        "menuIcon": "icon_bi",
+        "menuActivity":"com.modular.company.ReportStatisticsBiActivity",
+        "menuTag": "local_subs_bi",
+        "menuUrl": "",
+        "caller": "",
+        "isHide": false
       }
     ]
   },

+ 5 - 2
app_core/common/src/main/java/com/core/net/http/ViewUtil.java

@@ -467,7 +467,9 @@ public class ViewUtil {
             CommonUtil.setSharedPreferences(ct, "erp_uu", enuu);
             CommonUtil.setSharedPreferences(ct, "erp_masterId", erpMasterId);
             //添加获取报表地址
-            String extrajaSperurl = JSONUtil.getText(result,"EN_EXTRAJASPERURL");
+            String en_admin = JSONUtil.getText(result, "EN_ADMIN");
+            String extrajaSperurl = JSONUtil.getText(result,
+                    "jasper".equals(en_admin) ? "EN_URL" : "EN_EXTRAJASPERURL");
             LogUtil.i("gong","login extrajaSperurl="+extrajaSperurl);
             CommonUtil.setSharedPreferences(ct, "extrajaSperurl", extrajaSperurl);
             CommonUtil.setSharedPreferences(ct, "erp_login", true);
@@ -647,7 +649,7 @@ public class ViewUtil {
                     if (BaseConfig.isDebug()&&model.getName().equals("UAS研发系统(测试)")){
                         model.setWebsite("https://218.17.158.219:9443/uas_dev/");
                     }
-
+                    //model.setWebsite("http://10.1.80.90:8080/uas/");
                     loginEntities.add(model);
                 } else if (model.getPlatform().equals("B2B")) {
                     List<LoginEntity.Spaces> sModel = model.getSpaces();
@@ -799,6 +801,7 @@ public class ViewUtil {
         }
         if (!StringUtil.isEmpty(text.toString())) {
             LoginEntity entity = erpEntities.get(which);
+            LogUtil.d("arison","login model:"+JSON.toJSONString(entity));
             erp_phone = phone;
             erp_password = password;
             mBusinessCode = entity.getBusinessCode();

+ 64 - 3
app_core/common/src/main/java/com/core/widget/view/Activity/CommonWebviewActivity.java

@@ -1,25 +1,31 @@
 package com.core.widget.view.Activity;
 
-import android.app.Activity;
 import android.app.AlertDialog;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.content.Intent;
+import android.content.pm.ActivityInfo;
+import android.content.res.Configuration;
 import android.os.Bundle;
 import android.util.Log;
 import android.view.KeyEvent;
+import android.view.WindowManager;
 import android.webkit.DownloadListener;
+import android.webkit.JavascriptInterface;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.webkit.WebViewClient;
+import android.widget.Toast;
 
 import com.common.file.DownloadUtil;
 import com.core.app.R;
+import com.core.base.BaseActivity;
 
 /**
  * 公共网页打开页面
  * Created by RaoMeng on 2016/9/14.
  */
-public class CommonWebviewActivity extends Activity {
+public class CommonWebviewActivity extends BaseActivity {
     private WebView mWebView;
     private String mUrl;
 
@@ -29,6 +35,10 @@ public class CommonWebviewActivity extends Activity {
         setContentView(R.layout.activity_common_webview);
         mWebView = (WebView) findViewById(R.id.webview);
 
+        mWebView.addJavascriptInterface(new JavaScriptinterface(this),
+                "android");
+
+
         WebSettings webSettings = mWebView.getSettings();
         //允许加载JavaScript
         webSettings.setJavaScriptEnabled(true);
@@ -70,7 +80,8 @@ public class CommonWebviewActivity extends Activity {
 
         Intent intent = getIntent();
         mUrl = intent.getStringExtra("scan_url");
-
+        String mTitle = intent.getStringExtra("title");
+        setTitle(mTitle);
         mWebView.loadUrl(mUrl);
     }
 
@@ -94,4 +105,54 @@ public class CommonWebviewActivity extends Activity {
             mWebView.destroy();
         }
     }
+
+    @Override
+    public void onConfigurationChanged(Configuration newConfig) {
+        super.onConfigurationChanged(newConfig);
+
+        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
+            if (getSupportActionBar() != null) {
+                getSupportActionBar().hide();
+            }
+            //设置全屏
+            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
+                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
+        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
+            if (getSupportActionBar() != null) {
+                getSupportActionBar().show();
+                //取消全屏
+                getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
+            }
+        }
+    }
+
+
+    public class JavaScriptinterface {
+        Context context;
+
+        public JavaScriptinterface(Context c) {
+            context = c;
+        }
+
+        /**
+         * 与js交互时用到的方法,在js里直接调用的
+         */
+        @JavascriptInterface
+        public void showToast(String ssss) {
+
+            Toast.makeText(CommonWebviewActivity.this, ssss, Toast.LENGTH_LONG).show();
+        }
+
+        @JavascriptInterface
+        public void requestedOrientationLandscape() {
+            // 设置为横屏模式  
+            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
+        }
+
+        @JavascriptInterface
+        public void requestedOrientationPortrait() {
+            // 设置为竖屏模式
+            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
+        }
+    }
 }

BIN
app_core/common/src/main/res/drawable-hdpi/icon_bi.png


+ 22 - 7
app_core/common/src/main/res/layout/activity_data_form_detail.xml

@@ -8,7 +8,7 @@
 
     <LinearLayout
         android:id="@+id/ll_top"
-       
+
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:orientation="vertical">
@@ -45,37 +45,52 @@
         </LinearLayout>
 
         <Button
-            android:id="@+id/click_btn"
+            android:id="@+id/change_quality_btn"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_below="@+id/info"
-            android:layout_marginBottom="80dp"
             android:layout_marginLeft="10dp"
+            android:layout_marginTop="20dp"
             android:layout_marginRight="10dp"
+            android:background="@drawable/bg_bule_btn"
+            android:padding="10dp"
+            android:text="转生产品质异常单"
+            android:textColor="@color/white"
+            android:textSize="@dimen/text_main"
+            android:visibility="gone" />
+
+        <Button
+            android:id="@+id/click_btn"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/info"
+            android:layout_marginLeft="10dp"
             android:layout_marginTop="20dp"
+            android:layout_marginRight="10dp"
+            android:layout_marginBottom="80dp"
             android:background="@drawable/bg_bule_btn"
             android:padding="10dp"
             android:text="提交"
             android:textColor="@color/white"
             android:textSize="@dimen/text_main"
-            android:visibility="gone"
-             />
+            android:visibility="gone" />
 
         <Button
             android:id="@+id/btn_update"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_below="@+id/info"
-            android:layout_marginBottom="80dp"
             android:layout_marginLeft="10dp"
-            android:layout_marginRight="10dp"
             android:layout_marginTop="20dp"
+            android:layout_marginRight="10dp"
+            android:layout_marginBottom="80dp"
             android:background="@drawable/bg_bule_btn"
             android:padding="10dp"
             android:text="更新"
             android:textColor="@color/white"
             android:textSize="@dimen/text_main"
             android:visibility="gone" />
+
     </LinearLayout>
 </ScrollView>
 

+ 7 - 7
app_core/common/src/main/res/layout/item_comdoc_am.xml

@@ -1,26 +1,26 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
     <TextView
         android:id="@+id/item_comdoc_am_list_tv"
-        android:layout_marginTop="5dp"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_weight="1"
-        android:text="开始时间:"
+        android:layout_marginTop="5dp"
         android:layout_marginRight="10dp"
+        android:layout_weight="1"
         android:textColor="#6E6E6E"
-        />
+        tools:text="开始时间:" />
 
     <TextView
         android:id="@+id/item_comdoc_am_value_tv"
-        android:layout_marginTop="5dp"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
+        android:layout_marginTop="5dp"
         android:layout_weight="2"
-        android:text="2016-11-25-21:22"
-        android:textColor="@color/done_approval"/>
+        android:textColor="@color/done_approval"
+        tools:text="2016-11-25-21:22" />
 
 </LinearLayout>

+ 3 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/AppWebViewActivity.java

@@ -67,7 +67,9 @@ public class AppWebViewActivity extends SupportToolBarActivity {
                         String name = bundle.getString("name");
                         String masterId = bundle.getString("masterId");
                         //添加获取报表地址
-                        String extrajaSperurl = JSONUtil.getText(result,"EN_EXTRAJASPERURL");
+                        String en_admin = JSONUtil.getText(result, "EN_ADMIN");
+                        String extrajaSperurl = JSONUtil.getText(result,
+                                "jasper".equals(en_admin) ? "EN_URL" : "EN_EXTRAJASPERURL");
                         CommonUtil.setSharedPreferences(ct, "extrajaSperurl", extrajaSperurl);
                         CommonUtil.setSharedPreferences(ct, "sessionId", sessionId);
                         CommonUtil.setSharedPreferences(ct, "erp_username", erpaccount);

+ 2 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ApprovalActivity.java

@@ -104,6 +104,7 @@ public class ApprovalActivity extends BaseActivity implements IApproval, Approva
         getMenuInflater().inflate(R.menu.menu_aproval_set, menu);
         MenuItem item = menu.getItem(1);
         item.setTitle("返回旧版");
+        item.setVisible(false);
         boolean hiteAble = !PreferenceUtils.getBoolean(AppConfig.IS_ADMIN, false);
         if (hiteAble) {
             MenuItem setItem = menu.getItem(0);
@@ -240,7 +241,7 @@ public class ApprovalActivity extends BaseActivity implements IApproval, Approva
                 @Override
                 public void run() {
                     int top = StatusBarUtil.getStatusBarHeight(ct);
-                    mRootLL.invalidate(0, 0, mRootLL.getMeasuredWidth(), mRootLL.getMeasuredHeight() +top);
+                    mRootLL.invalidate(0, 0, mRootLL.getMeasuredWidth(), mRootLL.getMeasuredHeight() + top);
                     mRootLL.setTranslationY(-top);
                 }
             });

+ 1 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/ApprovalAdapter.java

@@ -509,7 +509,7 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
                     holder.valuesRG.setOnCheckedChangeListener(mOnCheckedChangeListener);
                     break;
                 case 1:
-                    holder.valueEt.setInputType(InputType.TYPE_CLASS_NUMBER);
+                    holder.valueEt.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
                     holder.valueEt.addTextChangedListener(new TextChangListener(holder, position));
                     break;
                 default:

+ 2 - 2
app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/ApprovaPresenter.java

@@ -1529,14 +1529,14 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return CommonUtil.getAppBaseUrl(MyApplication.getInstance()) + "common/download.action?path=" + path + "&sessionId=" +
                 CommonUtil.getSharedPreferences(MyApplication.getInstance(), "sessionId") +
                 "&sessionUser=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username") +
-                "&master=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
+                "&master=" + master;
     }
 
     private String getImageUrl(int id) {
         return CommonUtil.getAppBaseUrl(MyApplication.getInstance()) + "common/downloadbyId.action?id=" + id + "&sessionId=" +
                 CommonUtil.getSharedPreferences(MyApplication.getInstance(), "sessionId") +
                 "&sessionUser=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username") +
-                "&master=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_master");
+                "&master=" + master;
     }
 
     private boolean canSubmit() {

+ 9 - 0
app_modular/appworks/src/main/AndroidManifest.xml

@@ -252,6 +252,15 @@
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
         </activity>
+
+        <activity android:name=".datainquiry.activity.ReportStatisticsBiActivity">
+            <intent-filter>
+                <action android:name="com.modular.company.ReportStatisticsBiActivity" />
+
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+        
         <activity android:name=".datainquiry.activity.DataInquiryActivity">
             <intent-filter>
                 <action android:name="com.modular.company.DataInquiryActivity" />

+ 32 - 3
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceCycleCountInfoActivity.java

@@ -13,6 +13,7 @@ import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.Button;
 import android.widget.ListView;
 import android.widget.PopupWindow;
 import android.widget.TextView;
@@ -59,6 +60,7 @@ public class DeviceCycleCountInfoActivity extends SupportToolBarActivity impleme
     private TextView centerTv;
     private TextView lineTv;
     private TextView kindTv;
+    private Button mObtainButton;
     private RecyclerView gridList;
     private SimpleRefreshLayout mSimpleRefreshLayout;
     private int page;
@@ -132,7 +134,13 @@ public class DeviceCycleCountInfoActivity extends SupportToolBarActivity impleme
         findViewById(R.id.actionqtyTv).setOnClickListener(this);
         findViewById(R.id.unactionqtyTv).setOnClickListener(this);
         findViewById(R.id.cycleBtn).setOnClickListener(this);
-        findViewById(R.id.deviceAttributeBtn).setOnClickListener(this);
+        mObtainButton = findViewById(R.id.deviceAttributeBtn);
+        if ("N_MALATA_ZZ".equals(CommonUtil.getMaster()) || "N_MALATA_ZZ_ZS".equals(CommonUtil.getMaster())) {
+            mObtainButton.setText("刷新");
+        } else {
+            mObtainButton.setText("获取明细");
+        }
+        mObtainButton.setOnClickListener(this);
         findViewById(R.id.lossDeviceBtn).setOnClickListener(this);
         mSimpleRefreshLayout.setEnabledPullUp(true);
         mSimpleRefreshLayout.setEnablePullDown(false);
@@ -468,9 +476,30 @@ public class DeviceCycleCountInfoActivity extends SupportToolBarActivity impleme
                 mPopupWindow.dismiss();
             }
         } else if (R.id.deviceAttributeBtn == id) {
-            deviceAttribute();
+            if ("N_MALATA_ZZ".equals(CommonUtil.getMaster()) || "N_MALATA_ZZ_ZS".equals(CommonUtil.getMaster())) {
+                loadData(true);
+                loadGridData(page = 1);
+            } else {
+                deviceAttribute();
+            }
         } else if (R.id.lossDeviceBtn == id) {
-            lossDevice();
+            new MaterialDialog.Builder(ct)
+                    .title(R.string.app_dialog_title)
+                    .content("确定盘亏?")
+                    .positiveText(MyApplication.getInstance().getString(R.string.app_dialog_ok))
+                    .autoDismiss(false)
+                    .callback(new MaterialDialog.ButtonCallback() {
+                        @Override
+                        public void onPositive(MaterialDialog dialog) {
+                            dialog.dismiss();
+                            lossDevice();
+                        }
+
+                        @Override
+                        public void onNegative(MaterialDialog dialog) {
+                            dialog.dismiss();
+                        }
+                    }).show();
         }
     }
 

+ 8 - 3
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java

@@ -1075,9 +1075,12 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                         }
                     }
                     LogUtil.d(str.toString());
-
-                    Toast.makeText(ct, "下拉项:" + datas.get(id - 1).getName() + "返回值:" + str.toString(), Toast.LENGTH_LONG).show();
-                    mAdapter.notifyDataSetChanged();
+                    try {
+                        mAdapter.getmListData().get(currentGroupId).getDatas().get(id - 1).setValue(str.toString());
+                        mAdapter.notifyDataSetChanged();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
 //                    mHandler.postDelayed(new Runnable() {
 //                        @Override
 //                        public void run() {
@@ -2019,6 +2022,7 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
         if (!"[]".equals(gridStore)) {
             params.put("gridStore", gridStore);
         }
+        params.put("id", formid);
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x21, null, null, "post");
@@ -2482,6 +2486,7 @@ public class DeviceDataFormAddActivity extends SupportToolBarActivity implements
                                 } else {
                                     intent.putExtra("isSingle", false);
                                 }
+                                currentGroupId = data.getGroupId();
 
                                 intent.putExtra("reid", R.style.OAThemeMeet);
                                 intent.putExtras(bundle);

+ 1 - 2
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/CommonDocDetailsActivity.java

@@ -291,11 +291,10 @@ public class CommonDocDetailsActivity extends BaseActivity {
             Map<String, Object> param_am = new HashMap<>();
             param_am.put("caller", mCaller);
             param_am.put("id", mkeyValue);
+            param_am.put("isprocess", 1);
             LinkedHashMap headers_am = new LinkedHashMap();
             headers_am.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(getApplicationContext(), "sessionId"));
             ViewUtil.httpSendRequest(getApplicationContext(), docmsg_url, param_am, mHandler, headers_am, COMMON_DOC_MSG_REQUEST, null, null, "post");
-
-
         } else {
             appflow_lv.setVisibility(View.GONE);
             hide_above_af.setVisibility(View.GONE);

+ 79 - 27
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/DataFormDetailActivity.java

@@ -53,6 +53,10 @@ import com.core.widget.view.model.SelectAimModel;
 import com.core.widget.view.selectcalendar.SelectCalendarActivity;
 import com.core.widget.view.selectcalendar.bean.Data;
 import com.lidroid.xutils.ViewUtils;
+import com.me.network.app.base.HttpCallback;
+import com.me.network.app.base.HttpParams;
+import com.me.network.app.http.HttpRequest;
+import com.me.network.app.http.Method;
 import com.modular.apputils.activity.SelectNetAcitivty;
 import com.modular.apputils.model.BillGroupModel;
 import com.modular.apputils.utils.PopupWindowHelper;
@@ -90,7 +94,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
     private boolean isLeave = true;
     private ListViewInScroller lv_datas;
     private TextView tv_item_add;
-    private Button click_btn;
+    private Button click_btn, change_quality_btn;
     private Button btn_update;
     private LinearLayout ll_item_add;
     private LinearLayout ll_top;
@@ -128,6 +132,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
 
     private int va_id;//订单ID
     private int formid;//主表ID
+    private String ve_code;//不合格项目单,特殊处理,特殊取值
     private final Comparator<Object> mComparator = new Comparator<Object>() {
         @Override
         public int compare(Object t0, Object t1) {
@@ -197,11 +202,16 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                 data.setName(items.getString("fd_caption"));
                                 data.setReadonly(items.getString("fd_readonly"));
                                 data.setAllowblank(items.getString("fd_allowblank"));
-                                data.setField(items.getString("fd_field"));
+                                String fd_field = items.getString("fd_field");
+                                String fd_value = items.getString("fd_value");
+                                data.setField(fd_field);
+                                if ("ve_code".equals(fd_field)) {
+                                    ve_code = fd_value;
+                                }
+                                data.setValue(fd_value);
                                 data.setDetno(items.getIntValue("fd_detno"));
                                 data.setMaxlength(String.valueOf(items.getIntValue("fd_maxlength")));
                                 data.setFdid(items.getIntValue("fd_id"));
-                                data.setValue(items.getString("fd_value"));
 
                                 String dg_findfunctionname = items.getString("dg_findfunctionname");
                                 if (!TextUtils.isEmpty(dg_findfunctionname)) {
@@ -220,18 +230,18 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                 }
                                 String type = items.getString("fd_type");
                                 if (!TextUtils.isEmpty(type) && type.equals("D")) {
-                                    data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
+//                                    data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
                                 }
-                                if (startDate.equals(items.getString("fd_field"))) {
-                                    if (StringUtil.isEmpty(data.getValue())) {
-                                        data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
-                                    }
+                                if (startDate.equals(fd_field)) {
+//                                    if (StringUtil.isEmpty(data.getValue())) {
+//                                        data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
+//                                    }
                                     startDate_v = data.getValue();
                                 }
-                                if (endDate.equals(items.getString("fd_field"))) {
-                                    if (StringUtil.isEmpty(data.getValue())) {
-                                        data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
-                                    }
+                                if (endDate.equals(fd_field)) {
+//                                    if (StringUtil.isEmpty(data.getValue())) {
+//                                        data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
+//                                    }
                                     endDate_v = data.getValue();
                                 }
 
@@ -311,23 +321,27 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                     for (int i = 0; i < grids.size(); i++) {
                                         JSONObject items = grids.getJSONObject(i);
                                         Data data = new Data();
-                                        if (detailkey_did.equals(items.getString("dg_field"))) {
+                                        String dg_field = items.getString("dg_field");
+                                        String dg_value = items.getString("dg_value");
+                                        if (detailkey_did.equals(dg_field)) {
                                             //关联id
-                                            if (StringUtil.isEmpty(items.getString("dg_value"))) {
+                                            if (StringUtil.isEmpty(dg_value)) {
                                                 key_did = String.valueOf(formid);
                                             } else {
-                                                key_did = items.getString("dg_value");
+                                                key_did = dg_value;
                                             }
-
+                                        }
+                                        if ("ve_code".equals(dg_field)) {
+                                            ve_code = dg_value;
                                         }
                                         data.setMaxlength(String.valueOf(items.getIntValue("dg_maxlength")));
                                         data.setName(items.getString("dg_caption"));
                                         data.setAllowblank(items.getString("dg_logictype"));
                                         data.setReadonly(items.getString("dg_editable"));
-                                        data.setField(items.getString("dg_field"));
+                                        data.setField(dg_field);
                                         data.setDetno(items.getIntValue("dg_sequence"));
                                         data.setFdid(items.getIntValue("gd_id"));
-                                        data.setValue(items.getString("dg_value"));
+                                        data.setValue(dg_value);
 
                                         String dg_findfunctionname = items.getString("dg_findfunctionname");
                                         if (!TextUtils.isEmpty(dg_findfunctionname)) {
@@ -344,15 +358,15 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                             data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
                                         }
 
-                                        if (d_startDate.equals(items.getString("dg_field"))) {
-                                            if (StringUtil.isEmpty(items.getString("dg_value"))) {
+                                        if (d_startDate.equals(dg_field)) {
+                                            if (StringUtil.isEmpty(dg_value)) {
                                                 data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
                                             }
                                             d_startDate_v = data.getValue();
                                         }
 
-                                        if (d_endDate.equals(items.getString("dg_field"))) {
-                                            if (StringUtil.isEmpty(items.getString("dg_value"))) {
+                                        if (d_endDate.equals(dg_field)) {
+                                            if (StringUtil.isEmpty(dg_value)) {
                                                 data.setValue(DateFormatUtil.getStrDate4Date(new Date(), "yyyy-MM-dd HH:mm:ss"));
                                             }
                                             d_endDate_v = data.getValue();
@@ -383,9 +397,9 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
 
                                             }
                                             //更新的时候一定要加上明细项id
-                                            if (detailkey_id.equals(items.getString("dg_field"))) {
+                                            if (detailkey_id.equals(dg_field)) {
                                                 //明细id
-                                                key_id = items.getString("dg_value");
+                                                key_id = dg_value;
                                                 values.put(items.getInteger("dg_group"), key_id);
                                                 if (!ListUtils.isEmpty(itemData)) {
                                                     // itemData.get(itemData.size() - 1).setDetailId(key_id);
@@ -532,15 +546,21 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                         if (formid == 0) {
                             if (btn_update != null) btn_update.setVisibility(View.GONE);
                             if (click_btn != null) click_btn.setVisibility(View.VISIBLE);
+                            change_quality_btn.setVisibility(View.GONE);
                         } else {
                             if (btn_update != null) btn_update.setVisibility(View.VISIBLE);
                             if (click_btn != null) click_btn.setVisibility(View.GONE);
+                            //针对高登电器的生产品质异常单的特殊处理,显示转单按钮
+                            if ("VerifyApplyDetail!FQC".equals(caller)) {
+                                change_quality_btn.setVisibility(View.VISIBLE);
+                            }
                         }
                         if (mDatas.size() == 0) {
                             click_btn.setVisibility(View.GONE);
                         }
                     } else {
                         click_btn.setVisibility(View.GONE);
+                        change_quality_btn.setVisibility(View.GONE);
                     }
 
 
@@ -770,6 +790,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
         lv_datas = findViewById(R.id.lv_datas);
         tv_item_add = findViewById(R.id.tv_item_add);
         click_btn = findViewById(R.id.click_btn);
+        change_quality_btn = findViewById(R.id.change_quality_btn);
         btn_update = findViewById(R.id.btn_update);
         ll_item_add = findViewById(R.id.ll_item_add);
         ll_top = findViewById(R.id.ll_top);
@@ -779,6 +800,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
         ll_item_add.setOnClickListener(this);
         click_btn.setOnClickListener(this);
         btn_update.setOnClickListener(this);
+        change_quality_btn.setOnClickListener(this);
     }
 
 
@@ -910,6 +932,31 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                 commit();
         } else if (v.getId() == R.id.btn_update) {
             updata();
+        } else if (v.getId() == R.id.change_quality_btn) {
+            progressDialog.show();
+            HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(ct),
+                    new HttpParams.Builder()
+                            .url("scm/qc/turnQualityYC.action")
+                            .method(Method.GET)
+                            .flag(0)
+                            .addParam("id", formid)
+                            .addParam("code", ve_code)
+                            .addParam("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"))
+                            .addParam("master", CommonUtil.getMaster())
+                            .addHeader("Cookie", CommonUtil.getErpCookie(ct))
+                            .build(), new HttpCallback() {
+                        @Override
+                        public void onSuccess(int flag, Object o) throws Exception {
+                            progressDialog.dismiss();
+                            toast("转单成功");
+                        }
+
+                        @Override
+                        public void onFail(int flag, String failStr) throws Exception {
+                            progressDialog.dismiss();
+                            toast(failStr);
+                        }
+                    });
         }
     }
 
@@ -1301,6 +1348,7 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                                     intent.putExtra("isSingle", false);
                                 }
 
+                                currentGroupId = data.getGroupId();
                                 intent.putExtra("reid", R.style.OAThemeMeet);
                                 intent.putExtras(bundle);
                                 intent.putExtra("key", "combdatas");
@@ -1622,14 +1670,18 @@ public class DataFormDetailActivity extends BaseActivity implements View.OnClick
                             if (i == (muliData.size() - 1)) {
                                 str.append(muliData.get(i).getName());
                             } else {
-                                str.append(muliData.get(i).getName() + ",");
+                                str.append(muliData.get(i).getName() + "#");
                             }
 
                         }
                     }
                     LogUtil.d(str.toString());
-//                    Toast.makeText(ct, "下拉项:" + datas.get(id - 1).getName() + "返回值:" + str.toString(), Toast.LENGTH_LONG).show();
-                    mAdapter.notifyDataSetChanged();
+                    try {
+                        mAdapter.getmListData().get(currentGroupId).getDatas().get(id - 1).setValue(str.toString());
+                        mAdapter.notifyDataSetChanged();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                 }
                 break;
             case 0x25:

+ 14 - 12
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/FormListSelectActivity.java

@@ -233,7 +233,7 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 } else if ("FeePlease!FYBX".equals(caller)) {
 
                     condition = "fp_pleasemancode='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
-                } else if("ProdInOut!Sale".equals(caller)){
+                } else if ("ProdInOut!Sale".equals(caller)) {
                     condition = "pi_invostatuscode='AUDITED' and pi_transport='自提' and pi_signstatus='未签名'";
                 }
                 if (condition != null) {
@@ -273,7 +273,7 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 } else if ("FeePlease!FYBX".equals(caller)) {
 
                     condition = "fp_pleasemancode='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
-                } else if("ProdInOut!Sale".equals(caller)){
+                } else if ("ProdInOut!Sale".equals(caller)) {
                     condition = "pi_invostatuscode='AUDITED' and pi_transport='自提' and pi_signstatus='未签名'";
                 }
                 if (condition != null) {
@@ -361,12 +361,12 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 if (itemMap.get(keyField) != null) {
                     keyId = Integer.valueOf(itemMap.get(keyField).toString());
                 }
-                if (itemMap.get(statusKey) == null ) {
+                if (itemMap.get(statusKey) == null) {
                     ToastMessage("单据状态为空!");
-                    status="已提交";//修复报销单bug
-                   // return;
-                }else {
-                    LogUtil.d("状态:" + itemMap.get(statusKey).toString()+"");
+                    status = "已提交";//修复报销单bug
+                    // return;
+                } else {
+                    LogUtil.d("状态:" + itemMap.get(statusKey).toString() + "");
                     status = itemMap.get(statusKey).toString();
                 }
                 Intent it_detail = null;
@@ -391,7 +391,7 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 it_detail.putExtra("caller", caller);
                 LogUtil.d("caller:" + caller + "  id:" + id);
 
-                if ("在录入".equals(status)) {
+                if ("在录入".equals(status) || "未审核".equals(status)) {
                     if ("FeePlease!FYBX".equals(caller)) {
                         startActivity(new Intent(mContext,
                                 ExpenseReimbursementActivity.class)
@@ -406,14 +406,14 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                                 .putExtra("id", keyId));
                     }
                 } else {
-                    if("ProdInOut!Sale".equals(caller)){
+                    if ("ProdInOut!Sale".equals(caller)) {
                         startActivity(new Intent(mContext,
                                 ZeTianDocDetailsActivity.class)
                                 .putExtra("caller", caller)
                                 .putExtra("title", getToolBarTitle().toString())
                                 .putExtra("keyValue", keyId)
                                 .putExtra("status", status));
-                    }else {
+                    } else {
                         startActivity(new Intent(mContext,
                                 CommonDocDetailsActivity.class)
                                 .putExtra("caller", caller)
@@ -450,7 +450,7 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 condition = "FP_PEOPLE2='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
             } else if ("FeePlease!FYBX".equals(caller)) {
                 condition = "fp_pleasemancode='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
-            } else if("ProdInOut!Sale".equals(caller)){
+            } else if ("ProdInOut!Sale".equals(caller)) {
                 condition = "pi_invostatuscode='AUDITED' and pi_transport='自提' and pi_signstatus='未签名'";
             }
             if (condition != null) {
@@ -750,7 +750,9 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 // if ((Integer)map.get("width")==0)continue;
                 if ((Integer) map.get("width") == 0)
                     continue;
-                tViews[1][j].setText(dmap.get(map.get("dataIndex")).toString());
+                if (tViews[1][j] != null && map.get("dataIndex") != null && dmap.get(map.get("dataIndex")) != null) {
+                    tViews[1][j].setText(dmap.get(map.get("dataIndex")).toString());
+                }
             }
             if (tViews[0][0] != null) {
                 // tViews[0][0].setText((position + 1) + "");

+ 10 - 7
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/form/TravelDataFormDetailActivity.java

@@ -1242,6 +1242,7 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                                 } else {
                                     intent.putExtra("isSingle", false);
                                 }
+                                currentGroupId = data.getGroupId();
 
                                 intent.putExtra("reid", R.style.OAThemeMeet);
                                 intent.putExtras(bundle);
@@ -1535,10 +1536,10 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                                     sa_custaddress = i + 1;
                                 }
                             }
-                            if (sa_custname>0){
+                            if (sa_custname > 0) {
                                 mAdapter.getmListData().get(currentGroupId).getDatas().get(sa_custname - 1).setValue(cu_name);
                             }
-                            if (sa_custaddress>0){
+                            if (sa_custaddress > 0) {
                                 mAdapter.getmListData().get(currentGroupId).getDatas().get(sa_custaddress - 1).setValue(cu_address);
                             }
                             mAdapter.notifyDataSetChanged();
@@ -1554,19 +1555,21 @@ public class TravelDataFormDetailActivity extends BaseActivity implements View.O
                     StringBuilder str = new StringBuilder("");
                     if (!ListUtils.isEmpty(muliData)) {
                         for (int i = 0; i < muliData.size(); i++) {
-                            LogUtil.d(muliData.get(i).getName());
                             if (i == (muliData.size() - 1)) {
                                 str.append(muliData.get(i).getName());
                             } else {
-                                str.append(muliData.get(i).getName() + ",");
+                                str.append(muliData.get(i).getName() + "#");
                             }
 
                         }
                     }
                     LogUtil.d(str.toString());
-
-                    Toast.makeText(ct, "下拉项:" + datas.get(id - 1).getName() + "返回值:" + str.toString(), Toast.LENGTH_LONG).show();
-                    mAdapter.notifyDataSetChanged();
+                    try {
+                        mAdapter.getmListData().get(currentGroupId).getDatas().get(id - 1).setValue(str.toString());
+                        mAdapter.notifyDataSetChanged();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
 //                    mHandler.postDelayed(new Runnable() {
 //                        @Override
 //                        public void run() {

+ 9 - 1
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/presenter/MissionPresenter.java

@@ -24,6 +24,7 @@ import com.core.app.AppConfig;
 import com.core.app.AppConstant;
 import com.core.app.MyApplication;
 import com.core.broadcast.MsgBroadcast;
+import com.core.dao.MessageDao;
 import com.core.model.MissionModel;
 import com.core.model.SelectBean;
 import com.core.net.http.http.OAHttpHelper;
@@ -41,6 +42,7 @@ import com.me.network.app.http.Method;
 import com.uas.applocation.UasLocationHelper;
 import com.uas.applocation.utils.LocationDistanceUtils;
 import com.uas.appworks.OA.erp.model.IMission;
+import com.uas.appworks.OA.erp.utils.AutoErpSigninUitl;
 import com.uas.appworks.R;
 import com.uas.appworks.dao.MissionDao;
 
@@ -598,6 +600,9 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
                             if (bundle != null) {
                                 MissionModel mission = bundle.getParcelable("data");
                                 if (mission != null) {
+                                    //数据库插入手动外勤记录
+                                    MessageDao.getInstance().instartSignin(getString(R.string.manual_mission_alert)
+                                            , AutoErpSigninUitl.getMissionSubTitle(mission));
                                     if (mission.getStatus() == 2) {//签退
                                         iMission.showToast("手动签退成功", R.color.load_error);
                                         endMission(mission, false);
@@ -606,7 +611,6 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
                                         loadMissionPlan();
                                     }
 
-
                                     String faceBase64 = bundle.getString("faceBase64", null);
                                     if (!TextUtils.isEmpty(faceBase64)) {
                                         iMission.faceUpload(mission, faceBase64);
@@ -822,4 +826,8 @@ public class MissionPresenter implements IMissionPresenter, OnHttpResultListener
             return false;
         }
     }
+
+    private String getString(int id) {
+        return MyApplication.getInstance().getString(id);
+    }
 }

+ 41 - 23
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/utils/AutoErpSigninUitl.java

@@ -115,9 +115,9 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
         if (isB2b) {
             signinWork(bundle, "");
         } else {
-            if(SwitchUtil.needMacForSign()){
+            if (SwitchUtil.needMacForSign()) {
                 validatorMac(model, SystemUtil.getMac(MyApplication.getInstance()));  // 关闭mac地址验证
-            }else{
+            } else {
                 CommonInterface.getInstance().getCodeByNet("CardLog", new CommonInterface.OnResultListener() {
                     @Override
                     public void result(boolean isOk, int result, String message) {
@@ -262,18 +262,18 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
             form.put("cl_address", address);
             form.put("cl_location", "android " + MyApplication.getInstance().getString(R.string.auto_work_signin_log));
 //            int comDistance = PreferenceUtils.getInt("distance", 0);
-            float distance =-1;
+            float distance = -1;
             List<WorkLocationModel> beanList = WorkLocationDao.getInstance().queryByEnCode();
             if (!ListUtils.isEmpty(beanList)) {
                 for (WorkLocationModel bean : beanList) {
-                    float dis=LocationDistanceUtils.distanceMeBack(bean.getLocation());
-                    if ( dis< bean.getValidrange()) {
-                        distance=dis;
+                    float dis = LocationDistanceUtils.distanceMeBack(bean.getLocation());
+                    if (dis < bean.getValidrange()) {
+                        distance = dis;
                         break;
                     }
                 }
             }
-            if (distance==-1) {
+            if (distance == -1) {
                 //判断是否有外勤
                 boolean isOutPlan = PreferenceUtils.getBoolean(AppConfig.HAVE_OUT_PLAN, false);
                 return false;
@@ -454,13 +454,13 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
                             LocalBroadcastManager.getInstance(MyApplication.getInstance()).sendBroadcast(intent);
                             PreferenceUtils.putBoolean("hasAutoSign", true);
                             int isWork = bundle == null ? -1 : bundle.getInt("isWork", -1);
-                            int rawId=R.raw.voice_work;
+                            int rawId = R.raw.voice_work;
                             switch (isWork) {
                                 case 0:
-                                    rawId=R.raw.voice_off;
+                                    rawId = R.raw.voice_off;
                                     break;
                                 case 1:
-                                    rawId=R.raw.voice_work;
+                                    rawId = R.raw.voice_work;
                                     break;
                             }
                             VoiceUtils.signVoice(rawId);
@@ -481,7 +481,7 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
                             if (bundle == null) return;
                             MissionModel mission = bundle.getParcelable("data");
                             if (mission == null) return;
-                            updataMissonDB(mission);
+                            updataMissonDB(mission, true);
                         }
                     }
                     break;
@@ -589,7 +589,7 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
      * @throws Exception
      */
 
-    private void updataMissonDB(MissionModel mission) throws Exception {
+    public void updataMissonDB(MissionModel mission, boolean isAuto) throws Exception {
         //更新数据库
         if (mission == null) return;//如果数据库没有,一般不会出现这样的情况
         if (StringUtil.isEmpty(mission.getRealTime()))
@@ -598,21 +598,23 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
         String title = "";
         String subTitle = "";
         if (mission.getStatus() == 2) {//签退
-            title = MyApplication.getInstance().getString(R.string.auto_mission_alert);
-            if (StringUtil.isEmpty(mission.getCompanyName()))
-                subTitle = MyApplication.getInstance().getString(R.string.uu_auto_signined_down);
-            else
-                subTitle = MyApplication.getInstance().getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_down);
+            if (isAuto) {
+                title = getString(R.string.auto_mission_alert);
+            } else {
+                title = getString(R.string.manual_mission_alert);
+            }
+            subTitle = getMissionSubTitle(mission);
 
             CommonInterface.getInstance().endMission(mission.getId(), false);
             loadIsMission(mission);
         } else {//签到
             if (mission.getStatus() < 1) {
-                title = getString(R.string.auto_mission_alert);
-                if (StringUtil.isEmpty(mission.getCompanyName()))
-                    subTitle = getString(R.string.uu_auto_signined_up);
-                else
-                    subTitle = getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_up);
+                if (isAuto) {
+                    title = getString(R.string.auto_mission_alert);
+                } else {
+                    title = getString(R.string.manual_mission_alert);
+                }
+                subTitle = getMissionSubTitle(mission);
                 mission.setStatus(1);//说明没有打过卡
                 boolean saveOk = MissionDao.getInstance().updata(mission);
                 if (saveOk)//XXX公司自动外勤签到成功
@@ -626,6 +628,22 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
             MessageDao.getInstance().instartSignin(title, subTitle);
     }
 
+    public static String getMissionSubTitle(MissionModel mission) {
+        String subTitle;
+        if (mission.getStatus() == 2) {
+            if (StringUtil.isEmpty(mission.getCompanyName()))
+                subTitle = MyApplication.getInstance().getString(R.string.uu_auto_signined_down);
+            else
+                subTitle = MyApplication.getInstance().getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_down);
+        } else {
+            if (StringUtil.isEmpty(mission.getCompanyName()))
+                subTitle = getString(R.string.uu_auto_signined_up);
+            else
+                subTitle = getString(R.string.visit) + mission.getCompanyName() + getString(R.string.success_signin_up);
+        }
+        return subTitle;
+    }
+
     /**
      * 外勤签退后判断时候还有外勤计划,如果没有,判断是否符合返回公司  返回提示请返回公司签到
      *
@@ -930,7 +948,7 @@ public class AutoErpSigninUitl implements OnHttpResultListener {
         return (int) (time2 / 1000);
     }
 
-    private String getString(int id) {
+    private static String getString(int id) {
         return MyApplication.getInstance().getString(id);
     }
 

+ 7 - 2
app_modular/appworks/src/main/java/com/uas/appworks/crm3_0/activity/ContactDynamicAddActivity.java

@@ -1274,6 +1274,7 @@ public class ContactDynamicAddActivity extends BaseActivity implements View.OnCl
                                 } else {
                                     intent.putExtra("isSingle", false);
                                 }
+                                currentGroupId = data.getGroupId();
 
                                 intent.putExtra("reid", R.style.OAThemeMeet);
                                 intent.putExtras(bundle);
@@ -1602,8 +1603,12 @@ public class ContactDynamicAddActivity extends BaseActivity implements View.OnCl
                         }
                     }
                     LogUtil.d(str.toString());
-//                    Toast.makeText(ct, "下拉项:" + datas.get(id - 1).getName() + "返回值:" + str.toString(), Toast.LENGTH_LONG).show();
-                    mAdapter.notifyDataSetChanged();
+                    try {
+                        mAdapter.getmListData().get(currentGroupId).getDatas().get(id - 1).setValue(str.toString());
+                        mAdapter.notifyDataSetChanged();
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
                 }
                 break;
             case 0x25:

+ 1 - 1
app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/activity/PDFDownloadActivity.java

@@ -203,7 +203,6 @@ public class PDFDownloadActivity extends BaseActivity implements View.OnClickLis
 
             }
         }
-        Log.d("pdfurl", replace == null ? "" : replace);
 
         mStateTextView = (TextView) findViewById(R.id.pdf_download_state_tv);
         mRemainTextView = (TextView) findViewById(R.id.pdf_download_remain_tv);
@@ -281,6 +280,7 @@ public class PDFDownloadActivity extends BaseActivity implements View.OnClickLis
         } catch (IOException e) {
             e.printStackTrace();
         }
+        Log.d("pdfurl", downloadUrl == null ? "" : downloadUrl);
         mDownloader = new ProgressDownloader(downloadUrl, file, PDFDownloadActivity.this);
         mDownloader.download(0L);
     }

+ 66 - 9
app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/activity/ReportQuerySearchActivity.java

@@ -18,18 +18,24 @@ import android.widget.ListView;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
 import com.common.data.StringUtil;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
 import com.core.widget.CircleTextView;
 import com.core.widget.ClearEditText;
 import com.core.widget.EmptyLayout;
+import com.core.widget.view.Activity.CommonWebviewActivity;
 import com.core.xmpp.utils.audio.voicerecognition.JsonParser;
 import com.iflytek.cloud.RecognizerResult;
 import com.iflytek.cloud.SpeechConstant;
 import com.iflytek.cloud.SpeechError;
 import com.iflytek.cloud.ui.RecognizerDialog;
 import com.iflytek.cloud.ui.RecognizerDialogListener;
+import com.me.network.app.base.HttpCallback;
+import com.me.network.app.base.HttpParams;
+import com.me.network.app.http.HttpRequest;
+import com.me.network.app.http.Method;
 import com.uas.appworks.R;
 import com.uas.appworks.datainquiry.Constants;
 import com.uas.appworks.datainquiry.bean.DataInquiryGirdItemBean;
@@ -53,8 +59,7 @@ public class ReportQuerySearchActivity extends BaseActivity {
     private ListView mResultListView;
     private ReportQuerySearchAdapter mReportQuerySearchAdapter;
     private List<ReportQuerySearchBean> mQuerySearchBeanList;
-    private String mCurrentMaster;
-    private String mCurrentUser;
+    private String mCurrentMaster, mCurrentUser, mWhichPage;
     private EmptyLayout mEmptyLayout;
 
     private int[] mColors = new int[]{R.color.data_inquiry_gird_menu_color1, R.color.data_inquiry_gird_menu_color2
@@ -65,7 +70,16 @@ public class ReportQuerySearchActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_report_query_search);
-        setTitle("报表统计");
+
+        Intent intent = getIntent();
+        if (intent != null) {
+            mWhichPage = intent.getStringExtra("whichPage");
+        }
+        if ("BI".equals(mWhichPage)) {
+            setTitle("BI服务");
+        } else {
+            setTitle("报表统计");
+        }
 
         initViews();
         initEvents();
@@ -123,7 +137,9 @@ public class ReportQuerySearchActivity extends BaseActivity {
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                 DataInquiryGirdItemBean dataInquiryGirdItemBean = new DataInquiryGirdItemBean();
                 dataInquiryGirdItemBean.setColor(mReportQuerySearchAdapter.getObjects().get(position).getColor());
-                dataInquiryGirdItemBean.setIconText(mReportQuerySearchAdapter.getObjects().get(position).getListBean().getTitle());
+                GridMenuReportStatisticsBean.ListBean selectBean = mReportQuerySearchAdapter.getObjects().get(position).getListBean();
+
+                dataInquiryGirdItemBean.setIconText(selectBean.getTitle());
 
                 String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(ReportQuerySearchActivity.this,
                         mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
@@ -133,7 +149,7 @@ public class ReportQuerySearchActivity extends BaseActivity {
                         recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
 
                         for (int i = 0; i < recentBrowse.size(); i++) {
-                            if (mReportQuerySearchAdapter.getObjects().get(position).getListBean().getTitle() != null && mQuerySearchBeanList.get(position).getListBean().getTitle().equals(recentBrowse.get(i).getIconText())) {
+                            if (selectBean.getTitle() != null && mQuerySearchBeanList.get(position).getListBean().getTitle().equals(recentBrowse.get(i).getIconText())) {
                                 recentBrowse.remove(i);
                             }
                         }
@@ -149,10 +165,14 @@ public class ReportQuerySearchActivity extends BaseActivity {
                         , mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE
                         , recentJson);
 
-                Intent intent = new Intent();
-                intent.setClass(ReportQuerySearchActivity.this, ReportQueryCriteriaActivity.class);
-                intent.putExtra("reportinfo", mReportQuerySearchAdapter.getObjects().get(position).getListBean());
-                startActivity(intent);
+                if ("BI".equals(mWhichPage)) {
+                    getBiUrl(selectBean.getCaller(), selectBean.getTitle());
+                } else {
+                    Intent intent = new Intent();
+                    intent.setClass(ReportQuerySearchActivity.this, ReportQueryCriteriaActivity.class);
+                    intent.putExtra("reportinfo", selectBean);
+                    startActivity(intent);
+                }
             }
         });
 
@@ -181,6 +201,43 @@ public class ReportQuerySearchActivity extends BaseActivity {
         });
     }
 
+    /**
+     * 获取UI报表网页URL
+     *
+     * @param caller
+     * @param title
+     */
+    private void getBiUrl(String caller, final String title) {
+        progressDialog.show();
+        HttpRequest.getInstance().sendRequest(CommonUtil.getAppBaseUrl(ct),
+                new HttpParams.Builder()
+                        .url("common/bi/getToken.action")
+                        .method(Method.GET)
+                        .addParam("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"))
+                        .addParam("caller", caller)
+                        .addParam("master", CommonUtil.getMaster())
+                        .addHeader("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"))
+                        .build(), new HttpCallback() {
+                    @Override
+                    public void onSuccess(int flag, Object o) throws Exception {
+                        progressDialog.dismiss();
+                        String data = o.toString();
+                        String url = JSON.parseObject(data).getString("data");
+                        if (!StringUtil.isEmpty(url)) {
+                            startActivity(new Intent(mContext, CommonWebviewActivity.class)
+                                    .putExtra("title", title)
+                                    .putExtra("scan_url", url));
+                        }
+                    }
+
+                    @Override
+                    public void onFail(int flag, String failStr) throws Exception {
+                        progressDialog.dismiss();
+                        toast(failStr);
+                    }
+                });
+    }
+
     private void initDatas() {
         String reportQueryMenuCache = CommonUtil.getSharedPreferences(this,
                 mCurrentUser + mCurrentMaster + Constants.CONSTANT.REPORT_QUERY_MENU_CACHE);

+ 470 - 0
app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/activity/ReportStatisticsBiActivity.java

@@ -0,0 +1,470 @@
+package com.uas.appworks.datainquiry.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AbsListView;
+import android.widget.AdapterView;
+import android.widget.LinearLayout;
+import android.widget.ListAdapter;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
+import com.common.data.StringUtil;
+import com.core.app.Constants;
+import com.core.base.BaseActivity;
+import com.core.net.http.ViewUtil;
+import com.core.utils.CommonUtil;
+import com.core.widget.DrawableCenterTextView;
+import com.core.widget.EmptyLayout;
+import com.core.widget.view.Activity.CommonWebviewActivity;
+import com.core.widget.view.MyGridView;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.uas.appworks.R;
+import com.uas.appworks.datainquiry.adapter.DataInquiryMenuGridAdapter;
+import com.uas.appworks.datainquiry.adapter.ReportStatisticsMenuListAdapter;
+import com.uas.appworks.datainquiry.bean.DataInquiryGirdItemBean;
+import com.uas.appworks.datainquiry.bean.GridMenuReportStatisticsBean;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by RaoMeng on 2017/8/3.
+ * 报表统计业务菜单页面
+ */
+public class ReportStatisticsBiActivity extends BaseActivity {
+    private final int GET_MENU_DATA = 0x16;
+    public static final int GET_CLICK_URL = 0x17;
+    private PullToRefreshListView mMenuListView;
+    private List<GridMenuReportStatisticsBean> mGridMenuReportStatisticsBeans;
+    private ReportStatisticsMenuListAdapter mReportStatisticsMenuListAdapter;
+    private DataInquiryMenuGridAdapter mDataInquiryMenuGridAdapter;
+    private List<DataInquiryGirdItemBean> mDataInquiryGirdItemBeans;
+    private LinearLayout mRecentBrowseLl;
+    private View mReportStatisticsModulView;
+    private TextView mReportStatisticsModulTitleTv;
+    private MyGridView mReportStatisticsModulGv;
+    private DrawableCenterTextView mSearchTextView;
+    private String mCurrentMaster;
+    private String mCurrentUser;
+    private EmptyLayout mEmptyLayout;
+    boolean flag = false;
+    private int[] mColors = new int[]{R.color.data_inquiry_gird_menu_color1, R.color.data_inquiry_gird_menu_color2
+            , R.color.data_inquiry_gird_menu_color3, R.color.data_inquiry_gird_menu_color4, R.color.data_inquiry_gird_menu_color5,
+            R.color.data_inquiry_gird_menu_color6};
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_data_inquiry);
+        setTitle("BI服务");
+
+        initViews();
+        initEvents();
+        initDatas();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        refreshRecentHeader();
+    }
+
+    private void initDatas() {
+        String reportQueryMenuCache = CommonUtil.getSharedPreferences(this,
+                mCurrentUser + mCurrentMaster + com.uas.appworks.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_CACHE);
+        if (reportQueryMenuCache != null) {
+            try {
+                JSONObject resultObject = new JSONObject(reportQueryMenuCache);
+                JSONArray dataArray = resultObject.optJSONArray("data");
+                if (dataArray == null || dataArray.length() == 0) {
+                    if (!CommonUtil.isNetWorkConnected(this)) {
+                        ToastMessage(getString(R.string.networks_out));
+                    } else {
+                        progressDialog.show();
+                        getMenuData();
+                    }
+                } else {
+                    analysisMenuData(reportQueryMenuCache);
+                }
+            } catch (Exception e) {
+
+            }
+        } else {
+            if (!CommonUtil.isNetWorkConnected(this)) {
+                ToastMessage(getString(R.string.networks_out));
+            } else {
+                progressDialog.show();
+                getMenuData();
+            }
+        }
+    }
+
+    private void initEvents() {
+        mMenuListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                if (!CommonUtil.isNetWorkConnected(ReportStatisticsBiActivity.this)) {
+                    ToastMessage(getString(R.string.networks_out));
+                    if (mMenuListView.isRefreshing()) {
+                        mMenuListView.postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                mMenuListView.onRefreshComplete();
+                            }
+                        }, 500);
+                    }
+                } else {
+                    flag = true;
+                    getMenuData();
+                }
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+
+            }
+        });
+
+        mReportStatisticsModulGv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                DataInquiryGirdItemBean dataInquiryGirdItemBean = mDataInquiryMenuGridAdapter.getObjects().get(position);
+
+                String iconText = dataInquiryGirdItemBean.getIconText();
+                String dataInquiryMenuRecentCache = CommonUtil.getSharedPreferences(ReportStatisticsBiActivity.this,
+                        mCurrentUser + mCurrentMaster + com.uas.appworks.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
+                List<DataInquiryGirdItemBean> recentBrowse = new ArrayList<DataInquiryGirdItemBean>();
+                if (!TextUtils.isEmpty(dataInquiryMenuRecentCache)) {
+                    try {
+                        recentBrowse = JSON.parseArray(dataInquiryMenuRecentCache, DataInquiryGirdItemBean.class);
+
+                        for (int i = 0; i < recentBrowse.size(); i++) {
+                            if (iconText != null && iconText.equals(recentBrowse.get(i).getIconText())) {
+                                recentBrowse.remove(i);
+                            }
+                        }
+                    } catch (Exception e) {
+
+                    }
+                }
+
+                recentBrowse.add(0, dataInquiryGirdItemBean);
+
+                String recentJson = JSON.toJSON(recentBrowse).toString();
+                CommonUtil.setSharedPreferences(ReportStatisticsBiActivity.this
+                        , mCurrentUser + mCurrentMaster + com.uas.appworks.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE
+                        , recentJson);
+
+//                mDataInquiryGirdItemBeans.clear();
+//                mDataInquiryGirdItemBeans.addAll(recentBrowse);
+//                mDataInquiryMenuGridAdapter.notifyDataSetChanged();
+
+                for (int i = 0; i < mGridMenuReportStatisticsBeans.size(); i++) {
+                    List<GridMenuReportStatisticsBean.ListBean> reportlist = mGridMenuReportStatisticsBeans.get(i).getList();
+                    for (int j = 0; j < reportlist.size(); j++) {
+                        if (dataInquiryGirdItemBean.getIconText().equals(reportlist.get(j).getTitle())) {
+                            String caller = reportlist.get(j).getCaller();
+                            clickItem(caller);
+//                            Intent intent = new Intent();
+//                            intent.setClass(ReportStatisticsBiActivity.this, ReportQueryCriteriaActivity.class);
+//                            intent.putExtra("reportinfo", reportlist.get(j));
+//                             ReportStatisticsActivity.this.startActivity(intent);
+                            return;
+                        }
+                    }
+                }
+            }
+        });
+
+        mSearchTextView.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent intent = new Intent();
+                intent.setClass(ReportStatisticsBiActivity.this, ReportQuerySearchActivity.class);
+                intent.putExtra("whichPage", "BI");
+                startActivity(intent);
+            }
+        });
+    }
+
+    private void initViews() {
+        mMenuListView = (PullToRefreshListView) findViewById(R.id.data_inquiry_menu_lv);
+        mSearchTextView = (DrawableCenterTextView) findViewById(R.id.data_inquiry_menu_search_tv);
+
+        mGridMenuReportStatisticsBeans = new ArrayList<>();
+        mReportStatisticsMenuListAdapter = new ReportStatisticsMenuListAdapter(this, mGridMenuReportStatisticsBeans);
+        mMenuListView.setAdapter(mReportStatisticsMenuListAdapter);
+        mReportStatisticsMenuListAdapter.setmHandler(mHandler);
+        mReportStatisticsMenuListAdapter.setBiServer(true);
+
+        mRecentBrowseLl = (LinearLayout) View.inflate(this, R.layout.item_list_data_inquiry_menu, null);
+        mReportStatisticsModulView = (View) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_view);
+        mReportStatisticsModulTitleTv = (TextView) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_title_tv);
+        mReportStatisticsModulGv = (MyGridView) mRecentBrowseLl.findViewById(R.id.data_inquiry_modul_gv);
+
+        mDataInquiryGirdItemBeans = new ArrayList<>();
+        mDataInquiryMenuGridAdapter = new DataInquiryMenuGridAdapter(this, mDataInquiryGirdItemBeans);
+        mReportStatisticsModulGv.setAdapter(mDataInquiryMenuGridAdapter);
+
+        mReportStatisticsModulView.setBackgroundColor(getResources().getColor(R.color.black));
+        mReportStatisticsModulTitleTv.setText("最近浏览");
+
+        mEmptyLayout = new EmptyLayout(this, mMenuListView.getRefreshableView());
+        mEmptyLayout.setShowLoadingButton(false);
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setEmptyMessage("数据为空");
+
+        AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT);
+        mRecentBrowseLl.setLayoutParams(layoutParams);
+
+        mCurrentMaster = CommonUtil.getSharedPreferences(this, "erp_master");
+        mCurrentUser = CommonUtil.getSharedPreferences(this, "erp_username");
+    }
+
+    private void refreshRecentHeader() {
+        getRecentBrowse();
+        ListView refreshableView = mMenuListView.getRefreshableView();
+        int headerViewsCount = refreshableView.getHeaderViewsCount();
+        Log.d("headerViewsCount", headerViewsCount + "");
+        if (mDataInquiryGirdItemBeans.size() == 0) {
+            if (headerViewsCount == 2) {
+                refreshableView.removeHeaderView(mRecentBrowseLl);
+            }
+        } else {
+            if (headerViewsCount == 1) {
+                refreshableView.addHeaderView(mRecentBrowseLl);
+            }
+        }
+        flag = false;
+    }
+
+    private synchronized void getRecentBrowse() {
+        try {
+            String reportRecentMenuRecentCache = CommonUtil.getSharedPreferences(this,
+                    mCurrentUser + mCurrentMaster + com.uas.appworks.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE);
+            if (!TextUtils.isEmpty(reportRecentMenuRecentCache)) {
+                List<GridMenuReportStatisticsBean> reportStatisticsBeans = mReportStatisticsMenuListAdapter.getObjects();
+                mDataInquiryGirdItemBeans.clear();
+
+                List<DataInquiryGirdItemBean> recentBrowse = JSON.parseArray(reportRecentMenuRecentCache, DataInquiryGirdItemBean.class);
+                List<DataInquiryGirdItemBean> resultBrowse = new ArrayList<>();
+                for (int i = 0; i < recentBrowse.size(); i++) {
+                    DataInquiryGirdItemBean inquiryGirdItemBean = recentBrowse.get(i);
+                    boolean isExist = false;
+                    if (reportStatisticsBeans != null) {
+                        loop:
+                        for (int j = 0; j < reportStatisticsBeans.size(); j++) {
+                            List<GridMenuReportStatisticsBean.ListBean> reportList = reportStatisticsBeans.get(j).getList();
+                            if (reportList != null) {
+                                for (int k = 0; k < reportList.size(); k++) {
+                                    if (inquiryGirdItemBean.getIconText().equals(reportList.get(k).getTitle())) {
+                                        isExist = true;
+                                        inquiryGirdItemBean.setColor(mColors[(j) % mColors.length]);
+                                        break loop;
+                                    }
+                                }
+                            }
+                        }
+
+                        if (i < 9 && isExist) {
+                            mDataInquiryGirdItemBeans.add(inquiryGirdItemBean);
+                            resultBrowse.add(recentBrowse.get(i));
+                        }
+                    }
+
+                }
+
+                String recentJson = JSON.toJSON(resultBrowse).toString();
+                CommonUtil.setSharedPreferences(ReportStatisticsBiActivity.this
+                        , mCurrentUser + mCurrentMaster + com.uas.appworks.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_RECENT_CACHE
+                        , recentJson);
+
+                mDataInquiryMenuGridAdapter.notifyDataSetChanged();
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    private void getMenuData() {
+//        String url = CommonUtil.getAppBaseUrl(this) + "mobile/qry/getReport.action";
+//        Map<String, Object> params = new HashMap<>();
+//        params.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+//        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+//        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+//        ViewUtil.httpSendRequest(this, url, params, mHandler, headers, GET_MENU_DATA, null, null, "get");
+
+        //common/getSearchByTree.action
+        String url = CommonUtil.getAppBaseUrl(this) + "common/getSearchByTree.action";
+        Map<String, Object> params = new HashMap<>();
+        params.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(this, url, params, mHandler, headers, GET_MENU_DATA, null, null, "get");
+
+    }
+
+    public void clickItem(String caller) {
+        progressDialog.show();
+        String url = CommonUtil.getAppBaseUrl(this) + "common/bi/getToken.action";
+        Map<String, Object> params = new HashMap<>();
+        params.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+        params.put("caller", caller);
+        params.put("master", CommonUtil.getMaster());
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(this, url, params, mHandler, headers, GET_CLICK_URL, null, null, "get");
+    }
+
+
+    private Handler mHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case GET_CLICK_URL:
+                    progressDialog.dismiss();
+                    String data = msg.getData().getString("result");
+                    LogUtil.d("arison", "data:" + data);
+                    String url = JSON.parseObject(data).getString("data");
+                    if (!StringUtil.isEmpty(url)) {
+                        startActivity(new Intent(mContext, CommonWebviewActivity.class)
+                                .putExtra("title", msg.getData().getString("mTitle"))
+                                .putExtra("scan_url", url));
+                    }
+                    break;
+                case GET_MENU_DATA:
+                    if (progressDialog.isShowing()) {
+                        progressDialog.dismiss();
+                    }
+                    if (mMenuListView.isRefreshing()) {
+                        mMenuListView.onRefreshComplete();
+                    }
+                    String result = msg.getData().getString("result");
+                    if (result != null) {
+                        CommonUtil.setSharedPreferences(ReportStatisticsBiActivity.this,
+                                mCurrentUser + mCurrentMaster + com.uas.appworks.datainquiry.Constants.CONSTANT.REPORT_QUERY_MENU_CACHE,
+                                result);
+                    }
+                    mGridMenuReportStatisticsBeans.clear();
+                    analysisMenuData(result);
+                    break;
+                case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    if (progressDialog.isShowing())
+                        progressDialog.dismiss();
+                    if (mMenuListView.isRefreshing())
+                        mMenuListView.onRefreshComplete();
+                    ToastMessage(msg.getData().getString("result"));
+                    mEmptyLayout.setErrorMessage(msg.getData().getString("result"));
+                    mEmptyLayout.showError();
+                    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();
+
+                    if (mGridMenuReportStatisticsBeans.size() == 0) {
+                        mSearchTextView.setVisibility(View.GONE);
+                        mEmptyLayout.showEmpty();
+                    } else {
+                        mSearchTextView.setVisibility(View.VISIBLE);
+                    }
+
+                    if (flag) {
+                        refreshRecentHeader();
+                    }
+                } else {
+                    mEmptyLayout.showEmpty();
+                    mSearchTextView.setVisibility(View.GONE);
+                }
+            } catch (JSONException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    public String optStringNotNull(JSONObject json, String key) {
+        if (json.isNull(key)) {
+            return "";
+        } else {
+            return json.optString(key, "");
+        }
+    }
+
+
+    public static void setListViewHeightBasedOnChildren(ListView listView) {
+        ListAdapter listAdapter = listView.getAdapter();
+        if (listAdapter == null) {
+            return;
+        }
+        int totalHeight = 0;
+        for (int i = 0; i < listAdapter.getCount(); i++) {
+            View listItem = listAdapter.getView(i, null, listView);
+            listItem.measure(0, 0);
+            totalHeight += listItem.getMeasuredHeight();
+        }
+
+        ViewGroup.LayoutParams params = listView.getLayoutParams();
+
+        params.height = totalHeight
+                + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
+        listView.setLayoutParams(params);
+    }
+}

+ 41 - 1
app_modular/appworks/src/main/java/com/uas/appworks/datainquiry/adapter/ReportStatisticsMenuListAdapter.java

@@ -2,6 +2,8 @@ package com.uas.appworks.datainquiry.adapter;
 
 import android.content.Context;
 import android.content.Intent;
+import android.os.Bundle;
+import android.os.Handler;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -11,18 +13,23 @@ import android.widget.BaseAdapter;
 import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
+import com.core.net.http.ViewUtil;
 import com.core.utils.CommonUtil;
 import com.core.widget.view.MyGridView;
 import com.uas.appworks.R;
 import com.uas.appworks.datainquiry.Constants;
 import com.uas.appworks.datainquiry.activity.ReportQueryCriteriaActivity;
+import com.uas.appworks.datainquiry.activity.ReportStatisticsBiActivity;
 import com.uas.appworks.datainquiry.activity.ReportStatisticsMoreMenuActivity;
 import com.uas.appworks.datainquiry.bean.DataInquiryGirdItemBean;
 import com.uas.appworks.datainquiry.bean.GridMenuReportStatisticsBean;
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by RaoMeng on 2017/8/14.
@@ -149,12 +156,45 @@ public class ReportStatisticsMenuListAdapter extends BaseAdapter {
                     intent = new Intent();
                     intent.setClass(context, ReportQueryCriteriaActivity.class);
                     intent.putExtra("reportinfo", listBeans.get(position));
-                    context.startActivity(intent);
+
+                    if (isBiServer) {
+                        String caller = listBeans.get(position).getCaller();
+                        String title = listBeans.get(position).getTitle();
+                        clickItem(caller, title);
+                    } else {
+                        context.startActivity(intent);
+                    }
+
                 }
             }
         });
     }
 
+    private Handler mHandler;
+    private Boolean isBiServer = false;
+
+
+    public void setBiServer(Boolean biServer) {
+        isBiServer = biServer;
+    }
+
+    public void setmHandler(Handler mHandler) {
+        this.mHandler = mHandler;
+    }
+
+    public void clickItem(String caller, String title) {
+        String url = CommonUtil.getAppBaseUrl(context) + "common/bi/getToken.action";
+        Map<String, Object> params = new HashMap<>();
+        params.put("emcode", CommonUtil.getSharedPreferences(context, "erp_username"));
+        params.put("caller", caller);
+        params.put("master", CommonUtil.getMaster());
+        Bundle bundle = new Bundle();
+        bundle.putString("mTitle", title);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(context, "sessionId"));
+        ViewUtil.httpSendRequest(context, url, params, mHandler, headers, ReportStatisticsBiActivity.GET_CLICK_URL, null, bundle, "get");
+    }
+
     protected class ViewHolder {
         private View dataInquiryModulView;
         private TextView dataInquiryModulTitleTv;

+ 1 - 0
app_modular/appworks/src/main/res/values-en/strings.xml

@@ -212,4 +212,5 @@
     <string name="no_fields_to_update">没有可更新的字段</string>
     <string name="str_device_info">设备信息</string>
     <string name="real_time_form">实时看板</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>

+ 1 - 0
app_modular/appworks/src/main/res/values-zh-rCN/strings.xml

@@ -211,4 +211,5 @@
     <string name="no_fields_to_update">没有可更新的字段</string>
     <string name="str_device_info">设备信息</string>
     <string name="real_time_form">实时看板</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>

+ 1 - 0
app_modular/appworks/src/main/res/values-zh-rTW/strings.xml

@@ -211,4 +211,5 @@
     <string name="no_fields_to_update">没有可更新的字段</string>
     <string name="str_device_info">设备信息</string>
     <string name="real_time_form">实时看板</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>

+ 4 - 0
app_modular/appworks/src/main/res/values/strings.xml

@@ -1,5 +1,8 @@
 <resources>
     <string name="app_name">appme</string>
+    <!---->
+    <string name="work_menu_bi">BI服务</string>
+
     <string name="str_yesterday">昨日</string>
     <string name="str_today">今日</string>
     <string name="str_last_week">上周</string>
@@ -259,4 +262,5 @@
     <string name="no_fields_to_update">没有可更新的字段</string>
     <string name="str_device_info">设备信息</string>
     <string name="real_time_form">实时看板</string>
+    <string name="manual_mission_alert">手动外勤提醒</string>
 </resources>