Browse Source

商家统计备份

raomeng 8 years ago
parent
commit
e842fe587d
29 changed files with 1478 additions and 735 deletions
  1. 44 31
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java
  2. 6 4
      app_core/common/build.gradle
  3. 1 1
      app_core/common/src/main/java/com/common/data/RegexUtil.java
  4. 1 0
      app_core/common/src/main/res/values-en/strings.xml
  5. 1 0
      app_core/common/src/main/res/values-zh-rCN/strings.xml
  6. 1 0
      app_core/common/src/main/res/values-zh-rTW/strings.xml
  7. 1 0
      app_core/common/src/main/res/values/strings.xml
  8. 3 0
      app_modular/appmessages/src/main/AndroidManifest.xml
  9. 361 334
      app_modular/appmessages/src/main/assets/business_statistics.json
  10. 125 2
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/BusinessTargetDetailActivity.java
  11. 149 2
      app_modular/appmessages/src/main/java/com/modular/appmessages/activity/BusinessTargetsActivity.java
  12. 64 2
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/BusinessTargetsAdapter.java
  13. 66 0
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/BusinessTargetsChildDetailAdapter.java
  14. 47 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/BusinessTargetsDetailAdapter.java
  15. 100 1
      app_modular/appmessages/src/main/java/com/modular/appmessages/model/BusinessStatisticsBean.java
  16. 282 249
      app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java
  17. 7 5
      app_modular/appmessages/src/main/res/layout/activity_business_target_detail.xml
  18. 7 5
      app_modular/appmessages/src/main/res/layout/activity_business_targets.xml
  19. 10 5
      app_modular/appmessages/src/main/res/layout/item_business_targets.xml
  20. 20 4
      app_modular/appmessages/src/main/res/layout/item_business_targets_child_detail.xml
  21. 9 5
      app_modular/appmessages/src/main/res/layout/item_business_targets_detail.xml
  22. 3 0
      app_modular/appmessages/src/main/res/values-en/strings.xml
  23. 3 0
      app_modular/appmessages/src/main/res/values-zh-rCN/strings.xml
  24. 3 0
      app_modular/appmessages/src/main/res/values-zh-rTW/strings.xml
  25. 3 0
      app_modular/appmessages/src/main/res/values/strings.xml
  26. 21 7
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/DailydetailsActivity.java
  27. 56 5
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/WorkDailyShowActivity.java
  28. 82 71
      app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/WorkReportAddActivity.java
  29. 2 1
      version.gradle

+ 44 - 31
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/message/MessageFragment.java

@@ -47,7 +47,6 @@ import com.modular.appmessages.model.MessageHeader;
 import com.modular.appmessages.presenter.MessagePresenter;
 import com.modular.appmessages.presenter.imp.IMessageView;
 import com.uas.appme.pedometer.view.UURanking;
-import com.uas.appme.settings.Constant.Constant;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.platform.task.TaskActivity;
 import com.xzjmyk.pm.activity.ui.platform.task.TaskB2BActivity;
@@ -252,9 +251,9 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
                 //				startActivity(new Intent(mContext, UUSportActivity.class));
                 startActivity(new Intent(mContext, UURanking.class));
 //				uustepRedtv.setVisibility(View.GONE);
-				PreferenceUtils.putBoolean(Constants.UU_STEP_RED, true);
-				break;
-		}
+                PreferenceUtils.putBoolean(Constants.UU_STEP_RED, true);
+                break;
+        }
 
     }
 
