Эх сурвалжийг харах

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

# Conflicts:
#	WeiChat/version.properties
raomeng 8 жил өмнө
parent
commit
f62b5d3f5f
51 өөрчлөгдсөн 1427 нэмэгдсэн , 276 устгасан
  1. 2 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  2. 5 5
      WeiChat/version.properties
  3. 9 0
      app_core/common/src/main/assets/work_menu.json
  4. 4 4
      app_core/common/src/main/java/com/common/LogUtil.java
  5. 17 11
      app_core/common/src/main/java/com/core/model/Approval.java
  6. 20 4
      app_core/common/src/main/java/com/core/utils/IntentUtils.java
  7. 0 2
      app_core/common/src/main/res/layout/activity_simple_pinned_list.xml
  8. 31 9
      app_core/common/src/main/res/layout/item_approval_rv.xml
  9. 1 1
      app_modular/appbooking/build.gradle
  10. 32 5
      app_modular/appbooking/src/main/java/com/modular/booking/activity/services/DishSelectActivity.java
  11. 63 3
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemDishCategoryListAdapter.java
  12. 38 4
      app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemDishPinnedListAdapter.java
  13. BIN
      app_modular/appbooking/src/main/res/drawable-hdpi/icon_shop_car.png
  14. BIN
      app_modular/appbooking/src/main/res/drawable-hdpi/icon_shop_empty.png
  15. BIN
      app_modular/appbooking/src/main/res/drawable-xhdpi/icon_shop_car.png
  16. BIN
      app_modular/appbooking/src/main/res/drawable-xhdpi/icon_shop_empty.png
  17. BIN
      app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_shop_car.png
  18. BIN
      app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_shop_empty.png
  19. 18 0
      app_modular/appbooking/src/main/res/drawable/shape_btn_blue_gradient.xml
  20. 3 7
      app_modular/appbooking/src/main/res/layout/activity_book_service_search.xml
  21. 78 2
      app_modular/appbooking/src/main/res/layout/activity_dish_select.xml
  22. 1 0
      app_modular/appbooking/src/main/res/layout/include_add_top.xml
  23. 7 1
      app_modular/appbooking/src/main/res/layout/item_dish_catagory_list.xml
  24. 1 10
      app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/CompanyContactsActivity.java
  25. 6 2
      app_modular/appme/src/main/java/com/uas/appme/other/activity/SelectAreaActivity.java
  26. 1 1
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java
  27. 7 6
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/CheckWagesActivity.java
  28. 3 4
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/FindWagePWActivity.java
  29. 3 3
      app_modular/appme/src/main/java/com/uas/appme/settings/activity/WagesDetailsActivity.java
  30. 7 0
      app_modular/appmessages/src/main/AndroidManifest.xml
  31. 1 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ApprovalActivity.java
  32. 522 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ApprovalListActivity.java
  33. 33 2
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/MessageWebActivity.java
  34. 0 52
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ProcessMsgActivity.java
  35. 50 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/ApprovalAdapter.java
  36. 135 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/model/ApprovalList.java
  37. 14 43
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/ApprovaPresenter.java
  38. 2 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java
  39. 1 0
      app_modular/appmessages/src/main/res/layout/activity_message_web.xml
  40. 85 6
      app_modular/apputils/src/main/java/com/modular/apputils/activity/BaseNetActivity.java
  41. 5 3
      app_modular/apputils/src/main/java/com/modular/apputils/activity/SelectNetAcitivty.java
  42. 1 2
      app_modular/apputils/src/main/java/com/modular/apputils/activity/SimpleWebActivity.java
  43. 11 0
      app_modular/apputils/src/main/java/com/modular/apputils/network/Parameter.java
  44. 3 2
      app_modular/apputils/src/main/java/com/modular/apputils/utils/SwitchUtil.java
  45. 42 1
      app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java
  46. 17 10
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java
  47. 44 26
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java
  48. 84 39
      app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/BusinessTravel.java
  49. 9 1
      app_modular/appworks/src/main/java/com/uas/appworks/activity/DeviceQueryActivity.java
  50. 4 0
      app_third/recyclerlibrary/src/main/java/com/module/recyclerlibrary/ui/refresh/BaseRefreshLayout.java
  51. 7 2
      version.gradle

+ 2 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -39,6 +39,7 @@ import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.modular.appmessages.activity.ApprovalListActivity;
 import com.modular.appmessages.activity.ProcessB2BActivity;
 import com.modular.appmessages.activity.ProcessMsgActivity;
 import com.modular.appmessages.activity.Subscription2Activity;
@@ -228,7 +229,7 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
                 if (platform) {
                     startActivity(new Intent(mContext, ProcessB2BActivity.class));
                 } else {
-                    startActivity(new Intent(mContext, ProcessMsgActivity.class));
+                    startActivity(new Intent(mContext, ApprovalListActivity.class));
                 }
                 break;
             case R.id.waitting_work_rl://待办工作

+ 5 - 5
WeiChat/version.properties

@@ -1,5 +1,5 @@
-#Fri Feb 02 15:32:32 CST 2018
-debugName=268
-versionName=618
-debugCode=268
-versionCode=157
+#Fri Feb 02 16:15:26 CST 2018
+debugName=201
+versionName=616
+debugCode=201
+versionCode=155

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

@@ -266,6 +266,15 @@
         "menuUrl": "",
         "caller": "",
         "isHide": false
+      },
+      {
+        "isLocalMenu": true,
+        "menuName": "str_company_salary",
+        "menuIcon": "company_salary",
+        "menuActivity": "com.modular.appme.CheckWagesActivity",
+        "menuUrl": "",
+        "caller": "",
+        "isHide": false
       }
     ]
   },

+ 4 - 4
app_core/common/src/main/java/com/common/LogUtil.java

