Browse Source

语言检漏 提交 冲突

SpringBoots 8 years ago
parent
commit
ac05cc5789
55 changed files with 1607 additions and 672 deletions
  1. 326 323
      WeiChat/src/main/AndroidManifest.xml
  2. 6 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java
  3. 3 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/ComDocGriddataOutAdapter.java
  4. 0 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/CostBean.java
  5. 101 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/CostUpdatePModel.java
  6. 35 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/UpdateCostDetailsGridStoreBean.java
  7. 5 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonDocDetailsActivity.java
  8. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/DetailTaskActivity.java
  9. 16 6
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/AddBusinessActivity.java
  10. 102 15
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java
  11. 48 45
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailInfoActivity.java
  12. 11 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessStateActivity.java
  13. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerAddActivity.java
  14. 17 7
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/form/FormListSelectActivity.java
  15. 11 13
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddFlihtsActivity.java
  16. 44 19
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java
  17. 65 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddVisitReportActivity.java
  18. 350 80
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/ExpenseReimbursementActivity.java
  19. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java
  20. 5 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MyRuleSetActivity.java
  21. 3 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java
  22. 5 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutLogListActivity.java
  23. 10 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SearchSelectActivity.java
  24. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectDepartmentActivity.java
  25. 11 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectRemarkActivity.java
  26. 3 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/CostFormModel.java
  27. 19 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/UpdateCostFormModel.java
  28. 1 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java
  29. 3 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddFlihtsPresenter.java
  30. 26 12
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddVisitReportPresenter.java
  31. 2 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/SelectCollisionPresenter.java
  32. 71 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/OACheckUtil.java
  33. 7 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/PopupWindowHelper.java
  34. 0 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/tree/MyTreeListViewAdapter.java
  35. 9 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java
  36. 0 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskDetailB2BActivity.java
  37. 2 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/util/PermissionUtil.java
  38. 110 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/AuthImageDownloader.java
  39. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/ReceiptManager.java
  40. 5 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/XChatManager.java
  41. 1 1
      WeiChat/src/main/res/layout/activity_add_meeting.xml
  42. 9 1
      WeiChat/src/main/res/layout/activity_add_visiting_report.xml
  43. 82 58
      WeiChat/src/main/res/layout/activity_business_detail_info.xml
  44. 1 1
      WeiChat/src/main/res/layout/activity_customter_add.xml
  45. 7 6
      WeiChat/src/main/res/layout/activity_expense_reimbursement.xml
  46. 4 3
      WeiChat/src/main/res/layout/activity_select_active.xml
  47. 7 3
      WeiChat/src/main/res/layout/item_business.xml
  48. 1 0
      WeiChat/src/main/res/layout/item_name_phone.xml
  49. 30 12
      WeiChat/src/main/res/layout/item_visit_contact.xml
  50. 0 2
      WeiChat/src/main/res/menu/main_customer_top.xml
  51. 4 0
      WeiChat/src/main/res/values-en/strings.xml
  52. 5 1
      WeiChat/src/main/res/values-zh-rCN/strings.xml
  53. 4 0
      WeiChat/src/main/res/values-zh-rTW/strings.xml
  54. 12 3
      WeiChat/src/main/res/values/strings.xml
  55. 1 1
      gradle/wrapper/gradle-wrapper.properties

File diff suppressed because it is too large
+ 326 - 323
WeiChat/src/main/AndroidManifest.xml


+ 6 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/MyApplication.java

@@ -47,6 +47,7 @@ import com.xzjmyk.pm.activity.util.Constants;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.PreferenceUtils;
 import com.xzjmyk.pm.activity.util.SharedUtil;
 import com.xzjmyk.pm.activity.util.SharedUtil;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
+import com.xzjmyk.pm.activity.view.AuthImageDownloader;
 import com.xzjmyk.pm.activity.volley.FastVolley;
 import com.xzjmyk.pm.activity.volley.FastVolley;
 
 
 import org.apache.http.cookie.Cookie;
 import org.apache.http.cookie.Cookie;
@@ -333,8 +334,12 @@ public class MyApplication extends Application {
                 // .denyCacheImageMultipleSizesInMemory()
                 // .denyCacheImageMultipleSizesInMemory()
                 .discCache(new TotalSizeLimitedDiscCache(new File(mPicturesDir), 50 * 1024 * 1024))
                 .discCache(new TotalSizeLimitedDiscCache(new File(mPicturesDir), 50 * 1024 * 1024))
                 // 最多缓存50M的图片
                 // 最多缓存50M的图片
-                .discCacheFileNameGenerator(new Md5FileNameGenerator()).memoryCache(memoryCache).tasksProcessingOrder(QueueProcessingType.LIFO)
+                .discCacheFileNameGenerator(new Md5FileNameGenerator())
+                .memoryCache(memoryCache)
+                .tasksProcessingOrder(QueueProcessingType.LIFO)
                 .threadPriority(Thread.NORM_PRIORITY - 2)
                 .threadPriority(Thread.NORM_PRIORITY - 2)
+                .imageDownloader(new AuthImageDownloader(this))
+                .denyCacheImageMultipleSizesInMemory()
                 .threadPoolSize(4)
                 .threadPoolSize(4)
                 .build();
                 .build();
         // Initialize ImageLoader with configuration.
         // Initialize ImageLoader with configuration.

+ 3 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/ComDocGriddataOutAdapter.java

@@ -115,6 +115,9 @@ public class ComDocGriddataOutAdapter extends BaseAdapter {
             if ("SpeAttendance".equals(getCaller())){
             if ("SpeAttendance".equals(getCaller())){
                 viewHolder.detail_title_num.setText("特殊考勤明细"+ num);
                 viewHolder.detail_title_num.setText("特殊考勤明细"+ num);
             }
             }
+            if ("FeePlease!FYBX".equals(getCaller())){
+                viewHolder.detail_title_num.setText("消费明细"+num);
+            }
         }
         }
 
 
 
 

File diff suppressed because it is too large
+ 0 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/CostBean.java


+ 101 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/CostUpdatePModel.java

@@ -0,0 +1,101 @@
+package com.xzjmyk.pm.activity.bean.oa;
+
+import java.util.List;
+
+/**
+ * Created by FANGlh on 2017/6/16.
+ * function:
+ */
+
+public class CostUpdatePModel {
+
+    /**
+     * files : [{"fp_id":43163,"fp_path":"/usr/local/tomcat/webapps/postattach/U0747/09c68e4bc7544dfa84170b7b4c6c045b.jpeg","fp_size":378100,"fp_name":"Screenshot_2017-06-12-10-38-37.jpeg","fp_date":"2017-06-16 08:27:19","fp_man":"方龙海"},{"fp_id":43162,"fp_path":"/usr/local/tomcat/webapps/postattach/U0747/9b87575c099448b5bbfc4644a0b276d3.jpeg","fp_size":332932,"fp_name":"Screenshot_2017-06-15-20-18-50.jpeg","fp_date":"2017-06-16 08:27:19","fp_man":"方龙海"}]
+     * success : true
+     */
+
+    private boolean success;
+    private List<FilesBean> files;
+
+    public boolean isSuccess() {
+        return success;
+    }
+
+    public void setSuccess(boolean success) {
+        this.success = success;
+    }
+
+    public List<FilesBean> getFiles() {
+        return files;
+    }
+
+    public void setFiles(List<FilesBean> files) {
+        this.files = files;
+    }
+
+    public static class FilesBean {
+        /**
+         * fp_id : 43163
+         * fp_path : /usr/local/tomcat/webapps/postattach/U0747/09c68e4bc7544dfa84170b7b4c6c045b.jpeg
+         * fp_size : 378100
+         * fp_name : Screenshot_2017-06-12-10-38-37.jpeg
+         * fp_date : 2017-06-16 08:27:19
+         * fp_man : 方龙海
+         */
+
+        private int fp_id;
+        private String fp_path;
+        private int fp_size;
+        private String fp_name;
+        private String fp_date;
+        private String fp_man;
+
+        public int getFp_id() {
+            return fp_id;
+        }
+
+        public void setFp_id(int fp_id) {
+            this.fp_id = fp_id;
+        }
+
+        public String getFp_path() {
+            return fp_path;
+        }
+
+        public void setFp_path(String fp_path) {
+            this.fp_path = fp_path;
+        }
+
+        public int getFp_size() {
+            return fp_size;
+        }
+
+        public void setFp_size(int fp_size) {
+            this.fp_size = fp_size;
+        }
+
+        public String getFp_name() {
+            return fp_name;
+        }
+
+        public void setFp_name(String fp_name) {
+            this.fp_name = fp_name;
+        }
+
+        public String getFp_date() {
+            return fp_date;
+        }
+
+        public void setFp_date(String fp_date) {
+            this.fp_date = fp_date;
+        }
+
+        public String getFp_man() {
+            return fp_man;
+        }
+
+        public void setFp_man(String fp_man) {
+            this.fp_man = fp_man;
+        }
+    }
+}

+ 35 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/UpdateCostDetailsGridStoreBean.java

@@ -0,0 +1,35 @@
+package com.xzjmyk.pm.activity.bean.oa;
+
+/**
+ * Created by FANGlh on 2017/6/14.
+ * function: 费用报销单保存,明细从表实体类
+ */
+public class UpdateCostDetailsGridStoreBean {
+    private String fpd_d1;
+    private double fpd_total;
+    private int fpd_id;
+
+    public String getFpd_d1() {
+        return fpd_d1;
+    }
+
+    public void setFpd_d1(String fpd_d1) {
+        this.fpd_d1 = fpd_d1;
+    }
+
+    public double getFpd_total() {
+        return fpd_total;
+    }
+
+    public void setFpd_total(double fpd_total) {
+        this.fpd_total = fpd_total;
+    }
+
+    public int getFpd_id() {
+        return fpd_id;
+    }
+
+    public void setFpd_id(int fpd_id) {
+        this.fpd_id = fpd_id;
+    }
+}

+ 5 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/CommonDocDetailsActivity.java

@@ -255,7 +255,9 @@ public class CommonDocDetailsActivity extends BaseActivity {
 
 
     @Override
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
     public boolean onCreateOptionsMenu(Menu menu) {
-       getMenuInflater().inflate(R.menu.menu_add_icon, menu);
+        if (!"FeePlease!FYBX".equals(mCaller)){
+            getMenuInflater().inflate(R.menu.menu_add_icon, menu);
+        }
         return super.onCreateOptionsMenu(menu);
         return super.onCreateOptionsMenu(menu);
     }
     }
 
 
@@ -379,6 +381,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
                                     .putExtra("id", mkeyValue)
                                     .putExtra("id", mkeyValue)
                                     .putExtra("submittype", "resubmit")
                                     .putExtra("submittype", "resubmit")
                                     .putExtra("status","已提交"));
                                     .putExtra("status","已提交"));
+                            finish();
                         }
                         }
                     }
                     }
                     break;
                     break;
@@ -862,7 +865,7 @@ public class CommonDocDetailsActivity extends BaseActivity {
                                             url = Constants.getAppBaseUrl(ct) + "/hr/attendance/resSubmitExtraWork.action";
                                             url = Constants.getAppBaseUrl(ct) + "/hr/attendance/resSubmitExtraWork.action";
                                             ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, NEW_DOC_RESUB_SUCCESSFUL, null, null, "post");
                                             ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, NEW_DOC_RESUB_SUCCESSFUL, null, null, "post");
 
 
-                                        }else if("FeePlease!FYBX".equals(mCaller)){
+                                        }else if("FeePlease!FYBX".equals(mCaller)){ // 报销单
                                             url = Constants.getAppBaseUrl(ct) + "oa/fee/resSubmitFeePlease.action";
                                             url = Constants.getAppBaseUrl(ct) + "oa/fee/resSubmitFeePlease.action";
                                             ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x01, null, null, "post");
                                             ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x01, null, null, "post");
                                         }else { // 通用老的反提交
                                         }else { // 通用老的反提交

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

@@ -289,7 +289,7 @@ public class DetailTaskActivity extends BaseActivity implements OnClickListener
                     param.put("record", et_task_name.getText().toString());
                     param.put("record", et_task_name.getText().toString());
                     sendDataToServer("plm/record/endBillTask.action", param);
                     sendDataToServer("plm/record/endBillTask.action", param);
                 } else {
                 } else {
-                    ViewUtil.ShowMessageTitle(ct,getString(R.string.task_input_detail_info));
+                    ViewUtil.ShowMessageTitle(ct, getString(R.string.task_input_detail_info));
                 }
                 }
                 break;
                 break;
             case R.id.bt_task_bohui:
             case R.id.bt_task_bohui:

+ 16 - 6
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/AddBusinessActivity.java

@@ -153,6 +153,16 @@ public class AddBusinessActivity extends OABaseActivity implements View.OnClickL
         if (TextUtils.isEmpty(company_tv.getText())) {
         if (TextUtils.isEmpty(company_tv.getText())) {
             ToastUtil.showToast(ct, getString(R.string.Company_Name) + getString(R.string.is_must_input));
             ToastUtil.showToast(ct, getString(R.string.Company_Name) + getString(R.string.is_must_input));
             return false;
             return false;
+        } else if (company_tv.getText().length() >= 50) {
+            ToastUtil.showToast(ct, getString(R.string.Company_Name) + getString(R.string.more_length));
+            return false;
+        } else if (!ListUtils.isEmpty(adapter.getContacts())) {
+            for (EmployeesModel e : adapter.getContacts()) {
+                if (!StringUtils.isEmpty(e.getEmployeeNames()) && e.getEmployeeNames().length() > 30) {
+                    ToastUtil.showToast(ct, getString(R.string.common_Contact_person) + getString(R.string.more_length));
+                    return false;
+                }
+            }
         }
         }
         return true;
         return true;
     }
     }
@@ -396,7 +406,7 @@ public class AddBusinessActivity extends OABaseActivity implements View.OnClickL
         formStore.put("bc_id", bc_id);
         formStore.put("bc_id", bc_id);
         formStore.put("bc_code", bc_code);
         formStore.put("bc_code", bc_code);
 //        formStore.put("bc_custcode", "");
 //        formStore.put("bc_custcode", "");
-        formStore.put("bc_doman", name);
+        formStore.put("bc_doman", OACheckUtil.string2Json(name));
         formStore.put("bc_domancode", CommonUtil.getEmcode());
         formStore.put("bc_domancode", CommonUtil.getEmcode());
         formStore.put("bc_statuscode", "AUDITED");
         formStore.put("bc_statuscode", "AUDITED");
         formStore.put("bc_status", getString(R.string.status_approved));
         formStore.put("bc_status", getString(R.string.status_approved));
@@ -404,16 +414,16 @@ public class AddBusinessActivity extends OABaseActivity implements View.OnClickL
         formStore.put("bc_recorddate", time);
         formStore.put("bc_recorddate", time);
         formStore.put("bc_lastdate", time);
         formStore.put("bc_lastdate", time);
         formStore.put("bc_description", StringUtils.string2Json(remark_tv.getText().toString()));
         formStore.put("bc_description", StringUtils.string2Json(remark_tv.getText().toString()));
-        formStore.put("bc_custname", company);
-        formStore.put("bc_address", address);
-        formStore.put("bc_desc6", address);
+        formStore.put("bc_custname", StringUtils.string2Json(company));
+        formStore.put("bc_address", StringUtils.string2Json(address));
+        formStore.put("bc_desc6", "");
         if (latLng != null) {
         if (latLng != null) {
             formStore.put("bc_longitude", latLng.longitude);
             formStore.put("bc_longitude", latLng.longitude);
             formStore.put("bc_latitude", latLng.latitude);
             formStore.put("bc_latitude", latLng.latitude);
         }
         }
-        formStore.put("bc_contact", bc_contact);
+        formStore.put("bc_contact", StringUtils.string2Json(bc_contact));
         formStore.put("bc_tel", bc_tel);
         formStore.put("bc_tel", bc_tel);
-        formStore.put("bc_currentprocess", bc_currentprocess);
+        formStore.put("bc_currentprocess", StringUtils.string2Json(bc_currentprocess));
         formStore.put("bc_remark", StringUtils.string2Json(remark_tv.getText().toString()));
         formStore.put("bc_remark", StringUtils.string2Json(remark_tv.getText().toString()));
         formStore.put("bc_date7", TimeUtils.s_long_2_str(System.currentTimeMillis()));
         formStore.put("bc_date7", TimeUtils.s_long_2_str(System.currentTimeMillis()));
         formStore.put("bc_desc8", "");//成本金额
         formStore.put("bc_desc8", "");//成本金额

+ 102 - 15
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java

@@ -2,6 +2,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.crm;
 
 
 import android.content.Context;
 import android.content.Context;
 import android.content.Intent;
 import android.content.Intent;
+import android.content.res.Resources;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Handler;
 import android.os.Message;
 import android.os.Message;
@@ -37,12 +38,15 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
 import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
+import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView;
 import com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.crouton.Style;
 import com.xzjmyk.pm.activity.view.crouton.Style;