@@ -299,7 +298,7 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
         if (headAdapter != null && !ListUtils.isEmpty(headAdapter.getModels())) {
             boolean isUpdated = false;
 
-            if (type != MessagePresenter.REAL_TIME_FORM) {
+            if (type != MessagePresenter.REAL_TIME_FORM && type != MessagePresenter.BUSINESS_STATISTICS) {
                 for (MessageHeader e : headAdapter.getModels()) {
                     if (e.getType() == type) {
                         isUpdated = true;
@@ -310,33 +309,10 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
                 }
             }
 
-            if (type == MessagePresenter.REAL_TIME_FORM) {
-                boolean isExist = false;
-                int position = -1;
-                for (int i = 0; i < headAdapter.getModels().size(); i++) {
-                    MessageHeader messageHeader = headAdapter.getModels().get(i);
-                    if (messageHeader.getType() == MessagePresenter.REAL_TIME_FORM) {
-                        position = i;
-                        isExist = true;
-                        break;
-                    }
-                }
-                if (num > 0) {
-                    if (!isExist) {
-                        isUpdated = true;
-                        MessageHeader model = new MessageHeader(StringUtil.getMessage(R.string.real_time_form));
-                        model.setIcon(R.drawable.ic_real_time_form);
-                        model.setRedKey(Constants.MESSAGE_REAL_TIME);
-                        model.setType(MessagePresenter.REAL_TIME_FORM);
-                        headAdapter.getModels().add(2, model);
-                    }
-                } else {
-                    isUpdated = true;
-                    if (position >= 0 && position <= headAdapter.getModels().size()) {
-                        headAdapter.getModels().remove(position);
-                    }
-                }
+            if (type == MessagePresenter.REAL_TIME_FORM || type == MessagePresenter.BUSINESS_STATISTICS) {
+                isUpdated = updateHideOrDisplay(num, isUpdated, type);
             }
+
             if (isUpdated) {
                 headAdapter.notifyDataSetChanged();
             }
@@ -345,6 +321,43 @@ public class MessageFragment extends EasyFragment implements IMessageView, View.
         pullScrollView.onRefreshComplete();
     }
 
+    private boolean updateHideOrDisplay(int num, boolean isUpdated, int type) {
+        boolean isExist = false;
+        int position = -1;
+        for (int i = 0; i < headAdapter.getModels().size(); i++) {
+            MessageHeader messageHeader = headAdapter.getModels().get(i);
+            if (messageHeader.getType() == type) {
+                position = i;
+                isExist = true;
+                break;
+            }
+        }
+        if (num > 0) {
+            if (!isExist) {
+                isUpdated = true;
+                if (type == MessagePresenter.REAL_TIME_FORM) {
+                    MessageHeader model = new MessageHeader(getString(R.string.real_time_form));
+                    model.setIcon(R.drawable.ic_real_time_form);
+                    model.setRedKey(Constants.MESSAGE_REAL_TIME);
+                    model.setType(MessagePresenter.REAL_TIME_FORM);
+                    headAdapter.getModels().add(2, model);
+                } else if (type == MessagePresenter.BUSINESS_STATISTICS) {
+                    MessageHeader model = new MessageHeader(StringUtil.getMessage(R.string.business_statistics));
+                    model.setIcon(R.drawable.ic_business_statistics);
+                    model.setRedKey(Constants.MESSAGE_BUSINESS_STATISTICS);
+                    model.setType(MessagePresenter.BUSINESS_STATISTICS);
+                    headAdapter.getModels().add(headAdapter.getModels().size() - 1, model);
+                }
+            }
+        } else {
+            isUpdated = true;
+            if (position >= 0 && position <= headAdapter.getModels().size()) {
+                headAdapter.getModels().remove(position);
+            }
+        }
+        return isUpdated;
+    }
+
     @Override
     public void changeNet(boolean workConnected) {
         if (message_net_set != null) {

+ 6 - 4
app_core/common/build.gradle

@@ -28,7 +28,8 @@ dependencies {
     compile deps.fastjson
     compile deps.materialDialogs
     compile deps.multidex
-    compile(deps.stetho) {
+    compile(deps.stetho)
+    {
         force = true
     }
     compile deps.gif
@@ -38,9 +39,9 @@ dependencies {
     compile deps.photoView
     compile deps.stickyListHeaders
     compile deps.stickyGridHeaders
-    compile 'com.squareup.okhttp3:okhttp:3.9.0'
-
+//    compile deps.vlayout
 
+    compile 'com.squareup.okhttp3:okhttp:3.9.0'
     compile project(':network')
     compile project(':pullToRefershLibraryMy')
     compile project(':MPAndroidChart')
@@ -52,5 +53,6 @@ dependencies {
     compile project(':lib-zxing')
     compile project(':library-refreshlayout')
     compile project(':recyclerlibrary')
-    compile files('libs/hellocharts-library-1.5.8.jar')  //折线库
+    compile files('libs/hellocharts-library-1.5.8.jar')
+    //折线库
 }

+ 1 - 1
app_core/common/src/main/java/com/common/data/RegexUtil.java

@@ -8,7 +8,7 @@ import java.util.regex.Pattern;
  */
 public class RegexUtil {
     public static final String REGEX_EMAIL = "\\w+@\\w+\\.[a-z]+(\\.[a-z]+)?";//邮箱
-    public static final String REGEX_MOBILE = "(\\+\\d+)?1[3458]\\d{9}$";//手机号码
+    public static final String REGEX_MOBILE = "(\\+\\d+)?1[34578]\\d{9}$";//手机号码
     public static final String REGEX_NUMBER = "^-?[1-9]\\d*$";//数字
     public static final String REGEX_FLOAT = "\\-?[1-9]\\d+(\\.\\d+)?";//小数
     public static final String REGEX_CHINESE = "[^\u4e00-\u9fa5]";//中文

+ 1 - 0
app_core/common/src/main/res/values-en/strings.xml

@@ -1433,4 +1433,5 @@
     <string name="app_time_selecting">选择时间</string>
     <string name="qzone_edit_weekly">编写周报</string>
     <string name="qzone_edit_monthly">编写月报</string>
+    <string name="business_statistics">商家统计</string>
 </resources>

+ 1 - 0
app_core/common/src/main/res/values-zh-rCN/strings.xml

@@ -1546,4 +1546,5 @@
     <string name="app_time_selecting">选择时间</string>
     <string name="qzone_edit_weekly">编写周报</string>
     <string name="qzone_edit_monthly">编写月报</string>
+    <string name="business_statistics">商家统计</string>
 </resources>

+ 1 - 0
app_core/common/src/main/res/values-zh-rTW/strings.xml

@@ -1534,4 +1534,5 @@
     <string name="app_time_selecting">选择时间</string>
     <string name="qzone_edit_weekly">编写周报</string>
     <string name="qzone_edit_monthly">编写月报</string>
+    <string name="business_statistics">商家统计</string>
 </resources>

+ 1 - 0
app_core/common/src/main/res/values/strings.xml

@@ -1884,5 +1884,6 @@
     <string name="app_time_selecting">选择时间</string>
     <string name="qzone_edit_weekly">编写周报</string>
     <string name="qzone_edit_monthly">编写月报</string>
+    <string name="business_statistics">商家统计</string>
 
 </resources>

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

@@ -44,6 +44,9 @@
         </activity>
 
         <activity android:name=".activity.RealTimeFormActivity" />
+
+        <activity android:name=".activity.BusinessTargetsActivity" />
+        <activity android:name=".activity.BusinessTargetDetailActivity" />
     </application>
 
 </manifest>

+ 361 - 334
app_modular/appmessages/src/main/assets/business_statistics.json

@@ -1,336 +1,363 @@
 [
-	{
-		industry:"KTV",
-		targets:[
-			{	
-				targetName:"房间预订时数列表",
-				typelist:"0",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"时数",
-						detailValue:""
-					},
-					{
-						detailName:"房间名称",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"订单数量",
-				typelist:"1",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"数量",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"客户资料",
-				typelist:"2",
-				targetDetails:[
-					{
-						detailName:"姓名",
-						detailValue:""
-					},
-					{
-						detailName:"电话",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					}
-				]
-			}
-		]
-	},
-	{
-		industry:"会所",
-		targets:[
-			{	
-				targetName:"技师预约时数列表",
-				typelist:"0",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					},
-					{
-						detailName:"工作时数",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"服务项目列表",
-				typelist:"1",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"项目名称",
-						detailValue:""
-					},
-					{
-						detailName:"项目预约次数",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"客户资料",
-				typelist:"2",
-				targetDetails:[
-					{
-						detailName:"姓名",
-						detailValue:""
-					},
-					{
-						detailName:"电话",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					}
-				]
-			}
-		]
-	},
-	{
-		industry:"餐饮",
-		targets:[
-			{	
-				targetName:"包房预约量",
-				typelist:"0",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"房间名称",
-						detailValue:""
-					},
-					{
-						detailName:"预约时数",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"客户资料",
-				typelist:"1",
-				targetDetails:[
-					{
-						detailName:"姓名",
-						detailValue:""
-					},
-					{
-						detailName:"电话",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					}
-				]
-			}
-		]
-	},
-	{
-		industry:"美容美发",
-		targets:[
-			{	
-				targetName:"发型师预约数量",
-				typelist:"0",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"发型师姓名",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					},
-					{
-						detailName:"当前排名",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"服务项目排名",
-				typelist:"1",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"项目名称",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					},
-					{
-						detailName:"当前排名",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"客户资料",
-				typelist:"2",
-				targetDetails:[
-					{
-						detailName:"姓名",
-						detailValue:""
-					},
-					{
-						detailName:"电话",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					}
-				]
-			}
-		]
-	},
-	{
-		industry:"运动健身",
-		targets:[
-			{	
-				targetName:"场地预约量排行榜",
-				typelist:"0",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"场地名称",
-						detailValue:""
-					},
-					{
-						detailName:"预约量",
-						detailValue:""
-					},
-					{
-						detailName:"当前排名",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"客户资料",
-				typelist:"1",
-				targetDetails:[
-					{
-						detailName:"姓名",
-						detailValue:""
-					},
-					{
-						detailName:"电话",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					}
-				]
-			}
-		]
-	},
-	{
-		industry:"医院挂号",
-		targets:[
-			{	
-				targetName:"科室预约排行榜",
-				typelist:"1",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"科室名称",
-						detailValue:""
-					},
-					{
-						detailName:"预约量",
-						detailValue:""
-					},
-					{
-						detailName:"当前排行",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"医生预约量排行",
-				typelist:"02",
-				targetDetails:[
-					{
-						detailName:"日期",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					},
-					{
-						detailName:"医生姓名",
-						detailValue:""
-					},
-					{
-						detailName:"当前排名",
-						detailValue:""
-					}
-				]
-			},
-			{	
-				targetName:"客户资料",
-				typelist:"2",
-				targetDetails:[
-					{
-						detailName:"姓名",
-						detailValue:""
-					},
-					{
-						detailName:"电话",
-						detailValue:""
-					},
-					{
-						detailName:"预约次数",
-						detailValue:""
-					}
-				]
-			}
-		]
-	}
+  {
+    "industry": "KTV",
+    "targets": [
+      {
+        "targetName": "房间预订时数列表",
+        "typelist": "0",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "时数",
+            "detailKey": "timecount",
+            "detailValue": ""
+          },
+          {
+            "detailName": "房间名称",
+            "detailKey": "sb_spname",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "订单数量列表",
+        "typelist": "1",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "数量",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "客户资料",
+        "typelist": "2",
+        "targetDetails": [
+          {
+            "detailName": "姓名",
+            "detailKey": "sb_recordor",
+            "detailValue": ""
+          },
+          {
+            "detailName": "电话",
+            "detailKey": "sb_telephone",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      }
+    ]
+  },
+  {
+    "industry": "会所",
+    "targets": [
+      {
+        "targetName": "技师预约列表",
+        "typelist": "0",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "sb_username",
+            "detailValue": ""
+          },
+          {
+            "detailName": "工作时数",
+            "detailKey": "timecount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "服务项目预约列表",
+        "typelist": "1",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "项目名称",
+            "detailKey": "sb_stname",
+            "detailValue": ""
+          },
+          {
+            "detailName": "项目预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "客户资料",
+        "typelist": "2",
+        "targetDetails": [
+          {
+            "detailName": "姓名",
+            "detailKey": "sb_recordor",
+            "detailValue": ""
+          },
+          {
+            "detailName": "电话",
+            "detailKey": "sb_telephone",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      }
+    ]
+  },
+  {
+    "industry": "餐饮",
+    "targets": [
+      {
+        "targetName": "包房预约列表",
+        "typelist": "0",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "房间名称",
+            "detailKey": "sb_spname",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约时数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "客户资料",
+        "typelist": "1",
+        "targetDetails": [
+          {
+            "detailName": "姓名",
+            "detailKey": "sb_recordor",
+            "detailValue": ""
+          },
+          {
+            "detailName": "电话",
+            "detailKey": "sb_telephone",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      }
+    ]
+  },
+  {
+    "industry": "美容美发",
+    "targets": [
+      {
+        "targetName": "店员预约列表",
+        "typelist": "0",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "发型师姓名",
+            "detailKey": "sb_username",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "服务项目预约列表",
+        "typelist": "1",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "项目名称",
+            "detailKey": "sb_stname",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "客户资料",
+        "typelist": "2",
+        "targetDetails": [
+          {
+            "detailName": "姓名",
+            "detailKey": "sb_recordor",
+            "detailValue": ""
+          },
+          {
+            "detailName": "电话",
+            "detailKey": "sb_telephone",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      }
+    ]
+  },
+  {
+    "industry": "运动健身",
+    "targets": [
+      {
+        "targetName": "场地预约列表",
+        "typelist": "0",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "场地名称",
+            "detailKey": "sb_spname",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "客户资料",
+        "typelist": "1",
+        "targetDetails": [
+          {
+            "detailName": "姓名",
+            "detailKey": "sb_recordor",
+            "detailValue": ""
+          },
+          {
+            "detailName": "电话",
+            "detailKey": "sb_telephone",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      }
+    ]
+  },
+  {
+    "industry": "医院挂号",
+    "targets": [
+      {
+        "targetName": "科室预约列表",
+        "typelist": "1",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "科室名称",
+            "detailKey": "sb_stname",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "医生预约列表",
+        "typelist": "0",
+        "targetDetails": [
+          {
+            "detailName": "日期",
+            "detailKey": "sb_recorddate",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          },
+          {
+            "detailName": "医生姓名",
+            "detailKey": "sb_username",
+            "detailValue": ""
+          }
+        ]
+      },
+      {
+        "targetName": "客户资料",
+        "typelist": "2",
+        "targetDetails": [
+          {
+            "detailName": "姓名",
+            "detailKey": "sb_recordor",
+            "detailValue": ""
+          },
+          {
+            "detailName": "电话",
+            "detailKey": "sb_telephone",
+            "detailValue": ""
+          },
+          {
+            "detailName": "预约次数",
+            "detailKey": "ordercount",
+            "detailValue": ""
+          }
+        ]
+      }
+    ]
+  }
 ]

+ 125 - 2
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/BusinessTargetDetailActivity.java

@@ -1,10 +1,133 @@
 package com.modular.appmessages.activity;
 
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.Log;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.common.data.JSONUtil;
+import com.core.app.Constants;
+import com.core.app.MyApplication;
+import com.core.base.BaseActivity;
+import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
+import com.core.widget.RecycleViewDivider;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.rx.Result2Listener;
+import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.appmessages.R;
+import com.modular.appmessages.adapter.BusinessTargetsDetailAdapter;
+import com.modular.appmessages.model.BusinessStatisticsBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author RaoMeng
- * @describe
+ * @describe 商家营业指标具体值页面
  * @date 2017/11/3 11:26
  */
 
-public class BusinessTargetDetailActivity {
+public class BusinessTargetDetailActivity extends BaseActivity {
+    private BusinessStatisticsBean.TargetsBean mTargetsBean = new BusinessStatisticsBean.TargetsBean();
+    private RecyclerView mRecycleView;
+    private RecyclerView.LayoutManager mLayoutManager;
+    private RecycleViewDivider mRecycleViewDivider;
+    private BusinessTargetsDetailAdapter mBusinessTargetsDetailAdapter;
+    private List<List<BusinessStatisticsBean.TargetsBean.TargetDetailsBean>> mTargetDetailsBeen;
+    private HttpClient mHttpClient;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_business_target_detail);
+
+        init();
+        initDatas();
+    }
+
+    private void initDatas() {
+        if (CommonUtil.isNetWorkConnected(this)) {
+            progressDialog.show();
+            obtainTotalList();
+        } else {
+            ToastUtil.showToast(this, R.string.networks_out);
+        }
+    }
+
+    private void obtainTotalList() {
+        mHttpClient.Api().send(new HttpClient.Builder()
+                .url("user/appTotalList")
+                .add("companyid", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_uu"))
+                .add("userid", MyApplication.getInstance().mLoginUser.getUserId())
+                .add("typelist", mTargetsBean.getTypelist())
+                .add("token", MyApplication.getInstance().mAccessToken)
+                .add("startdate", "")
+                .add("enddate", "")
+                .add("pageIndex", "0")
+                .header("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(MyApplication.getInstance(), "sessionId"))
+                .build(), new ResultSubscriber<>(new Result2Listener<Object>() {
+            @Override
+            public void onResponse(Object o) {
+                progressDialog.dismiss();
+                String result = o.toString();
+                Log.d("targetdetail", result);
+                if (JSONUtil.validate(result)) {
+                    JSONObject resultObject = JSON.parseObject(result);
+                    JSONArray datalistArray = resultObject.getJSONArray("datalist");
+                    if (datalistArray != null) {
+                        for (int i = 0; i < datalistArray.size(); i++) {
+                            JSONObject jsonObject = datalistArray.getJSONObject(i);
+                            List<BusinessStatisticsBean.TargetsBean.TargetDetailsBean> targetDetails = mTargetsBean.getTargetDetails();
+                            List<BusinessStatisticsBean.TargetsBean.TargetDetailsBean> myTargetDetails = new ArrayList<BusinessStatisticsBean.TargetsBean.TargetDetailsBean>();
+                            if (targetDetails != null) {
+                                for (int j = 0; j < targetDetails.size(); j++) {
+                                    BusinessStatisticsBean.TargetsBean.TargetDetailsBean targetDetailsBean = targetDetails.get(j);
+                                    BusinessStatisticsBean.TargetsBean.TargetDetailsBean myTargetDetailsBean = new BusinessStatisticsBean.TargetsBean.TargetDetailsBean();
+                                    myTargetDetailsBean.setDetailKey(targetDetailsBean.getDetailKey());
+                                    myTargetDetailsBean.setDetailName(targetDetailsBean.getDetailName());
+                                    myTargetDetailsBean.setDetailValue(JSONUtil.getText(jsonObject, targetDetailsBean.getDetailKey()));
+                                    myTargetDetails.add(myTargetDetailsBean);
+                                }
+                            }
+                            mTargetDetailsBeen.add(myTargetDetails);
+                        }
+                        mBusinessTargetsDetailAdapter.notifyDataSetChanged();
+                    } else {
+                        ToastUtil.showToast(BusinessTargetDetailActivity.this, getString(R.string.statistical_data_acquisition_failed));
+                    }
+                } else {
+                    ToastUtil.showToast(BusinessTargetDetailActivity.this, getString(R.string.statistical_data_acquisition_failed));
+                }
+            }
+
+            @Override
+            public void onFailure(Object t) {
+                progressDialog.dismiss();
+                ToastUtil.showToast(BusinessTargetDetailActivity.this, getString(R.string.statistical_data_acquisition_failed));
+            }
+        }));
+    }
+
+    private void init() {
+        Intent intent = getIntent();
+        if (intent != null) {
+            mTargetsBean = (BusinessStatisticsBean.TargetsBean) intent.getSerializableExtra("target_detail");
+            getSupportActionBar().setTitle(mTargetsBean.getTargetName());
+        }
+        mHttpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).build();
+
+        mRecycleView = (RecyclerView) findViewById(R.id.business_target_detail_rv);
+        mLayoutManager = new LinearLayoutManager(this);
+        mRecycleView.setLayoutManager(mLayoutManager);
+        mRecycleViewDivider = new RecycleViewDivider(this, LinearLayoutManager.HORIZONTAL, 10, getResources().getColor(R.color.gray_light));
+        mRecycleView.addItemDecoration(mRecycleViewDivider);
+        mTargetDetailsBeen = new ArrayList<>();
+        mBusinessTargetsDetailAdapter = new BusinessTargetsDetailAdapter(this, mTargetDetailsBeen);
+        mRecycleView.setAdapter(mBusinessTargetsDetailAdapter);
+    }
 }

+ 149 - 2
app_modular/appmessages/src/main/java/com/modular/appmessages/activity/BusinessTargetsActivity.java

@@ -1,10 +1,157 @@
 package com.modular.appmessages.activity;
 
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.common.data.JSONUtil;
+import com.common.data.ListUtils;
+import com.core.app.Constants;
+import com.core.app.MyApplication;
+import com.core.base.BaseActivity;
+import com.core.utils.CommonUtil;
+import com.core.utils.ToastUtil;
+import com.core.widget.RecycleViewDivider;
+import com.google.gson.Gson;
+import com.me.network.app.http.HttpClient;
+import com.me.network.app.http.Method;
+import com.me.network.app.http.rx.Result2Listener;
+import com.me.network.app.http.rx.ResultSubscriber;
+import com.modular.appmessages.R;
+import com.modular.appmessages.adapter.BusinessTargetsAdapter;
+import com.modular.appmessages.model.BusinessStatisticsBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author RaoMeng
- * @describe
+ * @describe 商家营业指标页面
  * @date 2017/11/3 11:25
  */
 
-public class BusinessTargetsActivity {
+public class BusinessTargetsActivity extends BaseActivity {
+    private RecyclerView mRecyclerView;
+    private HttpClient mHttpClient;
+    private String mIndustry;
+    private String mIndustrycode;
+    private RecyclerView.LayoutManager mLayoutManager;
+    private List<BusinessStatisticsBean.TargetsBean> mTargetsBeen;
+    private BusinessTargetsAdapter mBusinessTargetsAdapter;
+    private RecycleViewDivider mRecycleViewDivider;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_business_targets);
+        init();
+        initEvents();
+        initDatas();
+    }
+
+    private void init() {
+        getSupportActionBar().setTitle(R.string.company_business_targets);
+        mHttpClient = new HttpClient.Builder(Constants.IM_BASE_URL()).build(true);
+        mRecyclerView = (RecyclerView) findViewById(R.id.business_targets_rv);
+        mLayoutManager = new LinearLayoutManager(this);
+        mRecyclerView.setLayoutManager(mLayoutManager);
+        mRecycleViewDivider = new RecycleViewDivider(this, LinearLayoutManager.HORIZONTAL);
+        mRecyclerView.addItemDecoration(mRecycleViewDivider);
+        mTargetsBeen = new ArrayList<>();
+        mBusinessTargetsAdapter = new BusinessTargetsAdapter(this, mTargetsBeen);
+        mRecyclerView.setAdapter(mBusinessTargetsAdapter);
+
+    }
+
+    private void initEvents() {
+        mBusinessTargetsAdapter.setOnItemClickListener(new BusinessTargetsAdapter.OnItemClickListener() {
+            @Override
+            public void onItemClick(View view, int position) {
+                Intent intent = new Intent(BusinessTargetsActivity.this, BusinessTargetDetailActivity.class);
+                intent.putExtra("target_detail", mTargetsBeen.get(position));
+                startActivity(intent);
+            }
+        });
+    }
+
+    private void initDatas() {
+        if (CommonUtil.isNetWorkConnected(this)) {
+            progressDialog.show();
+            obtainIndustry();
+        } else {
+            ToastUtil.showToast(this, R.string.networks_out);
+        }
+    }
+
+
+    private void obtainIndustry() {
+        mHttpClient.Api().send(new HttpClient.Builder()
+                        .url("user/appCompanyType")
+                        .add("companyid", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_uu"))
+                        .add("token", MyApplication.getInstance().mAccessToken)
+                        .method(Method.GET)
+                        .build()
+                , new ResultSubscriber<>(new Result2Listener<Object>() {
+                    @Override
+                    public void onResponse(Object o) {
+                        progressDialog.dismiss();
+                        if (!JSONUtil.validate(o.toString()) || o == null) {
+                            ToastUtil.showToast(BusinessTargetsActivity.this, getString(R.string.industry_access_failure));
+                            return;
+                        }
+                        JSONArray array = JSON.parseObject(o.toString()).getJSONArray("result");
+                        if (ListUtils.isEmpty(array)) {
+                            ToastUtil.showToast(BusinessTargetsActivity.this, getString(R.string.industry_access_failure));
+                            return;
+                        }
+                        JSONObject object = array.getJSONObject(0);
+                        if (object == null) {
+                            ToastUtil.showToast(BusinessTargetsActivity.this, getString(R.string.industry_access_failure));
+                            return;
+                        }
+                        mIndustry = array.getJSONObject(0).getString("sc_industry");
+                        mIndustrycode = array.getJSONObject(0).getString("sc_industrycode");
+
+                        analysisTargets();
+                    }
+
+                    @Override
+                    public void onFailure(Object t) {
+                        progressDialog.dismiss();
+                        ToastUtil.showToast(BusinessTargetsActivity.this, getString(R.string.industry_access_failure));
+                    }
+                }));
+    }
+
+    private void analysisTargets() {
+        String statistics = CommonUtil.getAssetsJson(BusinessTargetsActivity.this, "business_statistics.json");
+        if (JSONUtil.validate(statistics)) {
+            JSONArray industryArray = JSON.parseArray(statistics);
+            if (industryArray != null) {
+                for (int i = 0; i < industryArray.size(); i++) {
+                    JSONObject industryObject = industryArray.getJSONObject(i);
+                    String industry = JSONUtil.getText(industryObject, "industry");
+                    if (industry.equals(mIndustry)) {
+                        JSONArray targetsArray = industryObject.getJSONArray("targets");
+                        Gson gson = new Gson();
+                        if (targetsArray != null) {
+                            for (int j = 0; j < targetsArray.size(); j++) {
+                                JSONObject targetObject = targetsArray.getJSONObject(j);
+                                BusinessStatisticsBean.TargetsBean targetsBean = gson.fromJson(targetObject.toJSONString(), BusinessStatisticsBean.TargetsBean.class);
+                                mTargetsBeen.add(targetsBean);
+                            }
+                            mBusinessTargetsAdapter.notifyDataSetChanged();
+                        }
+                        break;
+                    }
+                }
+
+            }
+        }
+    }
 }

+ 64 - 2
app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/BusinessTargetsAdapter.java

@@ -1,10 +1,72 @@
 package com.modular.appmessages.adapter;
 
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.modular.appmessages.R;
+import com.modular.appmessages.model.BusinessStatisticsBean;
+
+import java.util.List;
+
 /**
  * @author RaoMeng
- * @describe
+ * @describe 商业统计指标列表适配器
  * @date 2017/11/3 13:47
  */
 
-public class BusinessTargetsAdapter {
+public class BusinessTargetsAdapter extends RecyclerView.Adapter<BusinessTargetsAdapter.BusinessTargetsViewHolder> {
+    private Context mContext;
+    private List<BusinessStatisticsBean.TargetsBean> mTargetsBeen;
+    private OnItemClickListener mOnItemClickListener;
+
+    public BusinessTargetsAdapter(Context context, List<BusinessStatisticsBean.TargetsBean> targetsBeen) {
+        mContext = context;
+        mTargetsBeen = targetsBeen;
+    }
+
+    public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
+        mOnItemClickListener = onItemClickListener;
+    }
+
+    @Override
+    public BusinessTargetsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View businessTargetView = LayoutInflater.from(mContext).inflate(R.layout.item_business_targets, parent, false);
+        return new BusinessTargetsViewHolder(businessTargetView);
+    }
+
+    @Override
+    public void onBindViewHolder(BusinessTargetsViewHolder holder, final int position) {
+        holder.nameTextView.setText(mTargetsBeen.get(position).getTargetName());
+
+        if (mOnItemClickListener != null) {
+            holder.nameTextView.setOnClickListener(new View.OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    mOnItemClickListener.onItemClick(v, position);
+                }
+            });
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        return mTargetsBeen.size();
+    }
+
+    public static class BusinessTargetsViewHolder extends RecyclerView.ViewHolder {
+        private TextView nameTextView;
+
+        public BusinessTargetsViewHolder(View itemView) {
+            super(itemView);
+            nameTextView = (TextView) itemView.findViewById(R.id.item_business_targets_name);
+        }
+    }
+
+    public interface OnItemClickListener {
+        void onItemClick(View view, int position);
+    }
 }

+ 66 - 0
app_modular/appmessages/src/main/java/com/modular/appmessages/adapter/BusinessTargetsChildDetailAdapter.java

@@ -0,0 +1,66 @@
+package com.modular.appmessages.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.appmessages.R;
+import com.modular.appmessages.model.BusinessStatisticsBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class BusinessTargetsChildDetailAdapter extends BaseAdapter {
+    private Context context;
+    private List<BusinessStatisticsBean.TargetsBean.TargetDetailsBean> objects = new ArrayList<BusinessStatisticsBean.TargetsBean.TargetDetailsBean>();
+    private LayoutInflater layoutInflater;
+
+    public BusinessTargetsChildDetailAdapter(Context context, List<BusinessStatisticsBean.TargetsBean.TargetDetailsBean> objects) {
+        this.context = context;
+        this.layoutInflater = LayoutInflater.from(context);
+        this.objects = objects;
+    }
+
+    @Override
+    public int getCount() {
+        return objects.size();
+    }
+
+    @Override
+    public BusinessStatisticsBean.TargetsBean.TargetDetailsBean getItem(int position) {
+        return objects.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        if (convertView == null) {
+            convertView = layoutInflater.inflate(R.layout.item_business_targets_child_detail, null);
+            convertView.setTag(new ViewHolder(convertView));
+        }
+        initializeViews((BusinessStatisticsBean.TargetsBean.TargetDetailsBean) getItem(position), (ViewHolder) convertView.getTag());
+        return convertView;
+    }
+
+    private void initializeViews(BusinessStatisticsBean.TargetsBean.TargetDetailsBean object, ViewHolder holder) {
+        holder.itemBusinessTargetsChildKeyTv.setText(object.getDetailName());
+        holder.itemBusinessTargetsChildValueTv.setText(object.getDetailValue());
+    }
+
+    protected class ViewHolder {
+        private TextView itemBusinessTargetsChildKeyTv;
+        private TextView itemBusinessTargetsChildValueTv;
+
+        public ViewHolder(View view) {
+            itemBusinessTargetsChildKeyTv = (TextView) view.findViewById(R.id.item_business_targets_child_key_tv);
+            itemBusinessTargetsChildValueTv = (TextView) view.findViewById(R.id.item_business_targets_child_value_tv);
+        }
+    }
+}

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

@@ -1,10 +1,56 @@
 package com.modular.appmessages.adapter;
 
+import android.content.Context;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.core.widget.MyListView;
+import com.modular.appmessages.R;
+import com.modular.appmessages.model.BusinessStatisticsBean;
+
+import java.util.List;
+
 /**
  * @author RaoMeng
  * @describe
  * @date 2017/11/3 15:37
  */
 
-public class BusinessTargetsDetailAdapter {
+public class BusinessTargetsDetailAdapter extends RecyclerView.Adapter<BusinessTargetsDetailAdapter.BusinessTargetsDetailViewHolder> {
+    private Context mContext;
+    private List<List<BusinessStatisticsBean.TargetsBean.TargetDetailsBean>> mTargetDetailsBeen;
+    private BusinessTargetsChildDetailAdapter mBusinessTargetsChildDetailAdapter;
+
+    public BusinessTargetsDetailAdapter(Context context, List<List<BusinessStatisticsBean.TargetsBean.TargetDetailsBean>> targetDetailsBeen) {
+        mContext = context;
+        mTargetDetailsBeen = targetDetailsBeen;
+    }
+
+    @Override
+    public BusinessTargetsDetailViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+        View view = LayoutInflater.from(mContext).inflate(R.layout.item_business_targets_detail, parent, false);
+        return new BusinessTargetsDetailViewHolder(view);
+    }
+
+    @Override
+    public void onBindViewHolder(BusinessTargetsDetailViewHolder holder, int position) {
+        mBusinessTargetsChildDetailAdapter = new BusinessTargetsChildDetailAdapter(mContext, mTargetDetailsBeen.get(position));
+        holder.mMyListView.setAdapter(mBusinessTargetsChildDetailAdapter);
+    }
+
+    @Override
+    public int getItemCount() {
+        return mTargetDetailsBeen.size();
+    }
+
+    public static class BusinessTargetsDetailViewHolder extends RecyclerView.ViewHolder {
+        private MyListView mMyListView;
+
+        public BusinessTargetsDetailViewHolder(View itemView) {
+            super(itemView);
+            mMyListView = (MyListView) itemView.findViewById(R.id.item_business_targets_detail_lv);
+        }
+    }
 }

+ 100 - 1
app_modular/appmessages/src/main/java/com/modular/appmessages/model/BusinessStatisticsBean.java

@@ -1,10 +1,109 @@
 package com.modular.appmessages.model;
 
+import java.io.Serializable;
+import java.util.List;
+
 /**
  * @author RaoMeng
  * @describe
  * @date 2017/11/3 11:17
  */
 
-public class BusinessStatisticsBean {
+public class BusinessStatisticsBean implements Serializable {
+
+    /**
+     * industry : KTV
+     * targets : [{"targetName":"房间预订时数列表","typelist":"0","targetDetails":[{"detailName":"日期","detailValue":""},{"detailName":"时数","detailValue":""},{"detailName":"房间名称","detailValue":""}]},{"targetName":"订单数量","typelist":"1","targetDetails":[{"detailName":"日期","detailValue":""},{"detailName":"数量","detailValue":""}]},{"targetName":"客户资料","typelist":"2","targetDetails":[{"detailName":"姓名","detailValue":""},{"detailName":"电话","detailValue":""},{"detailName":"预约次数","detailValue":""}]}]
+     */
+
+    private String industry;
+    private List<TargetsBean> targets;
+
+    public String getIndustry() {
+        return industry;
+    }
+
+    public void setIndustry(String industry) {
+        this.industry = industry;
+    }
+
+    public List<TargetsBean> getTargets() {
+        return targets;
+    }
+
+    public void setTargets(List<TargetsBean> targets) {
+        this.targets = targets;
+    }
+
+    public static class TargetsBean implements Serializable {
+        /**
+         * targetName : 房间预订时数列表
+         * typelist : 0
+         * targetDetails : [{"detailName":"日期","detailValue":""},{"detailName":"时数","detailValue":""},{"detailName":"房间名称","detailValue":""}]
+         */
+
+        private String targetName;
+        private String typelist;
+        private List<TargetDetailsBean> targetDetails;
+
+        public String getTargetName() {
+            return targetName;
+        }
+
+        public void setTargetName(String targetName) {
+            this.targetName = targetName;
+        }
+
+        public String getTypelist() {
+            return typelist;
+        }
+
+        public void setTypelist(String typelist) {
+            this.typelist = typelist;
+        }
+
+        public List<TargetDetailsBean> getTargetDetails() {
+            return targetDetails;
+        }
+
+        public void setTargetDetails(List<TargetDetailsBean> targetDetails) {
+            this.targetDetails = targetDetails;
+        }
+
+        public static class TargetDetailsBean implements Serializable {
+            /**
+             * detailName : 日期
+             * detailKey :
+             * detailValue :
+             */
+
+            private String detailName;
+            private String detailKey;
+            private String detailValue;
+
+            public String getDetailName() {
+                return detailName;
+            }
+
+            public void setDetailName(String detailName) {
+                this.detailName = detailName;
+            }
+
+            public String getDetailKey() {
+                return detailKey;
+            }
+
+            public void setDetailKey(String detailKey) {
+                this.detailKey = detailKey;
+            }
+
+            public String getDetailValue() {
+                return detailValue;
+            }
+
+            public void setDetailValue(String detailValue) {
+                this.detailValue = detailValue;
+            }
+        }
+    }
 }

+ 282 - 249
app_modular/appmessages/src/main/java/com/modular/appmessages/presenter/MessagePresenter.java

@@ -44,6 +44,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.BusinessTargetsActivity;
 import com.modular.appmessages.activity.MsgsSecondCommonActivity;
 import com.modular.appmessages.activity.ProcessB2BActivity;
 import com.modular.appmessages.activity.ProcessMsgActivity;
@@ -80,6 +81,7 @@ public class MessagePresenter implements OnHttpResultListener {
     private final int LOAD_B2B_COUNT = 0x16;//获取b2b的审批和任务数量
     private final int LOAD_BOOKING = 0x17;//小秘书红点
     private final int LOAD_REAL_TIME = 0x18;
+    private final int IS_COMPANY_ADMIN = 0x19;
 
     public static final int REAL_TIME_FORM = 7;
     public static final int BUSINESS_STATISTICS = 8;
@@ -92,45 +94,45 @@ public class MessagePresenter implements OnHttpResultListener {
     private Activity ct;
     private String subReadTime;//订阅号点击时间
 
-	private String filter;//搜索数据
-	private int emnewsNum, subsNum, processNum, taskNum, bookingNum, uuHelperNum;//红点消息分类数量
-	private String[] RECEIVER_LIST = {ConnectivityManager.CONNECTIVITY_ACTION, OAConfig.AUTO_SIGIN_ALART, MsgBroadcast.ACTION_MSG_COMPANY_UPDATE, "com.app.home.update"
-			, MsgBroadcast.ACTION_MSG_UI_UPDATE};
-	private BroadcastReceiver dataChangeReceiver = new BroadcastReceiver() {
-		@Override
-		public void onReceive(Context context, Intent intent) {
-			String action = intent.getAction();
-			if (StringUtil.isEmpty(action)) return;
-			LogUtil.i("MessagePresenter=" + action);
-			if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
-				iMessageView.changeNet(SystemUtil.isNetWorkConnected(MyApplication.getInstance()));
-			} else if (OAConfig.AUTO_SIGIN_ALART.equals(action)) {
-				loadNews(isB2b);//获取消息
-			} else if (action.equals("com.app.home.update") || action.equals(MsgBroadcast.ACTION_MSG_COMPANY_UPDATE)
-					|| action.equals(MsgBroadcast.ACTION_MSG_UI_UPDATE)) {
-				initHeaderModels();
-				loadData();
-			}
-		}
-	};
-	private boolean isB2b;
-
-
-	public MessagePresenter(Activity ct, IMessageView iMessageView, UnReaderListener unReaderListener) {
-		this.ct = ct;
-		this.unReaderListener = unReaderListener;
-		mFriendList = new ArrayList<>();
-		if (iMessageView == null)
-			new NullPointerException("IMessageView not be null");
-		this.iMessageView = iMessageView;
-		if (RECEIVER_LIST != null && RECEIVER_LIST.length > 0) {
-			IntentFilter dateFilter = new IntentFilter();
-			for (String f : RECEIVER_LIST)
-				dateFilter.addAction(f);
-			LocalBroadcastManager.getInstance(ct).registerReceiver(dataChangeReceiver, dateFilter);
-		}
-		initHeaderModels();
-	}
+    private String filter;//搜索数据
+    private int emnewsNum, subsNum, processNum, taskNum, bookingNum, uuHelperNum;//红点消息分类数量
+    private String[] RECEIVER_LIST = {ConnectivityManager.CONNECTIVITY_ACTION, OAConfig.AUTO_SIGIN_ALART, MsgBroadcast.ACTION_MSG_COMPANY_UPDATE, "com.app.home.update"
+            , MsgBroadcast.ACTION_MSG_UI_UPDATE};
+    private BroadcastReceiver dataChangeReceiver = new BroadcastReceiver() {
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            String action = intent.getAction();
+            if (StringUtil.isEmpty(action)) return;
+            LogUtil.i("MessagePresenter=" + action);
+            if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
+                iMessageView.changeNet(SystemUtil.isNetWorkConnected(MyApplication.getInstance()));
+            } else if (OAConfig.AUTO_SIGIN_ALART.equals(action)) {
+                loadNews(isB2b);//获取消息
+            } else if (action.equals("com.app.home.update") || action.equals(MsgBroadcast.ACTION_MSG_COMPANY_UPDATE)
+                    || action.equals(MsgBroadcast.ACTION_MSG_UI_UPDATE)) {
+                initHeaderModels();
+                loadData();
+            }
+        }
+    };
+    private boolean isB2b;
+
+
+    public MessagePresenter(Activity ct, IMessageView iMessageView, UnReaderListener unReaderListener) {
+        this.ct = ct;
+        this.unReaderListener = unReaderListener;
+        mFriendList = new ArrayList<>();
+        if (iMessageView == null)
+            new NullPointerException("IMessageView not be null");
+        this.iMessageView = iMessageView;
+        if (RECEIVER_LIST != null && RECEIVER_LIST.length > 0) {
+            IntentFilter dateFilter = new IntentFilter();
+            for (String f : RECEIVER_LIST)
+                dateFilter.addAction(f);
+            LocalBroadcastManager.getInstance(ct).registerReceiver(dataChangeReceiver, dateFilter);
+        }
+        initHeaderModels();
+    }
 
     public void loadData() {
         String role = CommonUtil.getUserRole();
@@ -138,7 +140,7 @@ public class MessagePresenter implements OnHttpResultListener {
         if (role.equals("2")) {//Erp用户
             SUB_READ_TIME = CommonUtil.getMaster() + "SUB_READ_TIME";//订阅好点击阅读时间
             subReadTime = PreferenceUtils.getString(SUB_READ_TIME);
-            loadRealTime();
+            loadRealTime();//获取实时看板数据
             loadTaskData();//获取任务接口
             loadProcessToDo();//获取审批流接口
             loadSubData();
@@ -148,9 +150,29 @@ public class MessagePresenter implements OnHttpResultListener {
             loadB2bNewsCount();
             loadNews(isB2b);//获取消息
 
-		}
-		loadBookingNewNum(role);//预约红点接口
-	}
+        }
+        isCompanyAdmin();
+        loadBookingNewNum(role);//预约红点接口
+    }
+
+    /**
+     * 判断当前用户是否为商家管理员
+     */
+    private void isCompanyAdmin() {
+        Map<String, Object> param = new HashMap<>();
+        param.put("companyid", CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_uu"));
+        param.put("userid", MyApplication.getInstance().mLoginUser.getUserId());
+        param.put("token", MyApplication.getInstance().mAccessToken);
+        param.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
+
+        Request request = new Request.Bulider()
+                .setParam(param)
+                .setUrl("user/appCompanyAdmin")
+                .setMode(Request.Mode.POST)
+                .setWhat(IS_COMPANY_ADMIN)
+                .bulid();
+        OAHttpHelper.getInstance().requestHttp(request, 1, this);
+    }
 
     /**
      * 获取实时看板数据
@@ -312,90 +334,90 @@ public class MessagePresenter implements OnHttpResultListener {
     }
 
 
-	private void loadBookingNewNum(String role) {
-		Map<String, Object> param = new HashMap<>();
-		param.put("token", MyApplication.getInstance().mAccessToken);
-		param.put("userid", MyApplication.getInstance().mLoginUser.getUserId());//默认获取第一页
-		Bundle bundle = new Bundle();
-		bundle.putString("role", role);
-		Request request = new Request.Bulider()
-				.setParam(param)
-				.setUrl("user/appCount")
-				.setMode(Request.Mode.GET)
-				.setBundle(bundle)
-				.setWhat(LOAD_BOOKING)
-				.bulid();
-		OAHttpHelper.getInstance().requestHttp(request, 1, this);
-	}
-
-	@Override
-	public void result(int what, boolean isJSON, String message, Bundle bundle) {
-		if (!isJSON) {
-			//TODO 返回数据错误
-			return;
-		}
-		JSONObject object = JSON.parseObject(message);
-		switch (what) {
-			case LOAD_BOOKING:
-				//{"count":"1"}
-				bookingNum = Integer.valueOf(object.getString("count"));
-				iMessageView.updateHeaderView(2, Integer.valueOf(object.getString("count")), "", "");
-				updateForUnReader();
+    private void loadBookingNewNum(String role) {
+        Map<String, Object> param = new HashMap<>();
+        param.put("token", MyApplication.getInstance().mAccessToken);
+        param.put("userid", MyApplication.getInstance().mLoginUser.getUserId());//默认获取第一页
+        Bundle bundle = new Bundle();
+        bundle.putString("role", role);
+        Request request = new Request.Bulider()
+                .setParam(param)
+                .setUrl("user/appCount")
+                .setMode(Request.Mode.GET)
+                .setBundle(bundle)
+                .setWhat(LOAD_BOOKING)
+                .bulid();
+        OAHttpHelper.getInstance().requestHttp(request, 1, this);
+    }
+
+    @Override
+    public void result(int what, boolean isJSON, String message, Bundle bundle) {
+        if (!isJSON) {
+            //TODO 返回数据错误
+            return;
+        }
+        JSONObject object = JSON.parseObject(message);
+        switch (what) {
+            case LOAD_BOOKING:
+                //{"count":"1"}
+                bookingNum = Integer.valueOf(object.getString("count"));
+                iMessageView.updateHeaderView(2, Integer.valueOf(object.getString("count")), "", "");
+                updateForUnReader();
 //				iMessageView.showModel(null);  ///tODO 这个引起了闪一下的问题(可能存在会有刷新不过来的问题)
-				if (bundle != null) {
-					String role = bundle.getString("role");
-					if (role != null && role.equals("1")) {
-						saveErp2DB(null);
-					}
-				}
-				break;
-			case LOAD_EMNEWS:
-				if (!object.containsKey("listdata")) {
-					handlerNewsFormErp(new JSONArray());
-					return;
-				}
-				String ids = object.getString("ids");
-				if (!StringUtil.isEmpty(ids))
-					postReadNews(ids);
-				JSONArray array = object.getJSONArray("listdata");
-				handlerNewsFormErp(array);
-				break;
-			case LOAD_SUBS://获取订阅号接口
-				handlerSub(object);
-				break;
-			case LOAD_PROCESS://获取审批流接口
-				handlerProcess(object);
-				break;
-			case LOAD_TASK://获取任务接口
-				handlerTask(object);
-				break;
-			case LOAD_EMNEWS_DETAILS:
-				String type = bundle.getString("type");
-				boolean isReaded = bundle.getBoolean("isReaded");
-				JSONArray msgsArray = object.getJSONArray("listdata");
-				if (!ListUtils.isEmpty(msgsArray)) {
-					handleMsgsArray(type, msgsArray);
-				}
-				handlerEndOfReadOrDelete(type, isReaded);
-				break;
-			case LOAD_B2B_COUNT:
-				if (object.containsKey("processcount")) {
-					processNum = JSONUtil.getInt(object, "processcount");
-					String title = JSONUtil.getText(object, "lastProcess");
-					long time = JSONUtil.getTime(object, "lastProcessTime") / 1000;
-					if (time == 0) time = System.currentTimeMillis() / 1000;
-					iMessageView.updateHeaderView(4, processNum, title, TimeUtils.getFriendlyTimeDesc(ct, (int) time));
-					updateForUnReader();
-				}
-				if (object.containsKey("taskcount")) {
-					taskNum = JSONUtil.getInt(object, "taskcount");
-					String title = JSONUtil.getText(object, "lasttask");
-					long time = JSONUtil.getTime(object, "lasttaskTime") / 1000;
-					if (time == 0) time = System.currentTimeMillis() / 1000;
-					String taskTime = TimeUtils.getFriendlyTimeDesc(ct, (int) time);
-					iMessageView.updateHeaderView(5, taskNum, title, taskTime);
-					updateForUnReader();
-				}
+                if (bundle != null) {
+                    String role = bundle.getString("role");
+                    if (role != null && role.equals("1")) {
+                        saveErp2DB(null);
+                    }
+                }
+                break;
+            case LOAD_EMNEWS:
+                if (!object.containsKey("listdata")) {
+                    handlerNewsFormErp(new JSONArray());
+                    return;
+                }
+                String ids = object.getString("ids");
+                if (!StringUtil.isEmpty(ids))
+                    postReadNews(ids);
+                JSONArray array = object.getJSONArray("listdata");
+                handlerNewsFormErp(array);
+                break;
+            case LOAD_SUBS://获取订阅号接口
+                handlerSub(object);
+                break;
+            case LOAD_PROCESS://获取审批流接口
+                handlerProcess(object);
+                break;
+            case LOAD_TASK://获取任务接口
+                handlerTask(object);
+                break;
+            case LOAD_EMNEWS_DETAILS:
+                String type = bundle.getString("type");
+                boolean isReaded = bundle.getBoolean("isReaded");
+                JSONArray msgsArray = object.getJSONArray("listdata");
+                if (!ListUtils.isEmpty(msgsArray)) {
+                    handleMsgsArray(type, msgsArray);
+                }
+                handlerEndOfReadOrDelete(type, isReaded);
+                break;
+            case LOAD_B2B_COUNT:
+                if (object.containsKey("processcount")) {
+                    processNum = JSONUtil.getInt(object, "processcount");
+                    String title = JSONUtil.getText(object, "lastProcess");
+                    long time = JSONUtil.getTime(object, "lastProcessTime") / 1000;
+                    if (time == 0) time = System.currentTimeMillis() / 1000;
+                    iMessageView.updateHeaderView(4, processNum, title, TimeUtils.getFriendlyTimeDesc(ct, (int) time));
+                    updateForUnReader();
+                }
+                if (object.containsKey("taskcount")) {
+                    taskNum = JSONUtil.getInt(object, "taskcount");
+                    String title = JSONUtil.getText(object, "lasttask");
+                    long time = JSONUtil.getTime(object, "lasttaskTime") / 1000;
+                    if (time == 0) time = System.currentTimeMillis() / 1000;
+                    String taskTime = TimeUtils.getFriendlyTimeDesc(ct, (int) time);
+                    iMessageView.updateHeaderView(5, taskNum, title, taskTime);
+                    updateForUnReader();
+                }
 
                 break;
             case LOAD_REAL_TIME:
@@ -409,6 +431,13 @@ public class MessagePresenter implements OnHttpResultListener {
                     iMessageView.updateHeaderView(REAL_TIME_FORM, 0, "", "");
                 }
                 break;
+            case IS_COMPANY_ADMIN:
+                String result = JSONUtil.getText(object, "result");
+                if ("0".equals(result)) {
+                    iMessageView.updateHeaderView(BUSINESS_STATISTICS, 0, "", "");
+                } else if ("1".equals(result)) {
+                    iMessageView.updateHeaderView(BUSINESS_STATISTICS, 1, "", "");
+                }
             default:
                 break;
         }
@@ -809,37 +838,37 @@ public class MessagePresenter implements OnHttpResultListener {
             loadEmNewsDetails(friend.getDescription(), true);
 //            MessageDao.getInstance().upStatusByType(friend.getDescription(), true);
 //            loadData();
-		} else if (friend.getType() == XmppMessage.TYPE_UUHELPER) {
-			UUHelperDao.getInstance().updateRead(true);
-		} else {
-			if (friend.getUnReadNum() > 0) {
-				MsgBroadcast.broadcastMsgNumUpdate(ct, false, friend.getUnReadNum());
-				friend.setUnReadNum(0);
-				iMessageView.showModel(mFriendList);
-			}
-		}
-	}
-
-	/**
-	 * 设置未阅读该类型文件
-	 *
-	 * @param position
-	 */
-	public void unReaderAllByType(int position) {
-		if (ListUtils.isEmpty(mFriendList) || mFriendList.size() < position) return;
-		Friend friend = mFriendList.get(position).getBean();
-		if (friend.getType() == XmppMessage.TYPE_ERP) {
-			MessageDao.getInstance().upStatusByType(friend.getDescription(), false);
-		} else if (friend.getType() == XmppMessage.TYPE_UUHELPER) {
-			UUHelperDao.getInstance().updateRead(false);
-		} else {
-			if (friend.getUnReadNum() > 0) {
-				MsgBroadcast.broadcastMsgNumUpdate(ct, false, friend.getUnReadNum());
-				friend.setUnReadNum(0);
-				iMessageView.showModel(mFriendList);
-			}
-		}
-	}
+        } else if (friend.getType() == XmppMessage.TYPE_UUHELPER) {
+            UUHelperDao.getInstance().updateRead(true);
+        } else {
+            if (friend.getUnReadNum() > 0) {
+                MsgBroadcast.broadcastMsgNumUpdate(ct, false, friend.getUnReadNum());
+                friend.setUnReadNum(0);
+                iMessageView.showModel(mFriendList);
+            }
+        }
+    }
+
+    /**
+     * 设置未阅读该类型文件
+     *
+     * @param position
+     */
+    public void unReaderAllByType(int position) {
+        if (ListUtils.isEmpty(mFriendList) || mFriendList.size() < position) return;
+        Friend friend = mFriendList.get(position).getBean();
+        if (friend.getType() == XmppMessage.TYPE_ERP) {
+            MessageDao.getInstance().upStatusByType(friend.getDescription(), false);
+        } else if (friend.getType() == XmppMessage.TYPE_UUHELPER) {
+            UUHelperDao.getInstance().updateRead(false);
+        } else {
+            if (friend.getUnReadNum() > 0) {
+                MsgBroadcast.broadcastMsgNumUpdate(ct, false, friend.getUnReadNum());
+                friend.setUnReadNum(0);
+                iMessageView.showModel(mFriendList);
+            }
+        }
+    }
 
     private void handlerEndOfReadOrDelete(String type, boolean isReaded) {
         if (isReaded) {
@@ -912,47 +941,47 @@ public class MessagePresenter implements OnHttpResultListener {
         }
     }
 
-	/**
-	 * 计算调转到那个界面
-	 *
-	 * @param mContext
-	 * @param position
-	 */
-	public void turn2NextAct(Activity mContext, int position) throws Exception {
-		Friend friend = mFriendList.get(position).getBean();
-		if (friend == null) {
-			return;
-		}
-		if (friend.getType() == XmppMessage.TYPE_ERP) {
-			//消息
-			turn2ERp(friend);
-			return;
-		} else if (friend.getType() == XmppMessage.TYPE_UUHELPER) {
-			ct.startActivity(new Intent(ct, UUHelperActivity.class));
-			UUHelperDao.getInstance().updateRead(true);
-			return;
-		}
-		if (friend.getRoomFlag() == 0) {
-			if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
-				mContext.startActivity(new Intent("com.modular.appcontact.NewFriendActivity"));
-			} else {
-				Intent intent = new Intent("com.modular.message.ChatActivity");
-				intent.putExtra(AppConstant.FRIEND, friend);
-				mContext.startActivity(intent);
-			}
-		} else {
-			Intent intent = new Intent("com.modular.message.MucChatActivity");
-			intent.putExtra(AppConstant.EXTRA_USER_ID, friend.getUserId());
-			intent.putExtra(AppConstant.EXTRA_NICK_NAME, friend.getNickName());
-			intent.putExtra(AppConstant.EXTRA_IS_GROUP_CHAT, true);
-			mContext.startActivity(intent);
-		}
-		//将红点去除
-		if (friend.getUnReadNum() > 0) {
-			MsgBroadcast.broadcastMsgNumUpdate(mContext, false, friend.getUnReadNum());
-			friend.setUnReadNum(0);
-		}
-	}
+    /**
+     * 计算调转到那个界面
+     *
+     * @param mContext
+     * @param position
+     */
+    public void turn2NextAct(Activity mContext, int position) throws Exception {
+        Friend friend = mFriendList.get(position).getBean();
+        if (friend == null) {
+            return;
+        }
+        if (friend.getType() == XmppMessage.TYPE_ERP) {
+            //消息
+            turn2ERp(friend);
+            return;
+        } else if (friend.getType() == XmppMessage.TYPE_UUHELPER) {
+            ct.startActivity(new Intent(ct, UUHelperActivity.class));
+            UUHelperDao.getInstance().updateRead(true);
+            return;
+        }
+        if (friend.getRoomFlag() == 0) {
+            if (friend.getUserId().equals(Friend.ID_NEW_FRIEND_MESSAGE)) {// 新朋友消息
+                mContext.startActivity(new Intent("com.modular.appcontact.NewFriendActivity"));
+            } else {
+                Intent intent = new Intent("com.modular.message.ChatActivity");
+                intent.putExtra(AppConstant.FRIEND, friend);
+                mContext.startActivity(intent);
+            }
+        } else {
+            Intent intent = new Intent("com.modular.message.MucChatActivity");
+            intent.putExtra(AppConstant.EXTRA_USER_ID, friend.getUserId());
+            intent.putExtra(AppConstant.EXTRA_NICK_NAME, friend.getNickName());
+            intent.putExtra(AppConstant.EXTRA_IS_GROUP_CHAT, true);
+            mContext.startActivity(intent);
+        }
+        //将红点去除
+        if (friend.getUnReadNum() > 0) {
+            MsgBroadcast.broadcastMsgNumUpdate(mContext, false, friend.getUnReadNum());
+            friend.setUnReadNum(0);
+        }
+    }
 
     /**
      * 调转到对应ERP相关知会里面去
@@ -1011,30 +1040,30 @@ public class MessagePresenter implements OnHttpResultListener {
     }
 
 
-	private void initHeaderModels() {
-		List<MessageHeader> models = new ArrayList<>();
-		MessageHeader model = null;
-		String role = CommonUtil.getUserRole();
-		LogUtil.i("role=" + role);
-		if (role.equals("1")) {//个人用户
-			models.addAll(getPersonalHeader());
-		} else if (role.equals("3")) {//b2b用户
-			models.addAll(getB2bHeader());
-		} else {
-			models.addAll(getErpHeader());
-		}
-		if (PreferenceUtils.getInt("UUSTEP", -1) == 1) {
-			//显示UU运动
-			model = new MessageHeader(StringUtil.getMessage(R.string.set_sport));
-			model.setIcon(R.drawable.uu_run);
-			model.setSubDoc("");
-			model.setRedKey(Constants.MESSAGE_RUN);
-			model.setType(3);
-			model.setTag("");
-			models.add(model);
-		}
-		iMessageView.updateHeader(models);
-	}
+    private void initHeaderModels() {
+        List<MessageHeader> models = new ArrayList<>();
+        MessageHeader model = null;
+        String role = CommonUtil.getUserRole();
+        LogUtil.i("role=" + role);
+        if (role.equals("1")) {//个人用户
+            models.addAll(getPersonalHeader());
+        } else if (role.equals("3")) {//b2b用户
+            models.addAll(getB2bHeader());
+        } else {
+            models.addAll(getErpHeader());
+        }
+        if (PreferenceUtils.getInt("UUSTEP", -1) == 1) {
+            //显示UU运动
+            model = new MessageHeader(StringUtil.getMessage(R.string.set_sport));
+            model.setIcon(R.drawable.uu_run);
+            model.setSubDoc("");
+            model.setRedKey(Constants.MESSAGE_RUN);
+            model.setType(3);
+            model.setTag("");
+            models.add(model);
+        }
+        iMessageView.updateHeader(models);
+    }
 
     private List<MessageHeader> getErpHeader() {
         List<MessageHeader> models = new ArrayList<>();
@@ -1074,33 +1103,33 @@ public class MessagePresenter implements OnHttpResultListener {
         return models;
     }
 
-	private List<MessageHeader> getB2bHeader() {
-		List<MessageHeader> models = new ArrayList<>();
-		MessageHeader model = new MessageHeader(StringUtil.getMessage(R.string.msg_approval));
-		model.setIcon(R.drawable.home_image_01_u);
-		model.setSubDoc("");
-		model.setRedKey("");
-		model.setType(4);
-		model.setTag("");
-		models.add(model);
-
-		model = new MessageHeader(StringUtil.getMessage(R.string.msg_work));
-		model.setIcon(R.drawable.daibangongzuo);
-		model.setSubDoc("");
-		model.setRedKey("");
-		model.setType(5);
-		model.setTag("");
-		models.add(model);
-
-		model = new MessageHeader(StringUtil.getMessage(R.string.booking_menu));
-		model.setIcon(R.drawable.icon_yuyue3);
-		model.setSubDoc("");
-		model.setRedKey(Constants.MESSAGE_YUYUE);
-		model.setType(2);
-		model.setTag("");
-		models.add(model);
-		return models;
-	}
+    private List<MessageHeader> getB2bHeader() {
+        List<MessageHeader> models = new ArrayList<>();
+        MessageHeader model = new MessageHeader(StringUtil.getMessage(R.string.msg_approval));
+        model.setIcon(R.drawable.home_image_01_u);
+        model.setSubDoc("");
+        model.setRedKey("");
+        model.setType(4);
+        model.setTag("");
+        models.add(model);
+
+        model = new MessageHeader(StringUtil.getMessage(R.string.msg_work));
+        model.setIcon(R.drawable.daibangongzuo);
+        model.setSubDoc("");
+        model.setRedKey("");
+        model.setType(5);
+        model.setTag("");
+        models.add(model);
+
+        model = new MessageHeader(StringUtil.getMessage(R.string.booking_menu));
+        model.setIcon(R.drawable.icon_yuyue3);
+        model.setSubDoc("");
+        model.setRedKey(Constants.MESSAGE_YUYUE);
+        model.setType(2);
+        model.setTag("");
+        models.add(model);
+        return models;
+    }
 
     private List<MessageHeader> getPersonalHeader() {
         List<MessageHeader> models = new ArrayList<>();
@@ -1206,6 +1235,10 @@ public class MessagePresenter implements OnHttpResultListener {
                 intent = new Intent(ct, RealTimeFormActivity.class);
                 ct.startActivity(intent);
                 break;
+            case BUSINESS_STATISTICS:
+                intent = new Intent(ct, BusinessTargetsActivity.class);
+                ct.startActivity(intent);
+                break;
             default:
                 break;
         }

+ 7 - 5
app_modular/appmessages/src/main/res/layout/activity_business_target_detail.xml

@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
+<android.support.v7.widget.RecyclerView
+    android:id="@+id/business_target_detail_rv"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:overScrollMode="never">
 
-</LinearLayout>
+</android.support.v7.widget.RecyclerView>

+ 7 - 5
app_modular/appmessages/src/main/res/layout/activity_business_targets.xml

@@ -1,7 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
+<android.support.v7.widget.RecyclerView
+    android:id="@+id/business_targets_rv"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:overScrollMode="never">
 
-</LinearLayout>
+</android.support.v7.widget.RecyclerView>

+ 10 - 5
app_modular/appmessages/src/main/res/layout/item_business_targets.xml

@@ -1,7 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
+<TextView
+    android:id="@+id/item_business_targets_name"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/selector_me_menu_item_bg"
+    android:padding="16dp"
+    tools:text="技师预约列表">
 
-</LinearLayout>
+</TextView>

+ 20 - 4
app_modular/appmessages/src/main/res/layout/item_business_targets_child_detail.xml

@@ -1,7 +1,23 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center_vertical"
+    android:orientation="horizontal"
+    android:padding="10dp">
 
+    <TextView
+        android:id="@+id/item_business_targets_child_key_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        tools:text="date" />
+
+    <TextView
+        android:id="@+id/item_business_targets_child_value_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="right"
+        tools:text="2017-10-20" />
 </LinearLayout>

+ 9 - 5
app_modular/appmessages/src/main/res/layout/item_business_targets_detail.xml

@@ -1,7 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-              android:orientation="vertical"
-              android:layout_width="match_parent"
-              android:layout_height="match_parent">
+<com.core.widget.MyListView
+    android:id="@+id/item_business_targets_detail_lv"
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:divider="@color/gray_light"
+    android:dividerHeight="1dp"
+    android:overScrollMode="never">
 
-</LinearLayout>
+</com.core.widget.MyListView>

+ 3 - 0
app_modular/appmessages/src/main/res/values-en/strings.xml

@@ -1,6 +1,9 @@
 <resources>
     <string name="app_name">AppMessages</string>
     <string name="real_time_form">实时看板</string>
+    <string name="industry_access_failure">所属行业获取失败</string>
+    <string name="company_business_targets">商家营业指标</string>
+    <string name="statistical_data_acquisition_failed">统计数据获取失败</string>
 
 
 </resources>

+ 3 - 0
app_modular/appmessages/src/main/res/values-zh-rCN/strings.xml

@@ -1,6 +1,9 @@
 <resources>
     <string name="app_name">AppMessages</string>
     <string name="real_time_form">实时看板</string>
+    <string name="industry_access_failure">所属行业获取失败</string>
+    <string name="company_business_targets">商家营业指标</string>
+    <string name="statistical_data_acquisition_failed">统计数据获取失败</string>
 
 
 </resources>

+ 3 - 0
app_modular/appmessages/src/main/res/values-zh-rTW/strings.xml

@@ -1,6 +1,9 @@
 <resources>
     <string name="app_name">AppMessages</string>
     <string name="real_time_form">实时看板</string>
+    <string name="industry_access_failure">所属行业获取失败</string>
+    <string name="company_business_targets">商家营业指标</string>
+    <string name="statistical_data_acquisition_failed">统计数据获取失败</string>
 
 
 </resources>

+ 3 - 0
app_modular/appmessages/src/main/res/values/strings.xml

@@ -2,5 +2,8 @@
     <string name="app_name">AppMessages</string>
     <string name="uu_helper">UU 助手</string>
     <string name="real_time_form">实时看板</string>
+    <string name="industry_access_failure">所属行业获取失败</string>
+    <string name="company_business_targets">商家营业指标</string>
+    <string name="statistical_data_acquisition_failed">统计数据获取失败</string>
 
 </resources>

+ 21 - 7
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/DailydetailsActivity.java

@@ -528,7 +528,7 @@ public class DailydetailsActivity extends BaseActivity {
                     || TextUtils.isEmpty(mReportEndTime)) {
                 time = date;
             } else {
-                time = "第" + mReportSerial + "周  " + getWeeklyTimeStr(mReportStartTime, mReportEndTime);
+                time = getWeeklyTimeStr(mReportStartTime, mReportEndTime, mReportSerial);
             }
         } else if (mReportType == Constants.WORK_REPORT_MONTH) {
             mReportSerial = workReportBean.getSerial();
@@ -539,7 +539,7 @@ public class DailydetailsActivity extends BaseActivity {
                     || TextUtils.isEmpty(mReportEndTime)) {
                 time = date;
             } else {
-                time = mReportSerial + "月  " + getDailyTimeStr(date, "");
+                time = getMonthlyTimeStr(mReportStartTime);
             }
         }
         wdd_data.setText(time);
@@ -612,7 +612,7 @@ public class DailydetailsActivity extends BaseActivity {
                     || TextUtils.isEmpty(mReportEndTime)) {
                 time = date;
             } else {
-                time = "第" + mReportSerial + "周  " + getWeeklyTimeStr(mReportStartTime, mReportEndTime);
+                time = getWeeklyTimeStr(mReportStartTime, mReportEndTime, mReportSerial);
             }
         } else if (mReportType == Constants.WORK_REPORT_MONTH) {
             mReportSerial = intent.getStringExtra("report_serial");
@@ -623,7 +623,7 @@ public class DailydetailsActivity extends BaseActivity {
                     || TextUtils.isEmpty(mReportEndTime)) {
                 time = date;
             } else {
-                time = mReportSerial + "月  " + getDailyTimeStr(date, "");
+                time = getMonthlyTimeStr(mReportStartTime);
             }
         }
         wdd_data.setText(time);
@@ -722,7 +722,7 @@ public class DailydetailsActivity extends BaseActivity {
                 }
             }
         }
-        
+
         if (!ListUtils.isEmpty(approvals)) {
             NodeAdapter nodeAdapter = new NodeAdapter(this, approvals);
             approval_flowlv.setAdapter(nodeAdapter);
@@ -1082,13 +1082,14 @@ public class DailydetailsActivity extends BaseActivity {
         }
     }
 
-    private String getWeeklyTimeStr(String weeklyStartDate, String weeklyEndDate) {
+    private String getWeeklyTimeStr(String weeklyStartDate, String weeklyEndDate, String weeklySerial) {
         try {
             String[] weekStartArray = weeklyStartDate.split("-");
             String[] weekEndArray = weeklyEndDate.split("-");
             StringBuilder weekTimeString = new StringBuilder("");
             if (weekStartArray != null && weekStartArray.length >= 3) {
-                weekTimeString.append(weekStartArray[0] + "年  ").append(weekStartArray[1] + "月").append(weekStartArray[2] + "日");
+                String serial = TextUtils.isEmpty(weeklySerial) ? "" : weeklySerial + "周  ";
+                weekTimeString.append(weekStartArray[0] + "年").append(serial).append(weekStartArray[1] + "月").append(weekStartArray[2] + "日");
                 if (weekEndArray.length >= 3) {
                     weekTimeString.append("-" + weekEndArray[1] + "月").append(weekEndArray[2] + "日");
                 }
@@ -1099,6 +1100,19 @@ public class DailydetailsActivity extends BaseActivity {
         }
     }
 
+    private String getMonthlyTimeStr(String monthlyDate) {
+        try {
+            String[] monthDate = monthlyDate.split("-");
+            StringBuilder thisMonthString = new StringBuilder("");
+            if (monthDate != null && monthDate.length >= 2) {
+                thisMonthString.append(monthDate[0] + "年  ").append(monthDate[1] + "月");
+            }
+            return thisMonthString.toString();
+        } catch (Exception e) {
+            return date;
+        }
+    }
+
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
         return super.onCreateOptionsMenu(menu);

+ 56 - 5
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/WorkDailyShowActivity.java

@@ -509,13 +509,20 @@ public class WorkDailyShowActivity extends BaseActivity {
                 viewHolder = (ViewHolder) convertView.getTag();
             }
             if (mReportType == Constants.WORK_REPORT_DAY) {
-                viewHolder.WorkDailyDate.setText(workReportList.get(position).getDate());
+                String dailyTimeStr = getDailyTimeStr(workReportList.get(position).getDate(), workReportList.get(position).getWeekDays());
+                viewHolder.WorkDailyDate
+                        .setText(dailyTimeStr
+                                == null ? workReportList.get(position).getDate() : dailyTimeStr);
             } else if (mReportType == Constants.WORK_REPORT_WEEK) {
-                viewHolder.WorkDailyDate.setText((TextUtils.isEmpty(workReportList.get(position).getSerial()) ? "" : "第" + workReportList.get(position).getSerial() + "周  ")
-                        + workReportList.get(position).getDate());
+                String weeklyTimeStr = getWeeklyTimeStr(workReportList.get(position).getStartTime(), workReportList.get(position).getEndTime(), workReportList.get(position).getSerial());
+                viewHolder.WorkDailyDate
+                        .setText(weeklyTimeStr == null ? ((TextUtils.isEmpty(workReportList.get(position).getSerial()) ? "" : "第" + workReportList.get(position).getSerial() + "周  ")
+                                + workReportList.get(position).getDate()) : weeklyTimeStr);
             } else if (mReportType == Constants.WORK_REPORT_MONTH) {
-                viewHolder.WorkDailyDate.setText((TextUtils.isEmpty(workReportList.get(position).getSerial()) ? "" : workReportList.get(position).getSerial() + "月  ")
-                        + workReportList.get(position).getDate());
+                String monthlyTimeStr = getMonthlyTimeStr(workReportList.get(position).getDate());
+                viewHolder.WorkDailyDate
+                        .setText(monthlyTimeStr == null ? ((TextUtils.isEmpty(workReportList.get(position).getSerial()) ? "" : workReportList.get(position).getSerial() + "月  ")
+                                + workReportList.get(position).getDate()) : monthlyTimeStr);
             }
             //为日报列表界面赋值(状态,总结),注意已审批和待审批的字体颜色
             if (!TextUtils.isEmpty(workReportList.get(position).getReportStatus()) &&
@@ -584,6 +591,50 @@ public class WorkDailyShowActivity extends BaseActivity {
             ViewUtil.httpSendRequest(mContext, url, params, handler, headers, DELETE_DOC_REQUEST_SUCCESSFULLY, null, null, "get");
         }
 
+        private String getDailyTimeStr(String dailyDate, String dailyWeek) {
+            try {
+                String[] daily = dailyDate.split("-");
+                StringBuilder yesterdayString = new StringBuilder("");
+                if (daily != null && daily.length >= 3) {
+                    yesterdayString.append(daily[0] + "年").append(daily[1] + "月").append(daily[2] + "日").append("  " + dailyWeek);
+                }
+                return yesterdayString.toString();
+            } catch (Exception e) {
+                return null;
+            }
+        }
+
+        private String getWeeklyTimeStr(String weeklyStartDate, String weeklyEndDate, String weeklySerial) {
+            try {
+                String[] weekStartArray = weeklyStartDate.split("-");
+                String[] weekEndArray = weeklyEndDate.split("-");
+                StringBuilder weekTimeString = new StringBuilder("");
+                if (weekStartArray != null && weekStartArray.length >= 3) {
+                    String serial = TextUtils.isEmpty(weeklySerial) ? "" : weeklySerial + "周  ";
+                    weekTimeString.append(weekStartArray[0] + "年").append(serial).append(weekStartArray[1] + "月").append(weekStartArray[2] + "日");
+                    if (weekEndArray.length >= 3) {
+                        weekTimeString.append("-" + weekEndArray[1] + "月").append(weekEndArray[2] + "日");
+                    }
+                }
+                return weekTimeString.toString();
+            } catch (Exception e) {
+                return null;
+            }
+        }
+
+        private String getMonthlyTimeStr(String monthlyDate) {
+            try {
+                String[] monthDate = monthlyDate.split("-");
+                StringBuilder thisMonthString = new StringBuilder("");
+                if (monthDate != null && monthDate.length >= 2) {
+                    thisMonthString.append(monthDate[0] + "年  ").append(monthDate[1] + "月");
+                }
+                return thisMonthString.toString();
+            } catch (Exception e) {
+                return null;
+            }
+        }
+
         private Handler handler = new Handler() {
             @Override
             public void handleMessage(Message msg) {

+ 82 - 71
app_modular/appworks/src/main/java/com/uas/appworks/OA/erp/activity/WorkReportAddActivity.java

@@ -1384,99 +1384,110 @@ public class WorkReportAddActivity extends BaseActivity implements View.OnClickL
         final boolean isResubmit = !TextUtils.isEmpty(resubmit) && ("unsub_tosub".equals(resubmit) || "resubmit".equals(resubmit));
         if ((isResubmit && isUpdateModify) || (mReportTimePresentRb.isChecked() && isPresentExist && isPresentModify)
                 || (mReportTimeBeforeRb.isChecked() && isBeforeExist && isBeforeModify)) {
-            new AlertDialog
-                    .Builder(mContext)
-                    .setTitle(getString(R.string.common_notice))
-                    .setMessage("正在离开录入页面,是否更新汇报内容?")
-                    .setNegativeButton(R.string.give_up, new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(DialogInterface dialog, int which) {
-                            if (isResubmit || isOptionEvent) {
-                                Intent intent1 = new Intent(WorkReportAddActivity.this, WorkDailyShowActivity.class);
-                                intent1.putExtra("caller", mCaller);
-                                intent1.putExtra("report_type", mReportType);
-                                if (isOptionEvent) {
-                                    intent1.putExtra("fromwhere", "nosubmitdaily");
-                                }
-                                startActivityForResult(intent1, WORK_REPORT_LIST);
-                            }
-                            if (!isOptionEvent) {
-                                finish();
-                            }
-                        }
-                    })
-                    .setPositiveButton(R.string.updata, new DialogInterface.OnClickListener() {
-                        @Override
-                        public void onClick(DialogInterface dialog, int which) {
-                            if (mSummaryContentEt.testValidity()) {
-                                if (mNewScheduleContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER &&
-                                        mExperienceContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER) {
-                                    if (CommonUtil.isNetWorkConnected(WorkReportAddActivity.this)) {
-                                        isOnlyUpdate = true;
-                                        progressDialog.show();
-                                        updateWorkReport();
-                                    } else {
-                                        ToastUtil.showToast(WorkReportAddActivity.this, R.string.networks_out);
-                                    }
-
-                                } else {
-                                    ToastUtil.showToast(WorkReportAddActivity.this, "字数已超限!");
-                                }
-                            }
-
-                        }
-                    }).create().show();
-        } else {
-            if (((mReportTimePresentRb.isChecked() && !isPresentExist)
-                    || (mReportTimeBeforeRb.isChecked() && !isBeforeExist)) && !isResubmit) {
-                if (mSummaryText.length() > 0 ||
-                        mNewScheduleText.length() > 0 ||
-                        mExperienceText.length() > 0) {
+            if (mSummaryContentEt.testValidity()) {
+                if (mNewScheduleContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER &&
+                        mExperienceContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER) {
                     new AlertDialog
                             .Builder(mContext)
                             .setTitle(getString(R.string.common_notice))
-                            .setMessage(getString(R.string.work_report_exit_notice))
+                            .setMessage("正在离开录入页面,是否更新汇报内容?")
                             .setNegativeButton(R.string.give_up, new DialogInterface.OnClickListener() {
                                 @Override
                                 public void onClick(DialogInterface dialog, int which) {
-                                    boolean isResubmit = !TextUtils.isEmpty(resubmit) && ("unsub_tosub".equals(resubmit) || "resubmit".equals(resubmit));
                                     if (isResubmit || isOptionEvent) {
-                                        Intent optionIntent = new Intent(WorkReportAddActivity.this, WorkDailyShowActivity.class);
-                                        optionIntent.putExtra("caller", mCaller);
-                                        optionIntent.putExtra("report_type", mReportType);
+                                        Intent intent1 = new Intent(WorkReportAddActivity.this, WorkDailyShowActivity.class);
+                                        intent1.putExtra("caller", mCaller);
+                                        intent1.putExtra("report_type", mReportType);
                                         if (isOptionEvent) {
-                                            optionIntent.putExtra("fromwhere", "nosubmitdaily");
+                                            intent1.putExtra("fromwhere", "nosubmitdaily");
                                         }
-                                        startActivityForResult(optionIntent, WORK_REPORT_LIST);
-                                    } else if (!TextUtils.isEmpty(fromqzone) && "fromqzone".equals(fromqzone)) {
-
-                                    } else {
-                                        Intent intent1 = new Intent(WorkReportAddActivity.this, WorkReportMenuActivity.class);
-                                        startActivity(intent1);
+                                        startActivityForResult(intent1, WORK_REPORT_LIST);
                                     }
                                     if (!isOptionEvent) {
                                         finish();
                                     }
                                 }
                             })
-                            .setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
-
+                            .setPositiveButton(R.string.updata, new DialogInterface.OnClickListener() {
                                 @Override
                                 public void onClick(DialogInterface dialog, int which) {
-                                    if (mNewScheduleContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER &&
-                                            mExperienceContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER) {
-                                        if (CommonUtil.isNetWorkConnected(WorkReportAddActivity.this)) {
-                                            progressDialog.show();
-                                            saveWorkReport();
+                                    if (mSummaryContentEt.testValidity()) {
+                                        if (mNewScheduleContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER &&
+                                                mExperienceContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER) {
+                                            if (CommonUtil.isNetWorkConnected(WorkReportAddActivity.this)) {
+                                                isOnlyUpdate = true;
+                                                progressDialog.show();
+                                                updateWorkReport();
+                                            } else {
+                                                ToastUtil.showToast(WorkReportAddActivity.this, R.string.networks_out);
+                                            }
+
                                         } else {
-                                            ToastUtil.showToast(WorkReportAddActivity.this, R.string.networks_out);
+                                            ToastUtil.showToast(WorkReportAddActivity.this, "字数已超限!");
                                         }
-                                    } else {
-                                        ToastUtil.showToast(WorkReportAddActivity.this, "字数已超限!");
                                     }
 
                                 }
-                            }).show();
+                            }).create().show();
+                }
+            }
+
+        } else {
+            if (((mReportTimePresentRb.isChecked() && !isPresentExist)
+                    || (mReportTimeBeforeRb.isChecked() && !isBeforeExist)) && !isResubmit) {
+                if (mSummaryText.length() > 0 ||
+                        mNewScheduleText.length() > 0 ||
+                        mExperienceText.length() > 0) {
+                    if (mSummaryContentEt.testValidity()) {
+                        if (mNewScheduleContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER &&
+                                mExperienceContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER) {
+                            new AlertDialog
+                                    .Builder(mContext)
+                                    .setTitle(getString(R.string.common_notice))
+                                    .setMessage(getString(R.string.work_report_exit_notice))
+                                    .setNegativeButton(R.string.give_up, new DialogInterface.OnClickListener() {
+                                        @Override
+                                        public void onClick(DialogInterface dialog, int which) {
+                                            boolean isResubmit = !TextUtils.isEmpty(resubmit) && ("unsub_tosub".equals(resubmit) || "resubmit".equals(resubmit));
+                                            if (isResubmit || isOptionEvent) {
+                                                Intent optionIntent = new Intent(WorkReportAddActivity.this, WorkDailyShowActivity.class);
+                                                optionIntent.putExtra("caller", mCaller);
+                                                optionIntent.putExtra("report_type", mReportType);
+                                                if (isOptionEvent) {
+                                                    optionIntent.putExtra("fromwhere", "nosubmitdaily");
+                                                }
+                                                startActivityForResult(optionIntent, WORK_REPORT_LIST);
+                                            } else if (!TextUtils.isEmpty(fromqzone) && "fromqzone".equals(fromqzone)) {
+
+                                            } else {
+                                                Intent intent1 = new Intent(WorkReportAddActivity.this, WorkReportMenuActivity.class);
+                                                startActivity(intent1);
+                                            }
+                                            if (!isOptionEvent) {
+                                                finish();
+                                            }
+                                        }
+                                    })
+                                    .setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
+
+                                        @Override
+                                        public void onClick(DialogInterface dialog, int which) {
+                                            if (mNewScheduleContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER &&
+                                                    mExperienceContentEt.getText().toString().length() <= WORD_RESTRICTION_NUMBER) {
+                                                if (CommonUtil.isNetWorkConnected(WorkReportAddActivity.this)) {
+                                                    progressDialog.show();
+                                                    saveWorkReport();
+                                                } else {
+                                                    ToastUtil.showToast(WorkReportAddActivity.this, R.string.networks_out);
+                                                }
+                                            } else {
+                                                ToastUtil.showToast(WorkReportAddActivity.this, "字数已超限!");
+                                            }
+
+                                        }
+                                    }).show();
+                        }
+                    }
                 } else if (!TextUtils.isEmpty(fromqzone) && "fromqzone".equals(fromqzone)) {
                     finish();
                 } else {

+ 2 - 1
version.gradle

@@ -43,6 +43,7 @@ ext {
             jodatimeVersion         : '2.9.4',
             gifVersion              : '1.2.8',
             recyclerLib             : 'v1.0',
+            vlayoutVersion          : '1.2.1'
     ]
 
     deps = [
@@ -89,7 +90,7 @@ ext {
             jodatime           : 'joda-time:joda-time:' + depsVersion.jodatimeVersion,
             gif                : 'pl.droidsonroids.gif:android-gif-drawable:' + depsVersion.gifVersion,
             recyclerLib        : 'com.gxut.ui:recyclerlibrary:' + depsVersion.recyclerLib,
-
+            vlayout            : 'com.alibaba.android:vlayout:' + depsVersion.vlayoutVersion
 
     ]
 }