@@ -96,20 +96,20 @@ public class LogUtil {
 
 	public static void prinlnLongMsg(String TAG, String responseInfo) {
 		if (responseInfo != null) {
-			if (responseInfo.length() >= 3000) {
+			if (responseInfo.length() >=4000) {
 				Log.v(TAG, "sb.length = " + responseInfo.length());
 				int chunkCount = responseInfo.length() / 3000;     // integer division
 				for (int i = 0; i <= chunkCount; i++) {
 					int max = 3000 * (i + 1);
 					if (max >= responseInfo.length()) {
-						Log.d(TAG, "【"+ i + "】" + responseInfo.substring(3000 * i));
+						Log.i(TAG, "【"+ i + "】" + responseInfo.substring(3000 * i));
 					} else {
-						Log.d(TAG, "【" + i+ "】" + responseInfo.substring(3000 * i, max));
+						Log.i(TAG, "【" + i+ "】" + responseInfo.substring(3000 * i, max));
 					}
 				}
 			} else {
 				Log.d(TAG, "sb.length = " + responseInfo.length());
-				Log.d(TAG, responseInfo.toString());
+				Log.i(TAG, responseInfo.toString());
 			}
 		}
 

+ 17 - 11
app_core/common/src/main/java/com/core/model/Approval.java

@@ -61,8 +61,9 @@ public class Approval {
         }
         this.oldValues = oldValues;
     }
+
     public String getDbFind() {
-        return dbFind==null?"":dbFind;
+        return dbFind == null ? "" : dbFind;
     }
 
     public void setDbFind(String dbFind) {
@@ -209,16 +210,18 @@ public class Approval {
      * @return 输入类型:0字符输入  1.数字输入  2.日期输入选择  3.下拉选择  4.dbfind
      */
     public int inputType() {
-        if (isNumber())
+       if (isNumber())
             return 1;
         else if (isDftypeEQ("DT", "D")) {
             return 2;
-        } else if (isDftypeEQ("C", "YN", "B")) {
+        } else if (isDftypeEQ("C")) {
             return 3;
         } else if (isDBFind()) {
             return 4;
+        } else if (isDftypeEQ("B", "YN")){
+            return 5;
         }
-        return 0;
+            return 0;
     }
 
     public boolean isSelect() {
@@ -247,14 +250,17 @@ public class Approval {
         } else if ("C".equals(dfType) || "YN".equals(dfType)) {
             if (values.equals("-1")) values = "是";
             else if (values.equals("0")) values = "否";
-            if (oldValues.equals("-1")) oldValues = "是";
-            else if (oldValues.equals("0")) oldValues = "否";
-
+            if (!StringUtil.isEmpty(oldValues)) {
+                if (oldValues.equals("-1")) oldValues = "是";
+                else if (oldValues.equals("0")) oldValues = "否";
+            }
         } else if ("B".equals(dfType)) {
             if (values.equals("1")) values = "是";
             else values = "否";
-            if (oldValues.equals("1")) oldValues = "是";
-            else oldValues = "否";
+            if (!StringUtil.isEmpty(oldValues)) {
+                if (oldValues.equals("1")) oldValues = "是";
+                else oldValues = "否";
+            }
         }
     }
 
@@ -263,11 +269,11 @@ public class Approval {
     }
 
     public boolean isDftypeEQ(String... str) {
-        return isEQ(getDfType(),str);
+        return isEQ(getDfType(), str);
     }
 
     public boolean isDBFind() {
-        return isEQ(getDbFind(),"T","AT","M","DF");
+        return isEQ(getDbFind(), "T", "AT", "M", "DF");
     }
 
     public boolean isEQ(String key, String... str) {

+ 20 - 4
app_core/common/src/main/java/com/core/utils/IntentUtils.java

@@ -1,5 +1,6 @@
 package com.core.utils;
 
+import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 
@@ -27,7 +28,7 @@ public class IntentUtils {
     }
 
     public static void linkCommonWeb(Context ct, String url, String title) {
-        LogUtil.i("url="+url);
+        LogUtil.i("url=" + url);
         linkCommonWeb(ct, url, title, null, null, false, false);
     }
 
@@ -39,14 +40,14 @@ public class IntentUtils {
         linkCommonWeb(ct, url, title, imageUrl, content, true, false);
     }
 
-
     public static void linkCommonWeb(Context ct,
                                      String url,
                                      String title,
                                      String imageUrl,
                                      String content,
                                      boolean neerShare,
-                                     boolean neerCookie) {
+                                     boolean neerCookie,
+                                     boolean needEnablePullDown) {
         Intent intent_web = new Intent("com.modular.message.MessageWebActivity");
         intent_web.putExtra(KEY_URL, url);
         intent_web.putExtra(KEY_TITLE, title);
@@ -54,7 +55,22 @@ public class IntentUtils {
         intent_web.putExtra(KEY_NEER_SHARE, neerShare);
         intent_web.putExtra(KEY_SHARE_IMAGE, imageUrl);
         intent_web.putExtra(KEY_SHARE_CONTENT, content);
-        ct.startActivity(intent_web);
+        intent_web.putExtra("EnablePullDown", needEnablePullDown);
+        if (ct instanceof Activity){
+            ((Activity)ct).startActivityForResult(intent_web,0x21);
+        }else{
+            ct.startActivity(intent_web);
+        }
+    }
+
+    public static void linkCommonWeb(Context ct,
+                                     String url,
+                                     String title,
+                                     String imageUrl,
+                                     String content,
+                                     boolean neerShare,
+                                     boolean neerCookie) {
+        linkCommonWeb(ct,url,title,imageUrl,content,neerShare,neerCookie,true);
     }
 
 

+ 0 - 2
app_core/common/src/main/res/layout/activity_simple_pinned_list.xml

@@ -3,12 +3,10 @@
     android:layout_height="match_parent"
     android:background="@color/normal_bg"
     android:orientation="vertical" >
-
     <com.core.widget.PinnedSectionListView
         android:id="@+id/list_view"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:cacheColorHint="#00000000"
         android:gravity="fill" />
-
 </LinearLayout>

+ 31 - 9
app_core/common/src/main/res/layout/item_approval_rv.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              style="@style/approvalStyle"
-              android:layout_width="match_parent"
-              android:layout_height="wrap_content"
-              android:paddingLeft="@dimen/paddingApp">
+    style="@style/approvalStyle"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingLeft="@dimen/paddingApp">
 
     <TextView
         android:id="@+id/captionTV"
@@ -11,7 +11,7 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginRight="10dp"
-        android:layout_weight="1"/>
+        android:layout_weight="1" />
 
     <FrameLayout
         android:id="@+id/valuesFl"
@@ -26,7 +26,7 @@
             android:layout_height="match_parent"
             android:background="@drawable/edit_hint_right_angle"
             android:hint="@string/common_input2"
-            android:textColor="@color/text_main"/>
+            android:textColor="@color/text_main" />
 
         <WebView
             android:id="@+id/valueWeb"
@@ -34,7 +34,7 @@
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:gravity="center|left"
-            android:visibility="gone"/>
+            android:visibility="gone" />
 
         <LinearLayout
             android:id="@+id/valueLL"
@@ -48,15 +48,37 @@
                 android:layout_width="match_parent"
                 android:gravity="center|left"
                 android:textColor="@color/text_main"
-                android:visibility="gone"/>
+                android:visibility="gone" />
 
             <TextView
                 android:id="@+id/valueTv"
                 style="@style/approvalItemStyle"
                 android:layout_width="match_parent"
                 android:gravity="center|left"
-                android:textColor="@color/text_main"/>
+                android:textColor="@color/text_main" />
         </LinearLayout>
 
+        <RadioGroup
+            android:id="@+id/valuesRG"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+
+            <RadioButton
+                android:id="@+id/yesRB"
+                android:button="@drawable/oa_checkbox"
+                android:layout_width="wrap_content"
+                android:layout_marginRight="@dimen/padding"
+                android:layout_height="wrap_content"
+                android:text="是" />
+
+            <RadioButton
+                android:id="@+id/notRB"
+                android:layout_marginLeft="@dimen/padding"
+                android:layout_width="wrap_content"
+                android:button="@drawable/oa_checkbox"
+                android:layout_height="wrap_content"
+                android:text="否" />
+        </RadioGroup>
     </FrameLayout>
 </LinearLayout>

+ 1 - 1
app_modular/appbooking/build.gradle

@@ -21,9 +21,9 @@ android {
 dependencies {
     compile fileTree(dir: 'libs', include: ['*.jar'])
     compile deps.appcompatV7
+    compile deps.bottomsheet
     testCompile deps.junit
     compile project(':common')
     compile project(':appcontact')
-    compile 'com.android.support.constraint:constraint-layout:+'
     compile project(path: ':apputils')
 }

+ 32 - 5
app_modular/appbooking/src/main/java/com/modular/booking/activity/services/DishSelectActivity.java

@@ -1,32 +1,52 @@
 package com.modular.booking.activity.services;
 
 import android.os.Bundle;
+import android.widget.ListView;
+import android.widget.TextView;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.common.LogUtil;
 import com.core.base.OABaseActivity;
+import com.core.widget.PinnedSectionListView;
+import com.flipboard.bottomsheet.BottomSheetLayout;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.Method;
 import com.me.network.app.http.rx.ResultListener;
 import com.me.network.app.http.rx.ResultSubscriber;
 import com.modular.booking.R;
+import com.modular.booking.adapter.ItemDishCategoryListAdapter;
+import com.modular.booking.adapter.ItemDishPinnedListAdapter;
 import com.modular.booking.model.Product;
 import com.modular.booking.model.ProductCategory;
 
+import java.util.ArrayList;
 import java.util.List;
 
+import de.hdodenhof.circleimageview.CircleImageView;
+
 /**
   * @desc:选择菜品
   * @author:Arison on 2018/1/24
   */
 public class DishSelectActivity extends OABaseActivity {
-  private static final String TAG = "DishSelectActivity";
+    
+    private static final String TAG = "DishSelectActivity";
+    private CircleImageView mCircleImage;
+    private TextView tv_title;
+    private TextView tv_sub;
+    private BottomSheetLayout  mBottmSheetLayout;
+    private ListView lv_product_category;
+    private PinnedSectionListView lv_product;
+    
+    private List<ProductCategory> productCategories=new ArrayList<>();
+    private ItemDishCategoryListAdapter itemDishCategoryListAdapter;
+    private ItemDishPinnedListAdapter itemDishPinnedListAdapter;
+    
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_dish_select);
-        
         initView();
         initEvent();
         initData();
@@ -34,14 +54,18 @@ public class DishSelectActivity extends OABaseActivity {
     
     private void initView(){
         getSupportActionBar().setTitle("选菜");
+        lv_product_category= findViewById(R.id.lv_product_category);
+        lv_product=findViewById(R.id.lv_dish_product);
+        itemDishCategoryListAdapter=new ItemDishCategoryListAdapter(mContext,productCategories);
+        lv_product_category.setAdapter( itemDishCategoryListAdapter);
     }
     
     private void initEvent(){}
-    
+ 
     private void initData(){
-          HttpClient httpClient=new HttpClient.Builder("http://www.haidiyun.top:9908/").build();
+          HttpClient httpClient=new HttpClient.Builder("http://192.168.253.200:8080/Chapter/").build();
                  httpClient.Api().send(new HttpClient.Builder()
-                 .url("api?client=DAFFF430FA37&handler=Hdy&method=GetBasicData")
+                 .url("data/dish")
                  .method(Method.GET)
                  .build(),new ResultSubscriber<Object>(new ResultListener<Object>() {
           
@@ -67,6 +91,9 @@ public class DishSelectActivity extends OABaseActivity {
                                  }
                              }
 
+                             productCategories.addAll(productCategorys);
+                             itemDishCategoryListAdapter.notifyDataSetChanged();
+                             
                             
                             LogUtil.prinlnLongMsg(TAG,JSON.toJSONString(productCategorys));
                           

+ 63 - 3
app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemDishCategoryListAdapter.java

@@ -1,10 +1,70 @@
 package com.modular.booking.adapter;
 
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.modular.booking.R;
+import com.modular.booking.model.ProductCategory;
+
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Created by Arison on 2018/1/24.
  */
 
-public class ItemDishCategoryListAdapter {
-    
-    
+public class ItemDishCategoryListAdapter extends BaseAdapter {
+   
+    private List<ProductCategory> productCategories=new ArrayList<>();
+    private Context ct;
+    private LayoutInflater layoutInflater;
+    public ItemDishCategoryListAdapter(Context ct,List<ProductCategory> datas){
+        this.ct=ct;
+        this.productCategories=datas;  
+        this.layoutInflater = LayoutInflater.from(ct);
+        
+    }
+
+    @Override
+    public int getCount() {
+        return productCategories.size();
+    }
+
+    @Override
+    public Object getItem(int i) {
+        return productCategories.get(i);
+    }
+
+    @Override
+    public long getItemId(int i) {
+        return i;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            convertView = layoutInflater.inflate(R.layout.item_dish_catagory_list, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        initializeViews((ProductCategory)getItem(position), (ViewHolder) convertView.getTag());
+        return convertView;
+    }
+
+    private void initializeViews(ProductCategory object, ViewHolder holder) {
+        holder.tvName.setText(object.getName());
+        holder.modle=object;
+    }
+
+    protected class ViewHolder {
+        private TextView tvName;
+        private ProductCategory modle;
+
+        public ViewHolder(View view) {
+            tvName = (TextView) view.findViewById(R.id.tv_name);
+        }
+    }
 }

+ 38 - 4
app_modular/appbooking/src/main/java/com/modular/booking/adapter/ItemDishPinnedListAdapter.java

@@ -1,11 +1,45 @@
 package com.modular.booking.adapter;
 
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+
+import com.core.widget.PinnedSectionListView;
+
 /**
  * Created by Arison on 2018/1/24.
  */
 
-public class ItemDishPinnedListAdapter {
-    
-    
-    
+public class ItemDishPinnedListAdapter extends BaseAdapter implements PinnedSectionListView.PinnedSectionListAdapter{
+
+
+    @Override
+    public boolean isItemViewTypePinned(int viewType) {
+        return false;
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return super.getItemViewType(position);
+    }
+
+    @Override
+    public int getCount() {
+        return 0;
+    }
+
+    @Override
+    public Object getItem(int i) {
+        return null;
+    }
+
+    @Override
+    public long getItemId(int i) {
+        return 0;
+    }
+
+    @Override
+    public View getView(int i, View view, ViewGroup viewGroup) {
+        return null;
+    }
 }

BIN
app_modular/appbooking/src/main/res/drawable-hdpi/icon_shop_car.png


BIN
app_modular/appbooking/src/main/res/drawable-hdpi/icon_shop_empty.png


BIN
app_modular/appbooking/src/main/res/drawable-xhdpi/icon_shop_car.png


BIN
app_modular/appbooking/src/main/res/drawable-xhdpi/icon_shop_empty.png


BIN
app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_shop_car.png


BIN
app_modular/appbooking/src/main/res/drawable-xxhdpi/icon_shop_empty.png


+ 18 - 0
app_modular/appbooking/src/main/res/drawable/shape_btn_blue_gradient.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
+    <corners
+        android:topLeftRadius="0dp"
+        android:topRightRadius="0dp"
+        android:bottomRightRadius="0dp"
+        android:bottomLeftRadius="0dp">
+    </corners>
+    <gradient
+        android:startColor="#8ee7f0"
+        android:endColor="#3297e9">
+    </gradient>
+    <padding
+        android:left="15dp"
+        android:top="15dp"
+        android:right="15dp"
+        android:bottom="15dp" />
+</shape>

+ 3 - 7
app_modular/appbooking/src/main/res/layout/activity_book_service_search.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout
+<RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
@@ -11,9 +11,5 @@
         android:layout_width="0dp"
         android:layout_height="0dp"
         android:divider="@color/item_line"
-        android:dividerHeight="@dimen/line"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintRight_toRightOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-</android.support.constraint.ConstraintLayout>
+        android:dividerHeight="@dimen/line" />
+</RelativeLayout>

+ 78 - 2
app_modular/appbooking/src/main/res/layout/activity_dish_select.xml

@@ -1,9 +1,85 @@
 <?xml version="1.0" encoding="utf-8"?>
-<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:orientation="vertical"
     tools:context="com.modular.booking.activity.services.DishSelectActivity">
+    <include layout="@layout/include_add_top"
+        android:id="@+id/dish_layout_top"></include>
 
-</android.support.constraint.ConstraintLayout>
+    <com.flipboard.bottomsheet.BottomSheetLayout
+        android:id="@+id/bottom_sheet_layout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_below="@+id/dish_layout_top"
+     >
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+        <ListView
+            android:id="@+id/lv_product_category"
+            android:layout_width="100dp"
+            android:layout_height="match_parent"
+            android:fadingEdge="none"
+            android:scrollbars="none"
+            android:divider="@null"
+            android:choiceMode="singleChoice"/>
+        <View
+            android:layout_width="1px"
+            android:layout_height="match_parent"
+            android:background="@color/divider"
+            />
+        <com.core.widget.PinnedSectionListView
+            android:id="@+id/lv_dish_product"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:cacheColorHint="#00000000"
+            android:gravity="fill" />
+    </LinearLayout>
+    
+    </com.flipboard.bottomsheet.BottomSheetLayout>
+    <!--底部购物车布局-->
+    <RelativeLayout
+        android:id="@+id/rl_bottom"
+        android:layout_width="match_parent"
+        android:layout_alignParentBottom="true"
+        android:layout_height="60dp">
+
+        <LinearLayout
+            android:id="@+id/ll_bottom"
+            android:background="#CC000000"
+            android:layout_width="match_parent"
+            android:orientation="horizontal"
+          
+            android:layout_alignParentBottom="true"
+            android:layout_height="50dp"
+            android:weightSum="3">
+            <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_marginLeft="70dp"
+            android:textColor="@color/gray_light"
+            android:gravity="center_vertical"
+                android:layout_weight="2"
+            android:text="您的购物车空空如洗哦"/>
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:background="@drawable/shape_btn_blue_gradient"
+                android:textColor="@color/white"
+                android:layout_gravity="right"
+                android:gravity="center"
+                android:text="选好了"/>
+        </LinearLayout>
+        <ImageView
+            android:layout_width="60dp"
+            android:layout_height="60dp"
+            android:layout_marginLeft="7dp"
+            android:layout_marginBottom="7dp"
+            android:src="@drawable/icon_shop_empty"/>
+        
+    </RelativeLayout>
+</RelativeLayout>

+ 1 - 0
app_modular/appbooking/src/main/res/layout/include_add_top.xml

@@ -72,6 +72,7 @@
                 android:id="@+id/tv_sub"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
+                android:layout_marginLeft="2dp"
                 android:drawableLeft="@drawable/icon_map"
                 android:drawablePadding="6dp"
                 android:elevation="2dp"

+ 7 - 1
app_modular/appbooking/src/main/res/layout/item_dish_catagory_list.xml

@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent" 
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:paddingLeft="10dp"
+    android:paddingRight="10dp"
+    android:paddingTop="8dp"
+    android:background="@drawable/list_selector_background"
+    android:paddingBottom="8dp">
     <TextView
         android:id="@+id/tv_name"
         android:layout_width="match_parent"
@@ -15,4 +20,5 @@
         android:text="热销榜"
         android:textSize="@dimen/sp_14"
         android:textColor="#9e9e9e" />
+
 </RelativeLayout>

+ 1 - 10
app_modular/appcontact/src/main/java/com/uas/appcontact/ui/activity/CompanyContactsActivity.java

@@ -406,7 +406,6 @@ public class CompanyContactsActivity extends BaseActivity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.act_staff_query_list);
-
         getSupportActionBar().setTitle(getString(R.string.contact_company));
         ct = this;
         manager = new DBManager(ct);
@@ -443,15 +442,7 @@ public class CompanyContactsActivity extends BaseActivity {
         rl_empty.setVisibility(View.GONE);
 //        reScrollView = (SuperSwipeRefreshLayout) findViewById(R.id.refresh_top);
         mRefreshLayout = (RefreshLayout) findViewById(R.id.act_staff_query_refresh_layout);
-
         initListener();
-        mHandler.post(new Runnable() {
-            @Override
-            public void run() {
-//                reScrollView.setRefreshing(true);
-                mRefreshLayout.autoRefresh(300, 1f);
-            }
-        });
         mHandler.postDelayed(new Runnable() {
             @Override
             public void run() {
@@ -613,6 +604,7 @@ public class CompanyContactsActivity extends BaseActivity {
         mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
             @Override
             public void onRefresh(RefreshLayout refreshLayout) {
+                LogUtil.d("RefreshLayout","---------onRefresh()-----------");
                 manager.deleteData(CommonUtil.getSharedPreferences(ct, "erp_master"));
                 LoadServerData(CommonUtil.getSharedPreferences(ct, "erp_master"), null);
             }
@@ -774,7 +766,6 @@ public class CompanyContactsActivity extends BaseActivity {
      */
     public void LoadServerData(String master, String lastdate) {
         if (StringUtil.isEmpty(master)) {
-//            reScrollView.setRefreshing(false);
             if (mRefreshLayout.isRefreshing()) {
                 mRefreshLayout.finishRefresh(0);
             }

+ 6 - 2
app_modular/appme/src/main/java/com/uas/appme/other/activity/SelectAreaActivity.java

@@ -11,6 +11,8 @@ import android.widget.AdapterView;
 import android.widget.BaseAdapter;
 import android.widget.TextView;
 
+import com.alibaba.fastjson.JSON;
+import com.common.LogUtil;
 import com.core.app.ActionBackActivity;
 import com.core.app.MyApplication;
 import com.core.widget.PinnedSectionListView;
@@ -76,7 +78,7 @@ public class SelectAreaActivity extends ActionBackActivity {
 		}
 
 		prepareData();
-
+  
 		setContentView(R.layout.activity_simple_pinned_list);
 		initView();
 		if (hasAddtionCity()) {
@@ -107,13 +109,15 @@ public class SelectAreaActivity extends ActionBackActivity {
 				mItems.add(new Item(area));
 			}
 		}
+		LogUtil.d(TAG,"mItems:"+ JSON.toJSONString(mItems));
 	}
 
+	private static final String TAG = "SelectAreaActivity";
 	private boolean hasAddtionCity() {
 		return mAreaType == Area.AREA_TYPE_PROVINCE;
 	}
 
-	private class Item {
+	public static class Item {
 		public static final int ITEM = 0;
 		public static final int SECTION = 1;
 		public int type;

+ 1 - 1
app_modular/appme/src/main/java/com/uas/appme/settings/activity/BSettingActivity.java

@@ -65,7 +65,7 @@ public class BSettingActivity extends BaseActivity implements View.OnClickListen
                 if ("餐饮".equals(sc_industry)) {
                     tableSetRl.setVisibility(View.VISIBLE);
                 }else {
-                    tableSetRl.setVisibility(View.VISIBLE);
+                    tableSetRl.setVisibility(View.GONE);
                 }
             }
         }));

+ 7 - 6
app_modular/appme/src/main/java/com/uas/appme/settings/activity/CheckWagesActivity.java

@@ -116,8 +116,8 @@ public class CheckWagesActivity extends BaseActivity implements View.OnClickList
     }
 
     private void checkIsHavePassword() {
-        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
-//        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(buildtrue);
+        HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
+//        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/checkPassword.action")
                 .add("phone",mTel.getText().toString())
@@ -228,11 +228,12 @@ public class CheckWagesActivity extends BaseActivity implements View.OnClickList
             if (!CommonUtil.isNetWorkConnected(ct)){
                 ToastMessage(getString(R.string.common_notlinknet));
                 return;
-            }HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+           }
+ HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //            HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
             httpClient.Api().send(new HttpClient.Builder()
                     .url("mobile/salary/verificationCode.action")
-//                    .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+                    .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
                     .add("phone",mTel.getText().toString())
                     .method(Method.POST)
                     .build(),new ResultSubscriber<>(new ResultListener<Object>() {
@@ -296,7 +297,7 @@ public class CheckWagesActivity extends BaseActivity implements View.OnClickList
     }
 
     private void doSavePW() {
-        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/changePassword.action")
@@ -327,7 +328,7 @@ public class CheckWagesActivity extends BaseActivity implements View.OnClickList
             ToastMessage("验证码超时,请重新获取");
             return;
         }
-                HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+                HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/getEmSalary.action")

+ 3 - 4
app_modular/appme/src/main/java/com/uas/appme/settings/activity/FindWagePWActivity.java

@@ -19,7 +19,6 @@ import com.common.LogUtil;
 import com.common.config.BaseConfig;
 import com.common.data.JSONUtil;
 import com.common.data.StringUtil;
-import com.core.app.Constants;
 import com.core.app.MyApplication;
 import com.core.base.BaseActivity;
 import com.core.utils.CommonUtil;
@@ -118,11 +117,11 @@ public class FindWagePWActivity extends BaseActivity implements View.OnClickList
                 return;
             }
             mTelTv.setText(mPhoneEt.getText().toString());
-            HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+            HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //            HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
             httpClient.Api().send(new HttpClient.Builder()
                     .url("mobile/salary/verificationCode.action")
-//                    .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
+                    .header("Cookie","JSESSIONID="+CommonUtil.getSharedPreferences(BaseConfig.getContext(), "sessionId"))
                     .add("phone",mPhoneEt.getText().toString())
                     .method(Method.POST)
                     .build(),new ResultSubscriber<>(new ResultListener<Object>() {
@@ -170,7 +169,7 @@ public class FindWagePWActivity extends BaseActivity implements View.OnClickList
     }
 
     private void doChangePW() {
-        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/changePassword.action")

+ 3 - 3
app_modular/appme/src/main/java/com/uas/appme/settings/activity/WagesDetailsActivity.java

@@ -338,7 +338,7 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
         }
 
         errorgone = false;
-                HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+                HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/getEmSalary.action")
@@ -367,7 +367,7 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
     }
 
     private void doErrorMsgHandle() {
-        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/salaryWrong.action")
@@ -458,7 +458,7 @@ public class WagesDetailsActivity extends BaseActivity implements View.OnClickLi
             ToastMessage(getString(R.string.common_notlinknet));
             return;
         }
-        HttpClient httpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).isDebug(true).build(true);
+        HttpClient httpClient = new HttpClient.Builder(CommonUtil.getAppBaseUrl(ct)).isDebug(true).build(true);
 //        HttpClient httpClient = new HttpClient.Builder("http://192.168.253.58:8080/ERP/").isDebug(true).build(true);
         httpClient.Api().send(new HttpClient.Builder()
                 .url("mobile/salary/salaryBackNoSignature.action\n")

+ 7 - 0
app_modular/appmessages/src/main/AndroidManifest.xml

@@ -25,6 +25,13 @@
                 <action android:name="com.modular.work.ProcessMsgActivity" />
                 <category android:name="android.intent.category.DEFAULT" />
             </intent-filter>
+        </activity> <activity
+            android:name=".activity.ApprovalListActivity"
+            android:label="@string/title_activity_process_msg">
+            <intent-filter>
+                <action android:name="com.modular.work.ProcessMsgActivity" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
         </activity>
 
         <activity android:name=".activity.AppWebViewActivity" />

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

@@ -524,4 +524,4 @@ public class ApprovalActivity extends OABaseActivity implements IApproval, Appro
             TextView tv_text;
         }
     }
-}
+}

+ 522 - 0
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ApprovalListActivity.java

@@ -0,0 +1,522 @@
+package com.modular.appmessages.activity;
+
+import android.annotation.SuppressLint;
+import android.content.Intent;
+import android.support.v7.app.ActionBar;
+import android.text.Editable;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.BaseAdapter;
+import android.widget.Filter;
+import android.widget.Filterable;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.common.data.DateFormatUtil;
+import com.common.data.JSONUtil;
+import com.common.data.ListUtils;
+import com.common.data.StringUtil;
+import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
+import com.core.utils.helper.AvatarHelper;
+import com.core.widget.EmptyLayout;
+import com.core.widget.VoiceSearchView;
+import com.core.widget.listener.EditChangeListener;
+import com.handmark.pulltorefresh.library.PullToRefreshBase;
+import com.handmark.pulltorefresh.library.PullToRefreshListView;
+import com.me.network.app.http.Method;
+import com.modular.appmessages.R;
+import com.modular.appmessages.model.ApprovalList;
+import com.modular.apputils.activity.BaseNetActivity;
+import com.modular.apputils.listener.OnSmartHttpListener;
+import com.modular.apputils.network.Parameter;
+import com.modular.apputils.network.Tags;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+
+/**
+ * 未完成
+ * 1.搜索
+ * 2.已审批的状态显示
+ * Created by Bitlike on 2018/1/31.
+ */
+
+public class ApprovalListActivity extends BaseNetActivity implements View.OnClickListener, OnSmartHttpListener {
+    private final int LOAD_TO_DO = 1;
+    private final int LOAD_TO_ALREADY = 2;
+    private final int LOAD_TO_ME = 3;
+
+    private PullToRefreshListView mListView;
+    private EmptyLayout mEmptyLayout;
+    private ApprovalListAdapter mApprovalListAdapter;
+
+    private boolean refresh;
+    private int tab;
+    private RelativeLayout tv_process_already_rl;
+    private RelativeLayout tv_process_rl;
+    private RelativeLayout tv_process_me_rl;
+    private TextView tv_process_un_num;
+    private VoiceSearchView mVoiceSearchView;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.activity_process_msg;
+    }
+
+    @Override
+    protected String getBaseUrl() {
+        return CommonUtil.getAppBaseUrl(this);
+    }
+
+    @Override
+    protected void init() throws Exception {
+        tab = 1;
+        initView();
+        initLoad();
+    }
+
+    private void initLoad() {
+        loadProcessToDo();
+    }
+
+
+    private void initView() {
+        mVoiceSearchView = findViewById(R.id.voiceSearchView);
+        mListView = findViewById(R.id.lv_process);
+        mEmptyLayout = new EmptyLayout(this, mListView.getRefreshableView());
+        mEmptyLayout.setShowEmptyButton(false);
+        mEmptyLayout.setShowErrorButton(false);
+        mEmptyLayout.setShowLoadingButton(false);
+
+        initActionbar();
+
+        mVoiceSearchView.addTextChangedListener(new EditChangeListener() {
+            @Override
+            public void afterTextChanged(Editable s) {
+                if (mApprovalListAdapter != null) {
+                    if (TextUtils.isEmpty(s)) {
+                        mApprovalListAdapter.getFilter().filter("");
+                    } else {
+                        mApprovalListAdapter.getFilter().filter(s.toString());
+                    }
+                }
+            }
+        });
+        mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                if (mApprovalListAdapter != null) {
+                    ApprovalList model = mApprovalListAdapter.getItem((int) id);
+                    if (model != null) {
+                        String title = "";
+                        switch (tab) {
+                            case 1:
+                                title = getString(R.string.title_approval);
+                                break;
+                            case 2:
+                                title = getString(R.string.task_confimed);
+                                break;
+                            case 3:
+                                title = getString(R.string.task_request_me);
+                                break;
+                        }
+                        Intent intent = new Intent(ct, ApprovalActivity.class);
+                        intent.putExtra("imid", model.getImid());
+                        intent.putExtra("title", title);
+                        intent.putExtra("type", tab);
+                        intent.putExtra("master", model.getMaster());
+                        intent.putExtra("nodeid", Integer.valueOf(model.getNodeId()));
+                        startActivity(intent);
+                    }
+                }
+            }
+        });
+        mListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+            @Override
+            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
+                switch (tab) {
+                    case 1:
+                        refresh = true;
+                        loadProcessToDo();
+                        break;
+                    case 2:
+                        loadProcessAlready(page = 1);
+                        break;
+                    case 3:
+                        loadProcessMe(page = 1);
+                        break;
+                }
+            }
+
+            @Override
+            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
+                switch (tab) {
+                    case 1:
+                        loadProcessToDo();
+                        break;
+                    case 2:
+                        loadProcessAlready(++page);
+                        break;
+                    case 3:
+                        loadProcessMe(++page);
+                        break;
+                }
+            }
+        });
+
+    }
+
+
+    private void initActionbar() {
+        View view = LayoutInflater.from(ct).inflate(R.layout.process_header, null);
+        ActionBar bar = this.getSupportActionBar();
+        bar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+        tv_process_already_rl = (RelativeLayout) view.findViewById(R.id.tv_process_already_rl);
+        tv_process_rl = (RelativeLayout) view.findViewById(R.id.tv_process_rl);
+        tv_process_me_rl = (RelativeLayout) view.findViewById(R.id.tv_process_me_rl);
+        tv_process_un_num = (TextView) view.findViewById(R.id.tv_process_un_num);
+        bar.setCustomView(view);
+        tv_process_already_rl.setOnClickListener(this);
+        tv_process_me_rl.setOnClickListener(this);
+        tv_process_rl.setOnClickListener(this);
+        tv_process_rl.setSelected(true);
+        view.findViewById(R.id.back).setOnClickListener(this);
+    }
+
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+        if (R.id.back == id) {
+            onBackPressed();
+        } else if (id == R.id.tv_process_rl) {
+            tab = 1;
+            setClick();
+            loadProcessToDo();
+            mListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
+        } else if (id == R.id.tv_process_already_rl) {
+            tab = 2;
+            setClick();
+            loadProcessAlready(page = 1);
+            mListView.setMode(PullToRefreshBase.Mode.BOTH);
+        } else if (id == R.id.tv_process_me_rl) {
+            tab = 3;
+            setClick();
+            loadProcessMe(page = 1);
+            mListView.setMode(PullToRefreshBase.Mode.BOTH);
+
+        }
+    }
+
+    private void setClick() {
+        tv_process_already_rl.setSelected(false);
+        tv_process_me_rl.setSelected(false);
+        tv_process_rl.setSelected(false);
+        switch (tab) {
+            case 1:
+                tv_process_rl.setSelected(true);
+                break;
+            case 2:
+                tv_process_already_rl.setSelected(true);
+                break;
+            case 3:
+                tv_process_me_rl.setSelected(true);
+                break;
+        }
+    }
+
+
+    private void loadProcessToDo() {
+        showProgress();
+        String emCode = CommonUtil.getMaster();
+        Parameter.Builder builder = new Parameter.Builder();
+        builder.url("common/desktop/process/toDo.action")
+                .record(LOAD_TO_DO)
+                .addParams("count", "1000")
+                .addParams("page", "1")
+                .showLog(true)
+                .saveLog(refresh && !StringUtil.isEmpty(emCode) && emCode.equals("DATACENTER"))
+                .mode(Method.GET);
+        requestCompanyHttp(builder, this);
+        if (refresh) {
+            refresh = false;
+        }
+    }
+
+    private void loadProcessAlready(int page) {
+        showProgress();
+        Parameter.Builder builder = new Parameter.Builder();
+        builder.url("common/desktop/process/alreadyDo.action")
+                .record(LOAD_TO_ALREADY)
+                .addParams("count", String.valueOf(page * 30))
+                .addParams("page", page)
+                .addParams("isMobile", "1")
+                .addParams("_do", "1").showLog(true)
+                .mode(Method.GET);
+        requestCompanyHttp(builder, this);
+    }
+
+    private void loadProcessMe(int page) {
+        showProgress();
+        Parameter.Builder builder = new Parameter.Builder();
+        builder.url("common/desktop/process/alreadyLaunch.action")
+                .record(LOAD_TO_ME)
+                .addParams("count", String.valueOf(page * 30))
+                .addParams("page", page)
+                .addParams("isMobile", "1")
+                .addParams("_do", "1").showLog(true)
+                .mode(Method.GET);
+        requestCompanyHttp(builder, this);
+    }
+
+
+    @Override
+    public void onSuccess(int what, String message, Tags tag) throws Exception {
+        switch (what) {
+            case LOAD_TO_DO:
+                handlerToDo(JSONUtil.getJSONArray(message, "data"));
+                break;
+            case LOAD_TO_ALREADY:
+                handlerToDo(JSONUtil.getJSONArray(message, "data"));
+                break;
+            case LOAD_TO_ME:
+                handlerToDo(JSONUtil.getJSONArray(message, "data"));
+                break;
+        }
+        mVoiceSearchView.setText("");
+        mListView.onRefreshComplete();
+    }
+
+    @Override
+    public void onFailure(int what, String message, Tags tag) throws Exception {
+        if (!StringUtil.isEmpty(message)) {
+            ToastUtil.showToast(ct, message);
+        }
+    }
+
+    private void handlerToDo(JSONArray array) throws Exception {
+        if (ListUtils.isEmpty(array)) {
+            showAdapter(null);
+        } else {
+            List<ApprovalList> approvalLists = new ArrayList<>();
+            ApprovalList e = null;
+            JSONObject object = null;
+            for (int i = 0; i < array.size(); i++) {
+                object = array.getJSONObject(i);
+                e = new ApprovalList();
+                e.setCaller(JSONUtil.getText(object, "JP_CALLER"));
+                e.setLauncherName(JSONUtil.getText(object, "JP_LAUNCHERNAME"));
+                e.setName(JSONUtil.getText(object, "JP_NAME"));
+                e.setNodeId(JSONUtil.getText(object, "JP_NODEID"));
+                e.setDealTime(JSONUtil.getTime(object, "JP_LAUNCHTIME", "JN_DEALTIME"));
+                e.setStatus(JSONUtil.getText(object, "JP_STATUS"));
+                e.setMaster(JSONUtil.getText(object, "CURRENTMASTER"));
+                e.setImid(JSONUtil.getText(object, "EM_IMID"));
+                e.setDealResult(JSONUtil.getText(object, "JN_DEALRESULT"));
+                e.setNodeDealMan(JSONUtil.getText(object, "JP_NODEDEALMANNAME"));
+                e.setOperatedDescription(JSONUtil.getText(object, "JN_OPERATEDDESCRIPTION"));
+                approvalLists.add(e);
+            }
+            showAdapter(approvalLists);
+        }
+    }
+
+    private int page;
+
+    private void showAdapter(List<ApprovalList> approvalLists) {
+        ToastUtil.showToast(ct, getString(R.string.common_up_finish));
+        if (ListUtils.isEmpty(approvalLists) && page == 0) {
+            mEmptyLayout.showEmpty();
+            if (tab == 1) {
+                tv_process_un_num.setVisibility(View.GONE);
+            }
+        } else {
+            if (tab == 1) {
+                tv_process_un_num.setVisibility(View.VISIBLE);
+                int numSize = ListUtils.getSize(approvalLists);
+                tv_process_un_num.setText(numSize > 99 ? "99+" : (numSize <= 0 ? "" : String.valueOf(numSize)));
+                Collections.sort(approvalLists, mComparator);
+            }
+
+            if (mApprovalListAdapter == null) {
+                mApprovalListAdapter = new ApprovalListAdapter(approvalLists);
+                mListView.setAdapter(mApprovalListAdapter);
+            } else {
+                mApprovalListAdapter.setApprovalLists(approvalLists);
+            }
+
+        }
+    }
+
+    private Comparator mComparator = new Comparator<ApprovalList>() {
+
+        @Override
+        public int compare(ApprovalList o1, ApprovalList o2) {
+            return String.valueOf(o2.getDealTime()).compareTo(String.valueOf(o1.getDealTime()));
+        }
+    };
+
+
+    private class ApprovalListAdapter extends BaseAdapter implements Filterable {
+        private List<ApprovalList> approvalLists;
+        private List<ApprovalList> showModels;
+
+        public ApprovalListAdapter(List<ApprovalList> approvalLists) {
+            this.approvalLists = approvalLists;
+            this.showModels = this.approvalLists;
+        }
+
+        public void setApprovalLists(List<ApprovalList> approvalLists) {
+            this.approvalLists = approvalLists;
+            this.showModels = this.approvalLists;
+            notifyDataSetChanged();
+        }
+
+        public void addApprovalLists(List<ApprovalList> approvalLists) {
+            if (ListUtils.isEmpty(this.approvalLists)) {
+                setApprovalLists(approvalLists);
+            } else {
+                this.approvalLists.addAll(approvalLists);
+                this.showModels = this.approvalLists;
+                notifyDataSetChanged();
+            }
+        }
+
+        @Override
+        public int getCount() {
+            return ListUtils.getSize(this.showModels);
+        }
+
+        @Override
+        public ApprovalList getItem(int position) {
+            return ListUtils.getSize(this.showModels) > position ? this.showModels.get(position) : null;
+        }
+
+        @Override
+        public long getItemId(int position) {
+            return position;
+        }
+
+        @SuppressLint("WrongViewCast")
+        @Override
+        public View getView(int position, View convertView, ViewGroup parent) {
+            ViewHodler mViewHodler = null;
+            if (convertView == null) {
+                mViewHodler = new ViewHodler();
+                convertView = LayoutInflater.from(ct).inflate(R.layout.item_process_state, null);
+                mViewHodler.tv_name = convertView.findViewById(R.id.tv_name);
+                mViewHodler.tv_date = convertView.findViewById(R.id.tv_date);
+                mViewHodler.tv_status = convertView.findViewById(R.id.tv_status);
+                mViewHodler.photo_img = convertView.findViewById(R.id.photo_img);
+                ImageView photo_me = convertView.findViewById(R.id.photo_me);
+                photo_me.setVisibility(View.GONE);
+                convertView.setTag(mViewHodler);
+            } else {
+                mViewHodler = (ViewHodler) convertView.getTag();
+            }
+            ApprovalList model = getItem(position);
+
+            String jpName = model.getName() == null ? "" : (model.getName().replace("流程", ""));
+            mViewHodler.tv_name.setText(model.getLauncherName() + "的" + jpName);
+            mViewHodler.tv_date.setText(DateFormatUtil.long2Str(model.getDealTime(), "MM-dd HH:mm") + "");
+
+
+            String jpStatus = "等待我审批";
+            int statusColor = R.color.approvaling;
+            switch (tab) {
+                case 2:
+                    jpStatus = model.getDealResult();
+                    if (!StringUtil.isEmpty(jpStatus)) {
+                        if (jpStatus.startsWith("不同意") || jpStatus.startsWith("结束流程") || jpStatus.startsWith("未通过")) {
+                            jpStatus = "未通过";
+                            statusColor = R.color.red;
+                        } else if (jpStatus.startsWith("变更处理人")) {
+                            statusColor = R.color.done_approval;
+                            if (!StringUtil.isEmpty(model.getOperatedDescription())) {
+                                jpStatus = "变更处理人(" + model.getOperatedDescription() + ")";
+                            } else {
+                                jpStatus = "变更处理人";
+                            }
+                        } else {
+                            jpStatus = "已审批";
+                            statusColor = R.color.titleBlue;
+                        }
+                    }
+                    break;
+                case 3:
+                    jpStatus = model.getStatus();
+                    if (!StringUtil.isEmpty(jpStatus)) {
+                        if (jpStatus.equals("待审批")) {
+                            statusColor = R.color.approvaling;
+                            jpStatus = "等待" + model.getNodeDealMan() + getString(R.string.approvel);
+                        } else if (jpStatus.equals("未通过")) {
+                            statusColor = R.color.red;
+                        } else if (jpStatus.equals("已审批")) {
+                            statusColor = R.color.titleBlue;
+                        }
+                    }
+                    break;
+            }
+            mViewHodler.tv_status.setTextColor(getResources().getColor(statusColor));
+            mViewHodler.tv_status.setText(jpStatus);
+
+            if (!StringUtil.isEmpty(model.getImid())) {
+                AvatarHelper.getInstance().display(model.getImid(), mViewHodler.photo_img, true, false);//显示圆角图片
+            } else {
+                String imageUri = "drawable://" + R.drawable.common_header_boy;
+                AvatarHelper.getInstance().display(imageUri, mViewHodler.photo_img, true);
+            }
+            return convertView;
+        }
+
+
+        private class ViewHodler {
+            private TextView tv_name;
+            private TextView tv_date;
+            private TextView tv_status;
+            private ImageView photo_img;
+        }
+
+
+        @Override
+        public Filter getFilter() {
+            return new Filter() {
+                @Override
+                protected FilterResults performFiltering(CharSequence constraint) {
+                    FilterResults searchResults = new FilterResults();
+                    List<ApprovalList> values = new ArrayList<>();
+                    if (constraint == null || constraint.length() <= 0) {
+                        values = approvalLists;
+                    } else {
+                        for (ApprovalList e : approvalLists) {
+                            if (e.hasContext(constraint))
+                                values.add(e);
+                        }
+                    }
+                    searchResults.values = values;
+                    searchResults.count = values.size();
+                    return searchResults;
+                }
+
+                @Override
+                protected void publishResults(CharSequence constraint, FilterResults results) {
+                    showModels = (List<ApprovalList>) results.values;
+                    notifyDataSetChanged();
+                    if (mApprovalListAdapter.getCount() == 0) {
+                        mEmptyLayout.showEmpty();
+                    }
+                }
+            };
+        }
+    }
+}

+ 33 - 2
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/MessageWebActivity.java

@@ -6,6 +6,7 @@ import android.graphics.Bitmap;
 import android.net.http.SslError;
 import android.os.Build;
 import android.os.Bundle;
+import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
@@ -31,6 +32,7 @@ import com.core.utils.CommonUtil;
 import com.core.utils.IntentUtils;
 import com.core.utils.ToastUtil;
 import com.modular.appmessages.R;
+import com.module.recyclerlibrary.ui.refresh.webempty.EmptyRefreshLayout;
 import com.umeng.socialize.ShareAction;
 import com.umeng.socialize.bean.SHARE_MEDIA;
 import com.umeng.socialize.media.UMImage;
@@ -43,6 +45,7 @@ public class MessageWebActivity extends BaseActivity {
 
 
     protected WebView webViewRefresh;
+    protected EmptyRefreshLayout mEmptyRefreshLayout;
     protected ProgressBar progressBar;
     protected String url;
     private boolean needCookie;
@@ -52,12 +55,35 @@ public class MessageWebActivity extends BaseActivity {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_message_web);
         webViewRefresh = (WebView) findViewById(R.id.webView);
+        mEmptyRefreshLayout = findViewById(R.id.mEmptyRefreshLayout);
         progressBar = (ProgressBar) findViewById(R.id.progressBar);
+
+        Intent intent = getIntent();
+        if (intent != null) {
+            mEmptyRefreshLayout.setEnablePullDown(intent.getBooleanExtra("EnablePullDown", true));
+        }
+        mEmptyRefreshLayout.setEnabledPullUp(false);
         initView();
         initData();
     }
 
 
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event) {
+        if (keyCode == KeyEvent.KEYCODE_BACK && webViewRefresh.canGoBack()) {
+            webViewRefresh.goBack();
+            return true;
+        } else {
+            setResult();
+        }
+
+        return super.onKeyDown(keyCode, event);
+    }
+
+    private void setResult() {
+        setResult(0x21);
+    }
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         if (getIntent() != null && getIntent().getBooleanExtra(IntentUtils.KEY_NEER_SHARE, false)) {
@@ -98,6 +124,8 @@ public class MessageWebActivity extends BaseActivity {
                     .withTargetUrl(url)
                     .setCallback(CommonUtil.umShareListener)
                     .open();
+        } else if (item.getItemId() == android.R.id.home) {
+            setResult();
         }
         return super.onOptionsItemSelected(item);
     }
@@ -136,6 +164,7 @@ public class MessageWebActivity extends BaseActivity {
             }
         };
     }
+
     protected WebViewClient getWebViewClient() {
         return new WebViewClient() {
             public boolean shouldOverrideUrlLoading(WebView view, String url) {
@@ -158,7 +187,9 @@ public class MessageWebActivity extends BaseActivity {
 
             @Override
             public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) {
-                ToastUtil.showToast(ct,"Cookie已经过期,请重新登陆");
+                if (needCookie) {
+                    ToastUtil.showToast(ct, "Cookie已经过期,请重新登陆");
+                }
                 super.onReceivedHttpError(view, request, errorResponse);
             }
 
@@ -233,7 +264,7 @@ public class MessageWebActivity extends BaseActivity {
         cookieManager.setAcceptCookie(true);
         cookieManager.removeSessionCookie();//移除
         Cookie sessionCookie = MyApplication.cookieERP;
-        if (sessionCookie!=null){
+        if (sessionCookie != null) {
             String cookieStr = sessionCookie.getName() + "="
                     + sessionCookie.getValue() + "; domain="
                     + sessionCookie.getDomain() + "; path="

+ 0 - 52
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/ProcessMsgActivity.java

@@ -211,27 +211,6 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     }
 
 
-    private void handleImids(int type, JSONArray array) {
-        if (!ListUtils.isEmpty(im_ids)) im_ids.clear();
-        String emcode = "";
-        for (int i = 0; i < array.size(); i++) {
-            if (type == 1 || type == 2) {
-                emcode = array.getJSONObject(i).getString("JP_LAUNCHERID");
-            } else if (type == 3) {
-                emcode = array.getJSONObject(i).getString("JP_NODEDEALMAN");
-            }
-            if (!StringUtil.isEmpty(emcode)) {
-                im_ids.add(getImid(ct, emcode));
-                if (i == array.size() - 1 && !ListUtils.isEmpty(im_ids)) {
-                    mAdapter.setImids(im_ids);
-                    mAdapter.notifyDataSetChanged();
-                    LogUtil.prinlnLongMsg("im_ids", im_ids.toString());
-                }
-            } else {
-                im_ids.add("");
-            }
-        }
-    }
 
     @Override
     protected void onDestroy() {
@@ -243,28 +222,6 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
 
     private DBManager manager = null;
 
-    public String getImid(Context mContext, String em_code) {
-        if (manager == null) {
-            manager = new DBManager();
-        }
-        String im_id = "";
-        try {
-            String whichsys = CommonUtil.getSharedPreferences(mContext, "erp_master");
-            String[] selectionArgs = {em_code == null ? "" : em_code, whichsys};
-            String selection = "em_code=? and whichsys=? ";
-            //获取数据库数据
-            EmployeesEntity bean = manager.selectForEmployee(selectionArgs, selection);
-            if (bean != null) {
-                im_id = String.valueOf(bean.getEm_IMID());
-                Log.i("todo", "im_id=" + im_id);
-            } else {
-                im_id = "";
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        return im_id;
-    }
 
     private int currentId;
     private TextView tv_process_un_num;
@@ -272,7 +229,6 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        Log.d("processstate","oncreate");
         setContentView(R.layout.activity_process_msg);
         initView();
     }
@@ -442,8 +398,6 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     @Override
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        LogUtil.i("onActivityResult");
-        LogUtil.i("tab_type==" + tab_type);
         if (tab_type == 1) {
             loadProcessToDo(page);
         }
@@ -539,7 +493,6 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
     @Override
     protected void onResume() {
         super.onResume();
-//        mList.setRefreshing(true);
         if (tab_type == 1) {
             voiceSearchView.setText("");
             initData();
@@ -550,22 +503,17 @@ public class ProcessMsgActivity extends BaseActivity implements View.OnClickList
 
     public class ProcessAdapter extends BaseAdapter implements Filterable {
 
-        private Context ct;
         private LayoutInflater inflater;
         private JSONArray originArray;
         private JSONArray jsonArray;
         private List<String> imids;
 
-        public List<String> getImids() {
-            return imids;
-        }
 
         public void setImids(List<String> imids) {
             this.imids = imids;
         }
 
         ProcessAdapter(Context ct, JSONArray array) {
-            this.ct = ct;
             this.jsonArray = array;
             this.originArray = array;
             this.inflater = LayoutInflater.from(ct);

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

@@ -12,9 +12,12 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.webkit.WebView;
+import android.widget.CompoundButton;
 import android.widget.EditText;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
+import android.widget.RadioButton;
+import android.widget.RadioGroup;
 import android.widget.TextView;
 
 import com.afollestad.materialdialogs.MaterialDialog;
@@ -369,6 +372,7 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
     }
 
     private void bindBaseRVView(final BaseRVViewHodler holder, final int position) {
+        holder.valuesRG.setVisibility(View.GONE);
         final Approval approval = approvals.get(position);
         holder.captionTV.setText(approval.getCaption());
         holder.oldValueTv.setVisibility(View.GONE);
@@ -415,6 +419,19 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
                         }
                     });
                     break;
+                case 5:
+                    setViewShowAble(false, holder.valueEt);
+                    setViewShowAble(true, holder.valuesRG);
+                    if (approval.getValues().equals("是") || approval.getValues().equals("0")) {
+                        holder.yesRB.setChecked(true);
+                        holder.notRB.setChecked(false);
+                    } else {
+                        holder.yesRB.setChecked(false);
+                        holder.notRB.setChecked(true);
+                    }
+                    holder.valuesRG.setTag(position);
+                    holder.valuesRG.setOnCheckedChangeListener(mOnCheckedChangeListener);
+                    break;
                 case 1:
                     holder.valueEt.setInputType(InputType.TYPE_CLASS_NUMBER);
                     holder.valueEt.addTextChangedListener(new TextChangListener(holder, position));
@@ -447,6 +464,34 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
         }
     }
 
+    private RadioGroup.OnCheckedChangeListener mOnCheckedChangeListener = new RadioGroup.OnCheckedChangeListener() {
+        @Override
+        public void onCheckedChanged(RadioGroup group, int checkedId) {
+            if (group.getTag() != null && group.getTag() instanceof Integer) {
+                int position = (int) group.getTag();
+                if (ListUtils.getSize(approvals) > position) {
+                    Approval approval = approvals.get(position);
+                    if (approval.inputType() == 5) {
+                        LogUtil.i("checkedId"+approval.getValues());
+                        if (checkedId == R.id.yesRB) {
+                            if (!"是".equals(approval.getValues())){
+                                approval.setValues("是");
+//                                notifyItemChanged(position);
+                            }
+                            LogUtil.i("checkedId == R.id.yesRB ");
+                        } else {
+                            LogUtil.i("checkedId !!!!!!= R.id.yesRB ");
+                            if (!"否".equals(approval.getValues())){
+                                approval.setValues("否");
+//                                notifyItemChanged(position);
+                            }
+                        }
+
+                    }
+                }
+            }
+        }
+    };
 
     private CharSequence getOldValues(String oldValues, String values) {
         return Html.fromHtml("<font color='#f10813'>" + values + "</font>");
@@ -612,6 +657,8 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
     private class BaseRVViewHodler extends BaseViewHolder {
         WebView valueWeb;
         TextView oldValueTv;
+        RadioGroup valuesRG;
+        RadioButton yesRB, notRB;
 
         public BaseRVViewHodler(ViewGroup parent) {
             this(LayoutInflater.from(ct).inflate(R.layout.item_approval_rv, parent, false));
@@ -620,6 +667,9 @@ public class ApprovalAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
         public BaseRVViewHodler(View itemView) {
             super(itemView);
             valueWeb = (WebView) itemView.findViewById(R.id.valueWeb);
+            valuesRG = itemView.findViewById(R.id.valuesRG);
+            yesRB = itemView.findViewById(R.id.yesRB);
+            notRB = itemView.findViewById(R.id.notRB);
             oldValueTv = (TextView) itemView.findViewById(R.id.oldValueTv);
             oldValueTv.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG); //删除线
             oldValueTv.getPaint().setAntiAlias(true);// 抗锯齿

+ 135 - 0
app_modular/appmessages/src/main/java/com/modular/appmessages/model/ApprovalList.java

@@ -0,0 +1,135 @@
+package com.modular.appmessages.model;
+
+import android.text.TextUtils;
+
+/**
+ * Created by Bitlike on 2018/1/31.
+ */
+
+public class ApprovalList {
+
+
+    public String getLauncherName() {
+        return launcherName;
+    }
+
+    public void setLauncherName(String launcherName) {
+        this.launcherName = launcherName;
+    }
+
+    public String getImid() {
+        return imid;
+    }
+
+    public void setImid(String imid) {
+        this.imid = imid;
+    }
+
+    public String getNodeId() {
+        return nodeId;
+    }
+
+    public void setNodeId(String nodeId) {
+        this.nodeId = nodeId;
+    }
+
+    public String getCaller() {
+        return caller;
+    }
+
+    public void setCaller(String caller) {
+        this.caller = caller;
+    }
+
+    public String getKeyValue() {
+        return keyValue;
+    }
+
+    public void setKeyValue(String keyValue) {
+        this.keyValue = keyValue;
+    }
+
+    public String getMaster() {
+        return master;
+    }
+
+    public void setMaster(String master) {
+        this.master = master;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getNodeDealMan() {
+        return nodeDealMan;
+    }
+
+    public void setNodeDealMan(String nodeDealMan) {
+        this.nodeDealMan = nodeDealMan;
+    }
+
+    public long getDealTime() {
+        return dealTime;
+    }
+
+    public void setDealTime(long dealTime) {
+        this.dealTime = dealTime;
+    }
+
+    public String getDealResult() {
+        return dealResult;
+    }
+
+    public void setDealResult(String dealResult) {
+        this.dealResult = dealResult;
+    }
+
+    public String getOperatedDescription() {
+        return operatedDescription;
+    }
+
+    public void setOperatedDescription(String operatedDescription) {
+        this.operatedDescription = operatedDescription;
+    }
+
+    private String imid;
+    private String nodeId;
+    private String caller;
+    private String keyValue;
+    private String master;
+    private String name;//审批名称
+    private String status;//状态
+    private String launcherName;//发起人名称
+    private String nodeDealMan;//节点处理人
+    private long dealTime;//处理时间
+    private String dealResult;//处理结果
+    private String operatedDescription;//变更处理人
+
+    public boolean hasContext(CharSequence constraint) {
+        return contain(constraint, imid, nodeId, caller, keyValue, master, name,
+                status, launcherName, nodeDealMan, dealResult, operatedDescription);
+    }
+
+    private boolean contain(CharSequence constraint, CharSequence... main) {
+        if (main == null || main.length <= 0) return false;
+        for (CharSequence e : main) {
+            if (!TextUtils.isEmpty(e)
+                    && e.toString().toUpperCase().contains(constraint.toString().toUpperCase()))
+                return true;
+        }
+        return false;
+    }
+}

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

@@ -34,6 +34,7 @@ import com.uas.appworks.OA.erp.activity.form.DataFormFieldActivity;
 import com.core.widget.view.selectcalendar.bean.Data;
 
 import java.math.BigDecimal;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -864,7 +865,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
             if (!isMain) {
                 String findTionName = JSONUtil.getText(config, "DG_FINDFUNCTIONNAME");
                 String renderer = JSONUtil.getText(config, "DG_RENDERER");
-                if (!StringUtil.isEmpty(findTionName)) {
+                if (!StringUtil.isEmpty(findTionName) && findTionName.contains("|")) {
                     int hhitem = findTionName.indexOf('|');
                     String gCaller = findTionName.substring(0, hhitem);
                     String coreKey = findTionName.substring(hhitem + 1, findTionName.length());
@@ -876,7 +877,7 @@ public class ApprovaPresenter implements OnHttpResultListener {
                     renderer = getOperator(renderer, data);
                     double val = MathUtil.eval(renderer);
                     if (val != Double.NEGATIVE_INFINITY && val != Double.POSITIVE_INFINITY) {
-                        newValues = String.valueOf(val);
+                        newValues = getDecimalFormat(val);
                     }
                 }
             }
@@ -966,7 +967,8 @@ public class ApprovaPresenter implements OnHttpResultListener {
             if ((!approval.isNeerInput() && StringUtil.isEmpty(approval.getValues())) || !showAble || approval.getValues().equals("null") || !showAble || approval.getValues().equals("(null)")) {
                 continue;//如果不是要输入的对象,同时显示值为空,需要隐藏去
             }
-            if (mergeAble && !approval.isDBFind()) {
+            //合并字段
+            if (mergeAble && !approval.isDBFind() && !approval.isNeerInput()) {
                 String valueTagKey = JSONUtil.getText(config, "FD_LOGICTYPE", "DG_LOGICTYPE");//获取第二个值的key
                 if (!StringUtil.isEmpty(valueTagKey)) {
                     String valueTag = JSONUtil.getText(data, valueTagKey);
@@ -1078,6 +1080,15 @@ public class ApprovaPresenter implements OnHttpResultListener {
         return approval;
     }
 
+    private DecimalFormat column2DF;
+
+    private String getDecimalFormat(double val) throws Exception {
+        if (column2DF == null) {
+            column2DF = new DecimalFormat("######0.00");
+        }
+        return column2DF.format(val);
+    }
+
     /**
      * itemData.caption //处理人名称
      * itemData.type //处理人编号
@@ -1598,45 +1609,5 @@ public class ApprovaPresenter implements OnHttpResultListener {
             }
         });
     }
-/*
-    private synchronized void setData2ListThread(final int type, List<Approval> newApprovals) {
-        final List<Approval> merges = new ArrayList<>();
-        if (!ListUtils.isEmpty(approvals)) {
-            if (type == Approval.TITLE) {
-                if (approvals.get(0).getType() == Approval.TITLE) {
-                    approvals.remove(0);
-                }
-                merges.addAll(newApprovals);
-                merges.addAll(approvals);
-            } else {
-                boolean added = false;
-                for (int i = 0; i < approvals.size(); i++) {
-                    int oldType = approvals.get(i).getType();
-                    if (!added && ((oldType != Approval.TAG && oldType > type)
-                            || oldType == Approval.TAG && approvals.size() > i + 1 && approvals.get(i + 1).getType() > type)) {
-                        merges.addAll(i, newApprovals);
-                        added = true;
-                    }
-                    merges.add(approvals.get(i));
-                }
-                if (!added) {
-                    merges.addAll(newApprovals);
-                }
-            }
-        } else {
-            merges.addAll(newApprovals);
-        }
-        approvals = merges;
-        OAHttpHelper.getInstance().post(new Runnable() {
-            @Override
-            public void run() {
-                if (type == Approval.TITLE) {
-                    iApproval.showOpinion();
-                }
-                iApproval.showModels(merges, historyNodes);
 
-            }
-        });
-    }
-    */
 }

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

@@ -43,6 +43,7 @@ import com.core.utils.sortlist.PingYinUtil;
 import com.core.xmpp.dao.ChatMessageDao;
 import com.core.xmpp.dao.FriendDao;
 import com.modular.appmessages.R;
+import com.modular.appmessages.activity.ApprovalListActivity;
 import com.modular.appmessages.activity.BusinessTargetsActivity;
 import com.modular.appmessages.activity.MsgsSecondCommonActivity;
 import com.modular.appmessages.activity.ProcessB2BActivity;
@@ -1245,7 +1246,7 @@ public class MessagePresenter implements OnHttpResultListener {
                 if (isB2b) {
                     ct.startActivity(new Intent(ct, ProcessB2BActivity.class));
                 } else {
-                    ct.startActivity(new Intent(ct, ProcessMsgActivity.class));
+                    ct.startActivity(new Intent(ct, ApprovalListActivity.class));
                 }
                 break;
             case 5:

+ 1 - 0
app_modular/appmessages/src/main/res/layout/activity_message_web.xml

@@ -40,6 +40,7 @@
 
         <com.module.recyclerlibrary.ui.refresh.webempty.EmptyRefreshLayout
             android:layout_width="match_parent"
+            android:id="@+id/mEmptyRefreshLayout"
             android:layout_height="match_parent"
             app:fectiveScroll="0dp">
 

+ 85 - 6
app_modular/apputils/src/main/java/com/modular/apputils/activity/BaseNetActivity.java

@@ -1,5 +1,6 @@
 package com.modular.apputils.activity;
 
+import android.Manifest;
 import android.app.Activity;
 import android.content.pm.ActivityInfo;
 import android.content.pm.PackageManager;
@@ -7,6 +8,7 @@ import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.os.Build;
 import android.os.Bundle;
+import android.os.Environment;
 import android.support.annotation.NonNull;
 import android.support.v4.app.ActivityCompat;
 import android.support.v4.content.ContextCompat;
@@ -14,13 +16,22 @@ import android.util.DisplayMetrics;
 import android.util.Log;
 import android.util.SparseArray;
 import android.view.View;
+import android.widget.Toast;
 
+import com.alibaba.fastjson.JSON;
 import com.common.LogUtil;
 import com.common.data.StringUtil;
 import com.common.preferences.PreferenceUtils;
+import com.common.thread.ThreadPool;
 import com.core.app.ActionBackActivity;
+import com.core.app.MyApplication;
+import com.core.net.http.HttpUtil;
 import com.core.utils.CommonUtil;
 import com.core.widget.CustomProgressDialog;
+import com.lidroid.xutils.HttpUtils;
+import com.lidroid.xutils.exception.HttpException;
+import com.lidroid.xutils.http.ResponseInfo;
+import com.lidroid.xutils.http.callback.RequestCallBack;
 import com.me.network.app.http.HttpClient;
 import com.me.network.app.http.rx.Result2Listener;
 import com.me.network.app.http.rx.ResultSubscriber;
@@ -29,6 +40,12 @@ import com.modular.apputils.network.Parameter;
 import com.modular.apputils.network.Tags;
 import com.umeng.analytics.MobclickAgent;
 
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.util.Locale;
 
 
@@ -117,13 +134,21 @@ public abstract class BaseNetActivity extends ActionBackActivity {
             if (parameter.autoProgress()) {
                 showProgress();
             }
+            HttpClient mHttpClient = httpBuilder.build();
             if (parameter.showLog()) {
-                LogUtil.prinlnLongMsg("SmartHttp", parameter.toString());
+                LogUtil.prinlnLongMsg("SmartHttp", "url=" + httpClient.getBaseUrl() + mHttpClient.getBaseUrl());
+                LogUtil.prinlnLongMsg("SmartHttp", "params=" + JSON.toJSONString(parameter.getParams()));
+                LogUtil.prinlnLongMsg("SmartHttp", "headers=" + JSON.toJSONString(parameter.getHeaders()));
+                if (parameter.isSaveLog()) {
+                    deleteRequest();
+                    saveRequest("url=" + httpClient.getBaseUrl() + mHttpClient.getBaseUrl() + "\n"
+                            , "params=" + JSON.toJSONString(parameter.getParams()) + "\n"
+                            , "headers=" + JSON.toJSONString(parameter.getHeaders()) + "\n");
+                }
             }
-            httpClient.Api().send(httpBuilder.build(), new ResultSubscriber<>(new Result2Listener<Object>() {
+            httpClient.Api().send(mHttpClient, new ResultSubscriber<>(new Result2Listener<Object>() {
                 @Override
                 public void onResponse(Object o) {
-                    LogUtil.i("onResponse oooo=" + o.toString());
                     if (onHttpListener != null) try {
                         Tags tags = parameter.getTag();
                         int record = 0;
@@ -132,7 +157,10 @@ public abstract class BaseNetActivity extends ActionBackActivity {
                         }
                         String message = o.toString();
                         if (parameter.showLog()) {
-                            LogUtil.prinlnLongMsg("SmartHttp", message);
+                            LogUtil.prinlnLongMsg("SmartHttp", "onResponse=" + message);
+                            if (parameter.isSaveLog()) {
+                                saveRequest("onResponse=" + message + "\n");
+                            }
                         }
                         onHttpListener.onSuccess(record, message, tags);
                     } catch (Exception e) {
@@ -146,7 +174,6 @@ public abstract class BaseNetActivity extends ActionBackActivity {
 
                 @Override
                 public void onFailure(Object t) {
-                    LogUtil.i("onFailure oooo=" + t.toString());
                     if (onHttpListener != null) try {
                         Tags tags = parameter.getTag();
                         int record = 0;
@@ -155,7 +182,7 @@ public abstract class BaseNetActivity extends ActionBackActivity {
                         }
                         String message = t.toString();
                         if (parameter.showLog()) {
-                            LogUtil.prinlnLongMsg("SmartHttp", message);
+                            LogUtil.prinlnLongMsg("SmartHttp", "onFailure=" + message);
                         }
                         onHttpListener.onFailure(record, message, tags);
                     } catch (Exception e) {
@@ -181,6 +208,58 @@ public abstract class BaseNetActivity extends ActionBackActivity {
         }
     }
 
+    private void deleteRequest() {
+        try {
+            final String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/uu/download";
+            File file = new File(path);
+            String fileName = "requestLog.txt";
+            if (!file.exists()) {
+                return;
+            }
+            file = new File(path + "/" + fileName);
+            if (file.exists()) {
+                file.delete();
+            }
+        } catch (Exception e) {
+
+        }
+    }
+
+    private void saveRequest(final String... message) {
+        requestPermission(Manifest.permission.READ_EXTERNAL_STORAGE, new Runnable() {
+            @Override
+            public void run() {
+                // 判断是否有SD卡
+                ThreadPool.getThreadPool().addTask(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (message != null && message.length > 0) try {
+                            if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
+                                final String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/uu/download";
+                                //如果存在文件,不在下载
+                                File file = new File(path);
+                                String fileName = "requestLog.txt";
+                                if (!file.exists()) {
+                                    file.mkdirs();
+                                }
+                                file = new File(path + "/" + fileName);
+                                if (!file.exists()) {
+                                    file.createNewFile();
+                                }
+                                BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));
+                                for (String e : message) {
+                                    out.write(e + "\n");
+                                }
+                                out.close();
+                            }
+                        } catch (Exception e) {
+
+                        }
+                    }
+                });
+            }
+        }, null);
+    }
 
     /*****************************显示进度框***************************************/
     protected void showProgress() {

+ 5 - 3
app_modular/apputils/src/main/java/com/modular/apputils/activity/SelectNetAcitivty.java

@@ -177,7 +177,7 @@ public class SelectNetAcitivty extends OABaseActivity {
             caller = intent.getStringExtra("caller");
             gCaller = intent.getStringExtra("gCaller");
             corekey = intent.getStringExtra("corekey");
-            isDevice = intent.getBooleanExtra("isDevice",false);
+            isDevice = intent.getBooleanExtra("isDevice", false);
         }
         String baseUrl = CommonUtil.getAppBaseUrl(this);
         String sessionId = CommonUtil.getSharedPreferences(this, "sessionId");
@@ -294,7 +294,7 @@ public class SelectNetAcitivty extends OABaseActivity {
 
 
     private void setData2Adapter(JSONArray data, JSONArray dbfinds) throws Exception {
-         Map<String, String> configMap = new LinkedHashMap<>();
+        Map<String, String> configMap = new LinkedHashMap<>();
         //获取配置
         JSONObject config = null;
         String fieldKeyLike = null;
@@ -364,7 +364,9 @@ public class SelectNetAcitivty extends OABaseActivity {
     private <T> String getShowName(Map<String, T> object) throws Exception {
         StringBuilder builder = new StringBuilder();
         for (Map.Entry<String, T> e : object.entrySet()) {
-            builder.append(e.getValue() + ",");
+            if (!TextUtils.isEmpty(e.getValue() + "")) {
+                builder.append(e.getValue() + ",");
+            }
         }
         StringUtil.removieLast(builder);
         return builder.toString();

+ 1 - 2
app_modular/apputils/src/main/java/com/modular/apputils/activity/SimpleWebActivity.java

@@ -52,8 +52,7 @@ public class SimpleWebActivity extends OABaseActivity implements ReaderCallback
         webView.getSettings().setDatabaseEnabled(true);
         webView.getSettings().setAppCacheEnabled(true);
         webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
-
-
+        
         Intent intent = getIntent();
         String url = intent.getStringExtra("url");
         getSupportActionBar().setTitle(intent.getStringExtra("p"));

+ 11 - 0
app_modular/apputils/src/main/java/com/modular/apputils/network/Parameter.java

@@ -33,6 +33,8 @@ public class Parameter {
     private Tags tag;
     private boolean autoProgress = false;
     private boolean showLog = false;
+    private boolean saveLog;
+
 
     @Override
     public String toString() {
@@ -45,6 +47,10 @@ public class Parameter {
         headers = new HashMap<>();
     }
 
+    public boolean isSaveLog() {
+        return saveLog;
+    }
+
     public boolean showLog() {
         return showLog;
     }
@@ -134,6 +140,11 @@ public class Parameter {
             return this;
         }
 
+        public Builder saveLog(boolean saveLog) {
+            this.request.saveLog = saveLog;
+            return this;
+        }
+
         public Builder addSuperParams(String key, Object value) {
             if (!this.request.getParams().containsKey(key)) {
                 return addParams(key, value);

+ 3 - 2
app_modular/apputils/src/main/java/com/modular/apputils/utils/SwitchUtil.java

@@ -1,6 +1,7 @@
 package com.modular.apputils.utils;
 
 
+import com.common.config.BaseConfig;
 
 /**
  * Created by Bitlike on 2017/11/22.
@@ -8,7 +9,7 @@ package com.modular.apputils.utils;
 
 public class SwitchUtil {
     public static boolean showYiyuanjuan() {
-        return  false;
+        return BaseConfig.isDebug();
     }
 
     public static boolean showShebeiguanli() {
@@ -16,7 +17,7 @@ public class SwitchUtil {
     }
 
     public static boolean newFeePlease() {
-        return false;
+        return BaseConfig.isDebug();
     }
 
 

+ 42 - 1
app_modular/appworks/src/main/java/com/uas/appworks/CRM/erp/activity/DeviceDataFormAddActivity.java

@@ -129,7 +129,8 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                     if (!ListUtils.isEmpty(mDatas)) mDatas.clear();
                     if (!ListUtils.isEmpty(mDatasNet)) mDatasNet.clear();
                     if (StringUtil.isEmpty(result)) return;
-                    LogUtil.prinlnLongMsg("result:", result);
+
+
                     JSONArray forms = JSON.parseObject(result).getJSONObject("data").getJSONArray("formdetail");
                     grids = JSON.parseObject(result).getJSONObject("data").getJSONArray("gridetail");
                     //主表分组
@@ -186,6 +187,30 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
                                 if (data.getName().equals("设备编号")) {
                                     data.setValue(noCode);
                                 }
+                                if (data.getName().equals("申请人编号")) {
+                                    data.setValue(CommonUtil.getEmcode());
+                                }
+                                if (data.getName().equals("申请人名称")) {
+                                    data.setValue(CommonUtil.getName());
+                                }
+                                if (data.getType().equals("D")) {
+                                    data.setValue(DateFormatUtil.long2Str(DateFormatUtil.YMD_HMS));
+                                }
+
+                                if (data.getField().equals("dc_class")) {
+                                    JSONArray combostore = JSONUtil.getJSONArray(items, "COMBOSTORE");
+                                    if (!ListUtils.isEmpty(combostore)) {
+                                        JSONObject combo = combostore.getJSONObject(0);
+                                        if (combo != null) {
+                                            String dcValue = JSONUtil.getText(combo, "DLC_VALUE");
+                                            String dcDisplay = JSONUtil.getText(combo, "DLC_DISPLAY");
+                                            data.setDisplayValue(dcDisplay);
+                                            data.setValue(dcValue);
+                                        }
+                                    }
+                                }
+
+
                                 data.setGroupId(formGroupId);
                                 data.setGroup(items.getString("fd_group"));
                                 data.setIsDefault(items.getIntValue("mfd_isdefault"));
@@ -621,6 +646,22 @@ public class DeviceDataFormAddActivity extends BaseActivity implements View.OnCl
         }
     }
 
+    private String getNameByCaller() {
+        LogUtil.i("caller=" + caller);
+        switch (caller) {
+            case "DeviceChange!Use":
+                return "使用转移";
+            case "DeviceChange!Scrap":
+                return "报废申请";
+            case "DeviceChange!Maintain":
+                return "保养维护";
+            case "DeviceChange!Inspect":
+                return "故障送检";
+            default:
+                return "";
+        }
+    }
+
     private void initIds() {
         lv_datas = (ListViewInScroller) findViewById(R.id.lv_datas);
         click_btn = (Button) findViewById(R.id.click_btn);

+ 17 - 10
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/activity/BusinessTravelActivity.java

@@ -1,5 +1,6 @@
 package com.uas.appworks.OA.platform.activity;
 
+import android.content.Intent;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 
@@ -30,7 +31,6 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
     private BaseRefreshLayout mRefreshLayout;
     private RecyclerView mRecyclerView;
     private BusinessTravelAdapter mAdapter;
-    private int page = 1;
 
     @Override
     protected int getLayoutId() {
@@ -40,22 +40,25 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
     @Override
     protected void init() throws Exception {
         initView();
-        loadData(page = 1);
+        loadData();
     }
 
+
+
     @Override
     protected String getBaseUrl() {
         return CommonUtil.getAppBaseUrl(BaseConfig.getContext());
     }
 
     private void initView() {
+        LogUtil.i("BusinessTravelActivity");
         mRefreshLayout = findViewById(R.id.mRefreshLayout);
         mRecyclerView = findViewById(R.id.mRecyclerView);
         mRefreshLayout.setEnabledPullUp(false);
         mRefreshLayout.setOnRefreshListener(new BaseRefreshLayout.onRefreshListener() {
             @Override
             public void onRefresh() {
-                loadData(page = 1);
+                loadData();
             }
 
             @Override
@@ -66,7 +69,7 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
     }
 
 
-    public void loadData(int page) {
+    public void loadData() {
         if (!mRefreshLayout.isRefreshing()) {
             showProgress();
         }
@@ -88,7 +91,7 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
 
     @Override
     public void onFailure(int what, String message, Tags tags) throws Exception {
-        handlerData(TestStr.FEEPLEASE);
+
         mRefreshLayout.stopRefresh();
         dismissProgress();
     }
@@ -122,11 +125,15 @@ public class BusinessTravelActivity extends BaseNetActivity implements OnSmartHt
             mRecyclerView.setLayoutManager(new LinearLayoutManager(ct));
             mRecyclerView.setAdapter(mAdapter);
         } else {
-            if (page == 1) {
-                mAdapter.setModels(models);
-            } else {
-                mAdapter.addModels(models);
-            }
+            mAdapter.setModels(models);
+        }
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (requestCode == 0x21 && resultCode == 0x21) {
+            loadData();
         }
     }
 }

+ 44 - 26
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/adapter/BusinessTravelAdapter.java

@@ -16,6 +16,7 @@ import com.common.data.JSONUtil;
 import com.common.data.ListUtils;
 import com.common.data.StringUtil;
 import com.common.hmac.Md5Util;
+import com.core.app.MyApplication;
 import com.core.utils.CommonUtil;
 import com.core.utils.IntentUtils;
 import com.modular.apputils.widget.TravelDirectionView;
@@ -101,10 +102,10 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
     }
 
     private final String DONE_SUBMIT = "预约/订票";
-    private final String DONE_CANCEL = "取消预约";
+    private final String DONE_CANCEL = "查看详情";
 
     private void bindBaseView(BaseViewHlder holder, BusinessTravel model, int position) {
-        holder.codeTv.setText(model.getTitleAndCode() );
+        holder.codeTv.setText(model.getTitleAndCode());
         holder.statusTv.setText(model.getStatus());
         holder.nameTv.setText(currentName == null ? "**" : currentName);
         holder.idCardTv.setText(model.getCttpid());
@@ -147,9 +148,9 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
         holder.toTimeTv.setText(DateFormatUtil.long2Str(model.getEndTime(), "HH:mm"));
         //行程
         holder.tripTv.setText(fromCity + "-" + toCity);
-        holder.mTravelDirectionView.setData(model.getSeat(), longTime2Time(model.getAllTime()));
+        holder.mTravelDirectionView.setData(model.getSeat(), model.getAllTime());
         //改签
-        if (StringUtil.getText(holder.dateTv).equals(DONE_CANCEL)) {
+        if (StringUtil.getText(holder.doneTv).equals(DONE_CANCEL) && 1 == 2) {
             holder.changeTv.setVisibility(View.VISIBLE);
             holder.changeTv.setBackgroundResource(R.drawable.text_frame_radian_hint_bg);
             holder.changeTv.setTextColor(ct.getResources().getColor(R.color.text_hine));
@@ -162,11 +163,11 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
     }
 
     private void bindHotelView(HotelViewHolder holder, BusinessTravel model) {
-        String whenLongTv = "入住: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "      离店: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "     共" + longTime2Time(model.getAllTime());
+        String whenLongTv = "入住: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "      离店: " + DateFormatUtil.long2Str(model.getStartTime(), "MM-dd") + "     共" + model.getAllTime();
         holder.whenLongTv.setText(whenLongTv);
         holder.businessNameTv.setText(model.getBusinessName());
         holder.numberTv.setText(model.getNumber() + "人");
-        holder.roomsTv.setText("1间");
+        holder.roomsTv.setText(model.getNumber() + "1间");
         holder.addressTv.setText(model.getAddress());
         holder.dateTv.setText(DateFormatUtil.long2Str(DateFormatUtil.YMD));
         holder.numberSubTv.setText(model.getNumber() + "人");
@@ -308,23 +309,47 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
     }
 
 
-    private String longTime2Time(long time) {
-        long second = time / 1000;
-        long hh = second / 3600;
-        long mm = (second % 3600) / 60;
-        return hh + "小时" + mm + "分钟";
+    private void cancel(BusinessTravel model) {
+        reserve(model);
     }
 
+    private void reserve(BusinessTravel model) {
+        Map<String, Object> map = new HashMap<>();
+        map.put("traverorderno", "RES56884");
+        map.put("product", model.getTitleCode());
+        map.put("costname", "成本中心");
+        map.put("proname", "所属项目");
+
+        //飞机
+        Map<String, String> routeMap = new HashMap<>();
+        routeMap.put("from", model.getStarting());
+        routeMap.put("fromcode", model.getStarting());
+        routeMap.put("arrive", model.getDestination());
+        routeMap.put("arrivecode", model.getDestination());
+        routeMap.put("startdata", DateFormatUtil.long2Str(model.getStartTime(), DateFormatUtil.YMD));
+        routeMap.put("arrivedate", DateFormatUtil.long2Str(model.getEndTime(), DateFormatUtil.YMD));
+        routeMap.put("isCanModify", "0");
+        map.put("route", JSON.toJSONString(routeMap));
+
+        //个人中心
+        Map<String, String> custinfoMap = new HashMap<>();
+        custinfoMap.put("backUrl", CommonUtil.getAppBaseUrl(ct));
+        custinfoMap.put("isNeedPush", "1");
+        custinfoMap.put("cusCode", CommonUtil.getMaster());
+        custinfoMap.put("emCode", CommonUtil.getEmcode());
+        custinfoMap.put("outOrderno", String.valueOf(model.getId()));
+        map.put("custinfo", JSON.toJSONString(routeMap));
 
-    private void cancel(BusinessTravel model) {
-        LogUtil.i("点击了取消预约");
-
+        String p = JSONUtil.map2JSON(map);
+        LogUtil.i("p="+p);
+        turn2Web(p);
     }
 
-    private void reserve(BusinessTravel model) {
+    private void change(BusinessTravel model) {
+        LogUtil.i("点击了改签");
         Map<String, Object> map = new HashMap<>();
         map.put("traverorderno", model.getCode());
-        map.put("product", model.getTitleCode());
+        map.put("product", "airgq");
         map.put("costname", "成本中心");
         map.put("proname", "UU互联差旅订票");
         map.put("fpd_id", model.getId());
@@ -335,17 +360,11 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
         turn2Web(p);
     }
 
-    private void change(BusinessTravel model) {
-        LogUtil.i("点击了改签");
-
-    }
-
     private void turn2Web(String p) {
-        //TODO 测试数据
-        LogUtil.i("p="+p);
+        LogUtil.i("p=" + p);
         String appkey = "y8gd87dsdkencgzk394k7s5c78io35c";
-        String username = "huangx";
         String appSceret = "e212e142a5c9e0590eefb7d9f1bc91d7";
+        String username = CommonUtil.getEmcode();
         String data = appkey + username.toUpperCase() + appSceret;
         String key = Md5Util.toMD5(appSceret).toUpperCase();
         String sign = Md5Util.toMD5(key + data);
@@ -359,8 +378,7 @@ public class BusinessTravelAdapter extends RecyclerView.Adapter<RecyclerView.Vie
             e.printStackTrace();
         }
         LogUtil.i(urlBuilder.toString());
-        IntentUtils.linkCommonWeb(ct, urlBuilder.toString());
+        IntentUtils.linkCommonWeb(ct, urlBuilder.toString(), "行旅国际", "", "", false, false, false);
     }
 
-
 }

+ 84 - 39
app_modular/appworks/src/main/java/com/uas/appworks/OA/platform/model/BusinessTravel.java

@@ -1,9 +1,12 @@
 package com.uas.appworks.OA.platform.model;
 
+import android.text.TextUtils;
+
 import com.alibaba.fastjson.JSONObject;
 import com.common.data.DateFormatUtil;
 import com.common.data.JSONUtil;
 import com.common.data.StringUtil;
+import com.common.data.TextUtil;
 
 
 /**
@@ -12,32 +15,49 @@ import com.common.data.StringUtil;
 
 public class BusinessTravel {
     public static final int TITLE = 1;
-    public static final int AIR = 2;//
+    public static final int AIR = 2;
     public static final int HOTEL = 3;
     private boolean expand;
-    private int id;
+    private int id;//明细id
     private int type;
     private int number;
-    private long allTime;
     private long startTime;
     private long endTime;
-    private String code;
-    private String starting;
-    private String destination;
-    private String status;
+    private String allTime;
+    private String code;//订单编号
+    private String status;//状态
     private String orderType;
     private String seat;
     private String realFee;
     private String expecteFee;
-    private String level;
-    private String city;
-    private String address;
+    private String level;//级别
     private String payType;
     private String businessName;
     private String remark;
     private String title;
     private String cttpid;
 
+    private String city;
+    private String address;
+    private String starting;
+    private String destination;
+
+    private String airStarting;
+    private String airStartingCode;
+    private String airDestination;
+    private String airDestinationCode;
+    private String trainStarting;
+    private String trainStartingCode;
+    private String trainDestination;
+    private String trainDestinationCode;
+    private String hotelCity;
+    private String hotelCityCode;
+    private String flightCode;
+
+
+
+
+
     public BusinessTravel() {
     }
 
@@ -45,13 +65,13 @@ public class BusinessTravel {
         try {
             this.cttpid = cttpid;
             id = JSONUtil.getInt(reimbursement, "FPD_ID");
-            String type = JSONUtil.getText(reimbursement, "FPD_RES_TYPE");
+            title = JSONUtil.getText(reimbursement, "FPD_RES_TYPE");
             code = JSONUtil.getText(reimbursement, "FPD_ORDER_CODE");
             starting = JSONUtil.getText(reimbursement, "FPD_STARTING");
             destination = JSONUtil.getText(reimbursement, "FPD_DESTINATION");
             startTime = JSONUtil.getLong(reimbursement, "FPD_START_TIME");
             endTime = JSONUtil.getLong(reimbursement, "FPD_END_TIME");
-            status = JSONUtil.getText(reimbursement, "FPD_RES_STATUS");
+            status = JSONUtil.getText(reimbursement, "FPD_STATUS");
             orderType = JSONUtil.getText(reimbursement, "FPD_ORDER_TYPE");
             seat = JSONUtil.getText(reimbursement, "FPD_SEAT");
             realFee = JSONUtil.getText(reimbursement, "FPD_REAL_FEE");
@@ -59,35 +79,44 @@ public class BusinessTravel {
             level = JSONUtil.getText(reimbursement, "FPD_LEVEL");
             city = JSONUtil.getText(reimbursement, "FPD_CITY");
             address = JSONUtil.getText(reimbursement, "FPD_ADDRESS");
-            allTime = JSONUtil.getLong(reimbursement, "FPD_ALL_TIME");
-            number = JSONUtil.getInt(reimbursement, "FPD_PAY_TYPE");
-            payType = JSONUtil.getText(reimbursement, "FPD_BUSINESS_NAME");
-            businessName = JSONUtil.getText(reimbursement, "FPD_NUMBER");
+            number = JSONUtil.getInt(reimbursement, "FPD_NUMBER");
+            payType = JSONUtil.getText(reimbursement, "FPD_PAY_TYPE");
+            businessName = JSONUtil.getText(reimbursement, "FPD_BUSINESS_NAME");
             remark = JSONUtil.getText(reimbursement, "FPD_REMARK");
-            if (StringUtil.isEmpty(type)) {
-                type = "train";
+            allTime = JSONUtil.getText(reimbursement, "FPD_ALL_TIME");
+            if (StringUtil.isEmpty(title)) {
+                title = "飞机票";
             }
-            if (allTime == 0) {
-                allTime = endTime - startTime;
+            if (TextUtils.isEmpty(allTime)) {
+                allTime = longTime2Time(endTime - startTime);
             }
-
-            if (type.equals("train")) {
-                title = "火车票";
-                this.type = AIR;
-            } else if (type.equals("air")) {
-                title = "飞机票";
-                this.type = AIR;
-            } else if (type.equals("hotel")) {
-                title = "住宿";
-                this.type = HOTEL;
-            } else {
-                title = "出差单号";
-                this.type = TITLE;
+            switch (title) {
+                case "火车票":
+                case "飞机票":
+                    this.type = AIR;
+                    break;
+                case "住宿":
+                    if (TextUtils.isEmpty(allTime)) {
+                        allTime = "0天";
+                    } else {
+                        allTime += "天";
+                    }
+                    this.type = HOTEL;
+                    break;
+                default:
+                    this.type = TITLE;
             }
         } catch (Exception e) {
         }
     }
 
+    private String longTime2Time(long time) {
+        long second = time / 1000;
+        long hh = second / 3600;
+        long mm = (second % 3600) / 60;
+        return hh + "小时" + mm + "分钟";
+    }
+
     public boolean isExpand() {
         return expand;
     }
@@ -112,7 +141,7 @@ public class BusinessTravel {
         this.type = type;
     }
 
-    public long getAllTime() {
+    public String getAllTime() {
         return allTime;
     }
 
@@ -120,7 +149,7 @@ public class BusinessTravel {
         return StringUtil.isEmpty(cttpid) ? "****" : cttpid;
     }
 
-    public void setAllTime(long allTime) {
+    public void setAllTime(String allTime) {
         this.allTime = allTime;
     }
 
@@ -269,17 +298,33 @@ public class BusinessTravel {
     }
 
     public String getTitleCode() {
+        String product = "";
         switch (title) {
             case "火车票":
-                return "train";
+                product = "train";
+                break;
             case "住宿":
-                return "hotel";
+                product = "hotel";
+                break;
             case "飞机票":
-                return "air";
+                product = "air";
+                break;
+            default:
+                product = "center";
+                break;
         }
-        return title;
+//        if (status != null) switch (status) {
+//            case "待改签":
+//                product += "gq";
+//                break;
+//            case "待退票":
+//                product += "tp";aQaqaaq
+//                break;
+//        }
+        return product;
     }
 
+
     public String getTitleAndCode() {
         return title + "   " + (StringUtil.isEmpty(code) ? "未订票" : code);
     }

+ 9 - 1
app_modular/appworks/src/main/java/com/uas/appworks/activity/DeviceQueryActivity.java

@@ -370,7 +370,15 @@ public class DeviceQueryActivity extends BaseMVPActivity<WorkPlatPresenter> impl
     private void initConditions() {
         if ("Device".equals(mCaller)) {
             SchemeConditionBean schemeConditionBean
-                    = initCondition("设备类型", "de_type", "S");
+                    = initCondition("设备编号", "de_code", "S");
+            mConditionBeans.add(schemeConditionBean);
+            mfuzzyConditionBeans.add(schemeConditionBean);
+
+            schemeConditionBean = initCondition("设备名称", "de_name", "S");
+            mConditionBeans.add(schemeConditionBean);
+            mfuzzyConditionBeans.add(schemeConditionBean);
+
+            schemeConditionBean = initCondition("设备类型", "de_type", "S");
             mConditionBeans.add(schemeConditionBean);
             mfuzzyConditionBeans.add(schemeConditionBean);
 

+ 4 - 0
app_third/recyclerlibrary/src/main/java/com/module/recyclerlibrary/ui/refresh/BaseRefreshLayout.java

@@ -210,6 +210,10 @@ public abstract class BaseRefreshLayout extends ViewGroup {
         return intercept;
     }
 
+    public void setEnablePullDown(boolean mEnablePullDown) {
+        this.mEnablePullDown = mEnablePullDown;
+    }
+
     private boolean avPullDownIntercept(View child) {
         boolean intercept = true;
         AdapterView adapterChild = (AdapterView) child;

+ 7 - 2
version.gradle

@@ -49,7 +49,8 @@ ext {
             bannerVersion                       : '1.4.10',
             smartRefreshLayoutVersion           : '1.0.4',
             rxJava2Version                      : '2.0.7',
-            rxAndroid2Version                   : '2.0.1'
+            rxAndroid2Version                   : '2.0.1',
+            bottomsheetVersion                  : '1.5.0'
     ]
 
     deps = [
@@ -104,7 +105,11 @@ ext {
             smartRefreshHeader           : 'com.scwang.smartrefresh:SmartRefreshHeader:' + depsVersion.smartRefreshLayoutVersion,
             wechatSdk                    : 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+',
             rxjava2                      : 'io.reactivex.rxjava2:rxjava:' + depsVersion.rxJava2Version,
-            rxandroid2                   : 'io.reactivex.rxjava2:rxandroid:' + depsVersion.rxAndroid2Version
+            rxandroid2                   : 'io.reactivex.rxjava2:rxandroid:' + depsVersion.rxAndroid2Version,
+
+
+            bottomsheet                :'com.flipboard:bottomsheet-core:'+depsVersion.bottomsheetVersion
+            
     ]
 }