+import com.xzjmyk.pm.activity.view.steps.HorizontalStepsView;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashMap;
@@ -57,6 +61,7 @@ import java.util.Map;
  */
  */
 public class BusinessDetailActivty extends BaseActivity {
 public class BusinessDetailActivty extends BaseActivity {
 
 
+    private final int LOAD_JIEDUAN = 0x210;
     private BussinessDetailAdapter mAdapter;
     private BussinessDetailAdapter mAdapter;
     @ViewInject(R.id.ll_top_state)
     @ViewInject(R.id.ll_top_state)
     private LinearLayout ll_top_state;
     private LinearLayout ll_top_state;
@@ -72,6 +77,7 @@ public class BusinessDetailActivty extends BaseActivity {
     private String bc_code;
     private String bc_code;
     private EmptyLayout mEmptyLayout;
     private EmptyLayout mEmptyLayout;
     private final int CAN_QIANG_NOT = 34;
     private final int CAN_QIANG_NOT = 34;
+    private String[] labels;
 
 
     @Override
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     protected void onCreate(Bundle savedInstanceState) {
@@ -125,8 +131,7 @@ public class BusinessDetailActivty extends BaseActivity {
         mlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
         mlist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-                final BussinessDetailAdapter.ViewHolder holder = (BussinessDetailAdapter.ViewHolder) view.getTag();
-
+                final BussinessDetailAdapter.OldViewHolder holder = (BussinessDetailAdapter.OldViewHolder) view.getTag();
                 startActivity(new Intent(BusinessDetailActivty.this, BusinessDetailInfoActivity.class)
                 startActivity(new Intent(BusinessDetailActivty.this, BusinessDetailInfoActivity.class)
                         .putExtra("type", holder.type)
                         .putExtra("type", holder.type)
                         .putExtra("formCondition", formCondition + "=" + holder.bc_id)
                         .putExtra("formCondition", formCondition + "=" + holder.bc_id)
@@ -170,6 +175,7 @@ public class BusinessDetailActivty extends BaseActivity {
 
 
     private void initData() {
     private void initData() {
         Intent intent = getIntent();
         Intent intent = getIntent();
+        loadJieDuan();
         type = 0;
         type = 0;
         if (intent != null) {
         if (intent != null) {
             type = intent.getIntExtra("bt_type", 0);
             type = intent.getIntExtra("bt_type", 0);
@@ -229,10 +235,14 @@ public class BusinessDetailActivty extends BaseActivity {
 
 
         @Override
         @Override
         public View getView(final int position, View convertView, ViewGroup parent) {
         public View getView(final int position, View convertView, ViewGroup parent) {
-            ViewHolder holder = null;
+            return getOldView(position, convertView, parent);
+        }
+
+        private View getOldView(final int position, View convertView, ViewGroup parent) {
+            OldViewHolder holder = null;
             if (convertView == null) {
             if (convertView == null) {
                 convertView = inflater.inflate(R.layout.item_business_detail, null);
                 convertView = inflater.inflate(R.layout.item_business_detail, null);
-                holder = new ViewHolder();
+                holder = new OldViewHolder();
                 holder.tv_num = (TextView) convertView.findViewById(R.id.tv_crm_business_num);
                 holder.tv_num = (TextView) convertView.findViewById(R.id.tv_crm_business_num);
                 holder.tv_name = (TextView) convertView.findViewById(R.id.tv_crm_business_name);
                 holder.tv_name = (TextView) convertView.findViewById(R.id.tv_crm_business_name);
                 holder.tv_note = (TextView) convertView.findViewById(R.id.tv_crm_business_note);
                 holder.tv_note = (TextView) convertView.findViewById(R.id.tv_crm_business_note);
@@ -245,7 +255,7 @@ public class BusinessDetailActivty extends BaseActivity {
                 holder.iv_event = (ImageView) convertView.findViewById(R.id.iv_business_qiang);
                 holder.iv_event = (ImageView) convertView.findViewById(R.id.iv_business_qiang);
                 convertView.setTag(holder);
                 convertView.setTag(holder);
             } else {
             } else {
-                holder = (ViewHolder) convertView.getTag();
+                holder = (OldViewHolder) convertView.getTag();
             }
             }
             holder.bc_id = mdata.get(position).getBc_id();
             holder.bc_id = mdata.get(position).getBc_id();
             holder.type = mdata.get(position).getType();
             holder.type = mdata.get(position).getType();
@@ -281,11 +291,9 @@ public class BusinessDetailActivty extends BaseActivity {
                         String url = Constants.getAppBaseUrl(ct) + "mobile/crm/ifoverrecv.action";
                         String url = Constants.getAppBaseUrl(ct) + "mobile/crm/ifoverrecv.action";
                         Map<String, Object> stringMap = new HashMap<String, Object>();
                         Map<String, Object> stringMap = new HashMap<String, Object>();
                         stringMap.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_emname"));
                         stringMap.put("emcode", CommonUtil.getSharedPreferences(ct, "erp_emname"));
-
                         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
                         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
                         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
                         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
                         ViewUtil.httpSendRequest(ct, url, stringMap, mHandler, headers, CAN_QIANG_NOT, null, null, "post");
                         ViewUtil.httpSendRequest(ct, url, stringMap, mHandler, headers, CAN_QIANG_NOT, null, null, "post");
-
                     } else if (mdata.get(position).getType() == 2) {
                     } else if (mdata.get(position).getType() == 2) {
                         bc_code = mdata.get(position).getNum();
                         bc_code = mdata.get(position).getNum();
                         startActivityForResult(new Intent(ct, DbfindList2Activity.class), 1);
                         startActivityForResult(new Intent(ct, DbfindList2Activity.class), 1);
@@ -295,6 +303,44 @@ public class BusinessDetailActivty extends BaseActivity {
             return convertView;
             return convertView;
         }
         }
 
 
+        private View getNewView(final int position, View convertView, ViewGroup parent) {
+            ViewHolder holder = null;
+            if (convertView == null) {
+                convertView = inflater.inflate(R.layout.item_business, parent, false);
+                holder = new ViewHolder();
+                holder.companyname_tv = (TextView) convertView.findViewById(R.id.companyname_tv);
+                holder.describe_tv = (TextView) convertView.findViewById(R.id.describe_tv);
+                holder.create_date_tv = (TextView) convertView.findViewById(R.id.create_date_tv);
+                holder.stepsView = (HorizontalStepsView) convertView.findViewById(R.id.stepsView);
+                convertView.setTag(holder);
+            } else {
+                holder = (ViewHolder) convertView.getTag();
+            }
+            holder.bc_id = mdata.get(position).getBc_id();
+            holder.type = mdata.get(position).getType();
+            holder.create_date_tv.setText(mdata.get(position).getDate());
+            holder.companyname_tv.setText(mdata.get(position).getName());
+            holder.describe_tv.setText(mdata.get(position).getNote());
+            holder.stepsView.setProgress(getPosition(mdata.get(position).getCurrentprocess()), labels);
+//            holder.stepsView.setProgress(4, labels);
+            holder.stepsView.setFocusable(false);
+            holder.stepsView.setClickable(false);
+            return convertView;
+        }
+
+        private int getPosition(String currentprocess) {
+            if (StringUtils.isEmpty(currentprocess))
+                currentprocess = business_steps;
+            if (labels == null || labels.length <= 0 || StringUtils.isEmpty(currentprocess)) {
+                return 0;
+            }
+            for (int i = 0; i < labels.length; i++) {
+                if (!StringUtils.isEmpty(labels[i]) && labels[i].equals(currentprocess))
+                    return i;
+            }
+            return 0;
+        }
+
         @Override
         @Override
         public Filter getFilter() {
         public Filter getFilter() {
             return new Filter() {
             return new Filter() {
@@ -309,9 +355,9 @@ public class BusinessDetailActivty extends BaseActivity {
                         searchResults.values = mData;
                         searchResults.values = mData;
                         searchResults.count = mData.size();
                         searchResults.count = mData.size();
                     } else {
                     } else {
-                        mdata = mData;
+                        ArrayList<Business> businessList = mData;
                         ArrayList<Business> newBusiness = new ArrayList<>();
                         ArrayList<Business> newBusiness = new ArrayList<>();
-                        for (Business business : mdata) {
+                        for (Business business : businessList) {
                             String num = business.getNum() == null ? "" : business.getNum();
                             String num = business.getNum() == null ? "" : business.getNum();
                             String name = business.getName() == null ? "" : business.getName();
                             String name = business.getName() == null ? "" : business.getName();
                             String source = business.getSource() == null ? "" : business.getSource();
                             String source = business.getSource() == null ? "" : business.getSource();
@@ -338,8 +384,16 @@ public class BusinessDetailActivty extends BaseActivity {
             };
             };
         }
         }
 
 
-
         class ViewHolder {
         class ViewHolder {
+            int bc_id;
+            int type;
+            TextView companyname_tv;
+            TextView describe_tv;
+            TextView create_date_tv;
+            HorizontalStepsView stepsView;
+        }
+
+        class OldViewHolder {
             int bc_id;
             int bc_id;
             TextView tv_num;
             TextView tv_num;
             TextView tv_name;
             TextView tv_name;
@@ -363,14 +417,32 @@ public class BusinessDetailActivty extends BaseActivity {
         @Override
         @Override
         public void handleMessage(Message msg) {
         public void handleMessage(Message msg) {
             switch (msg.what) {
             switch (msg.what) {
+                case LOAD_JIEDUAN:
+                    try {
+                        JSONArray array = JSON.parseObject(msg.getData().getString("result")).getJSONArray("stages");
+                        labels = new String[array.size()];
+                        if (!ListUtils.isEmpty(array)) {
+                            for (int i = 0; i < array.size(); i++) {
+                                labels[i] = array.getJSONObject(i).getString("BS_NAME");
+                            }
+                        }
+                    } catch (Resources.NotFoundException e) {
+                        e.printStackTrace();
+                        ToastMessage("扔出异常!");
+                    }
+                    sendHttpResquest(Constants.HTTP_SUCCESS_INIT, page);
+                    break;
                 case Constants.HTTP_SUCCESS_INIT:
                 case Constants.HTTP_SUCCESS_INIT:
                     progressDialog.dismiss();
                     progressDialog.dismiss();
-                    // LogUtil.d(TAG, "handleMessage:" + msg.getData().getString("result"));
+                    int page = msg.getData().getInt("page", BusinessDetailActivty.this.page);
+                    LogUtil.i("page=" + page);
                     formCondition = JSON.parseObject(msg.getData().getString("result")).getString("keyField");
                     formCondition = JSON.parseObject(msg.getData().getString("result")).getString("keyField");
                     gridCondition = JSON.parseObject(msg.getData().getString("result")).getString("pfField");
                     gridCondition = JSON.parseObject(msg.getData().getString("result")).getString("pfField");
                     if (StringUtils.isEmpty(formCondition)) formCondition = "bc_id";
                     if (StringUtils.isEmpty(formCondition)) formCondition = "bc_id";
                     if (StringUtils.isEmpty(gridCondition)) gridCondition = "bc_id";
                     if (StringUtils.isEmpty(gridCondition)) gridCondition = "bc_id";
                     JSONArray array = JSON.parseObject(msg.getData().getString("result")).getJSONArray("listdata");
                     JSONArray array = JSON.parseObject(msg.getData().getString("result")).getJSONArray("listdata");
+                    if (page == 1 && ListUtils.getSize(mData) > 0)
+                        mData.clear();
                     if (!array.isEmpty()) {
                     if (!array.isEmpty()) {
                         for (int i = 0; i < array.size(); i++) {
                         for (int i = 0; i < array.size(); i++) {
                             Business model = new Business();
                             Business model = new Business();
@@ -381,9 +453,7 @@ public class BusinessDetailActivty extends BaseActivity {
                             model.setNote(array.getJSONObject(i).getString("bc_remark"));
                             model.setNote(array.getJSONObject(i).getString("bc_remark"));
                             model.setSource(array.getJSONObject(i).getString("bc_from"));
                             model.setSource(array.getJSONObject(i).getString("bc_from"));
                             model.setSteps(array.getJSONObject(i).getString("bc_nichehouse"));
                             model.setSteps(array.getJSONObject(i).getString("bc_nichehouse"));
-                            if (array.getJSONObject(i).getObject("bc_id", Object.class) instanceof Integer) {
-                                model.setBc_id(array.getJSONObject(i).getInteger("bc_id"));
-                            }
+                            model.setBc_id(OACheckUtil.getJsonIntager(array.getJSONObject(i), "bc_id"));
                             model.setType(type);
                             model.setType(type);
                             mData.add(model);
                             mData.add(model);
                         }
                         }
@@ -465,6 +535,20 @@ public class BusinessDetailActivty extends BaseActivity {
         }
         }
     };
     };
 
 
+    /**
+     * @desc:加载阶段
+     * @author:Arison on 2016/7/20
+     */
+    public void loadJieDuan() {
+        progressDialog.show();
+        String url = Constants.getAppBaseUrl(ct) + "/mobile/crm/getBusinessChanceStage.action";
+        Map<String, Object> params = new HashMap<>();
+        params.put("condition", "1=1");
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, LOAD_JIEDUAN, null, null, "post");
+    }
+
     private void sendHttpResquest(int what, int page) {
     private void sendHttpResquest(int what, int page) {
         progressDialog.show();
         progressDialog.show();
         if (CommonUtil.isNetWorkConnected(this)) {
         if (CommonUtil.isNetWorkConnected(this)) {
@@ -495,7 +579,10 @@ public class BusinessDetailActivty extends BaseActivity {
             //bc_currentprocess=商机阶段
             //bc_currentprocess=商机阶段
             LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
             LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
             headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
             headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, what, null, null, "post");
+            Message message = Message.obtain();
+            Bundle bundle = new Bundle();
+            bundle.putInt("page", page);
+            ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, what, message, bundle, "post");
         } else {
         } else {
             progressDialog.dismiss();
             progressDialog.dismiss();
             mEmptyLayout.setErrorMessage(getString(R.string.common_notlinknet));
             mEmptyLayout.setErrorMessage(getString(R.string.common_notlinknet));

+ 48 - 45
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailInfoActivity.java

@@ -24,6 +24,8 @@ import android.widget.PopupWindow;
 import android.widget.SimpleAdapter;
 import android.widget.SimpleAdapter;
 import android.widget.TextView;
 import android.widget.TextView;
 
 
+import com.afollestad.materialdialogs.GravityEnum;
+import com.afollestad.materialdialogs.MaterialDialog;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
@@ -95,7 +97,6 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
     @ViewInject(R.id.bt_zhuanyi)
     @ViewInject(R.id.bt_zhuanyi)
     private Button bt_zhuanyi;
     private Button bt_zhuanyi;
 
 
-
     @ViewInject(R.id.bt_manage_go)
     @ViewInject(R.id.bt_manage_go)
     private Button bt_manage_go;
     private Button bt_manage_go;
     @ViewInject(R.id.crm_ll_followup)
     @ViewInject(R.id.crm_ll_followup)
@@ -105,6 +106,10 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
     @ViewInject(R.id.crm_ll_manage)
     @ViewInject(R.id.crm_ll_manage)
     private LinearLayout crm_ll_manage;
     private LinearLayout crm_ll_manage;
 
 
+    @ViewInject(R.id.ll_card_num)
+    private TextView ll_card_num;
+    @ViewInject(R.id.ll_card_line)
+    private View ll_card_line;
     @ViewInject(R.id.bc_from)
     @ViewInject(R.id.bc_from)
     private TextView bc_from;
     private TextView bc_from;
     @ViewInject(R.id.bc_remark)
     @ViewInject(R.id.bc_remark)
@@ -226,8 +231,7 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
             formCondition = intent.getStringExtra("formCondition");
             formCondition = intent.getStringExtra("formCondition");
             gridCondition = intent.getStringExtra("gridCondition");
             gridCondition = intent.getStringExtra("gridCondition");
             id = intent.getIntExtra("id", 0);
             id = intent.getIntExtra("id", 0);
-            Log.i(TAG, "initView:" + formCondition);
-            Log.i(TAG, "initView:" + gridCondition);
+            LogUtil.i("id=" + id);
         }
         }
         switch (type) {
         switch (type) {
             case 0:
             case 0:
@@ -276,7 +280,7 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
     public void onClick(View v) {
     public void onClick(View v) {
         switch (v.getId()) {
         switch (v.getId()) {
             case R.id.bt_manage_go:
             case R.id.bt_manage_go:
-                showPopupWindow(v.findViewById(R.id.bt_manage_go));
+                showPopupWindow(v);
                 break;
                 break;
             case R.id.stage_follow:
             case R.id.stage_follow:
                 startActivityForResult(new Intent(BusinessDetailInfoActivity.this, BusinessLessActivity.class)
                 startActivityForResult(new Intent(BusinessDetailInfoActivity.this, BusinessLessActivity.class)
@@ -326,7 +330,7 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
             LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
             LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
             view = layoutInflater.inflate(R.layout.pop_crm_list, null);
             view = layoutInflater.inflate(R.layout.pop_crm_list, null);
             ListView plist = (ListView) view.findViewById(R.id.mList);
             ListView plist = (ListView) view.findViewById(R.id.mList);
-            SimpleAdapter adapter = new SimpleAdapter(
+            final SimpleAdapter adapter = new SimpleAdapter(
                     this,
                     this,
                     getPopData(),
                     getPopData(),
                     R.layout.item_pop_list,
                     R.layout.item_pop_list,
@@ -338,25 +342,28 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                     position = position + 1;
                     position = position + 1;
                     switch (position) {
                     switch (position) {
                         case 1:
                         case 1:
-                            loadNichehouse();
+                            final String nichehouse = OACheckUtil.getText(bc_nichehouse);
+                            if (/*存在商机库已选择*/!StringUtils.isEmpty(nichehouse)) {
+                                new MaterialDialog.Builder(ct).title(R.string.common_dialog_title)
+                                        .content(R.string.sure_business_release)
+                                        .negativeText(R.string.common_cancel)
+                                        .positiveText(R.string.common_sure)
+                                        .contentGravity(GravityEnum.CENTER)
+                                        .callback(new MaterialDialog.ButtonCallback() {
+                                            @Override
+                                            public void onNegative(MaterialDialog dialog) {
+                                                super.onNegative(dialog);
+                                            }
+
+                                            @Override
+                                            public void onPositive(MaterialDialog dialog) {
+                                                super.onPositive(dialog);
+                                                sendHttpResquestRelease(nichehouse, BUSINESS_RELEASE);
+                                            }
+                                        }).build().show();
+                            } else
+                                loadNichehouse();
                             popupWindow.dismiss();
                             popupWindow.dismiss();
-//                            new MaterialDialog.Builder(ct).title("系统提示")
-//                                    .content("确定释放这个商机?")
-//                                    .negativeText("取消")
-//                                    .positiveText("确定")
-//                                    .contentGravity(GravityEnum.CENTER)
-//                                    .callback(new MaterialDialog.ButtonCallback() {
-//                                        @Override
-//                                        public void onNegative(MaterialDialog dialog) {
-//                                            super.onNegative(dialog);
-//                                        }
-//
-//                                        @Override
-//                                        public void onPositive(MaterialDialog dialog) {
-//                                            super.onPositive(dialog);
-//                                            sendHttpResquestRelease(BUSINESS_RELEASE);
-//                                        }
-//                                    }).build().show();
                             break;
                             break;
                         case 2:
                         case 2:
                             startActivityForResult(new Intent(BusinessDetailInfoActivity.this, BusinessLessActivity.class)
                             startActivityForResult(new Intent(BusinessDetailInfoActivity.this, BusinessLessActivity.class)
@@ -374,21 +381,11 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                             headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
                             headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
                             ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x10, null, null, "post");
                             ViewUtil.httpSendRequest(ct, url, params, mHandler, headers, 0x10, null, null, "post");
                             break;
                             break;
-                      /*  case 4:
-                            startActivity(new Intent(BusinessDetailInfoActivity.this, BusinessTransferActivity.class)
-                                    .putExtra("code", bt_code));
-                            break;*/
                         case 4:
                         case 4:
-                            ///
                             startActivity(new Intent(BusinessDetailInfoActivity.this,
                             startActivity(new Intent(BusinessDetailInfoActivity.this,
-                                            BusinessSelectCustomerActivity.class)
-                                            .putExtra("code", bt_code)
-//
+                                    BusinessSelectCustomerActivity.class)
+                                    .putExtra("code", bt_code)
                             );
                             );
-//                            finish();
-                            break;
-                        case 5:
-
                             break;
                             break;
                     }
                     }
                 }
                 }
@@ -411,17 +408,13 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                 DisplayUtil.backgroundAlpha(BusinessDetailInfoActivity.this, 1f);
                 DisplayUtil.backgroundAlpha(BusinessDetailInfoActivity.this, 1f);
             }
             }
         });
         });
-
+        int width = popupWindow.getWidth();
+        popupWindow.setWidth(width + DisplayUtil.dip2px(ct, 10));
+        LogUtil.i("width=" + width);
         int[] location = new int[2];
         int[] location = new int[2];
         parent.getLocationOnScreen(location);
         parent.getLocationOnScreen(location);
-        Log.i("Arison", "parent hight:" + location[1]);
-        Log.i("Arison", "popupWindow hight:" + popupWindow.getHeight());
-        Log.i("Arison", "parent width:" + parent.getWidth());
-        Log.i("Arison", "parent width:" + parent.getHeight());
         popupWindow.showAtLocation(parent.findViewById(R.id.bt_manage_go), Gravity.NO_GRAVITY, location[0],
         popupWindow.showAtLocation(parent.findViewById(R.id.bt_manage_go), Gravity.NO_GRAVITY, location[0],
                 location[1] - popupWindow.getHeight() - 5);
                 location[1] - popupWindow.getHeight() - 5);
-//        popupWindow.showAsDropDown(parent,windowManager.getDefaultDisplay().getWidth()
-//        ,0);
     }
     }
 
 
     /*处理商机库并显示选择*/
     /*处理商机库并显示选择*/
@@ -613,7 +606,7 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                             intent.putExtra("from", "BusinessDetailInfo");
                             intent.putExtra("from", "BusinessDetailInfo");
                             intent.putExtra("data", bt_code);
                             intent.putExtra("data", bt_code);
                             intent.putExtra("bc_doman", bt_doman);
                             intent.putExtra("bc_doman", bt_doman);
-                            intent.putExtra("bc_custname", bc_description.getText().toString());
+                            intent.putExtra("bc_custname", OACheckUtil.getText(bc_custname));
                             startActivityForResult(intent, 0x11);
                             startActivityForResult(intent, 0x11);
                         }
                         }
                     }
                     }
@@ -675,7 +668,9 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
                                 simpleDatas.add(simpleData);
                                 simpleDatas.add(simpleData);
                             }
                             }
                         }
                         }
-
+                        if (ListUtils.isEmpty(simpleDatas)) {
+                            findViewById(R.id.stage_need_tv).setVisibility(View.GONE);
+                        }
                         mAapter = new StickyListAdapter(mContext, simpleDatas);
                         mAapter = new StickyListAdapter(mContext, simpleDatas);
                         mList.setAdapter(mAapter);
                         mList.setAdapter(mAapter);
                     } catch (Exception e) {
                     } catch (Exception e) {
@@ -807,7 +802,6 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
     /*删除商机*/
     /*删除商机*/
     public void deleteBusinessChance() {
     public void deleteBusinessChance() {
         String url = Constants.getAppBaseUrl(ct) + "crm/chance/deleteBusinessChance.action";
         String url = Constants.getAppBaseUrl(ct) + "crm/chance/deleteBusinessChance.action";
-        progressDialog.show();
         Map<String, Object> params = new HashMap<>();
         Map<String, Object> params = new HashMap<>();
         params.put("id", id);
         params.put("id", id);
         params.put("caller", "BusinessChance");
         params.put("caller", "BusinessChance");
@@ -1021,6 +1015,15 @@ public class BusinessDetailInfoActivity extends BaseActivity implements View.OnC
 
 
         public void setModels(List<EmployeesModel> models) {
         public void setModels(List<EmployeesModel> models) {
             this.models = models;
             this.models = models;
+            int size = ListUtils.getSize(models);
+            if (size <= 1) {
+                ll_card_num.setVisibility(View.GONE);
+                ll_card_line.setVisibility(View.GONE);
+            } else {
+                ll_card_num.setVisibility(View.VISIBLE);
+                ll_card_line.setVisibility(View.VISIBLE);
+                ll_card_num.setText(size + getString(R.string.crm_ge));
+            }
         }
         }
 
 
         public List<EmployeesModel> getModels() {
         public List<EmployeesModel> getModels() {

+ 11 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessStateActivity.java

@@ -37,6 +37,7 @@ import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
 import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
+import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
@@ -486,10 +487,16 @@ public class BusinessStateActivity extends BaseActivity implements View.OnClickL
                     JSONArray arrayb = object.getJSONArray("listb");
                     JSONArray arrayb = object.getJSONArray("listb");
                     JSONArray arrayc = object.getJSONArray("listc");
                     JSONArray arrayc = object.getJSONArray("listc");
                     JSONArray arrayd = object.getJSONArray("listd");
                     JSONArray arrayd = object.getJSONArray("listd");
-                    int counta = object.getInteger("counta");
-                    int countb = object.getInteger("countb");
-                    int countc = object.getInteger("countc");
-                    int countd = object.getInteger("countd");
+                    int counta = ListUtils.getSize(arraya);
+                    int countb = ListUtils.getSize(arrayb);
+                    int countc = ListUtils.getSize(arrayc);
+                    int countd = ListUtils.getSize(arrayd);
+                    if (page > 1) {
+                        counta += OACheckUtil.getIntagerByText(tv_unmanger);
+                        countb += OACheckUtil.getIntagerByText(tv_manged);
+                        countc += OACheckUtil.getIntagerByText(tv_timeout);
+                        countd += OACheckUtil.getIntagerByText(tv_transtered);
+                    }
                     CommonUtil.textSpanForStyle(tv_unmanger, counta + getString(R.string.Unscheduled_schedule), String.valueOf(counta), ct.getResources().getColor(R.color.yellow_home));
                     CommonUtil.textSpanForStyle(tv_unmanger, counta + getString(R.string.Unscheduled_schedule), String.valueOf(counta), ct.getResources().getColor(R.color.yellow_home));
                     CommonUtil.textSpanForStyle(tv_manged, countb + getString(R.string.Has_been_scheduled), String.valueOf(countb), ct.getResources().getColor(R.color.yellow_home));
                     CommonUtil.textSpanForStyle(tv_manged, countb + getString(R.string.Has_been_scheduled), String.valueOf(countb), ct.getResources().getColor(R.color.yellow_home));
                     CommonUtil.textSpanForStyle(tv_timeout, countc + getString(R.string.Will_time_out), String.valueOf(countc), ct.getResources().getColor(R.color.yellow_home));
                     CommonUtil.textSpanForStyle(tv_timeout, countc + getString(R.string.Will_time_out), String.valueOf(countc), ct.getResources().getColor(R.color.yellow_home));

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/CustomerAddActivity.java

@@ -346,7 +346,7 @@ public class CustomerAddActivity extends BaseActivity implements View.OnClickLis
                         " \"cu_auditdate\":\"" + "" + "\",\n" +
                         " \"cu_auditdate\":\"" + "" + "\",\n" +
                         " \"cu_auditstatuscode\":\"" + "ENTERING" + "\",\n" +
                         " \"cu_auditstatuscode\":\"" + "ENTERING" + "\",\n" +
                         " \"cu_sellercode\":\"" + et_cu_sellercode + "\",\n" +
                         " \"cu_sellercode\":\"" + et_cu_sellercode + "\",\n" +
-                        " \"cu_payments\":\"" + URLEncoder.encode(et_cu_payments.getText().toString()) + "\",\n" +
+                        " \"cu_payments\":\"" + CommonUtil.getNoMarkEditText(et_cu_payments) + "\",\n" +
                         " \"cu_paymentscode\":\"" + pa_code + "\",\n" +
                         " \"cu_paymentscode\":\"" + pa_code + "\",\n" +
                         " \"cu_sellername\":\"" + CommonUtil.getNoMarkEditText(et_cu_sellername) + "\",\n" +
                         " \"cu_sellername\":\"" + CommonUtil.getNoMarkEditText(et_cu_sellername) + "\",\n" +
                         " \"cu_contact\":\"" + CommonUtil.getNoMarkEditText(tv_cu_contact) + "\",\n" +
                         " \"cu_contact\":\"" + CommonUtil.getNoMarkEditText(tv_cu_contact) + "\",\n" +

+ 17 - 7
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/form/FormListSelectActivity.java

@@ -40,6 +40,7 @@ import com.xzjmyk.pm.activity.ui.erp.activity.LeaveActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.SaleDetailActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.SaleDetailActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.TravelActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.TravelActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.WorkExtraActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.WorkExtraActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.ExpenseReimbursementActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.HttpClient;
 import com.xzjmyk.pm.activity.ui.erp.net.HttpClient;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
@@ -375,7 +376,7 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                     getSupportActionBar().setTitle("维修申请单");
                     getSupportActionBar().setTitle("维修申请单");
                 }
                 }
                 else if ("FeePlease!FYBX".equals(caller)){
                 else if ("FeePlease!FYBX".equals(caller)){
-                    statusKey = "fcs_status";
+                    statusKey = "fp_status";
                 }
                 }
                 //防错处理
                 //防错处理
                 if (StringUtils.isEmpty(pfField)) {
                 if (StringUtils.isEmpty(pfField)) {
@@ -430,12 +431,19 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 LogUtil.d("caller:" + caller + "  id:" + id);
                 LogUtil.d("caller:" + caller + "  id:" + id);
 
 
                 if ("在录入".equals(status)) {
                 if ("在录入".equals(status)) {
-                    startActivity(new Intent(mContext,
-                            DataFormDetailActivity.class)
-                            .putExtra("caller", caller)
-                            .putExtra("title", getSupportActionBar().getTitle().toString())
-                            .putExtra("status", status)
-                            .putExtra("id", keyId));
+                    if ("FeePlease!FYBX".equals(caller)){
+                        startActivity(new Intent(mContext,
+                                ExpenseReimbursementActivity.class)
+                                .putExtra("caller", caller)
+                                .putExtra("id", keyId));
+                    }else {
+                        startActivity(new Intent(mContext,
+                                DataFormDetailActivity.class)
+                                .putExtra("caller", caller)
+                                .putExtra("title", getSupportActionBar().getTitle().toString())
+                                .putExtra("status", status)
+                                .putExtra("id", keyId));
+                    }
                 } else {
                 } else {
                     startActivity(new Intent(mContext,
                     startActivity(new Intent(mContext,
                             CommonDocDetailsActivity.class)
                             CommonDocDetailsActivity.class)
@@ -472,6 +480,8 @@ public class FormListSelectActivity extends BaseActivity implements View.OnClick
                 condition = "wod_empcode='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
                 condition = "wod_empcode='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
             } else if ("FeePlease!CCSQ".equals(caller) || "FeePlease!CCSQ!new".equals(caller)) {
             } else if ("FeePlease!CCSQ".equals(caller) || "FeePlease!CCSQ!new".equals(caller)) {
                 condition = "FP_PEOPLE2='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
                 condition = "FP_PEOPLE2='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
+            }else if ("FeePlease!FYBX".equals(caller)){
+                condition = "fp_pleasemancode='" + CommonUtil.getSharedPreferences(ct, "erp_username") + "'";
             }
             }
             if (condition != null) {
             if (condition != null) {
                 new Thread(new GetSaleData(String.valueOf(cur), "10", condition))
                 new Thread(new GetSaleData(String.valueOf(cur), "10", condition))

+ 11 - 13
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddFlihtsActivity.java

@@ -25,6 +25,7 @@ import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IAddFlihtsView;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.OAConfig;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.OAConfig;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
 import com.xzjmyk.pm.activity.wxapi.ApiPlatform;
 import com.xzjmyk.pm.activity.wxapi.ApiUtils;
 import com.xzjmyk.pm.activity.wxapi.ApiUtils;
@@ -61,8 +62,6 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
     private RelativeLayout department_rl;
     private RelativeLayout department_rl;
     @ViewInject(R.id.munber_rl)
     @ViewInject(R.id.munber_rl)
     private RelativeLayout munber_rl;
     private RelativeLayout munber_rl;
-
-
     private AddFlihtsPresenter presenter;
     private AddFlihtsPresenter presenter;
 
 
     @Override
     @Override
@@ -95,7 +94,6 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
         }
         }
         findViewById(R.id.time_tv).setOnClickListener(this);
         findViewById(R.id.time_tv).setOnClickListener(this);
         findViewById(R.id.click_btn).setOnClickListener(this);
         findViewById(R.id.click_btn).setOnClickListener(this);
-
     }
     }
 
 
 
 
@@ -160,7 +158,7 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
             case R.id.calender_select_ll:
             case R.id.calender_select_ll:
                 //TODO 进入修改班次的考勤日期选择,跳日历界面
                 //TODO 进入修改班次的考勤日期选择,跳日历界面
 //                ToastMessage("进入修改班次的考勤日期选择,跳日历界面");
 //                ToastMessage("进入修改班次的考勤日期选择,跳日历界面");
-                startActivity(new Intent(getApplicationContext(),FlihtsDateSelectActivity.class));
+                startActivity(new Intent(getApplicationContext(), FlihtsDateSelectActivity.class));
                 break;
                 break;
         }
         }
     }
     }
@@ -215,8 +213,8 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
     }
     }
 
 
     @Override
     @Override
-    public void updateDate(String date,boolean isUpdate) {
-       if (isUpdate) {
+    public void updateDate(String date, boolean isUpdate) {
+        if (isUpdate) {
             date_tv.setVisibility(View.GONE);
             date_tv.setVisibility(View.GONE);
             calender_select_ll.setVisibility(View.VISIBLE);
             calender_select_ll.setVisibility(View.VISIBLE);
             click_btn.setText(getString(R.string.common_update_button));
             click_btn.setText(getString(R.string.common_update_button));
@@ -263,7 +261,7 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
             collision_munber_tv.setVisibility(View.GONE);
             collision_munber_tv.setVisibility(View.GONE);
         } else {
         } else {
             collision_munber_tv.setVisibility(View.VISIBLE);
             collision_munber_tv.setVisibility(View.VISIBLE);
-            collision_munber_tv.setText(getString(R.string.conflict_personnel)+ mans.size() + getString(R.string.a));
+            collision_munber_tv.setText(getString(R.string.conflict_personnel) + mans.size() + getString(R.string.a));
         }
         }
     }
     }
 
 
@@ -298,17 +296,17 @@ public class AddFlihtsActivity extends OABaseActivity implements IAddFlihtsView,
 
 
     public boolean isCanSubmit() {
     public boolean isCanSubmit() {
         if (StringUtils.isEmpty(rule_name_et.getText().toString())) {
         if (StringUtils.isEmpty(rule_name_et.getText().toString())) {
-            Crouton.showToast(ct, R.string.not_null_name, R.color.load_warning);
+            ToastUtil.showToast(ct, R.string.work_name_not_be_null);
             return false;
             return false;
         } else if (StringUtils.isEmpty(time_tv.getText().toString())) {
         } else if (StringUtils.isEmpty(time_tv.getText().toString())) {
             Crouton.showToast(ct, R.string.not_null_work_time, R.color.load_warning);
             Crouton.showToast(ct, R.string.not_null_work_time, R.color.load_warning);
             return false;
             return false;
         }
         }
-        if (!getString(R.string.common_update_button).equals(click_btn.getText().toString())){
-        if (StringUtils.isEmpty(date_tv.getText().toString())) {
-            Crouton.showToast(ct, R.string.not_null_work_day, R.color.load_warning);
-            return false;
-        }
+        if (!getString(R.string.common_update_button).equals(click_btn.getText().toString())) {
+            if (StringUtils.isEmpty(date_tv.getText().toString())) {
+                Crouton.showToast(ct, R.string.not_null_work_day, R.color.load_warning);
+                return false;
+            }
         }
         }
         if (!ListUtils.isEmpty(mans) || !ListUtils.isEmpty(defaultirs)) {
         if (!ListUtils.isEmpty(mans) || !ListUtils.isEmpty(defaultirs)) {
             showDeleteDialog();
             showDeleteDialog();

+ 44 - 19
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddMeetingActivity.java

@@ -148,26 +148,41 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
     };
     };
 
 
     @Override
     @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (item.getItemId() == R.id.save) {
-            CommonInterface.getInstance().getCodeByNet("Meetingroomapply", new CommonInterface.OnResultListener() {
-                @Override
-                public void result(boolean isOk, int what, String message) {
-                    ma_code = message;
-                    getIdByNet();
-                }
-            });
+    public boolean onCreateOptionsMenu(Menu menu) {
+        getMenuInflater().inflate(R.menu.menu_list, menu);
+        return super.onCreateOptionsMenu(menu);
+    }
 
 
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        if (R.id.push == item.getItemId()) {
+            startActivity(new Intent(ct, MeetingActivity.class));
         }
         }
         return super.onOptionsItemSelected(item);
         return super.onOptionsItemSelected(item);
     }
     }
 
 
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.menu_visit_save, menu);
-        return super.onCreateOptionsMenu(menu);
-    }
+    //TODO 修改保存按钮
+//    @Override
+//    public boolean onOptionsItemSelected(MenuItem item) {
+//        if (item.getItemId() == R.id.save) {
+//            CommonInterface.getInstance().getCodeByNet("Meetingroomapply", new CommonInterface.OnResultListener() {
+//                @Override
+//                public void result(boolean isOk, int what, String message) {
+//                    ma_code = message;
+//                    getIdByNet();
+//                }
+//            });
+//
+//        }
+//        return super.onOptionsItemSelected(item);
+//    }
+
+
+//    @Override
+//    public boolean onCreateOptionsMenu(Menu menu) {
+//        getMenuInflater().inflate(R.menu.menu_visit_save, menu);
+//        return super.onCreateOptionsMenu(menu);
+//    }
 
 
     @Override
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     protected void onCreate(Bundle savedInstanceState) {
@@ -242,15 +257,25 @@ public class AddMeetingActivity extends BaseActivity implements View.OnClickList
                 dialog.setListener(this);
                 dialog.setListener(this);
                 dialog.show();
                 dialog.show();
                 break;
                 break;
+            case R.id.bt_save:
+                CommonInterface.getInstance().getCodeByNet("Meetingroomapply", new CommonInterface.OnResultListener() {
+                    @Override
+                    public void result(boolean isOk, int what, String message) {
+                        ma_code = message;
+                        getIdByNet();
+                    }
+                }); break;
         }
         }
     }
     }
 
 
     private void endOfActivity() {
     private void endOfActivity() {
-        Intent intent = new Intent();
-        intent.putExtra("data", "data");
-        setResult(0x14, intent);
+//        Intent intent = new Intent();
+//        intent.putExtra("data", "data");
+//        setResult(0x14, intent);
+//        finish();
+//        progressDialog.dismiss();
+        startActivity(new Intent(ct, MeetingActivity.class));
         finish();
         finish();
-        progressDialog.dismiss();
     }
     }
 
 
     //判断是否可以进行创建
     //判断是否可以进行创建

+ 65 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/AddVisitReportActivity.java

@@ -1,7 +1,9 @@
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 
 
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.support.v7.app.AlertDialog;
 import android.text.TextUtils;
 import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
@@ -13,16 +15,23 @@ import android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
+import com.iflytek.cloud.RecognizerResult;
+import com.iflytek.cloud.SpeechError;
+import com.iflytek.cloud.ui.RecognizerDialogListener;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.audio.voicerecognition.JsonParser;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.SelectAimModel;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.SelectAimModel;
 import com.xzjmyk.pm.activity.ui.erp.presenter.AddVisitReportPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.AddVisitReportPresenter;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IAddVisitReport;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.IAddVisitReport;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.PopupWindowHelper;
 import com.xzjmyk.pm.activity.ui.erp.util.PopupWindowHelper;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.oa.RecognizerDialogUtil;
 import com.xzjmyk.pm.activity.util.CalendarUtils;
 import com.xzjmyk.pm.activity.util.CalendarUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.util.ToastUtil;
@@ -121,6 +130,7 @@ public class AddVisitReportActivity extends OABaseActivity implements IAddVisitR
             findViewById(R.id.additem_tv).setOnClickListener(this);
             findViewById(R.id.additem_tv).setOnClickListener(this);
             findViewById(R.id.submit_btn).setOnClickListener(this);
             findViewById(R.id.submit_btn).setOnClickListener(this);
             contact_lv.setOnItemClickListener(this);
             contact_lv.setOnItemClickListener(this);
+            findViewById(R.id.voice_search_iv).setOnClickListener(this);
         } else {
         } else {
             findViewById(R.id.submit_btn).setVisibility(View.GONE);
             findViewById(R.id.submit_btn).setVisibility(View.GONE);
             findViewById(R.id.additem_tv).setVisibility(View.GONE);
             findViewById(R.id.additem_tv).setVisibility(View.GONE);
@@ -133,7 +143,10 @@ public class AddVisitReportActivity extends OABaseActivity implements IAddVisitR
     @Override
     @Override
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         AddVisitReportActivity.this.position = position;
         AddVisitReportActivity.this.position = position;
-        Intent intent = new Intent(ct, SelectRemarkActivity.class).putExtra("isContact", true).putExtra("cuname", presenter.getCuName());
+        Intent intent = new Intent(ct, SelectRemarkActivity.class)
+                .putExtra("isContact", true)
+                .putExtra("contact", presenter.getContact())
+                .putExtra("cuname", presenter.getCuName());
         startActivityForResult(intent, SELECT_CONTACT);
         startActivityForResult(intent, SELECT_CONTACT);
     }
     }
 
 
@@ -166,11 +179,29 @@ public class AddVisitReportActivity extends OABaseActivity implements IAddVisitR
                 intent = new Intent(ct, SelectRemarkActivity.class);
                 intent = new Intent(ct, SelectRemarkActivity.class);
                 startActivityForResult(intent, SELECT_REMARK);
                 startActivityForResult(intent, SELECT_REMARK);
                 break;
                 break;
+            case R.id.voice_search_iv:
+                RecognizerDialogUtil.showRecognizerDialog(ct, new RecognizerDialogListener() {
+                    @Override
+                    public void onResult(RecognizerResult recognizerResult, boolean b) {
+                        String text = JsonParser.parseIatResult(recognizerResult.getResultString());
+                        if (!StringUtils.isEmpty(text))
+                            content_et.setText(content_et.getText().toString() + text);
+                    }
+
+                    @Override
+                    public void onError(SpeechError speechError) {
+
+                    }
+                });
+                break;
         }
         }
     }
     }
 
 
     private boolean canSubmit() {
     private boolean canSubmit() {
-        if (TextUtils.isEmpty(company_tv.getText())) {
+        if (!MyApplication.getInstance().isNetworkActive()) {
+            ToastUtil.showToast(ct, getString(R.string.networks_out));
+            return false;
+        } else if (TextUtils.isEmpty(company_tv.getText())) {
             ToastUtil.showToast(ct, getString(R.string.visit_company) + getString(R.string.is_must_input));
             ToastUtil.showToast(ct, getString(R.string.visit_company) + getString(R.string.is_must_input));
             return false;
             return false;
         } else if (TextUtils.isEmpty(company_add_tv.getText())) {
         } else if (TextUtils.isEmpty(company_add_tv.getText())) {
@@ -182,7 +213,7 @@ public class AddVisitReportActivity extends OABaseActivity implements IAddVisitR
         } else if (!presenter.canSubmit(adapter.getContactNames())) {
         } else if (!presenter.canSubmit(adapter.getContactNames())) {
             ToastUtil.showToast(ct, R.string.contect_is_much);
             ToastUtil.showToast(ct, R.string.contect_is_much);
             return false;
             return false;
-        }else if (TextUtils.isEmpty(content_et.getText())) {
+        } else if (TextUtils.isEmpty(content_et.getText())) {
             ToastUtil.showToast(ct, getString(R.string.context_is_much));
             ToastUtil.showToast(ct, getString(R.string.context_is_much));
             return false;
             return false;
         }
         }
@@ -215,6 +246,7 @@ public class AddVisitReportActivity extends OABaseActivity implements IAddVisitR
                 PopupWindowHelper.create(this, getString(R.string.perfect_company_name), entity, new PopupWindowHelper.OnClickListener() {
                 PopupWindowHelper.create(this, getString(R.string.perfect_company_name), entity, new PopupWindowHelper.OnClickListener() {
                     @Override
                     @Override
                     public void result(SelectAimModel model) {
                     public void result(SelectAimModel model) {
+                        LogUtil.i("model=" + model.getName());
                         company_tv.setText(model.getName());
                         company_tv.setText(model.getName());
                         company_add_tv.setText(model.getAddress());
                         company_add_tv.setText(model.getAddress());
                         presenter.setClient(model);
                         presenter.setClient(model);
@@ -279,22 +311,50 @@ public class AddVisitReportActivity extends OABaseActivity implements IAddVisitR
         }
         }
 
 
         @Override
         @Override
-        public View getView(int position, View convertView, ViewGroup parent) {
+        public View getView(final int position, View convertView, ViewGroup parent) {
             ViewHodler hodler = null;
             ViewHodler hodler = null;
             if (convertView == null) {
             if (convertView == null) {
                 convertView = LayoutInflater.from(ct).inflate(R.layout.item_visit_contact, parent, false);
                 convertView = LayoutInflater.from(ct).inflate(R.layout.item_visit_contact, parent, false);
                 hodler = new ViewHodler();
                 hodler = new ViewHodler();
                 hodler.contact_tv = (TextView) convertView.findViewById(R.id.contact_tv);
                 hodler.contact_tv = (TextView) convertView.findViewById(R.id.contact_tv);
+                hodler.delete_tv = (TextView) convertView.findViewById(R.id.delete_tv);
                 convertView.setTag(hodler);
                 convertView.setTag(hodler);
             } else
             } else
                 hodler = (ViewHodler) convertView.getTag();
                 hodler = (ViewHodler) convertView.getTag();
             String nameShow = (contactNames == null || contactNames.size() < position || StringUtils.isEmpty(contactNames.get(position))) ? "" : contactNames.get(position);
             String nameShow = (contactNames == null || contactNames.size() < position || StringUtils.isEmpty(contactNames.get(position))) ? "" : contactNames.get(position);
             hodler.contact_tv.setText(nameShow);
             hodler.contact_tv.setText(nameShow);
+            if (saveAble && position != 0) {
+                hodler.delete_tv.setVisibility(View.VISIBLE);
+                hodler.delete_tv.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        deleteContact(position);
+                    }
+                });
+            } else
+                hodler.delete_tv.setVisibility(View.GONE);
+
             return convertView;
             return convertView;
         }
         }
 
 
+        public void deleteContact(final int position) {
+            AlertDialog.Builder builder = new AlertDialog.Builder(ct);
+            builder.setTitle(R.string.prompt_title).setMessage(R.string.sure_delete_content).setPositiveButton(R.string.sure, new DialogInterface.OnClickListener() {
+                @Override
+                public void onClick(DialogInterface dialogInterface, int i) {
+                    contactNames.remove(position);
+                    notifyDataSetChanged();
+                }
+            }).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
+                @Override
+                public void onClick(DialogInterface dialogInterface, int i) {
+
+                }
+            }).show();
+        }
+
         class ViewHodler {
         class ViewHodler {
-            private TextView contact_tv;
+            private TextView contact_tv, delete_tv;
         }
         }
     }
     }
 }
 }

+ 350 - 80
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/ExpenseReimbursementActivity.java

@@ -47,10 +47,13 @@ import com.nostra13.universalimageloader.core.ImageLoader;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.bean.oa.CommonDocAMBean;
 import com.xzjmyk.pm.activity.bean.oa.CostBean;
 import com.xzjmyk.pm.activity.bean.oa.CostBean;
 import com.xzjmyk.pm.activity.bean.oa.CostSingleBean;
 import com.xzjmyk.pm.activity.bean.oa.CostSingleBean;
+import com.xzjmyk.pm.activity.bean.oa.CostUpdatePModel;
 import com.xzjmyk.pm.activity.bean.oa.SaveCostDetailsGridStoreBean;
 import com.xzjmyk.pm.activity.bean.oa.SaveCostDetailsGridStoreBean;
 import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.bean.oa.SelectBean;
+import com.xzjmyk.pm.activity.bean.oa.UpdateCostDetailsGridStoreBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.CommonDocDetailsActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.CommonDocDetailsActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.form.FormListSelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.form.FormListSelectActivity;
@@ -141,9 +144,10 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
     private List<CostBean.DataBean.FormdetailBean> mFormconfigsBean;
     private List<CostBean.DataBean.FormdetailBean> mFormconfigsBean;
     private List<CostBean.DataBean.GridetailBean> mGridconfigsBean;
     private List<CostBean.DataBean.GridetailBean> mGridconfigsBean;
 
 
-    private CostBean m2CostBean;
-    private List<CostBean.DataBean.FormdetailBean> m2FormconfigsBean;
-    private List<CostBean.DataBean.GridetailBean> m2GridconfigsBean;
+    private CommonDocAMBean mCommonDocAMBean;
+    private List<CommonDocAMBean.DatasBean.FormconfigsBean> mFormconfigsList;
+    private List<CommonDocAMBean.DatasBean.GridconfigsBean> mGridconfigsList;
+
     private AddCostBean mAddCostBean;
     private AddCostBean mAddCostBean;
     private List<AddCostBean> mAddCost_list; // popwindow要展示的消费明细类型
     private List<AddCostBean> mAddCost_list; // popwindow要展示的消费明细类型
 
 
@@ -155,6 +159,7 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
     private int keyValue;
     private int keyValue;
     private int formid; //重新提交带过来的id
     private int formid; //重新提交带过来的id
 
 
+
     private Handler erhandler = new Handler(){
     private Handler erhandler = new Handler(){
         @Override
         @Override
         public void handleMessage(Message msg) {
         public void handleMessage(Message msg) {
@@ -191,8 +196,9 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                         //{"fp_id": 38366,"success": true,"fpd_id": [[28859,1]]}
                         //{"fp_id": 38366,"success": true,"fpd_id": [[28859,1]]}
                         keyValue = JSON.parseObject(result).getIntValue("fp_id");
                         keyValue = JSON.parseObject(result).getIntValue("fp_id");
                         sendPicture();
                         sendPicture();
+//                        commitSuccess(keyValue);
                         //TODO 测试接口返回数据
                         //TODO 测试接口返回数据
-                        getUpdateData(keyValue);
+//                        getUpdateData(keyValue);
                     }
                     }
                     LogUtil.prinlnLongMsg("0x05result",result);
                     LogUtil.prinlnLongMsg("0x05result",result);
                     break;
                     break;
@@ -207,7 +213,7 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                     if (!StringUtils.isEmpty(result)){
                     if (!StringUtils.isEmpty(result)){
                         Log.i("0x07result", result);
                         Log.i("0x07result", result);
                         progressDialog.dismiss();
                         progressDialog.dismiss();
-                        Toast.makeText(ct,getString(R.string.fangkui_success),Toast.LENGTH_LONG).show();
+                        Toast.makeText(ct,"发票提交成功",Toast.LENGTH_LONG).show();
                         new Handler().postDelayed(new Runnable() {
                         new Handler().postDelayed(new Runnable() {
                             @Override
                             @Override
                             public void run() {
                             public void run() {
@@ -217,14 +223,43 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                     }
                     }
                     break;
                     break;
                 case 0x08:
                 case 0x08:
-                    if (!StringUtils.isEmpty(result)) {
-                        JSONObject resultJsonObject = JSON.parseObject(result);
-                        cb_id = resultJsonObject.getInteger("id");
-                        for (int i = 0; i < mPhotoList.size(); i++) {
-                            String path = mPhotoList.get(i);
-                            sendPictureRequest(path);
+                    if (!StringUtils.isEmpty(result)){
+                        Log.i("0x08result", result);
+                        keyValue = formid;
+                        sendPicture();
+                    }
+                    break;
+                case 0x09:
+                    if (!StringUtils.isEmpty(result)){
+                        Log.i("0x09result", result);
+                        costFormModel_list.remove(cd_table_position);
+                        if (costFormModel_list.size() == 0){
+                            detail_table_ll.setVisibility(View.GONE);
+                        }
+                        dtAdapter.notifyDataSetChanged();
+                    }
+                    break;
+                case 0x10:
+                    if (!StringUtils.isEmpty(result)){
+                        Log.i("0x10result", result);
+                        try {
+                            JSONObject resultObject = JSON.parseObject(result);
+                            if (resultObject != null){
+                                CostUpdatePModel mCostUpdatePModel = new CostUpdatePModel();
+                                mCostUpdatePModel = JSON.parseObject(JSON.toJSONString(resultObject),CostUpdatePModel.class);
+                                doShowUpP(mCostUpdatePModel);
+                            }
+                        } catch (JSONException e) {
+                            e.printStackTrace();
+                        }catch (Exception e){
+                            e.printStackTrace();
                         }
                         }
-                        Log.i("0x08result", result + "");
+
+                    }
+                    break;
+                case 0x11:
+                    if (!StringUtils.isEmpty(result)){
+                        Log.i("0x11result", result);
                     }
                     }
                     break;
                     break;
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
                 case Constants.APP_SOCKETIMEOUTEXCEPTION:
@@ -234,11 +269,41 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                     } else {
                     } else {
                         ToastMessage(result);
                         ToastMessage(result);
                     }
                     }
+                    progressDialog.dismiss();
+                    btn_save.setEnabled(true);
                     break;
                     break;
             }
             }
         }
         }
     };
     };
 
 
+    private void doShowUpP(CostUpdatePModel mCostUpdatePModel) {
+
+        if (ListUtils.isEmpty(mCostUpdatePModel.getFiles()))  return;
+        if (!ListUtils.isEmpty(mPhotoList)) mPhotoList.clear();
+        for (int i = 0; i < mCostUpdatePModel.getFiles().size(); i++) {
+            mPhotoList.add(mCostUpdatePModel.getFiles().get(i).getFp_path());
+        }
+
+        mAdapter.setCUPmodel(mCostUpdatePModel);
+        mAdapter.notifyDataSetChanged();
+        Log.i("mPhotoList_update",JSON.toJSONString(mPhotoList));
+    }
+
+
+    private void getPictUrl(List<String> pathlist) {
+        Log.i("pathlist",JSON.toJSONString(pathlist));
+        for (int i = 0; i < pathlist.size(); i++) {
+            String url = Constants.getAppBaseUrl(getApplicationContext()) +  "common/download.action";
+            Map<String,Object> params = new HashMap<>();
+            params.put("path",pathlist.get(i));
+            LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+            headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+            ViewUtil.httpSendRequest(ct, url, params, erhandler, headers, 0x11, null, null, "get");
+        }
+    }
+
+    private int cd_table_position;
+    private String fb_attach;
 
 
 
 
     @Override
     @Override
@@ -247,7 +312,7 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         setContentView(R.layout.activity_expense_reimbursement);
         setContentView(R.layout.activity_expense_reimbursement);
         ViewUtils.inject(this);
         ViewUtils.inject(this);
         initView();
         initView();
-        initTypeAndMoneyData();
+//        initTypeAndMoneyData();  //TODO 获取该表单相关字段,只做查阅作用,看完了关掉不请求
         getTypeAndMoneyData();   //获取报销类型、币种数据
         getTypeAndMoneyData();   //获取报销类型、币种数据
         getCostDetailsData();     //获取新增要展示明细列表数据源
         getCostDetailsData();     //获取新增要展示明细列表数据源
         initPicturesEvent();   //添加发票事件
         initPicturesEvent();   //添加发票事件
@@ -287,15 +352,39 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
 
 
         mAddCostBean = new AddCostBean();
         mAddCostBean = new AddCostBean();
         mAddCost_list = new ArrayList<>();
         mAddCost_list = new ArrayList<>();
+        //消费明细表格适配器
 
 
+        dtAdapter = new DetailsTableAdapter();
+        table_details_list.setAdapter(dtAdapter);
+
+        mFormconfigsList = new ArrayList<>();
+        mGridconfigsList = new ArrayList<>();
         Intent intent = getIntent();
         Intent intent = getIntent();
         formid = 0;
         formid = 0;
         formid = intent.getIntExtra("id", 0);
         formid = intent.getIntExtra("id", 0);
         if (formid != 0){
         if (formid != 0){
-            getUpdateData(formid);
+            getUpdateData(formid);  //  获取单据数据
+            btn_save.setText(getString(R.string.common_update_button));
+            Log.i("formid",formid+"if");
+        }else {
+            Log.i("formid",formid+"else");
         }
         }
     }
     }
 
 
+    /**
+     * //获取发票图片路径接口
+     */
+    private void getUpdatePicture() {
+        String url = Constants.getAppBaseUrl(getApplicationContext()) +  "common/getFilePaths.action";
+        Map<String,Object> params = new HashMap<>();
+        params.put("field","fb_attach");
+//        params.put("caller",caller);
+        params.put("id",fb_attach);
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        ViewUtil.httpSendRequest(ct, url, params, erhandler, headers, 0x10, null, null, "get");
+
+    }
     /**
     /**
      * 重新提交操作根据id,获取单据内容
      * 重新提交操作根据id,获取单据内容
      * @param id
      * @param id
@@ -303,14 +392,15 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
     private void getUpdateData(int id) {
     private void getUpdateData(int id) {
 //        progressDialog.show();
 //        progressDialog.show();
         if (!CommonUtil.isNetWorkConnected(mContext)) {
         if (!CommonUtil.isNetWorkConnected(mContext)) {
-            ToastMessage("网络未连接!");
+            ToastMessage(getString(R.string.networks_out));
         }
         }
-        String url = Constants.getAppBaseUrl(ct) + "mobile/getformandgriddetail.action";
-
+//        String url = Constants.getAppBaseUrl(ct) + "mobile/getformandgriddetail.action";
+        String url = Constants.getAppBaseUrl(getApplicationContext()) + "mobile/common/getformandgriddata.action";
         Map<String, Object> params = new HashMap<>();
         Map<String, Object> params = new HashMap<>();
         params.put("caller", caller);
         params.put("caller", caller);
-        params.put("condition", "1=1");
         params.put("id", id);
         params.put("id", id);
+//        params.put("condition", "1=1");
+//        params.put("id", id);Log.i("formid",id+"if");
         params.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
         params.put("sessionId", CommonUtil.getSharedPreferences(ct, "sessionId"));
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
         headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
@@ -318,7 +408,9 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
     }
     }
 
 
     private void commitSuccess(final int id) {
     private void commitSuccess(final int id) {
-        ToastMessage("提交成功!");
+        ToastMessage(getString(R.string.submit_success));
+        progressDialog.dismiss();
+        btn_save.setEnabled(true);
         erhandler.postDelayed(new Runnable() {
         erhandler.postDelayed(new Runnable() {
             @Override
             @Override
             public void run() {
             public void run() {
@@ -372,55 +464,50 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
      * 更新时录入界面数据的处理初始化
      * 更新时录入界面数据的处理初始化
      * @param result
      * @param result
      */
      */
+
     private void handleUpdateData(String result) {
     private void handleUpdateData(String result) {
-        m2CostBean = new CostBean();
-        m2GridconfigsBean = new ArrayList<>();
-        m2FormconfigsBean = new ArrayList<>();
+        mFormconfigsList.clear();
+        mGridconfigsList.clear();
         try {
         try {
-            JSONObject amresultJsonObject = JSON.parseObject(result);
-            JSONObject dataObjecty = amresultJsonObject.getJSONObject("data");
-            JSONArray formdataArray = dataObjecty.getJSONArray("formdetail");
-            JSONArray griddataArray = dataObjecty.getJSONArray("gridetail");
-
-            if (formdataArray == null || griddataArray == null) {
-                // TODO
-            } else {
-                m2CostBean = JSON.parseObject(amresultJsonObject.toString(), CostBean.class);
-                if (m2CostBean.getData().getFormdetail() != null && m2CostBean.getData().getGridetail() != null) {
-                    int allFormconfigs_num = m2CostBean.getData().getFormdetail().size();
-                    for (int i = 0; i < allFormconfigs_num; i++) {
-                        String fd_caption = m2CostBean.getData().getFormdetail().get(i).getFd_caption();
-                        String fd_field = m2CostBean.getData().getFormdetail().get(i).getFd_field();
-                        int mfd_isdefault = m2CostBean.getData().getFormdetail().get(i).getMfd_isdefault();
-                        if (mfd_isdefault == -1 && fd_caption != null && fd_field != null) {
-                            m2FormconfigsBean.add(m2CostBean.getData().getFormdetail().get(i));
-                        }
-
+            JSONObject resultJsonObject =JSON.parseObject(result);
+            JSONObject dataObjecty = resultJsonObject.getJSONObject("datas");
+            JSONArray formdataArray = dataObjecty.getJSONArray("formdata");
+            JSONArray griddataArray = dataObjecty.getJSONArray("griddata");
+            mCommonDocAMBean = JSON.parseObject(resultJsonObject.toString(), CommonDocAMBean.class);
+            if (mCommonDocAMBean.getDatas() == null) return;
+            if (!ListUtils.isEmpty(mCommonDocAMBean.getDatas().getFormdata())
+                    && !ListUtils.isEmpty(mCommonDocAMBean.getDatas().getFormconfigs())){
+
+                int allFormconfigs_num = mCommonDocAMBean.getDatas().getFormconfigs().size();
+                for (int i = 0; i < allFormconfigs_num; i++) {
+                    String fd_caption = mCommonDocAMBean.getDatas().getFormconfigs().get(i).getFD_CAPTION();
+                    String fd_field = mCommonDocAMBean.getDatas().getFormconfigs().get(i).getFD_FIELD();
+                    int mfd_isdefault = mCommonDocAMBean.getDatas().getFormconfigs().get(i).getMFD_ISDEFAULT();
+                    if (mfd_isdefault == -1 && fd_caption != null && fd_field != null) {
+                        mFormconfigsList.add(mCommonDocAMBean.getDatas().getFormconfigs().get(i));
                     }
                     }
-                    LogUtil.prinlnLongMsg("m2FormconfigsBean", JSON.toJSONString(m2FormconfigsBean));
                 }
                 }
+                doShowFormData(formdataArray,mFormconfigsList);
+                LogUtil.prinlnLongMsg("mFormconfigsList",JSON.toJSONString(mFormconfigsList));
+                LogUtil.prinlnLongMsg("formdataArray",JSON.toJSONString(formdataArray));
 
 
-                //  获取需要显示的从表单配置数据属性保存到mGridconfigsBean中
-                if (m2CostBean.getData().getGridetail() != null && m2CostBean.getData().getGridetail() != null) {
-                    int allGridconfigs_num = m2CostBean.getData().getGridetail().size();
-                    for (int i = 0; i < allGridconfigs_num; i++) {
-                        String dg_caption = m2CostBean.getData().getGridetail().get(i).getDg_caption();
-                        String dg_field = m2CostBean.getData().getGridetail().get(i).getDg_field();
-                        int mdg_isdefault = m2CostBean.getData().getGridetail().get(i).getMdg_isdefault();
-                        if (mdg_isdefault == -1 && dg_caption != null && dg_field != null) {
-                            m2GridconfigsBean.add(m2CostBean.getData().getGridetail().get(i));
-                        }
-                    }
-                    LogUtil.prinlnLongMsg("m2GridconfigsBean", JSON.toJSONString(m2GridconfigsBean));
-                }
             }
             }
 
 
-            new Handler().postDelayed(new Runnable() {
-                @Override
-                public void run() {
-                    showUpdateData(m2FormconfigsBean,m2GridconfigsBean);
+            if (!ListUtils.isEmpty(mCommonDocAMBean.getDatas().getGriddata())
+                    && !ListUtils.isEmpty(mCommonDocAMBean.getDatas().getGridconfigs())){
+                int allGridconfigs_num = mCommonDocAMBean.getDatas().getGridconfigs().size();
+                for (int i = 0; i < allGridconfigs_num; i++) {
+                    String dg_caption = mCommonDocAMBean.getDatas().getGridconfigs().get(i).getDG_CAPTION();
+                    String dg_field = mCommonDocAMBean.getDatas().getGridconfigs().get(i).getDG_FIELD();
+                    int mdg_isdefault = mCommonDocAMBean.getDatas().getGridconfigs().get(i).getMDG_ISDEFAULT();
+                    if (mdg_isdefault == -1 && dg_caption != null && dg_field != null) {
+                        mGridconfigsList.add(mCommonDocAMBean.getDatas().getGridconfigs().get(i));
+                    }
                 }
                 }
-            },1000);
+                doShowGridData(griddataArray);
+                LogUtil.prinlnLongMsg("mGridconfigsList", JSON.toJSONString(mGridconfigsList));
+                LogUtil.prinlnLongMsg("griddataArray", JSON.toJSONString(griddataArray));
+            }
         }catch (JSONException e){
         }catch (JSONException e){
             e.printStackTrace();
             e.printStackTrace();
         } catch (Exception e){
         } catch (Exception e){
@@ -428,14 +515,102 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         }
         }
     }
     }
 
 
+    private void doShowGridData(JSONArray griddataArray) {
+        if (ListUtils.isEmpty(griddataArray)) return;
+        for (int i = 0; i < griddataArray.size(); i++) {
+            costFormModel = new CostFormModel();
+            costFormModel.setCost_type(griddataArray.getJSONObject(i).getString("fpd_d1"));
+            costFormModel.setCost_money(griddataArray.getJSONObject(i).getInteger("fpd_total"));
+            costFormModel.setFpd_id(griddataArray.getJSONObject(i).getInteger("fpd_id"));
+            costFormModel_list.add(costFormModel);
+            if (i == griddataArray.size()-1){
+                dtAdapter.setModels(costFormModel_list);
+                dtAdapter.notifyDataSetChanged();
+                detail_table_ll.setVisibility(View.VISIBLE);
+                doAutoCalculateJudge();
+                LogUtil.prinlnLongMsg("costFormModel_list",JSON.toJSONString(costFormModel_list));
+            }
+        }
+    }
+
+    private void doShowFormData(JSONArray formdataArray, List<CommonDocAMBean.DatasBean.FormconfigsBean> mFormconfigsList) {
+        if (!ListUtils.isEmpty(mFormconfigsList)  &&  !ListUtils.isEmpty(formdataArray)){
+            fb_attach = formdataArray.getJSONObject(0).getString("fb_attach");
+            if (!StringUtils.isEmpty(fb_attach)) {
+                getUpdatePicture(); //获取发票图片
+            }
+
+            Log.i("fb_attach_ss",fb_attach+"?");
+            for (int i = 0; i < mFormconfigsList.size(); i++) {
+                String key = mFormconfigsList.get(i).getFD_FIELD();
+                if (StringUtils.isEmpty(key)) return;
+                String value = formdataArray.getJSONObject(0).getString(key);
+                if (StringUtils.isEmpty(value)) return;
+                switch (key){
+                    case "fp_class":
+                        reimbursement_type_fet.setText(value);
+                        break;
+                    case "fp_v13":
+                        reimbursement_currency_fet.setText(value);
+                        break;
+                    case "fp_pleaseamount":
+                        sum_money_tv.setText(value);
+                        break;
+                    case "fp_v3":
+                        reimbursement_title_fet.setText(value);
+                        break;
+                }
+            }
+
+        }
+    }
+
     private void showUpdateData(List<CostBean.DataBean.FormdetailBean> m2Form_update, List<CostBean.DataBean.GridetailBean> m2Grid_update) {
     private void showUpdateData(List<CostBean.DataBean.FormdetailBean> m2Form_update, List<CostBean.DataBean.GridetailBean> m2Grid_update) {
         LogUtil.prinlnLongMsg("m2Form_update", JSON.toJSONString(m2Form_update));
         LogUtil.prinlnLongMsg("m2Form_update", JSON.toJSONString(m2Form_update));
         LogUtil.prinlnLongMsg("m2Grid_update", JSON.toJSONString(m2Grid_update));
         LogUtil.prinlnLongMsg("m2Grid_update", JSON.toJSONString(m2Grid_update));
+
+        if (!ListUtils.isEmpty(m2Form_update)){
+            for (int i = 0; i < m2Form_update.size(); i++) {
+                if (!StringUtils.isEmpty(m2Form_update.get(i).getFd_field())
+                        && !StringUtils.isEmpty(m2Form_update.get(i).getFd_caption())
+                        && !StringUtils.isEmpty(m2Form_update.get(i).getFd_value())){
+
+                    String key = m2Form_update.get(i).getFd_field();
+                    String value = m2Form_update.get(i).getFd_value();
+                    switch (key){
+                        case "fp_class":
+                            reimbursement_type_fet.setText(value);
+                            break;
+                        case "fp_v13":
+                            reimbursement_currency_fet.setText(value);
+                            break;
+                        case "fp_pleaseamount":
+                            sum_money_tv.setText(value);
+                            break;
+                        case "fp_v3":
+                            reimbursement_title_fet.setText(value);
+                            break;
+                    }
+                }
+
+            }
+        }
+
+        if (!ListUtils.isEmpty(m2Grid_update)){
+            for (int i = 0; i < m2Grid_update.size(); i++) {
+                if (!StringUtils.isEmpty(m2Grid_update.get(i).getDg_field())
+                        && !StringUtils.isEmpty(m2Grid_update.get(i).getDg_caption())
+                        && !StringUtils.isEmpty(m2Grid_update.get(i).getDg_type())){
+//                    costFormModel
+                }
+            }
+        }
+
     }
     }
 
 
     private void handleTypeAndM(String result) {
     private void handleTypeAndM(String result) {
         try {
         try {
-            JSONObject amresultJsonObject = JSON.parseObject(result);
+            JSONObject amresultJsonObject =JSON.parseObject(result);
             JSONObject dataObjecty = amresultJsonObject.getJSONObject("data");
             JSONObject dataObjecty = amresultJsonObject.getJSONObject("data");
             JSONArray formdataArray = dataObjecty.getJSONArray("formdetail");
             JSONArray formdataArray = dataObjecty.getJSONArray("formdetail");
             JSONArray griddataArray = dataObjecty.getJSONArray("gridetail");
             JSONArray griddataArray = dataObjecty.getJSONArray("gridetail");
@@ -455,7 +630,7 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                         }
                         }
 
 
                     }
                     }
-                    LogUtil.prinlnLongMsg("mFormconfigsBean", JSON.toJSONString(mFormconfigsBean));
+                    LogUtil.prinlnLongMsg("mFormconfigsBean_eg", JSON.toJSONString(mFormconfigsBean));
                 }
                 }
 
 
                 //  获取需要显示的从表单配置数据属性保存到mGridconfigsBean中
                 //  获取需要显示的从表单配置数据属性保存到mGridconfigsBean中
@@ -469,7 +644,7 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                             mGridconfigsBean.add(mCostBean.getData().getGridetail().get(i));
                             mGridconfigsBean.add(mCostBean.getData().getGridetail().get(i));
                         }
                         }
                     }
                     }
-                    LogUtil.prinlnLongMsg("mGridconfigsBean", JSON.toJSONString(mGridconfigsBean));
+                    LogUtil.prinlnLongMsg("mGridconfigsBean_eg", JSON.toJSONString(mGridconfigsBean));
                 }
                 }
             }
             }
         }catch (JSONException e){
         }catch (JSONException e){
@@ -683,10 +858,56 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
             ToastMessage("请增加消费明细");
             ToastMessage("请增加消费明细");
             return;
             return;
         }
         }
-        doFirstCommit();
+        if (CommonUtil.isNetWorkConnected(ct)){
+            if (formid != 0){
+                doUpdateCommit();
+            }else {
+                doFirstCommit();
+            }
+        }else {
+            ToastMessage(getString(R.string.networks_out));
+        }
+
+    }
+
+    private void doUpdateCommit() {
+        progressDialog.show();
+        btn_save.setEnabled(false);
+        String url= Constants.getAppBaseUrl(ct) + "mobile/oa/UpdateSubmitFYBX.action";
+        Map<String, Object> formStoreMap = new HashMap<>();
+        formStoreMap.put("fp_v3", reimbursement_title_fet.getText().toString());
+        formStoreMap.put("fp_class", reimbursement_type_fet.getText().toString());
+        formStoreMap.put("fp_v13", reimbursement_currency_fet.getText().toString());
+        formStoreMap.put("fp_id",formid);
+        String formStore = JSON.toJSONString(formStoreMap);
+
+        List<UpdateCostDetailsGridStoreBean> gridStore_list = new ArrayList<>();
+        UpdateCostDetailsGridStoreBean gridStore_bean;
+        for (int i = 0; i < costFormModel_list.size(); i++) {
+            gridStore_bean = new UpdateCostDetailsGridStoreBean();
+            gridStore_bean.setFpd_d1(costFormModel_list.get(i).getCost_type());
+            gridStore_bean.setFpd_total(costFormModel_list.get(i).getCost_money());
+            gridStore_bean.setFpd_id(costFormModel_list.get(i).getFpd_id());
+            gridStore_list.add(gridStore_bean);
+
+            if (i == (costFormModel_list.size()-1)){
+                Map<String, Object> params = new HashMap<>();
+//                params.put("fp_id",formid);
+                params.put("caller", caller);
+                params.put("formStore", formStore);
+                params.put("param1",JSON.toJSONString(gridStore_list));
+                params.put("param2","");
+                LogUtil.prinlnLongMsg("gridStore_list",JSON.toJSONString(gridStore_list));
+                LinkedHashMap<String, Object> headers1 = new LinkedHashMap<>();
+                headers1.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+                ViewUtil.httpSendRequest(ct, url, params, erhandler, headers1, 0x08, null, null, "post");
+            }
+        }
     }
     }
 
 
     private void doFirstCommit() {
     private void doFirstCommit() {
+        progressDialog.show();
+        btn_save.setEnabled(false);
         String url= Constants.getAppBaseUrl(ct) + "mobile/oa/saveAndSubmitFYBX.action";
         String url= Constants.getAppBaseUrl(ct) + "mobile/oa/saveAndSubmitFYBX.action";
         Map<String, Object> formStoreMap = new HashMap<>();
         Map<String, Object> formStoreMap = new HashMap<>();
         formStoreMap.put("fp_v3", reimbursement_title_fet.getText().toString());
         formStoreMap.put("fp_v3", reimbursement_title_fet.getText().toString());
@@ -858,9 +1079,6 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         selected_detailsData = new ArrayList<>();
         selected_detailsData = new ArrayList<>();
         gAdapter = new GridDataAdapter(mContext, mAddCost_list);
         gAdapter = new GridDataAdapter(mContext, mAddCost_list);
         gv_details_list.setAdapter(gAdapter);
         gv_details_list.setAdapter(gAdapter);
-
-        dtAdapter = new DetailsTableAdapter();
-        table_details_list.setAdapter(dtAdapter);
     }
     }
 
 
     private void doAutoCalculateJudge() {
     private void doAutoCalculateJudge() {
@@ -978,11 +1196,17 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                             .setPositiveButton(mContext.getString(R.string.common_sure), new DialogInterface.OnClickListener() {
                             .setPositiveButton(mContext.getString(R.string.common_sure), new DialogInterface.OnClickListener() {
                                 @Override
                                 @Override
                                 public void onClick(DialogInterface dialog, int which) {
                                 public void onClick(DialogInterface dialog, int which) {
-                                    models.remove(position);
-                                    if (ListUtils.isEmpty(models)) {
-                                        detail_table_ll.setVisibility(View.GONE);
+                                    if (models.get(position).getFpd_id() != 0){
+                                        cd_table_position = position;
+                                        doDeleteCostDetailshttp(position);
+                                    }else {
+                                        models.remove(position);
+                                        if (ListUtils.isEmpty(models)) {
+                                            detail_table_ll.setVisibility(View.GONE);
+                                        }
+                                        notifyDataSetChanged();
                                     }
                                     }
-                                    notifyDataSetChanged();
+
                                 }
                                 }
 
 
                             }).show();
                             }).show();
@@ -1013,6 +1237,23 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
 
 
         }
         }
     }
     }
+
+    private void doDeleteCostDetailshttp(int position) {
+        //TODO 删除details 请求
+        String url = Constants.getAppBaseUrl(ct)+"common/deleteDetail.action";
+        Map<String,Object> params = new HashMap<>();
+        params.put("caller",caller);
+        params.put("gridcaller",caller);
+        params.put("condition","fpd_id = '"+  costFormModel_list.get(position).getFpd_id() +"'");
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        if (platform){
+            headers.put("Cookie", "JSESSIONID=" + ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
+        }else {
+            headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
+        }
+        ViewUtil.httpSendRequest(ct, url, params, erhandler, headers, 0x09, null, null, "post");
+    }
+
     /**
     /**
      *新增弹出PopupWindow表格适配器
      *新增弹出PopupWindow表格适配器
      */
      */
@@ -1094,6 +1335,16 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
      * 图片适配器
      * 图片适配器
      */
      */
     private class GridViewAdapter extends BaseAdapter {
     private class GridViewAdapter extends BaseAdapter {
+        private CostUpdatePModel CUPmodel;
+
+        public CostUpdatePModel getCUPmodel() {
+            return CUPmodel;
+        }
+
+        public void setCUPmodel(CostUpdatePModel CUPmodel) {
+            this.CUPmodel = CUPmodel;
+        }
+
         @Override
         @Override
         public int getCount() {
         public int getCount() {
             if (mPhotoList.size() >= 9) {return 9;}
             if (mPhotoList.size() >= 9) {return 9;}
@@ -1125,7 +1376,19 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                 return 0;
                 return 0;
             }
             }
         }
         }
+//        private String getImageUrl2(String path  ) {
+//            return Constants.getAppBaseUrl(ct) + "common/download.action?path=" + path + "&sessionId=" +
+//                    CommonUtil.getSharedPreferences(ct, "sessionId") +
+//                    "&sessionUser=" + CommonUtil.getSharedPreferences(ct, "erp_username") +
+//                    "&master=" + CommonUtil.getSharedPreferences(ct, "erp_master");
+//        }
 
 
+        private String getImageUrl(int id) {
+            return Constants.getAppBaseUrl(ct) + "common/downloadbyId.action?id=" + id + "&sessionId=" +
+                    CommonUtil.getSharedPreferences(ct, "sessionId") +
+                    "&sessionUser=" + CommonUtil.getSharedPreferences(ct, "erp_username") +
+                    "&master=" + CommonUtil.getSharedPreferences(ct, "erp_master");
+        }
         @Override
         @Override
         public View getView(final int position, View convertView, ViewGroup parent) {
         public View getView(final int position, View convertView, ViewGroup parent) {
             if (getItemViewType(position) == 0) {// 普通的视图
             if (getItemViewType(position) == 0) {// 普通的视图
@@ -1135,7 +1398,14 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
                 if (url == null) {
                 if (url == null) {
                     url = "";
                     url = "";
                 }
                 }
-                ImageLoader.getInstance().displayImage(Uri.fromFile(new File(url)).toString(), imageView);
+                if (getCUPmodel() != null && !ListUtils.isEmpty(getCUPmodel().getFiles())
+                        && position < getCUPmodel().getFiles().size()){
+                    int id = getCUPmodel().getFiles().get(position).getFp_id();
+                    String path  =getCUPmodel().getFiles().get(position).getFp_path();
+                    ImageLoader.getInstance().displayImage(getImageUrl(id), imageView);
+                }else {
+                    ImageLoader.getInstance().displayImage(Uri.fromFile(new File(url)).toString(), imageView);
+                }
                 return imageView;
                 return imageView;
             } else {
             } else {
                 View view = LayoutInflater.from(ct).inflate(R.layout.layout_circle_add_more_item,
                 View view = LayoutInflater.from(ct).inflate(R.layout.layout_circle_add_more_item,
@@ -1257,20 +1527,20 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         }
         }
         return super.onOptionsItemSelected(item);
         return super.onOptionsItemSelected(item);
     }
     }
-//    private String cb_emcode;
     private void sendPicture() {
     private void sendPicture() {
         if (ListUtils.isEmpty(mPhotoList))  {
         if (ListUtils.isEmpty(mPhotoList))  {
             commitSuccess(keyValue);
             commitSuccess(keyValue);
             return;
             return;
         }
         }
-        CommonUtil.getCommonId("http://218.18.115.198:8888/ERP/",ct, "Commentsback_mobile_SEQ", erhandler, 0x08);
-//        cb_emcode = CommonUtil.getSharedPreferences(MyApplication.getInstance(), "erp_username");
+        for (int i = 0; i < mPhotoList.size(); i++) {
+            String path = mPhotoList.get(i);
+            sendPictureRequest(path);
+        }
 
 
     }
     }
     private Boolean platform = ApiUtils.getApiModel() instanceof ApiPlatform;
     private Boolean platform = ApiUtils.getApiModel() instanceof ApiPlatform;
     private int sended_p = 0;
     private int sended_p = 0;
     private String update = "";
     private String update = "";
-    private int cb_id;
 
 
     private void sendPictureRequest(String path) {
     private void sendPictureRequest(String path) {
         if (com.xzjmyk.pm.activity.ui.erp.util.StringUtils.isEmpty(path)) return;
         if (com.xzjmyk.pm.activity.ui.erp.util.StringUtils.isEmpty(path)) return;
@@ -1329,12 +1599,12 @@ public class ExpenseReimbursementActivity extends BaseActivity implements View.O
         });
         });
     }
     }
     private void doUpdateId(String update) {
     private void doUpdateId(String update) {
-        String url = "http://218.18.115.198:8888/ERP/common/attach/change.action";
+        String url =  Constants.getAppBaseUrl(ct) + "common/attach/change.action";
         Map<String,Object> params = new HashMap<>();
         Map<String,Object> params = new HashMap<>();
-        params.put("caller","Commentsback_mobile");
-        params.put("table","Commentsback_mobile");
+        params.put("caller",caller);
+        params.put("table","FeePlease");
         params.put("update","fb_attach = '"+update+"'");  // TODO 附件字段fb_attach
         params.put("update","fb_attach = '"+update+"'");  // TODO 附件字段fb_attach
-        params.put("condition","cb_id = '"+cb_id+"'");
+        params.put("condition","fp_id = '"+keyValue+"'");
         params.put("type","添加附件");
         params.put("type","添加附件");
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         if (platform){
         if (platform){

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MeetingActivity.java

@@ -180,7 +180,7 @@ public class MeetingActivity extends BaseActivity  {
 
 
     @Override
     @Override
     public boolean onCreateOptionsMenu(Menu menu) {
     public boolean onCreateOptionsMenu(Menu menu) {
-        getMenuInflater().inflate(R.menu.menu_add_icon, menu);
+//        getMenuInflater().inflate(R.menu.menu_add_icon, menu);
         return super.onCreateOptionsMenu(menu);
         return super.onCreateOptionsMenu(menu);
     }
     }
 
 

+ 5 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/MyRuleSetActivity.java

@@ -11,6 +11,7 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.R;
+import com.xzjmyk.pm.activity.db.dao.WorkModelDao;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.WorkModel;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
@@ -18,7 +19,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.OACheckUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 import com.xzjmyk.pm.activity.util.TimeUtils;
 
 
-import java.util.ArrayList;
+import java.util.List;
 
 
 public class MyRuleSetActivity extends BaseActivity {
 public class MyRuleSetActivity extends BaseActivity {
 
 
@@ -37,7 +38,7 @@ public class MyRuleSetActivity extends BaseActivity {
     @ViewInject(R.id.empty_rl)
     @ViewInject(R.id.empty_rl)
     private RelativeLayout empty_rl;
     private RelativeLayout empty_rl;
 
 
-    private ArrayList<WorkModel> models;
+    private List<WorkModel> models;
 
 
     @Override
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     protected void onCreate(Bundle savedInstanceState) {
@@ -70,8 +71,9 @@ public class MyRuleSetActivity extends BaseActivity {
             } catch (Exception e) {
             } catch (Exception e) {
                 e.printStackTrace();
                 e.printStackTrace();
             }
             }
+        } else {
+            models = WorkModelDao.getInstance().query(false);
         }
         }
-
         if (isFree || ListUtils.isEmpty(models)) {
         if (isFree || ListUtils.isEmpty(models)) {
             context_ll.setVisibility(View.GONE);
             context_ll.setVisibility(View.GONE);
             empty_rl.setVisibility(View.VISIBLE);
             empty_rl.setVisibility(View.VISIBLE);

+ 3 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OAActivity.java

@@ -336,7 +336,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                     startActivityForResult(intent, isMe ? 0x20 : 0x21);
                     startActivityForResult(intent, isMe ? 0x20 : 0x21);
                 } else if (e.isMission()) {
                 } else if (e.isMission()) {
                     if (util.isMissionOk(e)) {//外勤计划
                     if (util.isMissionOk(e)) {//外勤计划
-                        intent  = OAConfig.getVisitClass(ct);
+                        intent = OAConfig.getVisitClass(ct);
                         intent.putExtra("type", 3);
                         intent.putExtra("type", 3);
                         intent.putExtra("isOutplan", true);
                         intent.putExtra("isOutplan", true);
                         intent.putExtra("isMe", isMe);//可以提交拜访报告
                         intent.putExtra("isMe", isMe);//可以提交拜访报告
@@ -781,7 +781,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                             intent.putExtra("type", 1);
                             intent.putExtra("type", 1);
                             break;
                             break;
                         case 2:
                         case 2:
-                            intent  = OAConfig.getVisitClass(ct);
+                            intent = OAConfig.getVisitClass(ct);
                             break;
                             break;
                         default:
                         default:
                             String caller = (String) menusMap.get(position).get("item_caller");
                             String caller = (String) menusMap.get(position).get("item_caller");
@@ -913,7 +913,7 @@ public class OAActivity extends BaseActivity implements View.OnClickListener, Wo
                 tv_signout_num.setVisibility(View.GONE);
                 tv_signout_num.setVisibility(View.GONE);
                 break;
                 break;
             case R.id.meeting://会议管理
             case R.id.meeting://会议管理
-                startActivity(new Intent(activity, MeetingActivity.class));
+                startActivity(new Intent(activity, AddMeetingActivity.class));
                 break;
                 break;
             case R.id.worklog://工作日志
             case R.id.worklog://工作日志
                 startActivity(new Intent(activity, WorkDailyAddActivity.class));
                 startActivity(new Intent(activity, WorkDailyAddActivity.class));

+ 5 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/OutLogListActivity.java

@@ -28,6 +28,7 @@ import com.xzjmyk.pm.activity.ui.base.BaseActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.ui.tool.SingleImagePreviewActivity;
 import com.xzjmyk.pm.activity.ui.tool.SingleImagePreviewActivity;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.baidu.BaiduMapUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.baidu.BaiduMapUtil;
@@ -219,12 +220,14 @@ public class OutLogListActivity extends BaseActivity {
             }
             }
             if (reId>1000){
             if (reId>1000){
                 holder.image.setVisibility(View.VISIBLE);
                 holder.image.setVisibility(View.VISIBLE);
-                ImageLoader.getInstance().displayImage(getImageUrl(object.getInteger("mo_attachid")), holder.image);
+                final String imageUrl=getImageUrl(object.getInteger("mo_attachid"));
+                LogUtil.i("imageUrl="+imageUrl);
+                ImageLoader.getInstance().displayImage(imageUrl, holder.image);
                 holder.image.setOnClickListener(new View.OnClickListener() {
                 holder.image.setOnClickListener(new View.OnClickListener() {
                     @Override
                     @Override
                     public void onClick(View view) {
                     public void onClick(View view) {
                         Intent intent = new Intent(ct, SingleImagePreviewActivity.class);
                         Intent intent = new Intent(ct, SingleImagePreviewActivity.class);
-                        intent.putExtra(AppConstant.EXTRA_IMAGE_URI, getImageUrl(object.getInteger("mo_attachid")));
+                        intent.putExtra(AppConstant.EXTRA_IMAGE_URI, imageUrl);
                         ct.startActivity(intent);
                         ct.startActivity(intent);
                     }
                     }
                 });
                 });

+ 10 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SearchSelectActivity.java

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.activity.oa;
 import android.content.Intent;
 import android.content.Intent;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.text.Editable;
 import android.text.Editable;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
@@ -139,8 +140,6 @@ public class SearchSelectActivity extends BaseActivity {
                 if (ListUtils.isEmpty(listdata)) {//为空
                 if (ListUtils.isEmpty(listdata)) {//为空
                     empty_rl.setVisibility(View.VISIBLE);
                     empty_rl.setVisibility(View.VISIBLE);
                     clearData();
                     clearData();
-                    mAdapter.notifyDataSetChanged();
-                    return;
                 } else {
                 } else {
                     empty_rl.setVisibility(View.GONE);
                     empty_rl.setVisibility(View.GONE);
                     List<String> netDatas = new ArrayList<>();
                     List<String> netDatas = new ArrayList<>();
@@ -155,8 +154,8 @@ public class SearchSelectActivity extends BaseActivity {
                         if (seachResult == null) seachResult = new ArrayList<>();
                         if (seachResult == null) seachResult = new ArrayList<>();
                         seachResult.addAll(netDatas);
                         seachResult.addAll(netDatas);
                     }
                     }
-                    mAdapter.notifyDataSetChanged();
                 }
                 }
+                mAdapter.notifyDataSetChanged();
             }
             }
 
 
             @Override
             @Override
@@ -172,6 +171,14 @@ public class SearchSelectActivity extends BaseActivity {
     }
     }
 
 
     private class SeachAdapter extends BaseAdapter {
     private class SeachAdapter extends BaseAdapter {
+        @Override
+        public void notifyDataSetChanged() {
+            if (TextUtils.isEmpty(voiceSearchView.getText())) {
+                clearData();
+                empty_rl.setVerticalGravity(View.GONE);
+            }
+            super.notifyDataSetChanged();
+        }
 
 
         @Override
         @Override
         public int getCount() {
         public int getCount() {

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

@@ -25,6 +25,7 @@ import com.xzjmyk.pm.activity.ui.erp.entity.EditChangeListener;
 import com.xzjmyk.pm.activity.ui.erp.entity.HrorgsEntity;
 import com.xzjmyk.pm.activity.ui.erp.entity.HrorgsEntity;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
+import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CompanyHandlerInfoUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CompanyHandlerInfoUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.OAConfig;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.OAConfig;

+ 11 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectRemarkActivity.java

@@ -47,6 +47,7 @@ public class SelectRemarkActivity extends BaseActivity implements OnHttpResultLi
     private List<Bean> beanList;
     private List<Bean> beanList;
     private RecycleAdapter adapter;
     private RecycleAdapter adapter;
     private boolean isRemark = false;
     private boolean isRemark = false;
+    private String contact;
 
 
     @Override
     @Override
     protected void onCreate(Bundle savedInstanceState) {
     protected void onCreate(Bundle savedInstanceState) {
@@ -152,6 +153,7 @@ public class SelectRemarkActivity extends BaseActivity implements OnHttpResultLi
             loadBusinessRemark();
             loadBusinessRemark();
         } else {
         } else {
             getSupportActionBar().setTitle(R.string.common_Contact_person);
             getSupportActionBar().setTitle(R.string.common_Contact_person);
+            contact = getIntent().getStringExtra("contact");
             loadContact(getIntent().getStringExtra("cuname"));
             loadContact(getIntent().getStringExtra("cuname"));
         }
         }
     }
     }
@@ -223,17 +225,24 @@ public class SelectRemarkActivity extends BaseActivity implements OnHttpResultLi
     }
     }
 
 
     private void handlerData(JSONArray array) {
     private void handlerData(JSONArray array) {
+        Bean bean = null;
         if (!ListUtils.isEmpty(array)) {
         if (!ListUtils.isEmpty(array)) {
-            Bean bean = null;
             JSONObject object = null;
             JSONObject object = null;
             for (int i = 0; i < array.size(); i++) {
             for (int i = 0; i < array.size(); i++) {
                 object = array.getJSONObject(i);
                 object = array.getJSONObject(i);
                 bean = new Bean();
                 bean = new Bean();
                 bean.type = 1;
                 bean.type = 1;
                 bean.name = OACheckUtil.getJson2Text(object, "BS_NAME", "ct_name");
                 bean.name = OACheckUtil.getJson2Text(object, "BS_NAME", "ct_name");
-                beanList.add(beanList.size(), bean);
+                if (StringUtils.isEmpty(contact) || !contact.equals(bean.name))
+                    beanList.add(beanList.size(), bean);
             }
             }
         }
         }
+        if (!StringUtils.isEmpty(contact)) {
+            bean = new Bean();
+            bean.type = 1;
+            bean.name = contact;
+            beanList.add(beanList.size(), bean);
+        }
         setBean2Adapter(beanList);
         setBean2Adapter(beanList);
     }
     }
 
 

+ 3 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/CostFormModel.java

@@ -9,7 +9,10 @@ public class CostFormModel {
     private String cost_type;
     private String cost_type;
     private double cost_money;
     private double cost_money;
     private CostFormModel costFormModel;
     private CostFormModel costFormModel;
+    private int fpd_id;
 
 
+    public int getFpd_id() {return fpd_id;}
+    public void setFpd_id(int fpd_id) {this.fpd_id = fpd_id;}
     public String getCost_type() {return cost_type;}
     public String getCost_type() {return cost_type;}
     public void setCost_type(String cost_type) {this.cost_type = cost_type;}
     public void setCost_type(String cost_type) {this.cost_type = cost_type;}
     public double getCost_money() {return cost_money;}
     public double getCost_money() {return cost_money;}

+ 19 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/model/oa/UpdateCostFormModel.java

@@ -0,0 +1,19 @@
+package com.xzjmyk.pm.activity.ui.erp.model.oa;
+
+/**
+ * Created by FANGlh on 2017/6/15.
+ * function:
+ */
+
+public class UpdateCostFormModel {
+    private String cost_type;
+    private double cost_money;
+    private CostFormModel costFormModel;
+
+    public String getCost_type() {return cost_type;}
+    public void setCost_type(String cost_type) {this.cost_type = cost_type;}
+    public double getCost_money() {return cost_money;}
+    public void setCost_money(double cost_money) {this.cost_money = cost_money;}
+    public CostFormModel getCostFormModel() {return costFormModel;}
+    public void setCostFormModel(CostFormModel costFormModel) {this.costFormModel = costFormModel;}
+}

+ 1 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/net/ViewUtil.java

@@ -254,7 +254,7 @@ public class ViewUtil {
             if (method.equals("get")) {
             if (method.equals("get")) {
                 result = hClient.sendGetRequest(url, params);
                 result = hClient.sendGetRequest(url, params);
             }
             }
-            if (method.equals("post"))  {
+            if (method.equals("post")) {
                 result = hClient.sendPostRequest(url, params);
                 result = hClient.sendPostRequest(url, params);
             }
             }
         } catch (Exception e) {
         } catch (Exception e) {
@@ -278,8 +278,6 @@ public class ViewUtil {
                 if (isNetHas) {
                 if (isNetHas) {
                     /** @注释:处理网络请求返回结果 */
                     /** @注释:处理网络请求返回结果 */
                     String result = getDataFromServer(url, params, request);
                     String result = getDataFromServer(url, params, request);
-                    Log.i("result", "url:" + (StringUtils.isEmpty(url) ? "" : url));
-                    Log.i("result", "result:" + result);
                     if (result != null) {
                     if (result != null) {
                         if (bundle == null || message == null) {
                         if (bundle == null || message == null) {
                             Bundle bundle = new Bundle();
                             Bundle bundle = new Bundle();

+ 3 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddFlihtsPresenter.java

@@ -124,14 +124,14 @@ public class AddFlihtsPresenter implements OnHttpResultListener {
             iAddFlihtsView.showToast(R.string.not_null_work_time, R.color.load_error);
             iAddFlihtsView.showToast(R.string.not_null_work_time, R.color.load_error);
             return;
             return;
         }
         }
-        if (!isUpdate){
+        if (!isUpdate) {
             if (!StringUtils.isEmpty(model.getDay())) {
             if (!StringUtils.isEmpty(model.getDay())) {
                 formStore.put("wd_day", model.getDay());
                 formStore.put("wd_day", model.getDay());
             } else {
             } else {
                 iAddFlihtsView.showToast(R.string.not_null_work_day, R.color.load_error);
                 iAddFlihtsView.showToast(R.string.not_null_work_day, R.color.load_error);
                 return;
                 return;
             }
             }
-        }else {
+        } else {
             formStore.put("wd_day", model.getDay());
             formStore.put("wd_day", model.getDay());
         }
         }
 
 
@@ -202,7 +202,6 @@ public class AddFlihtsPresenter implements OnHttpResultListener {
         formStore.put("wd_emcode", StringUtils.isEmpty(manCode) ? "" : manCode.replaceAll("\'", ""));
         formStore.put("wd_emcode", StringUtils.isEmpty(manCode) ? "" : manCode.replaceAll("\'", ""));
         formStore.put("wd_defaultorcode", StringUtils.isEmpty(defaultorCode) ? "" : defaultorCode.replaceAll("\'", ""));
         formStore.put("wd_defaultorcode", StringUtils.isEmpty(defaultorCode) ? "" : defaultorCode.replaceAll("\'", ""));
         param.put("formStore", StringUtils.mapToJson(formStore));
         param.put("formStore", StringUtils.mapToJson(formStore));
-
         Request request = new Request.Bulider()
         Request request = new Request.Bulider()
                 .setWhat(MAN_DEFAULTOR)
                 .setWhat(MAN_DEFAULTOR)
                 .setBundle(bundle)
                 .setBundle(bundle)
@@ -211,7 +210,6 @@ public class AddFlihtsPresenter implements OnHttpResultListener {
                 .setParam(param)
                 .setParam(param)
                 .bulid();
                 .bulid();
         OAHttpHelper.getInstance().requestHttp(request, this);
         OAHttpHelper.getInstance().requestHttp(request, this);
-
     }
     }
 
 
     public void saveTime(Intent data) {
     public void saveTime(Intent data) {
@@ -543,6 +541,6 @@ public class AddFlihtsPresenter implements OnHttpResultListener {
     public String getHrorgsEmCode() {
     public String getHrorgsEmCode() {
         if (model == null) return "";
         if (model == null) return "";
         if (model.getHrorgsModel() == null) return "";
         if (model.getHrorgsModel() == null) return "";
-        return model.getHrorgsModel().getEmployeecode();
+        return model.getHrorgsModel().getEmployeeNames();
     }
     }
 }
 }

+ 26 - 12
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/presenter/AddVisitReportPresenter.java

@@ -57,11 +57,18 @@ public class AddVisitReportPresenter implements OnHttpResultListener {
         if (new JsonValidator().validate(model.getObject())) {
         if (new JsonValidator().validate(model.getObject())) {
             JSONObject object = JSON.parseObject(model.getObject());
             JSONObject object = JSON.parseObject(model.getObject());
             client.code = OACheckUtil.getJson2Text(object, "CU_CODE");
             client.code = OACheckUtil.getJson2Text(object, "CU_CODE");
-            client.name = OACheckUtil.getJson2Text(object, "CU_NAME");
+            if (StringUtils.isEmpty(model.getName()))
+                client.name = OACheckUtil.getJson2Text(object, "CU_NAME");
             client.contact = OACheckUtil.getJson2Text(object, "CU_CONTACT");
             client.contact = OACheckUtil.getJson2Text(object, "CU_CONTACT");
-            client.address = OACheckUtil.getJson2Text(object, "CU_ADD1");
+            if (StringUtils.isEmpty(model.getAddress()))
+                client.address = OACheckUtil.getJson2Text(object, "CU_ADD1");
             client.nichename = OACheckUtil.getJson2Text(object, "CU_NICHESTEP");
             client.nichename = OACheckUtil.getJson2Text(object, "CU_NICHESTEP");
             client.nichestep = "";
             client.nichestep = "";
+            if (!StringUtils.isEmpty(client.contact)) {
+                List<String> contacts = new ArrayList<>();
+                contacts.add(client.contact);
+                iAddVisitReport.showContact(contacts);
+            }
         }
         }
     }
     }
 
 
@@ -70,12 +77,12 @@ public class AddVisitReportPresenter implements OnHttpResultListener {
             return false;
             return false;
         this.contacts = contacts;
         this.contacts = contacts;
         for (String e : contacts) {
         for (String e : contacts) {
-            if (!StringUtils.isEmpty(e)) {
+            if (StringUtils.isEmpty(e)) {
+                return false;
+            } else if (StringUtils.isEmpty(client.contact))
                 client.contact = e;
                 client.contact = e;
-                return true;
-            }
         }
         }
-        return false;
+        return true;
     }
     }
 
 
     public void submit(Bundle bundle) {
     public void submit(Bundle bundle) {
@@ -88,6 +95,12 @@ public class AddVisitReportPresenter implements OnHttpResultListener {
         return client.name;
         return client.name;
     }
     }
 
 
+    public String getContact() {
+        if (client == null) return "";
+        if (StringUtils.isEmpty(client.contact)) return "";
+        return client.contact;
+    }
+
     private void getIdByNet(Bundle bundle) {
     private void getIdByNet(Bundle bundle) {
         if (isB2b) return;
         if (isB2b) return;
         iAddVisitReport.showLoading();
         iAddVisitReport.showLoading();
@@ -219,6 +232,7 @@ public class AddVisitReportPresenter implements OnHttpResultListener {
         List<Map<String, Object>> formStores = new ArrayList<>();
         List<Map<String, Object>> formStores = new ArrayList<>();
         Map<String, Object> formStore = null;
         Map<String, Object> formStore = null;
         for (String e : contacts) {
         for (String e : contacts) {
+            if (StringUtils.isEmpty(e)) continue;
             formStore = CommonInterface.getInstance().getFormStoreContact(vrCode, e, "", client.name, client.code, client.address, "");
             formStore = CommonInterface.getInstance().getFormStoreContact(vrCode, e, "", client.name, client.code, client.address, "");
             formStores.add(formStore);
             formStores.add(formStore);
         }
         }
@@ -249,9 +263,9 @@ public class AddVisitReportPresenter implements OnHttpResultListener {
         formStore.put("vr_visitend", "");
         formStore.put("vr_visitend", "");
         formStore.put("vr_statuscode", "ENTERING");
         formStore.put("vr_statuscode", "ENTERING");
         formStore.put("vr_status", "在录入");
         formStore.put("vr_status", "在录入");
-        formStore.put("vr_recorder", name);
-        formStore.put("vr_recorddate", StringUtils.isEmpty(vr_recorddate) ? TimeUtils.s_long_2_str(System.currentTimeMillis()) : vr_recorddate);
-        formStore.put("vr_contact", name);
+        formStore.put("vr_recorder", StringUtils.string2Json(name));
+        formStore.put("vr_recorddate", StringUtils.string2Json(StringUtils.isEmpty(vr_recorddate) ? TimeUtils.s_long_2_str(System.currentTimeMillis()) : vr_recorddate));
+        formStore.put("vr_contact", StringUtils.string2Json(name));
         formStore.put("vr_cuuu", getString(client.code));
         formStore.put("vr_cuuu", getString(client.code));
         formStore.put("vr_cuname", getString(client.name));
         formStore.put("vr_cuname", getString(client.name));
         formStore.put("vr_cucontact", getString(client.contact));
         formStore.put("vr_cucontact", getString(client.contact));
@@ -259,14 +273,14 @@ public class AddVisitReportPresenter implements OnHttpResultListener {
         formStore.put("vr_nichestep", client.nichename);//关联商机
         formStore.put("vr_nichestep", client.nichename);//关联商机
         formStore.put("vr_nichename", "");
         formStore.put("vr_nichename", "");
         formStore.put("vr_class", StringUtils.isEmpty(type) ? "OfficeClerk" : type);//拜访类型(通过接口获取类型) OfficeClerk(客户拜访)|VisitRecord!Vender(原厂拜访)
         formStore.put("vr_class", StringUtils.isEmpty(type) ? "OfficeClerk" : type);//拜访类型(通过接口获取类型) OfficeClerk(客户拜访)|VisitRecord!Vender(原厂拜访)
-        formStore.put("vr_title", remark);
-        formStore.put("vr_detail", detail);
+        formStore.put("vr_title", StringUtils.string2Json(remark));
+        formStore.put("vr_detail", StringUtils.string2Json(detail));
         return formStore;
         return formStore;
     }
     }
 
 
     private String getString(String message) {
     private String getString(String message) {
         if (StringUtils.isEmpty(message)) return "";
         if (StringUtils.isEmpty(message)) return "";
-        return message;
+        return StringUtils.string2Json(message);
     }
     }
 
 
     @Override
     @Override

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

@@ -21,7 +21,6 @@ import com.xzjmyk.pm.activity.ui.erp.entity.SelectCollisionTurnBean;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectActiveView;
 import com.xzjmyk.pm.activity.ui.erp.presenter.imp.ISelectActiveView;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
-import com.xzjmyk.pm.activity.ui.erp.util.LogUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CommonInterface;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CommonInterface;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CompanyHandlerInfoUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.oa.CompanyHandlerInfoUtil;
@@ -51,7 +50,6 @@ public class SelectCollisionPresenter {
 
 
     public void start(SelectCollisionTurnBean selectBean) {
     public void start(SelectCollisionTurnBean selectBean) {
         if (selectBean == null) {
         if (selectBean == null) {
-            LogUtil.i("selectBean == null");
             new NullPointerException("Intent cannot be Null");
             new NullPointerException("Intent cannot be Null");
         }
         }
         this.selectBean = selectBean;
         this.selectBean = selectBean;
@@ -73,7 +71,7 @@ public class SelectCollisionPresenter {
     public void changeChecked(boolean b, List<BaseSortModel<SelectEmUser>> listData) {
     public void changeChecked(boolean b, List<BaseSortModel<SelectEmUser>> listData) {
         if (ListUtils.isEmpty(listData)) {
         if (ListUtils.isEmpty(listData)) {
             //TODO
             //TODO
-    } else {
+        } else {
             for (int i = 0; i < listData.size(); i++) {
             for (int i = 0; i < listData.size(); i++) {
                 listData.get(i).setClick(b);
                 listData.get(i).setClick(b);
             }
             }
@@ -241,7 +239,7 @@ public class SelectCollisionPresenter {
     }
     }
 
 
     private boolean isSelected(boolean isClickAll, String SelectCode, String emCode) {
     private boolean isSelected(boolean isClickAll, String SelectCode, String emCode) {
-        return !isClickAll && !StringUtils.isEmpty(SelectCode) && StringUtils.isInclude("," + SelectCode + ",", "," + emCode + ",");
+        return !isClickAll && !StringUtils.isEmpty(SelectCode) && StringUtils.isInclude(SelectCode , emCode);
     }
     }
 
 
     /**
     /**

+ 71 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/OACheckUtil.java

@@ -236,6 +236,76 @@ public class OACheckUtil {
 
 
     public static String getText(TextView tv) {
     public static String getText(TextView tv) {
         if (tv == null || TextUtils.isEmpty(tv.getText())) return "";
         if (tv == null || TextUtils.isEmpty(tv.getText())) return "";
-        return tv.getText().toString();
+        return string2Json(tv.getText().toString());
+    }
+
+    /**
+     * JSON字符串特殊字符处理,比如:“\A1;1300”
+     *
+     * @param s
+     * @return String
+     */
+    public static String string2Json(String s) {
+        if (isEmpty(s)) return "";
+        StringBuffer sb = new StringBuffer();
+        s.replaceAll("\n", "");
+        for (int i = 0; i < s.length(); i++) {
+            char c = s.charAt(i);
+            switch (c) {
+                case '\"':
+                    sb.append("\\\"");
+                    break;
+                case '\\':
+                    sb.append("\\\\");
+                    break;
+                case '/':
+                    sb.append("\\/");
+                    break;
+                case '\b':
+                    sb.append("\\b");
+                    break;
+                case '\f':
+                    sb.append("\\f");
+                    break;
+                case '\n':
+                    sb.append("\\n");
+                    break;
+                case '\r':
+                    sb.append("\\r");
+                    break;
+                case '\t':
+                    sb.append("\\t");
+                    break;
+                default:
+                    sb.append(c);
+            }
+        }
+        return sb.toString().replaceAll("%", "");
+    }
+
+    /**
+     * 判断给定字符串是否空白串。 空白串是指由空格、制表符、回车符、换行符组成的字符串 若输入字符串为null或空字符串,返回true
+     *
+     * @param input
+     * @return boolean
+     */
+    public static boolean isEmpty(String input) {
+        if (input == null || "".equals(input))
+            return true;
+        for (int i = 0; i < input.length(); i++) {
+            char c = input.charAt(i);
+            if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    public static int getIntagerByText(TextView tv_unmanger) {
+        int defInt = 0;
+        String text = getText(tv_unmanger);
+        if (!StringUtils.isEmpty(text))
+            defInt = StringUtils.getIntByString(text, 0);
+        return defInt;
     }
     }
 }
 }

+ 7 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/PopupWindowHelper.java

@@ -15,6 +15,7 @@ import android.widget.TextView;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.SelectAimModel;
 import com.xzjmyk.pm.activity.ui.erp.model.oa.SelectAimModel;
+import com.xzjmyk.pm.activity.util.DisplayUtil;
 
 
 /**
 /**
  * Created by Bitliker on 2017/5/3.
  * Created by Bitliker on 2017/5/3.
@@ -148,6 +149,12 @@ public class PopupWindowHelper {
         return (int) (dm.widthPixels * (0.8));
         return (int) (dm.widthPixels * (0.8));
     }
     }
 
 
+    public static void setPopupWindowHW(PopupWindow window) {
+        window.getContentView().measure(0, 0);
+        window.setHeight(window.getContentView().getMeasuredHeight() + 30);
+        window.setWidth(window.getContentView().getMeasuredWidth()+ DisplayUtil.dip2px(MyApplication.getInstance(),10f));
+    }
+
     public static void setPopupWindowHW(Activity ct, PopupWindow window) {
     public static void setPopupWindowHW(Activity ct, PopupWindow window) {
         window.getContentView().measure(0, 0);
         window.getContentView().measure(0, 0);
         window.setHeight(window.getContentView().getMeasuredHeight() + 30);
         window.setHeight(window.getContentView().getMeasuredHeight() + 30);

+ 0 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/view/tree/MyTreeListViewAdapter.java

@@ -1,11 +1,9 @@
 package com.xzjmyk.pm.activity.ui.erp.view.tree;
 package com.xzjmyk.pm.activity.ui.erp.view.tree;
 
 
 import android.content.Context;
 import android.content.Context;
-import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
-import android.view.accessibility.AccessibilityEvent;
 import android.widget.CheckBox;
 import android.widget.CheckBox;
 import android.widget.CompoundButton;
 import android.widget.CompoundButton;
 import android.widget.ImageView;
 import android.widget.ImageView;

+ 9 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/me/MeFragment.java

@@ -20,6 +20,7 @@ import android.widget.TextView;
 
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.lidroid.xutils.view.annotation.ViewInject;
+import com.nostra13.universalimageloader.core.ImageLoader;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
 import com.uuzuche.lib_zxing.activity.CaptureActivity;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.AppConfig;
 import com.xzjmyk.pm.activity.AppConstant;
 import com.xzjmyk.pm.activity.AppConstant;
@@ -167,7 +168,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
                     Map<String, Object> results = FlexJsonUtil.fromJson(msg
                     Map<String, Object> results = FlexJsonUtil.fromJson(msg
                             .getData().getString("result"));
                             .getData().getString("result"));
                     if ((Boolean) results.get("success")) {
                     if ((Boolean) results.get("success")) {
-                       ViewUtil.ToastMessage(ct, "账套切换成功!", Style.holoGreenLight, 3000);
+                        ViewUtil.ToastMessage(ct, "账套切换成功!", Style.holoGreenLight, 3000);
                         String sessionId = results.get("sessionId").toString();
                         String sessionId = results.get("sessionId").toString();
                         String master = msg.getData().getString("master");
                         String master = msg.getData().getString("master");
                         String master_ch = msg.getData().getString("master_ch");
                         String master_ch = msg.getData().getString("master_ch");
@@ -232,7 +233,12 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
             });
             });
         }
         }
     }
     }
-
+    private String getImageUrl(int id) {
+        return Constants.getAppBaseUrl(ct) + "common/downloadbyId.action?id=" + id + "&sessionId=" +
+                CommonUtil.getSharedPreferences(ct, "sessionId") +
+                "&sessionUser=" + CommonUtil.getSharedPreferences(ct, "erp_username") +
+                "&master=" + CommonUtil.getSharedPreferences(ct, "erp_master");
+    }
     private void initView() {
     private void initView() {
         ct = getActivity();
         ct = getActivity();
         findViewById(R.id.my_data_rl).setOnClickListener(this);
         findViewById(R.id.my_data_rl).setOnClickListener(this);
@@ -275,9 +281,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         IntentFilter loginFilter = new IntentFilter();
         IntentFilter loginFilter = new IntentFilter();
         loginFilter.addAction("com.app.home.update");
         loginFilter.addAction("com.app.home.update");
         LocalBroadcastManager.getInstance(ct).registerReceiver(updateLoginState, loginFilter);
         LocalBroadcastManager.getInstance(ct).registerReceiver(updateLoginState, loginFilter);
-
         String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
         String loginUserId = MyApplication.getInstance().mLoginUser.getUserId();
-
         AvatarHelper.getInstance().display(loginUserId, mAvatarImg, true, true);
         AvatarHelper.getInstance().display(loginUserId, mAvatarImg, true, true);
         mNickNameTv.setText(MyApplication.getInstance().mLoginUser.getNickName());
         mNickNameTv.setText(MyApplication.getInstance().mLoginUser.getNickName());
         mPhoneNumTv.setText(MyApplication.getInstance().mLoginUser.getTelephone());
         mPhoneNumTv.setText(MyApplication.getInstance().mLoginUser.getTelephone());
@@ -332,7 +336,7 @@ public class MeFragment extends EasyFragment implements View.OnClickListener {
         my_qr_code_rl.setOnClickListener(new View.OnClickListener() {
         my_qr_code_rl.setOnClickListener(new View.OnClickListener() {
             @Override
             @Override
             public void onClick(View v) {
             public void onClick(View v) {
-                startActivity(new Intent(ct,InfoCodeActivity.class));
+                startActivity(new Intent(ct, InfoCodeActivity.class));
             }
             }
         });
         });
 
 

+ 0 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/platform/task/TaskDetailB2BActivity.java

@@ -150,7 +150,6 @@ public class TaskDetailB2BActivity extends BaseActivity implements View.OnClickL
                         break;
                         break;
                     case LOAD_SUCCESS_MSGTASK:
                     case LOAD_SUCCESS_MSGTASK:
                         result = msg.getData().getString("result");
                         result = msg.getData().getString("result");
-                        Log.i(TAG, "回复内容:" + result);
                         if (adapter == null) {
                         if (adapter == null) {
                             adapter = new SimpleAdapter(ct, JSON.parseObject(result).getJSONArray("listdata"));
                             adapter = new SimpleAdapter(ct, JSON.parseObject(result).getJSONArray("listdata"));
                             iv_taskMsg.setAdapter(adapter);
                             iv_taskMsg.setAdapter(adapter);
@@ -379,15 +378,11 @@ public class TaskDetailB2BActivity extends BaseActivity implements View.OnClickL
     }
     }
 
 
     public void sendDataToB2BServer(String url, Map<String, String> param) {
     public void sendDataToB2BServer(String url, Map<String, String> param) {
-//		progressDialog.show();
-        Log.i(TAG, url);
         param.put("sessionId", ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
         param.put("sessionId", ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
         ViewUtil.startNetThread(ct, url, param, mhandler, Constants.LOAD_SUCCESS, null, null, "post");
         ViewUtil.startNetThread(ct, url, param, mhandler, Constants.LOAD_SUCCESS, null, null, "post");
     }
     }
 
 
     public void sendDataToServer(String url, Map<String, Object> param, int what) {
     public void sendDataToServer(String url, Map<String, Object> param, int what) {
-//		progressDialog.show();
-
         param.put("sessionId", ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
         param.put("sessionId", ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
         headers.put("Cookie", "JSESSIONID=" + ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());
         headers.put("Cookie", "JSESSIONID=" + ApiConfig.getInstance(ApiUtils.getApiModel()).getmApiBase().getCookie());

+ 2 - 2
WeiChat/src/main/java/com/xzjmyk/pm/activity/util/PermissionUtil.java

@@ -25,7 +25,7 @@ public class PermissionUtil {
     public static boolean lacksPermissions(Context context, String... permissions) {
     public static boolean lacksPermissions(Context context, String... permissions) {
         if (Build.VERSION.SDK_INT >= 23) {
         if (Build.VERSION.SDK_INT >= 23) {
             for (String permission : permissions) {
             for (String permission : permissions) {
-                if (lacksPermission(context,permission)) {
+                if (lacksPermission(context, permission)) {
                     return true;
                     return true;
                 }
                 }
             }
             }
@@ -39,7 +39,7 @@ public class PermissionUtil {
     }
     }
 
 
     // 判断是否缺少权限
     // 判断是否缺少权限
-    private static boolean lacksPermission(Context context,String permission) {
+    private static boolean lacksPermission(Context context, String permission) {
         return ContextCompat.checkSelfPermission(context, permission) ==
         return ContextCompat.checkSelfPermission(context, permission) ==
                 PackageManager.PERMISSION_DENIED;
                 PackageManager.PERMISSION_DENIED;
     }
     }

+ 110 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/AuthImageDownloader.java

@@ -0,0 +1,110 @@
+package com.xzjmyk.pm.activity.view;
+
+import android.content.Context;
+
+import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.security.KeyManagementException;
+import java.security.NoSuchAlgorithmException;
+
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.SSLSocketFactory;
+
+public class AuthImageDownloader extends BaseImageDownloader {
+
+    private SSLSocketFactory mSSLSocketFactory;
+
+    public AuthImageDownloader(Context context) {
+        super(context);
+        SSLContext sslContext = sslContextForTrustedCertificates();
+        mSSLSocketFactory = sslContext.getSocketFactory();
+    }
+
+    public AuthImageDownloader(Context context, int connectTimeout, int readTimeout) {
+        super(context, connectTimeout, readTimeout);
+        SSLContext sslContext = sslContextForTrustedCertificates();
+        mSSLSocketFactory = sslContext.getSocketFactory();
+    }
+
+    @Override
+    protected InputStream getStreamFromNetwork(String imageUri, Object extra) throws IOException {
+        URL url = null;
+        try {
+            url = new URL(imageUri);
+        } catch (MalformedURLException e) {
+        }
+        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+        conn.setConnectTimeout(connectTimeout);
+        conn.setReadTimeout(readTimeout);
+
+        if (conn instanceof HttpsURLConnection) {
+            ((HttpsURLConnection) conn).setSSLSocketFactory(mSSLSocketFactory);
+            ((HttpsURLConnection) conn).setHostnameVerifier((DO_NOT_VERIFY));
+        }
+        return new BufferedInputStream(conn.getInputStream(), BUFFER_SIZE);
+    }
+
+    // always verify the host - dont check for certificate
+    final HostnameVerifier DO_NOT_VERIFY = new HostnameVerifier() {
+        @Override
+        public boolean verify(String hostname, SSLSession session) {
+            return true;
+        }
+    };
+
+    public SSLContext sslContextForTrustedCertificates() {
+        javax.net.ssl.TrustManager[] trustAllCerts = new javax.net.ssl.TrustManager[1];
+        javax.net.ssl.TrustManager tm = new miTM();
+        trustAllCerts[0] = tm;
+        SSLContext sc = null;
+        try {
+            sc = SSLContext.getInstance("SSL");
+            sc.init(null, trustAllCerts, null);
+            //javax.net.ssl.HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (KeyManagementException e) {
+            e.printStackTrace();
+        } finally {
+            return sc;
+        }
+    }
+
+    class miTM implements javax.net.ssl.TrustManager,
+            javax.net.ssl.X509TrustManager {
+        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
+            return null;
+        }
+
+        public boolean isServerTrusted(
+                java.security.cert.X509Certificate[] certs) {
+            return true;
+        }
+
+        public boolean isClientTrusted(
+                java.security.cert.X509Certificate[] certs) {
+            return true;
+        }
+
+        public void checkServerTrusted(
+                java.security.cert.X509Certificate[] certs, String authType)
+                throws java.security.cert.CertificateException {
+            return;
+        }
+
+        public void checkClientTrusted(
+                java.security.cert.X509Certificate[] certs, String authType)
+                throws java.security.cert.CertificateException {
+            return;
+        }
+    }
+}

+ 3 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/ReceiptManager.java

@@ -7,6 +7,7 @@ import android.util.Log;
 import com.xzjmyk.pm.activity.bean.message.ChatMessage;
 import com.xzjmyk.pm.activity.bean.message.ChatMessage;
 import com.xzjmyk.pm.activity.bean.message.NewFriendMessage;
 import com.xzjmyk.pm.activity.bean.message.NewFriendMessage;
 import com.xzjmyk.pm.activity.bean.message.XmppMessage;
 import com.xzjmyk.pm.activity.bean.message.XmppMessage;
+import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.xmpp.listener.ChatMessageListener;
 import com.xzjmyk.pm.activity.xmpp.listener.ChatMessageListener;
 
 
 import org.jivesoftware.smack.XMPPConnection;
 import org.jivesoftware.smack.XMPPConnection;
@@ -64,6 +65,7 @@ public class ReceiptManager {
 	ReceiptReceivedListener mReceiptReceivedListener = new ReceiptReceivedListener() {
 	ReceiptReceivedListener mReceiptReceivedListener = new ReceiptReceivedListener() {
 		@Override
 		@Override
 		public void onReceiptReceived(String fromJid, String toJid, String receiptId) {
 		public void onReceiptReceived(String fromJid, String toJid, String receiptId) {
+			Log.d("roamer", "onReceiptReceived:"+ DateFormatUtil.getDateTimeStr());
 			Log.d("roamer", "收到消息回执:fromJid=" + fromJid + "----toJid=" + toJid + "----receiptId=" + receiptId);
 			Log.d("roamer", "收到消息回执:fromJid=" + fromJid + "----toJid=" + toJid + "----receiptId=" + receiptId);
 			mReceiptMapHandler.removeMessages(RECEIPT_NO, receiptId);
 			mReceiptMapHandler.removeMessages(RECEIPT_NO, receiptId);
 			android.os.Message handlerMsg = mReceiptMapHandler.obtainMessage(RECEIPT_YES);
 			android.os.Message handlerMsg = mReceiptMapHandler.obtainMessage(RECEIPT_YES);
@@ -92,7 +94,7 @@ public class ReceiptManager {
 		mReceiptMapHandler.sendMessageDelayed(handlerMsg, MESSAGE_DELAY);
 		mReceiptMapHandler.sendMessageDelayed(handlerMsg, MESSAGE_DELAY);
 	}
 	}
 
 
-	public static final int MESSAGE_DELAY = 20 * 1000;
+	public static final int MESSAGE_DELAY = 90 * 1000;
 
 
 	/** 处理消息回执 */
 	/** 处理消息回执 */
 	private Map<String, ReceiptObj> mReceiptMap = new HashMap<String, ReceiptObj>();
 	private Map<String, ReceiptObj> mReceiptMap = new HashMap<String, ReceiptObj>();

+ 5 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/xmpp/XChatManager.java

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.xzjmyk.pm.activity.bean.message.NewFriendMessage;
 import com.xzjmyk.pm.activity.bean.message.NewFriendMessage;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.db.dao.FriendDao;
 import com.xzjmyk.pm.activity.db.dao.NewFriendDao;
 import com.xzjmyk.pm.activity.db.dao.NewFriendDao;
+import com.xzjmyk.pm.activity.util.DateFormatUtil;
 import com.xzjmyk.pm.activity.xmpp.util.XmppStringUtil;
 import com.xzjmyk.pm.activity.xmpp.util.XmppStringUtil;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.bean.Friend;
 import com.xzjmyk.pm.activity.bean.Friend;
@@ -128,7 +129,6 @@ public class XChatManager {
         public void processMessage(Chat arg0, Message message) {
         public void processMessage(Chat arg0, Message message) {
             String from = message.getFrom();
             String from = message.getFrom();
             String to = message.getTo();
             String to = message.getTo();
-            Log.i("roamer", "message:" + JSON.toJSONString(message));
             if (TextUtils.isEmpty(from) || TextUtils.isEmpty(to)) {
             if (TextUtils.isEmpty(from) || TextUtils.isEmpty(to)) {
                 return;
                 return;
             }
             }
@@ -140,14 +140,15 @@ public class XChatManager {
             }
             }
             saveSingleMessage(message, false);//将消息保存到本地
             saveSingleMessage(message, false);//将消息保存到本地
             if (mService != null) {
             if (mService != null) {
-                Log.d("wang", message.getBody());
+                Log.d("roamer", "chatMessage:开始 "+ DateFormatUtil.getDateTimeStr());
                 ChatMessage chatMessage = new ChatMessage(message.getBody());
                 ChatMessage chatMessage = new ChatMessage(message.getBody());
-
+                Log.d("roamer", "chatMessage: 结束 "+ DateFormatUtil.getDateTimeStr());
                 if (chatMessage != null && chatMessage.getFromUserId() != mLoginUserId) {
                 if (chatMessage != null && chatMessage.getFromUserId() != mLoginUserId) {
                     mService.notificationMesage(chatMessage);
                     mService.notificationMesage(chatMessage);
                 }
                 }
             }
             }
             Log.d("roamer", "将消息保存到本地");
             Log.d("roamer", "将消息保存到本地");
+           
         }
         }
     };
     };
 
 
@@ -175,6 +176,7 @@ public class XChatManager {
                     // 发送消息
                     // 发送消息
                     Log.i("roamer", "消息正文:" + JSON.toJSONString(msg));
                     Log.i("roamer", "消息正文:" + JSON.toJSONString(msg));
                     chat.sendMessage(msg);
                     chat.sendMessage(msg);
+                    Log.i("roamer", "消息chat:"+JSON.toJSONString(chat));
                     Log.d("roamer", "消息发送中");
                     Log.d("roamer", "消息发送中");
                     ListenerManager.getInstance().notifyMessageSendStateChange(mLoginUserId, toUserId, chatMessage.get_id(),
                     ListenerManager.getInstance().notifyMessageSendStateChange(mLoginUserId, toUserId, chatMessage.get_id(),
                             ChatMessageListener.MESSAGE_SEND_ING);
                             ChatMessageListener.MESSAGE_SEND_ING);

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

@@ -311,6 +311,6 @@
             android:layout_marginBottom="30dp"
             android:layout_marginBottom="30dp"
             android:layout_marginTop="20dp"
             android:layout_marginTop="20dp"
             android:text="@string/common_save_button"
             android:text="@string/common_save_button"
-            android:visibility="gone" />
+        />
     </LinearLayout>
     </LinearLayout>
 </ScrollView>
 </ScrollView>

+ 9 - 1
WeiChat/src/main/res/layout/activity_add_visiting_report.xml

@@ -122,7 +122,15 @@
                 android:layout_width="wrap_content"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="@string/visit_content" />
                 android:text="@string/visit_content" />
-
+            <ImageView
+                android:id="@+id/voice_search_iv"
+                android:layout_width="20dp"
+                android:layout_toRightOf="@+id/content_tag"
+                android:layout_height="20dp"
+                android:layout_marginLeft="10dp"
+                android:layout_marginRight="35dp"
+                android:background="@drawable/btn_yuyin_nor"
+                android:visibility="visible" />
             <EditText
             <EditText
                 android:id="@+id/content_et"
                 android:id="@+id/content_et"
                 android:layout_width="match_parent"
                 android:layout_width="match_parent"

+ 82 - 58
WeiChat/src/main/res/layout/activity_business_detail_info.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?><!--    com.xzjmyk.pm.activity.ui.erp.view.CustomerScrollView-->
 <?xml version="1.0" encoding="utf-8"?><!--    com.xzjmyk.pm.activity.ui.erp.view.CustomerScrollView-->
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:background="@drawable/bg_bar">
+                xmlns:tools="http://schemas.android.com/tools"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/bg_bar">
 
 
     <ScrollView
     <ScrollView
         android:layout_width="match_parent"
         android:layout_width="match_parent"
@@ -114,15 +114,15 @@
 
 
                 <LinearLayout style="@style/LinearLayout_horizontal">
                 <LinearLayout style="@style/LinearLayout_horizontal">
 
 
-                    <ImageView style="@style/sign_imageview" />
+                    <ImageView style="@style/sign_imageview"/>
 
 
                     <TextView
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_margin="10dp"
                         android:layout_margin="10dp"
                         android:text="@string/common_basicinfo"
                         android:text="@string/common_basicinfo"
-                        android:textColor="#FF8E57"
-                        android:textSize="15sp" />
+                        android:textSize="15sp"
+                        android:textStyle="bold"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -134,12 +134,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/business_id"
                         android:text="@string/business_id"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_code"
                         android:id="@+id/bc_code"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -151,12 +151,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/describe"
                         android:text="@string/describe"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_description"
                         android:id="@+id/bc_description"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -169,12 +169,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/business_from"
                         android:text="@string/business_from"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_from"
                         android:id="@+id/bc_from"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -186,12 +186,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/business_Library"
                         android:text="@string/business_Library"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_nichehouse"
                         android:id="@+id/bc_nichehouse"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -203,12 +203,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/Company_Name"
                         android:text="@string/Company_Name"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_custname"
                         android:id="@+id/bc_custname"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -220,12 +220,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/address"
                         android:text="@string/address"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_address"
                         android:id="@+id/bc_address"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -238,12 +238,12 @@
                         android:layout_width="70dp"
                         android:layout_width="70dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="商机类型"
                         android:text="商机类型"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_type"
                         android:id="@+id/bc_type"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -256,12 +256,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/current_stage"
                         android:text="@string/current_stage"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_currentprocess"
                         android:id="@+id/bc_currentprocess"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -273,12 +273,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/creat_time"
                         android:text="@string/creat_time"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_recorddate"
                         android:id="@+id/bc_recorddate"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -291,12 +291,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/creater"
                         android:text="@string/creater"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_recorder"
                         android:id="@+id/bc_recorder"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
 
 
@@ -309,12 +309,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/last_followup_time"
                         android:text="@string/last_followup_time"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_lastdate"
                         android:id="@+id/bc_lastdate"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -326,12 +326,12 @@
                         android:layout_width="90dp"
                         android:layout_width="90dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/Follow_up_person"
                         android:text="@string/Follow_up_person"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_doman"
                         android:id="@+id/bc_doman"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
 
 
@@ -345,34 +345,35 @@
 
 
                 <LinearLayout style="@style/LinearLayout_horizontal">
                 <LinearLayout style="@style/LinearLayout_horizontal">
 
 
-                    <ImageView style="@style/sign_imageview" />
+                    <ImageView style="@style/sign_imageview"/>
 
 
                     <TextView
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_margin="10dp"
                         android:layout_margin="10dp"
                         android:text="@string/business_stage"
                         android:text="@string/business_stage"
-                        android:textColor="#FF8E57"
-                        android:textSize="15sp" />
+                        android:textSize="15sp"
+                        android:textStyle="bold"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <com.xzjmyk.pm.activity.view.steps.StepsView
                 <com.xzjmyk.pm.activity.view.steps.StepsView
                     android:id="@+id/stepsView"
                     android:id="@+id/stepsView"
                     android:layout_width="match_parent"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
                     android:layout_height="wrap_content"
-                    android:layout_marginBottom="10dp" />
+                    android:layout_marginBottom="10dp"/>
 
 
                 <TextView
                 <TextView
+                    android:id="@+id/stage_need_tv"
                     android:layout_width="wrap_content"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_height="wrap_content"
                     android:padding="10dp"
                     android:padding="10dp"
                     android:text="@string/Stage_requirements"
                     android:text="@string/Stage_requirements"
-                    android:textColor="@color/black" />
+                    android:textColor="@color/titleBlue"/>
 
 
                 <com.xzjmyk.pm.activity.view.stickylistheaders.StickyListHeadersListView
                 <com.xzjmyk.pm.activity.view.stickylistheaders.StickyListHeadersListView
                     android:id="@+id/lv_business"
                     android:id="@+id/lv_business"
                     android:layout_width="match_parent"
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent" />
+                    android:layout_height="match_parent"/>
             </LinearLayout>
             </LinearLayout>
 
 
 
 
@@ -383,15 +384,33 @@
 
 
                 <LinearLayout style="@style/LinearLayout_horizontal">
                 <LinearLayout style="@style/LinearLayout_horizontal">
 
 
-                    <ImageView style="@style/sign_imageview" />
+                    <ImageView style="@style/sign_imageview"/>
 
 
                     <TextView
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_margin="10dp"
                         android:layout_margin="10dp"
                         android:text="@string/common_Contact_information"
                         android:text="@string/common_Contact_information"
-                        android:textColor="#FF8E57"
-                        android:textSize="15sp" />
+                        android:textSize="15sp"
+                        android:textStyle="bold"/>
+
+                    <View
+                        android:id="@+id/ll_card_line"
+                        android:layout_width="1dp"
+                        android:layout_height="match_parent"
+                        android:layout_margin="8dp"
+                        android:background="@color/item_line"
+                        android:visibility="gone"/>
+
+                    <TextView
+                        android:id="@+id/ll_card_num"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_margin="10dp"
+                        android:text="2个"
+                        android:textColor="@color/button_focus"
+                        android:textSize="15sp"
+                        android:visibility="gone"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <com.xzjmyk.pm.activity.view.MyListView
                 <com.xzjmyk.pm.activity.view.MyListView
@@ -399,7 +418,7 @@
                     android:layout_width="match_parent"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
                     android:layout_height="match_parent"
                     android:divider="@color/item_line"
                     android:divider="@color/item_line"
-                    android:dividerHeight="@dimen/line" />
+                    android:dividerHeight="@dimen/line"/>
 
 
 
 
                 <LinearLayout
                 <LinearLayout
@@ -412,12 +431,12 @@
                         android:layout_width="70dp"
                         android:layout_width="70dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="联系人"
                         android:text="联系人"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_contact"
                         android:id="@+id/bc_contact"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -430,12 +449,12 @@
                         android:layout_width="70dp"
                         android:layout_width="70dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="职位"
                         android:text="职位"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_position"
                         android:id="@+id/bc_position"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -448,12 +467,12 @@
                         android:layout_width="70dp"
                         android:layout_width="70dp"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="电话"
                         android:text="电话"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bt_tel"
                         android:id="@+id/bt_tel"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
             </LinearLayout>
             </LinearLayout>
 
 
@@ -466,7 +485,7 @@
 
 
                 <LinearLayout style="@style/LinearLayout_horizontal">
                 <LinearLayout style="@style/LinearLayout_horizontal">
 
 
-                    <ImageView style="@style/sign_imageview" />
+                    <ImageView style="@style/sign_imageview"/>
 
 
                     <TextView
                     <TextView
                         android:layout_width="wrap_content"
                         android:layout_width="wrap_content"
@@ -474,7 +493,7 @@
                         android:layout_margin="10dp"
                         android:layout_margin="10dp"
                         android:text="@string/others"
                         android:text="@string/others"
                         android:textColor="#FF8E57"
                         android:textColor="#FF8E57"
-                        android:textSize="15sp" />
+                        android:textSize="15sp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
                 <LinearLayout
                 <LinearLayout
@@ -487,12 +506,12 @@
                         android:layout_gravity="top"
                         android:layout_gravity="top"
                         android:layout_marginLeft="10dp"
                         android:layout_marginLeft="10dp"
                         android:text="@string/Remarks"
                         android:text="@string/Remarks"
-                        android:textColor="@color/gray_light" />
+                        android:textColor="@color/gray_light"/>
 
 
                     <TextView
                     <TextView
                         android:id="@+id/bc_remark"
                         android:id="@+id/bc_remark"
                         style="@style/TextView_VerticalCenter"
                         style="@style/TextView_VerticalCenter"
-                        android:layout_marginLeft="5dp" />
+                        android:layout_marginLeft="5dp"/>
                 </LinearLayout>
                 </LinearLayout>
 
 
 
 
@@ -517,25 +536,29 @@
                 android:id="@+id/bt_manage_date"
                 android:id="@+id/bt_manage_date"
                 style="@style/crm_business_btn_nomargin"
                 style="@style/crm_business_btn_nomargin"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:text="@string/add_schedule" />
+                android:text="@string/add_schedule"
+                android:textColor="@color/titleBlue"/>
 
 
             <Button
             <Button
                 android:id="@+id/add_mission"
                 android:id="@+id/add_mission"
                 style="@style/crm_business_btn_nomargin"
                 style="@style/crm_business_btn_nomargin"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:text="@string/add_mission" />
+                android:text="@string/add_mission"
+                android:textColor="@color/titleBlue"/>
 
 
             <Button
             <Button
                 android:id="@+id/stage_follow"
                 android:id="@+id/stage_follow"
                 style="@style/crm_business_btn_nomargin"
                 style="@style/crm_business_btn_nomargin"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:text="@string/stage_follow" />
+                android:text="@string/stage_follow"
+                android:textColor="@color/titleBlue"/>
 
 
             <Button
             <Button
                 android:id="@+id/bt_manage_go"
                 android:id="@+id/bt_manage_go"
                 style="@style/crm_business_btn_nomargin"
                 style="@style/crm_business_btn_nomargin"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:text="@string/more_operation" />
+                android:text="@string/more_operation"
+                android:textColor="@color/titleBlue"/>
         </LinearLayout>
         </LinearLayout>
 
 
         <LinearLayout
         <LinearLayout
@@ -547,9 +570,10 @@
             <Button
             <Button
                 android:id="@+id/bt_qiang"
                 android:id="@+id/bt_qiang"
                 style="@style/crm_business_btn_nomargin"
                 style="@style/crm_business_btn_nomargin"
+                android:layout_width="match_parent"
                 android:layout_weight="1"
                 android:layout_weight="1"
                 android:text="@string/grab"
                 android:text="@string/grab"
-                android:textColor="@color/red" />
+                android:textColor="@color/red"/>
 
 
         </LinearLayout>
         </LinearLayout>
 
 
@@ -564,13 +588,13 @@
                 android:id="@+id/bt_fenpei"
                 android:id="@+id/bt_fenpei"
                 style="@style/crm_business_btn_nomargin"
                 style="@style/crm_business_btn_nomargin"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:text="@string/assign" />
+                android:text="@string/assign"/>
 
 
             <Button
             <Button
                 android:id="@+id/bt_zhuanyi"
                 android:id="@+id/bt_zhuanyi"
                 style="@style/crm_business_btn_nomargin"
                 style="@style/crm_business_btn_nomargin"
                 android:layout_weight="1"
                 android:layout_weight="1"
-                android:text="@string/transfer" />
+                android:text="@string/transfer"/>
         </LinearLayout>
         </LinearLayout>
     </LinearLayout>
     </LinearLayout>
 </RelativeLayout>
 </RelativeLayout>

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

@@ -66,7 +66,7 @@
                 style="@style/form_relative_right_text"
                 style="@style/form_relative_right_text"
                 android:hint="@string/common_input2"
                 android:hint="@string/common_input2"
                 whatever:testType="regexp"
                 whatever:testType="regexp"
-                whatever:customRegexp="^[\u4e00-\u9fa5_a-zA-Z0-9_\n]{0,300}$"
+                whatever:customRegexp="^[\u4e00-\u9fa5_a-zA-Z0-9.()_]{0,30}$"
                 whatever:testErrorString="限定字符长度不大于300" />
                 whatever:testErrorString="限定字符长度不大于300" />
         </RelativeLayout>
         </RelativeLayout>
 
 

+ 7 - 6
WeiChat/src/main/res/layout/activity_expense_reimbursement.xml

@@ -190,7 +190,7 @@
                             <View
                             <View
                                 style="@style/expense_table_v_1dp"/>
                                 style="@style/expense_table_v_1dp"/>
                             <TextView
                             <TextView
-                                android:text="类型"
+                                android:text="@string/type"
                                 android:layout_width="0dp"
                                 android:layout_width="0dp"
                                 android:layout_height="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_weight="2"
                                 android:layout_weight="2"
@@ -199,7 +199,7 @@
                             <View
                             <View
                                 style="@style/expense_table_v_1dp"/>
                                 style="@style/expense_table_v_1dp"/>
                             <TextView
                             <TextView
-                                android:text="金额"
+                                android:text="@string/Amount_of_money"
                                 android:layout_width="0dp"
                                 android:layout_width="0dp"
                                 android:layout_height="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_weight="2"
                                 android:layout_weight="2"
@@ -209,7 +209,7 @@
                             <View
                             <View
                                 style="@style/expense_table_v_1dp"/>
                                 style="@style/expense_table_v_1dp"/>
                             <TextView
                             <TextView
-                                android:text="删除"
+                                android:text="@string/common_delete"
                                 android:layout_width="0dp"
                                 android:layout_width="0dp"
                                 android:layout_height="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_weight="1"
                                 android:layout_weight="1"
@@ -258,14 +258,15 @@
                                 android:text="自动计算"
                                 android:text="自动计算"
                                 android:layout_centerVertical="true"
                                 android:layout_centerVertical="true"
                                 android:layout_marginLeft="10dp"
                                 android:layout_marginLeft="10dp"
-                                android:textColor="@color/blue"/>
+                                android:textColor="@color/blue"
+                                android:visibility="gone"/>
 
 
                             <TextView
                             <TextView
                                 android:id="@+id/i_calculation_tv"
                                 android:id="@+id/i_calculation_tv"
                                 android:layout_toRightOf="@id/automatic_calculation_tv"
                                 android:layout_toRightOf="@id/automatic_calculation_tv"
                                 android:layout_width="wrap_content"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="计算器"
+                                android:text="@string/calculator_name"
                                 android:layout_centerVertical="true"
                                 android:layout_centerVertical="true"
                                 android:layout_marginLeft="10dp"
                                 android:layout_marginLeft="10dp"
                                 android:textColor="@color/blue"
                                 android:textColor="@color/blue"
@@ -282,7 +283,7 @@
                             <TextView
                             <TextView
                                 android:layout_width="wrap_content"
                                 android:layout_width="wrap_content"
                                 android:layout_height="wrap_content"
                                 android:layout_height="wrap_content"
-                                android:text="总金额"
+                                android:text="@string/all_Amount_of_money"
                                 android:layout_toLeftOf="@+id/sum_money_tv"
                                 android:layout_toLeftOf="@+id/sum_money_tv"
                                 android:layout_centerVertical="true"
                                 android:layout_centerVertical="true"
                                 android:layout_marginRight="10dp"
                                 android:layout_marginRight="10dp"

+ 4 - 3
WeiChat/src/main/res/layout/activity_select_active.xml

@@ -2,6 +2,7 @@
     android:layout_width="match_parent"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_height="match_parent"
     android:background="@drawable/bg_main">
     android:background="@drawable/bg_main">
+
     <com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView
     <com.xzjmyk.pm.activity.ui.erp.view.VoiceSearchView
         android:id="@+id/voiceSearchView"
         android:id="@+id/voiceSearchView"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
@@ -11,10 +12,10 @@
         android:id="@+id/include_tag"
         android:id="@+id/include_tag"
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
-        android:orientation="vertical"
         android:layout_alignParentBottom="true"
         android:layout_alignParentBottom="true"
         android:layout_alignParentLeft="true"
         android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true">
+        android:layout_alignParentStart="true"
+        android:orientation="vertical">
 
 
         <View
         <View
             android:layout_width="match_parent"
             android:layout_width="match_parent"
@@ -29,7 +30,7 @@
         android:layout_width="match_parent"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_height="match_parent"
         android:layout_above="@id/include_tag"
         android:layout_above="@id/include_tag"
-        android:layout_below="@+id/seach_top"
+        android:layout_below="@+id/voiceSearchView"
         android:divider="@color/item_line"
         android:divider="@color/item_line"
         android:dividerHeight="2px"
         android:dividerHeight="2px"
         android:smoothScrollbar="false" />
         android:smoothScrollbar="false" />

+ 7 - 3
WeiChat/src/main/res/layout/item_business.xml

@@ -18,7 +18,8 @@
             <TextView
             <TextView
                 style="@style/TextView_Basic"
                 style="@style/TextView_Basic"
                 android:minWidth="90dp"
                 android:minWidth="90dp"
-                android:text="@string/Company_Name" />
+                android:text="@string/Company_Name"
+                android:textColor="@color/gray_light" />
 
 
             <TextView
             <TextView
                 android:id="@+id/companyname_tv"
                 android:id="@+id/companyname_tv"
@@ -31,7 +32,8 @@
             <TextView
             <TextView
                 style="@style/TextView_Basic"
                 style="@style/TextView_Basic"
                 android:minWidth="90dp"
                 android:minWidth="90dp"
-                android:text="@string/describe" />
+                android:text="@string/describe"
+                android:textColor="@color/gray_light" />
 
 
             <TextView
             <TextView
                 android:id="@+id/describe_tv"
                 android:id="@+id/describe_tv"
@@ -48,7 +50,8 @@
                 style="@style/TextView_Basic"
                 style="@style/TextView_Basic"
                 android:layout_gravity="center_vertical"
                 android:layout_gravity="center_vertical"
                 android:minWidth="90dp"
                 android:minWidth="90dp"
-                android:text="@string/create_date" />
+                android:text="@string/create_date"
+                android:textColor="@color/gray_light" />
 
 
             <TextView
             <TextView
                 android:id="@+id/create_date_tv"
                 android:id="@+id/create_date_tv"
@@ -65,6 +68,7 @@
             android:layout_height="wrap_content"
             android:layout_height="wrap_content"
             android:layout_margin="10dp"
             android:layout_margin="10dp"
             android:text="@string/business_stage"
             android:text="@string/business_stage"
+            android:textColor="@color/gray_light"
             android:textSize="15sp" />
             android:textSize="15sp" />
 
 
         <com.xzjmyk.pm.activity.view.steps.HorizontalStepsView
         <com.xzjmyk.pm.activity.view.steps.HorizontalStepsView

+ 1 - 0
WeiChat/src/main/res/layout/item_name_phone.xml

@@ -9,6 +9,7 @@
         style="@style/TextView_VerticalCenter"
         style="@style/TextView_VerticalCenter"
         android:layout_width="70dp"
         android:layout_width="70dp"
         android:layout_marginLeft="10dp"
         android:layout_marginLeft="10dp"
+        android:paddingLeft="5dp"
         android:textColor="@color/titleBlue" />
         android:textColor="@color/titleBlue" />
 
 
 
 

+ 30 - 12
WeiChat/src/main/res/layout/item_visit_contact.xml

@@ -1,19 +1,37 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/date_rl"
     android:id="@+id/date_rl"
-    style="@style/item_menu">
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@color/background">
 
 
     <TextView
     <TextView
-        android:id="@+id/contact_tag"
-        style="@style/item_menu_tag"
-        android:gravity="center_vertical"
-        android:text="@string/common_Contact_person" />
+        android:id="@+id/delete_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:padding="6dp"
+        android:text="@string/common_delete"
+        android:textColor="@color/button_focus" />
+
+    <RelativeLayout
+        style="@style/item_menu"
+        android:layout_below="@id/delete_tv">
+
+        <TextView
+            android:id="@+id/contact_tag"
+            style="@style/item_menu_tag"
+            android:gravity="center_vertical"
+            android:text="@string/common_Contact_person" />
+
+        <TextView
+            android:id="@+id/contact_tv"
+            style="@style/item_menu_input"
+            android:layout_toRightOf="@id/contact_tag"
+            android:drawablePadding="6dp"
+            android:drawableRight="@drawable/oa_next"
+            android:hint="@string/common_input_or_select_much" />
+    </RelativeLayout>
+
 
 
-    <TextView
-        android:id="@+id/contact_tv"
-        android:drawableRight="@drawable/oa_next"
-        style="@style/item_menu_input"
-        android:layout_toRightOf="@id/contact_tag"
-        android:drawablePadding="6dp"
-        android:hint="@string/common_input_or_select_much" />
 </RelativeLayout>
 </RelativeLayout>

+ 0 - 2
WeiChat/src/main/res/menu/main_customer_top.xml

@@ -1,10 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
 <menu xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto">
     xmlns:app="http://schemas.android.com/apk/res-auto">
-    <!-- android:icon="@drawable/abc_ic_search_api_mtrl_alpha"-->
     <item
     <item
         android:id="@+id/crm_data_find"
         android:id="@+id/crm_data_find"
-       
         android:title="@string/search1"
         android:title="@string/search1"
         app:showAsAction="ifRoom" />
         app:showAsAction="ifRoom" />
     <item
     <item

+ 4 - 0
WeiChat/src/main/res/values-en/strings.xml

@@ -1367,6 +1367,8 @@
     <string name="unsubscribe">-退订</string>
     <string name="unsubscribe">-退订</string>
     <string name="not_unsubscribe_able">该订阅号不可退订</string>
     <string name="not_unsubscribe_able">该订阅号不可退订</string>
     <string name="unsubscribe_able">不可退订</string>
     <string name="unsubscribe_able">不可退订</string>
+    <string name="sure_business_release">确定释放这个商机?</string>
+    <string name="add_contact">新增联系人</string>
     <string name="common_list_empty">No data</string>
     <string name="common_list_empty">No data</string>
     <string name="info_2dcode">My QR Code</string>
     <string name="info_2dcode">My QR Code</string>
     <string name="scan_2dcode_addme">Scan the QR Code to add me as a friend </string>
     <string name="scan_2dcode_addme">Scan the QR Code to add me as a friend </string>
@@ -1382,6 +1384,8 @@
     <string name="Expense_reimbursement">Expense Reimbursement</string>
     <string name="Expense_reimbursement">Expense Reimbursement</string>
     <string name="RMB">RMB</string>
     <string name="RMB">RMB</string>
     <string name="currency">currency</string>
     <string name="currency">currency</string>
+    <string name="more_length">size exceeds the maximum length</string>
+    <string name="work_name_not_be_null">Flight name cannot be empty</string>
 
 
     <string name="my_data">My data</string>
     <string name="my_data">My data</string>
     <string name="clear_completed">Clear Completed</string>
     <string name="clear_completed">Clear Completed</string>

+ 5 - 1
WeiChat/src/main/res/values-zh-rCN/strings.xml

@@ -605,7 +605,7 @@
     <string name="uu_auto_work_signined_up">UU已经帮你自动打卡</string>
     <string name="uu_auto_work_signined_up">UU已经帮你自动打卡</string>
     <string name="success_signin_down_can_back">外勤签退成功,您还有时间返回公司,请回公司签到</string>
     <string name="success_signin_down_can_back">外勤签退成功,您还有时间返回公司,请回公司签到</string>
     <string name="success_signin_down_task_ok">外勤签退成功,当天任务已结束</string>
     <string name="success_signin_down_task_ok">外勤签退成功,当天任务已结束</string>
-    <string name="add_contacts">添加联系人</string>
+    <string name="add_contacts">+添加联系人</string>
     <string name="name">姓名</string>
     <string name="name">姓名</string>
     <string name="position">岗位</string>
     <string name="position">岗位</string>
     <string name="company_address">公司地址</string>
     <string name="company_address">公司地址</string>
@@ -619,6 +619,7 @@
     <string name="visit_date">拜访日期</string>
     <string name="visit_date">拜访日期</string>
     <string name="visitrecord">拜访报告</string>
     <string name="visitrecord">拜访报告</string>
     <string name="sure_delete_bc">确认删除此商机?</string>
     <string name="sure_delete_bc">确认删除此商机?</string>
+    <string name="sure_business_release">确定释放这个商机?</string>
     <string-array name="crm_dialog_followup">
     <string-array name="crm_dialog_followup">
         <item>商机释放</item>
         <item>商机释放</item>
         <item>商机失效</item>
         <item>商机失效</item>
@@ -797,6 +798,9 @@
     <string name="unsubscribe">-退订</string>
     <string name="unsubscribe">-退订</string>
     <string name="not_unsubscribe_able">该订阅号不可退订</string>
     <string name="not_unsubscribe_able">该订阅号不可退订</string>
     <string name="unsubscribe_able">不可退订</string>
     <string name="unsubscribe_able">不可退订</string>
+    <string name="add_contact">新增联系人</string>
+    <string name="more_length">超过最大允许长度</string>
+    <string name="work_name_not_be_null">班次名称不能为空</string>
     <!--end by Bitliker-->
     <!--end by Bitliker-->
 
 
     <!--start by Arison-->
     <!--start by Arison-->

+ 4 - 0
WeiChat/src/main/res/values-zh-rTW/strings.xml

@@ -594,6 +594,7 @@
     <string name="visit_date">拜訪日期</string>
     <string name="visit_date">拜訪日期</string>
     <string name="visitrecord">拜訪報告</string>
     <string name="visitrecord">拜訪報告</string>
     <string name="sure_delete_bc">確認删除此商機?</string>
     <string name="sure_delete_bc">確認删除此商機?</string>
+    <string name="sure_business_release">確定釋放這個商機?</string>
     <string-array name="crm_dialog_followup">
     <string-array name="crm_dialog_followup">
         <item>商機釋放</item>
         <item>商機釋放</item>
         <item>商機失效</item>
         <item>商機失效</item>
@@ -770,6 +771,9 @@
     <string name="unsubscribe">-退訂</string>
     <string name="unsubscribe">-退訂</string>
     <string name="not_unsubscribe_able">該訂閱號不可退訂</string>
     <string name="not_unsubscribe_able">該訂閱號不可退訂</string>
     <string name="unsubscribe_able">不可退訂</string>
     <string name="unsubscribe_able">不可退訂</string>
+    <string name="add_contact">新增連絡人</string>
+    <string name="more_length">超過最大允許長度</string>
+    <string name="work_name_not_be_null">班次名稱不能為空</string>
     <!--end by Bitliker-->
     <!--end by Bitliker-->
 
 
     <!--start by Arison-->
     <!--start by Arison-->

+ 12 - 3
WeiChat/src/main/res/values/strings.xml

@@ -1084,7 +1084,7 @@
     <string name="fixed_shift">固定班次</string>
     <string name="fixed_shift">固定班次</string>
     <string name="user_work">使用本班次</string>
     <string name="user_work">使用本班次</string>
     <string name="conflict_personnel">冲突人员</string>
     <string name="conflict_personnel">冲突人员</string>
-    <string name="conflict_department">冲突冲突部门</string>
+    <string name="conflict_department">冲突部门</string>
     <string name="default_not_edit_department">默认班次不能修改部门</string>
     <string name="default_not_edit_department">默认班次不能修改部门</string>
     <string name="default_not_edit_member">默认班次不能修改人员</string>
     <string name="default_not_edit_member">默认班次不能修改人员</string>
     <string name="not_null_name">规则名称不能为空</string>
     <string name="not_null_name">规则名称不能为空</string>
@@ -1718,6 +1718,10 @@
     </string-array>
     </string-array>
     <string name="missing_card">缺卡</string>
     <string name="missing_card">缺卡</string>
     <string name="before_work">上班前</string>
     <string name="before_work">上班前</string>
+    <string name="search1">查找</string>
+    <string name="formal_customer">正式客户</string>
+    <string name="client_type">客户类型</string>
+    <string name="common_select1">请选择</string>
     <string name="update_business">修改商机</string>
     <string name="update_business">修改商机</string>
     <string name="confirmed">待确认</string>
     <string name="confirmed">待确认</string>
     <string name="readed">已读</string>
     <string name="readed">已读</string>
@@ -1729,7 +1733,6 @@
     <string name="unsubscribe">-退订</string>
     <string name="unsubscribe">-退订</string>
     <string name="not_unsubscribe_able">该订阅号不可退订</string>
     <string name="not_unsubscribe_able">该订阅号不可退订</string>
     <string name="unsubscribe_able">不可退订</string>
     <string name="unsubscribe_able">不可退订</string>
-    <string name="formal_customer">正式客户</string>
     <string name="client_yu_luru">客户预录入</string>
     <string name="client_yu_luru">客户预录入</string>
     <string name="common_title">标题</string>
     <string name="common_title">标题</string>
     <string name="Reimbursement_type">报销类型</string>
     <string name="Reimbursement_type">报销类型</string>
@@ -1740,7 +1743,9 @@
     <string name="RMB">人民币</string>
     <string name="RMB">人民币</string>
     <string name="currency">币种</string>
     <string name="currency">币种</string>
     <string name="search_select_hint">搜索项目、品牌、物料、型号等</string>
     <string name="search_select_hint">搜索项目、品牌、物料、型号等</string>
-
+    <string name="sure_business_release">确定释放这个商机?</string>
+    <string name="more_length">超过最大允许长度</string>
+    <string name="work_name_not_be_null">班次名称不能为空</string>
     <string name="calculator_name">计算器</string>
     <string name="calculator_name">计算器</string>
     <string name="action_settings">Settings</string>
     <string name="action_settings">Settings</string>
     <string name="c_ce">CE</string>
     <string name="c_ce">CE</string>
@@ -1779,4 +1784,8 @@
     <string name="login_progress_erp">正在验证UAS...</string>
     <string name="login_progress_erp">正在验证UAS...</string>
     <string name="login_company_select">选择公司</string>
     <string name="login_company_select">选择公司</string>
     
     
+    <string name="Amount_of_money">金额</string>
+    <string name="all_Amount_of_money">总金额</string>
+    <string name="type">类型</string>
+    <string name="not_search_message">没有符合条件的结果</string>
 </resources>
 </resources>

+ 1 - 1
gradle/wrapper/gradle-wrapper.properties

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.10-all.zip

Some files were not shown because too many files changed in this diff