Browse Source

分享资源缺失闪退解决。

FANGLH 9 years ago
parent
commit
4ec18cc945
36 changed files with 764 additions and 701 deletions
  1. 6 0
      WeiChat/build.gradle
  2. 1 2
      WeiChat/src/main/AndroidManifest.xml
  3. 1 4
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/FriendSortAdapter.java
  4. 8 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/MySubscriptionAdapter.java
  5. 77 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/SubsTypeAdapter.java
  6. 18 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/PersonalSubscriptionBean.java
  7. 9 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/SubscriptionNumber.java
  8. 0 70
      WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/SelectListBean.java
  9. 33 32
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeDetailActivity.java
  10. 4 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/BusinessDetailActivty.java
  11. 20 10
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/TaskAddActivity.java
  12. 66 28
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportAddActivity.java
  13. 19 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/crm/VisitReportPlanActivity.java
  14. 1 0
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/me/FeedbackActivity.java
  15. 62 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectActivity.java
  16. 0 339
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/SelectListActivity.java
  17. 1 2
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/oa/UserSelectActivity.java
  18. 16 16
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/adapter/OAListAdapter.java
  19. 109 11
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java
  20. 3 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBOpenHelper.java
  21. 20 8
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java
  22. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SigninFragment.java
  23. 154 109
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java
  24. 28 5
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionMyFragment.java
  25. 17 3
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java
  26. 14 15
      WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/nearby/UserListActivity.java
  27. 1 1
      WeiChat/src/main/java/com/xzjmyk/pm/activity/view/NoSlideViewpager.java
  28. 8 1
      WeiChat/src/main/res/layout/activity_oamain.xml
  29. 0 1
      WeiChat/src/main/res/layout/activity_select.xml
  30. 0 15
      WeiChat/src/main/res/layout/activity_select_list.xml
  31. 4 5
      WeiChat/src/main/res/layout/fragment_all_subscription.xml
  32. 13 2
      WeiChat/src/main/res/layout/item_oa_list.xml
  33. 4 4
      WeiChat/src/main/res/layout/layout_my_subscribe_list.xml
  34. 18 0
      WeiChat/src/main/res/layout/list_subs_type.xml
  35. 0 1
      WeiChat/src/main/res/layout/p_msg_item_main_body.xml
  36. 28 0
      WeiChat/src/main/res/layout/umeng_socialize_shareboard_item.xml

+ 6 - 0
WeiChat/build.gradle

@@ -6,6 +6,11 @@ android {
     lintOptions {
         abortOnError false
     }
+ 
+        lintOptions {
+            abortOnError false
+        }
+    
     dexOptions {
         incremental true
         javaMaxHeapSize "4g"
@@ -13,6 +18,7 @@ android {
     signingConfigs {
         config {
             storeFile file('C:/Users/FANGlh/Desktop/UU5.5.1/applicationsignname[20150409]')
+            storeFile file('C:/Users/Arison/Desktop/applicationsignname[20150409]')
             storePassword '13237658359'
             keyAlias 'jie-20150409'
             keyPassword '13237658359'

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

@@ -2,7 +2,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     package="com.xzjmyk.pm.activity"
-    android:versionCode="60"
+    android:versionCode="59"
     android:versionName="5.5.4">
 
     <uses-sdk
@@ -613,7 +613,6 @@
             android:label="我的外勤"
             android:theme="@style/OAThemeOutOffice" />
         <activity android:name=".ui.erp.activity.oa.OptionActivity" />
-        <activity android:name=".ui.erp.activity.oa.SelectListActivity" />
         <activity android:name=".ui.erp.activity.crm.SubsActivity" />
         <activity android:name=".ui.erp.activity.me.UpdateSingleTextActivity"/>
         <activity android:name=".ui.erp.activity.me.UpdateSexActivity"/>

+ 1 - 4
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/FriendSortAdapter.java

@@ -135,10 +135,7 @@ public class FriendSortAdapter extends BaseAdapter implements SectionIndexer {
             }
         }
         /*昵称*/
-        String name = friend.getRemarkName();
-        if (TextUtils.isEmpty(name)) {
-            name = friend.getNickName();
-        }
+        String name = friend.getShowName();
         holder.name_tv.setText(name);
         /*个性签名*/
         holder.sub_tv.setText((StringUtils.isEmpty(friend.getDepart()) ? "" : (friend.getDepart() + ">"))

+ 8 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/MySubscriptionAdapter.java

@@ -15,6 +15,7 @@ import android.widget.TextView;
 
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.PersonalSubscriptionBean;
+import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
@@ -39,10 +40,12 @@ public class MySubscriptionAdapter extends BaseAdapter {
     private final static int REMOVE_MY_SUBSCRIPTION = 13;
     private int mCanclePosition;
     private PopupWindow mCancleWindow;
+    private DBManager mDbManager;
 
     public MySubscriptionAdapter(Context mContext, List<PersonalSubscriptionBean> mPersonalSubscriptionBeans) {
         this.mContext = mContext;
         this.mPersonalSubscriptionBeans = mPersonalSubscriptionBeans;
+        mDbManager = new DBManager(mContext);
         progressDialog = CustomProgressDialog.createDialog(mContext);
         mImageIds = new ArrayList<>();
         mImageIds.add(R.drawable.ic_subscription_icon1);
@@ -163,10 +166,14 @@ public class MySubscriptionAdapter extends BaseAdapter {
                 case REMOVE_MY_SUBSCRIPTION:
                     progressDialog.dismiss();
                     Crouton.makeText(mContext, "取消订阅成功");
+                    mDbManager.deleteFromMySubs(mPersonalSubscriptionBeans.get(mCanclePosition));
                     mPersonalSubscriptionBeans.remove(mCanclePosition);
                     notifyDataSetChanged();
                     break;
-
+                case Constants.APP_SOCKETIMEOUTEXCEPTION:
+                    progressDialog.dismiss();
+                    Crouton.makeText(mContext, msg.getData().getString("result"), 1500);
+                    break;
             }
         }
     };

+ 77 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/adapter/SubsTypeAdapter.java

@@ -0,0 +1,77 @@
+package com.xzjmyk.pm.activity.adapter;
+
+import android.content.Context;
+import android.graphics.Color;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.TextView;
+
+import com.xzjmyk.pm.activity.R;
+
+import java.util.List;
+
+/**
+ * 未订阅页面订阅类别适配器
+ * Created by RaoMeng on 2016/10/20.
+ */
+public class SubsTypeAdapter extends BaseAdapter {
+    private List<String> keyStrings;
+    private Context mContext;
+    private int mSelectItem;
+
+    public SubsTypeAdapter(Context mContext,List<String> keyStrings) {
+        this.keyStrings = keyStrings;
+        this.mContext = mContext;
+    }
+
+    @Override
+    public int getCount() {
+        return keyStrings.size();
+    }
+
+    @Override
+    public Object getItem(int position) {
+        return keyStrings.get(position);
+    }
+
+    @Override
+    public long getItemId(int position) {
+        return position;
+    }
+
+    public void setSelectItem(int mSelectItem){
+        this.mSelectItem = mSelectItem;
+    }
+
+    @Override
+    public View getView(int position, View convertView, ViewGroup parent) {
+        ViewHolder viewHolder = null;
+        if (convertView == null){
+            convertView = View.inflate(mContext, R.layout.list_subs_type,null);
+            viewHolder = new ViewHolder();
+            viewHolder.typeTextView = (TextView) convertView.findViewById(R.id.list_subs_type_tv);
+
+            convertView.setTag(viewHolder);
+        }else {
+            viewHolder = (ViewHolder) convertView.getTag();
+        }
+        viewHolder.typeTextView.setText(keyStrings.get(position));
+        if (mSelectItem == position){
+            viewHolder.typeTextView.setSelected(true);
+            viewHolder.typeTextView.setPressed(true);
+            viewHolder.typeTextView.setTextColor(Color.RED);
+            convertView.setBackgroundColor(Color.WHITE);
+        }else {
+            viewHolder.typeTextView.setSelected(false);
+            viewHolder.typeTextView.setPressed(false);
+            viewHolder.typeTextView.setTextColor(Color.BLACK);
+            convertView.setBackgroundColor(Color.parseColor("#FFE2E0E0"));
+        }
+        return convertView;
+    }
+
+    class ViewHolder{
+        TextView typeTextView;
+    }
+}

+ 18 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/PersonalSubscriptionBean.java

@@ -9,6 +9,24 @@ public class PersonalSubscriptionBean {
     private String KIND;
     private String TYPE;
     private int ISAPPLED;
+    private String MASTER;
+    private String USERNAME;
+
+    public String getUSERNAME() {
+        return USERNAME;
+    }
+
+    public void setUSERNAME(String USERNAME) {
+        this.USERNAME = USERNAME;
+    }
+
+    public String getMASTER() {
+        return MASTER;
+    }
+
+    public void setMASTER(String MASTER) {
+        this.MASTER = MASTER;
+    }
 
     public int getNUM_ID() {
         return NUM_ID;

+ 9 - 0
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/SubscriptionNumber.java

@@ -11,6 +11,15 @@ public class SubscriptionNumber {
     private int status;//订阅号状态(已订阅,已申请,未订阅)
     private String type;//订阅号类别
     private String master;//订阅号所属账套
+    private String username;//订阅号所属账号
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
 
     public String getMaster() {
         return master;

+ 0 - 70
WeiChat/src/main/java/com/xzjmyk/pm/activity/bean/oa/SelectListBean.java

@@ -1,70 +0,0 @@
-package com.xzjmyk.pm.activity.bean.oa;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-/**
- * Created by pengminggong on 2016/9/20.
- */
-public class SelectListBean implements Parcelable {
-    private String name;
-    private boolean isClick = false;
-    private String object;//返回的的JSONOBject 对象字符串
-
-    public SelectListBean() {
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public boolean isClick() {
-        return isClick;
-    }
-
-    public void setClick(boolean click) {
-        isClick = click;
-    }
-
-    public String getObject() {
-        return object;
-    }
-
-    public void setObject(String object) {
-        this.object = object;
-    }
-
-    protected SelectListBean(Parcel in) {
-        name = in.readString();
-        isClick = in.readByte() != 0;
-        object = in.readString();
-    }
-
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-        dest.writeString(name);
-        dest.writeByte((byte) (isClick ? 1 : 0));
-        dest.writeString(object);
-    }
-
-    @Override
-    public int describeContents() {
-        return 0;
-    }
-
-    public static final Creator<SelectListBean> CREATOR = new Creator<SelectListBean>() {
-        @Override
-        public SelectListBean createFromParcel(Parcel in) {
-            return new SelectListBean(in);
-        }
-
-        @Override
-        public SelectListBean[] newArray(int size) {
-            return new SelectListBean[size];
-        }
-    };
-}

+ 33 - 32
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/activity/SubscribeDetailActivity.java

@@ -42,7 +42,7 @@ import java.util.Map;
  */
 public class SubscribeDetailActivity extends BaseActivity {
     private ImageView mHeadImageView;
-    private TextView mNameTextView,mTitleTextView,mContentTextView;
+    private TextView mNameTextView, mTitleTextView, mContentTextView;
     private Button mApplyButton;
     private int mSubId = -1;
     private String mSubName;
@@ -57,11 +57,11 @@ public class SubscribeDetailActivity extends BaseActivity {
     private WebView mWebView;
     private String subscribeUrl;
 
-    private Handler mHandler = new Handler(){
+    private Handler mHandler = new Handler() {
         @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
         @Override
         public void handleMessage(Message msg) {
-            switch (msg.what){
+            switch (msg.what) {
                 case APPLY_DETAIL_SUBSCRIPTION:
                     progressDialog.dismiss();
                     Log.d("applysubscription", msg.getData().getString("result"));
@@ -70,14 +70,14 @@ public class SubscribeDetailActivity extends BaseActivity {
                     mApplyButton.setText("已申请");
                     mApplyButton.setEnabled(false);
                     Intent intent = new Intent();
-                    intent.putExtra("status",mSubStatus);
-                    SubscribeDetailActivity.this.setResult(9,intent);
+                    intent.putExtra("status", mSubStatus);
+                    SubscribeDetailActivity.this.setResult(9, intent);
                     break;
                 case REMOVE_MY_SUBSCRIPTION:
                     progressDialog.dismiss();
                     Crouton.makeText(mContext, "取消订阅成功");
                     Intent myIntent = new Intent();
-                    setResult(44,myIntent);
+                    setResult(44, myIntent);
                     mApplyButton.setText("+订阅");
                     flag = "all";
                     break;
@@ -88,6 +88,7 @@ public class SubscribeDetailActivity extends BaseActivity {
             }
         }
     };
+    private String loginSession;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -95,13 +96,13 @@ public class SubscribeDetailActivity extends BaseActivity {
         setContentView(R.layout.activity_subscribe_detail);
         getSupportActionBar().setTitle("订阅号详情");
         intent = getIntent();
-        if (intent != null){
+        if (intent != null) {
             mSubId = intent.getIntExtra("subId", 0);
             mSubName = intent.getStringExtra("subTitle");
             flag = intent.getStringExtra("flag");
-            if ("all".equals(flag)){
+            if ("all".equals(flag)) {
                 mSubStatus = intent.getIntExtra("subStatus", 0);
-            }else if ("my".equals(flag)){
+            } else if ("my".equals(flag)) {
                 mIsApplied = intent.getIntExtra("isApplied", -1);
             }
         }
@@ -130,7 +131,7 @@ public class SubscribeDetailActivity extends BaseActivity {
                         SHARE_MEDIA.WEIXIN_FAVORITE,
                         SHARE_MEDIA.MORE)
                         .withTitle("UU互联")
-                        .withText("UU互联 Android客户端"+ DeviceInfoUtil.getVersionName(mContext))
+                        .withText("UU互联 Android客户端" + DeviceInfoUtil.getVersionName(mContext))
                         .withMedia(new UMImage(activity, "http://img.my.csdn.net/uploads/201609/30/1475204542_1365.png"))
                         .withTargetUrl("http://www.usoftchina.com/usoft/uas_client.html")
                         .setCallback(CommonUtil.umShareListener)
@@ -147,7 +148,7 @@ public class SubscribeDetailActivity extends BaseActivity {
         mApplyButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
-                if (flag == null || mSubId == -1){
+                if (flag == null || mSubId == -1) {
                     return;
                 }
                 if ("all".equals(flag)) {
@@ -221,43 +222,43 @@ public class SubscribeDetailActivity extends BaseActivity {
     private void sendApplySubs() {
         progressDialog.show();
         String applyUrl = Constants.getAppBaseUrl(mContext) + "common/charts/vastAddSubsApply.action";
-        Map<String,Object> params = new HashMap<>();
-        params.put("ids",mSubId);
+        Map<String, Object> params = new HashMap<>();
+        params.put("ids", mSubId);
         params.put("caller", "VastAddSubsApply");
 
-        LinkedHashMap<String,Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(mContext, "sessionId"));
+        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
+        headers.put("sessionUser", CommonUtil.getSharedPreferences(mContext, "erp_username"));
         ViewUtil.httpSendRequest(mContext, applyUrl, params, mHandler, headers, APPLY_DETAIL_SUBSCRIPTION, null, null, "post");
     }
 
     private void initDatas() {
-        if (!TextUtils.isEmpty(mSubName)){
+        if (!TextUtils.isEmpty(mSubName)) {
             mNameTextView.setText(mSubName);
         }
-        if (mSubStatus != -1){
-            if (mSubStatus == 1){
+        if (mSubStatus != -1) {
+            if (mSubStatus == 1) {
                 mApplyButton.setText("已订阅");
                 mApplyButton.setEnabled(false);
-            }else if (mSubStatus == 2){
+            } else if (mSubStatus == 2) {
                 mApplyButton.setText("已申请");
                 mApplyButton.setEnabled(false);
-            }else if (mSubStatus == 3){
+            } else if (mSubStatus == 3) {
                 mApplyButton.setText("+订阅");
                 mApplyButton.setEnabled(true);
             }
         }
-        if (mIsApplied != -2){
-//            if (mIsApplied == -1){
+        if (mIsApplied != -2) {
+            if (mIsApplied == -1) {
                 mApplyButton.setText("-退订");
                 mApplyButton.setEnabled(true);
-//            }else if (mIsApplied == 0){
-//                mApplyButton.setText("该订阅号不可退订");
-//                mApplyButton.setEnabled(false);
-//            }
+            } else if (mIsApplied == 0) {
+                mApplyButton.setText("该订阅号不可退订");
+                mApplyButton.setEnabled(false);
+            }
         }
-        if (subscribeUrl != null){
-            LinkedHashMap<String,String> headers = new LinkedHashMap<>();
-            headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(mContext, "sessionId"));
+        if (subscribeUrl != null) {
+            LinkedHashMap<String, String> headers = new LinkedHashMap<>();
+            headers.put("sessionUser", CommonUtil.getSharedPreferences(mContext, "erp_username"));
             mWebView.loadUrl(subscribeUrl, headers);
         }
     }
@@ -281,10 +282,10 @@ public class SubscribeDetailActivity extends BaseActivity {
         mWebView.setWebViewClient(new WebViewClient());
         subscribeUrl = Constants.getAppBaseUrl(this) + "common/charts/mobilePreview.action?id="
                 +mSubId+"&sessionId="+CommonUtil.getSharedPreferences(ct, "sessionId")
-                +"&sessionUser="+CommonUtil.getSharedPreferences(ct, "erp_username")
                 +"&master="+CommonUtil.getSharedPreferences(ct,"erp_master");
-//        subscribeUrl = "http://192.168.253.200:8080/spring-mvc-showcase/client/info";
 
-        Log.d("subsurl: ",subscribeUrl);
+        Log.d("subsurl: ", subscribeUrl);
     }
+
+
 }

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

@@ -36,6 +36,7 @@ import com.xzjmyk.pm.activity.ui.erp.activity.DbfindListActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
+import com.xzjmyk.pm.activity.ui.erp.util.JsonValidator;
 import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.view.ClearEditText;
@@ -419,6 +420,9 @@ public class BusinessDetailActivty extends BaseActivity {
                 case CAN_QIANG_NOT:
                     JSONObject result = JSON.parseObject(msg.getData().getString("result"));
                     String isok = result.getString("isok");
+                    if (!new JsonValidator().validate(msg.getData().getString("result"))){
+                        Crouton.makeText(BusinessDetailActivty.this, msg.getData().getString("result"), 0xffff4444, 2000).show();
+                    }
                     if ("0".equals(isok)) {
                         Log.i("qiang", isok);
                         sendHttpBusinessQiang(BUSINESS_QIANG, bc_code, MyApplication.getInstance().mLoginUser.getNickName(),

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

@@ -16,9 +16,9 @@ import com.andreabaccega.widget.FormEditText;
 import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.oa.SelectListBean;
+import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectListActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.activity.oa.UserSelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.model.Employees;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
@@ -377,6 +377,7 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
 
     @Override
     public void onClick(View v) {
+        Intent intent = null;
         switch (v.getId()) {
             case R.id.tv_date_start:
                 showDateDialog(true);
@@ -394,14 +395,23 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
                 showNoticeDialog();
                 break;
             case R.id.tv_priority:
-                Intent data = new Intent(ct, SelectListActivity.class);
-                data.putExtra("type", SelectListActivity.ADD_TASK_PRIORITY);
-                data.putExtra("title", "紧急程度");
-                startActivityForResult(data, 0x22);
-//                showPriorityDialog(tv_priority, 0x11);
+                String[] str = new String[]{"特急", "紧急", "一般", "不紧急"};
+                ArrayList<SelectBean> beans = new ArrayList<>();
+                SelectBean bean = null;
+                for (String e : str) {
+                    bean = new SelectBean();
+                    bean.setName(e);
+                    bean.setClick(false);
+                    beans.add(bean);
+                }
+                intent = new Intent(ct, SelectActivity.class);
+                intent.putExtra("type", 2);
+                intent.putParcelableArrayListExtra("data", beans);
+                intent.putExtra("title", "紧急程度");
+                startActivityForResult(intent, 0x22);
                 break;
             case R.id.tv_executive:
-                Intent intent = new Intent(ct, UserSelectActivity.class);
+                intent = new Intent(ct, UserSelectActivity.class);
                 intent.putExtra("single", false);
                 intent.putExtra("isme", true);
 
@@ -450,9 +460,9 @@ public class TaskAddActivity extends BaseActivity implements View.OnClickListene
             str.delete(0, 1);
             tv_executive.setText(str.toString());
         } else if (requestCode == 0x22 && resultCode == 0x20) {
-            SelectListBean b = data.getParcelableExtra("data");
+            SelectBean b = data.getParcelableExtra("data");
             if (b == null) return;
-            tv_priority.setText(com.xzjmyk.pm.activity.util.StringUtils.isEmpty(b.getName()) ? "" : b.getName());
+            tv_priority.setText(StringUtils.isEmpty(b.getName()) ? "" : b.getName());
         }
     }
 }

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

@@ -20,9 +20,9 @@ import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.bean.oa.OABean;
-import com.xzjmyk.pm.activity.bean.oa.SelectListBean;
+import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectListActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CodeUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
@@ -346,6 +346,9 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
 
     @Override
     public void onClick(View v) {
+        HashMap<String, Object> param = null;
+        Bundle bundle = null;
+        Intent intent = null;
         switch (v.getId()) {
             case R.id.tv_date_start:
                 showDateDialog((FormEditText) v.findViewById(R.id.tv_date_start));
@@ -362,25 +365,51 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
                 });
                 break;
             case R.id.tv_customer_login:
-                Intent data = new Intent(ct, SelectListActivity.class);
-                data.putExtra("type", SelectListActivity.VISIT_REPORT_PLAN_CLIENT);
-                data.putExtra("title", "客户列表");
-                startActivityForResult(data, 0x22);
-//                loadCustomer(3);
+                param = new HashMap<>();
+                param.put("sellercode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+                bundle = new Bundle();
+                bundle.putSerializable("param", param);
+                intent = new Intent(ct, SelectActivity.class);
+                intent.putExtra("type", 1);
+                intent.putExtra("reid", R.style.OAThemeMeet);
+                intent.putExtras(bundle);
+                intent.putExtra("key", "customers");
+                intent.putExtra("showKey", "CU_NAME");
+                intent.putExtra("action", "mobile/crm/getCustomerbySeller.action");
+                intent.putExtra("title", "客户列表");
+                startActivityForResult(intent, 0x22);
                 break;
             case R.id.tv_visit_steps:
-                Intent data2 = new Intent(ct, SelectListActivity.class);
-                data2.putExtra("type", SelectListActivity.VISIT_JIE_DUAN);
-                data2.putExtra("title", "当前阶段");
-                startActivityForResult(data2, 0x23);
+                param = new HashMap<>();
+                param.put("condition", "1=1");
+                bundle = new Bundle();
+                bundle.putSerializable("param", param);
+                intent = new Intent(ct, SelectActivity.class);
+                intent.putExtra("type", 1);
+                intent.putExtra("reid", R.style.OAThemeMeet);
+                intent.putExtras(bundle);
+                intent.putExtra("key", "stages");
+                intent.putExtra("showKey", "BS_NAME");
+                intent.putExtra("action", "mobile/crm/getBusinessChanceStage.action");
+                intent.putExtra("title", "当前阶段");
+                startActivityForResult(intent, 0x23);
                 break;
             case R.id.tv_relate_business:
-                Intent data3 = new Intent(ct, SelectListActivity.class);
-                data3.putExtra("type", SelectListActivity.VISIT_NICHECODES);
-                data3.putExtra("title", "关联商机");
-                if (StringUtils.isEmpty(cu_code))
-                    data3.putExtra("cu_code", cu_code);
-                startActivityForResult(data3, 0x24);
+                param = new HashMap<>();
+                param.put("cu_code", cu_code);
+                param.put("page", 1);
+                param.put("pageSize", 100);
+                bundle = new Bundle();
+                bundle.putSerializable("param", param);
+                intent = new Intent(ct, SelectActivity.class);
+                intent.putExtra("type", 1);
+                intent.putExtra("reid", R.style.OAThemeMeet);
+                intent.putExtras(bundle);
+                intent.putExtra("key", "businesschance");
+                intent.putExtra("showKey", "name");
+                intent.putExtra("action", "mobile/crm/getnichecodes.action");
+                intent.putExtra("title", "关联商机");
+                startActivityForResult(intent, 0x24);
                 break;
         }
     }
@@ -392,11 +421,11 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
         if (requestCode == 0x22 && resultCode == 0x20) {
-            SelectListBean b = data.getParcelableExtra("data");
-            if (b == null || StringUtils.isEmpty(b.getObject())) return;
+            SelectBean b = data.getParcelableExtra("data");
+            if (b == null || StringUtils.isEmpty(b.getJson())) return;
             JsonValidator validator = new JsonValidator();
-            if (validator.validate(b.getObject())) {
-                com.alibaba.fastjson.JSONObject object = JSON.parseObject(b.getObject());
+            if (validator.validate(b.getJson())) {
+                JSONObject object = JSON.parseObject(b.getJson());
                 cu_code = object.containsKey("CU_CODE") ? object.getString("CU_CODE") : "";
                 tv_customer_login.setText(object.containsKey("CU_NAME") ? object.getString("CU_NAME") : " ");
                 tv_linksman_login.setText(object.containsKey("CU_CONTACT") ? object.getString("CU_CONTACT") : " ");
@@ -404,16 +433,25 @@ public class VisitReportAddActivity extends BaseActivity implements View.OnClick
 
             }
         } else if (requestCode == 0x23 && resultCode == 0x20) {
-            SelectListBean b = data.getParcelableExtra("data");
-            if (b == null || StringUtils.isEmpty(b.getObject())) return;
-            tv_visit_steps.setText(b.getName());
+            SelectBean b = data.getParcelableExtra("data");
+            if (b == null) {
+                return;
+            } else {
+                JsonValidator validator = new JsonValidator();
+                String json = b.getJson();
+                if (validator.validate(json)) {
+                    JSONObject object = JSON.parseObject(json);
+                    if (object == null) return;
+                    tv_visit_steps.setText(object.getString("BS_NAME"));
+                }
+            }
         } else if (requestCode == 0x24 && resultCode == 0x20) {
-            SelectListBean b = data.getParcelableExtra("data");
-            if (b == null || StringUtils.isEmpty(b.getObject())) return;
+            SelectBean b = data.getParcelableExtra("data");
+            if (b == null || StringUtils.isEmpty(b.getJson())) return;
             tv_relate_business.setText(b.getName());
             JsonValidator validator = new JsonValidator();
-            if (validator.validate(b.getObject())) {
-                JSONObject object = JSON.parseObject(b.getObject());
+            if (validator.validate(b.getJson())) {
+                JSONObject object = JSON.parseObject(b.getJson());
                 nichecode = object.getString("code");
             }
         }

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

@@ -19,9 +19,9 @@ import com.lidroid.xutils.ViewUtils;
 import com.lidroid.xutils.view.annotation.ViewInject;
 import com.xzjmyk.pm.activity.MyApplication;
 import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.oa.SelectListBean;
+import com.xzjmyk.pm.activity.bean.oa.SelectBean;
 import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectListActivity;
+import com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectActivity;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
@@ -76,11 +76,11 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (data == null) return;
         if (requestCode == 0x22 && resultCode == 0x20) {
-            SelectListBean b = data.getParcelableExtra("data");
-            if (b == null || StringUtils.isEmpty(b.getObject())) return;
+            SelectBean b = data.getParcelableExtra("data");
+            if (b == null || StringUtils.isEmpty(b.getJson())) return;
             JsonValidator validator = new JsonValidator();
-            if (validator.validate(b.getObject())) {
-                JSONObject object = JSON.parseObject(b.getObject());
+            if (validator.validate(b.getJson())) {
+                JSONObject object = JSON.parseObject(b.getJson());
                 vp_code = object.containsKey("CU_CODE") ? object.getString("CU_CODE") : "";
                 tv_customer_login.setText(object.containsKey("CU_NAME") ? object.getString("CU_NAME") : " ");
                 tv_linksman_login.setText(object.containsKey("CU_CONTACT") ? object.getString("CU_CONTACT") : " ");
@@ -335,11 +335,19 @@ public class VisitReportPlanActivity extends BaseActivity implements View.OnClic
                 break;
             case R.id.tv_customer_login:
                 //弹框
-                Intent data = new Intent(ct, SelectListActivity.class);
-                data.putExtra("type", SelectListActivity.VISIT_REPORT_PLAN_CLIENT);
-                data.putExtra("title", "客户列表");
-                startActivityForResult(data, 0x22);
-//                loadCustomer(3);
+                HashMap<Object, Object> param = new HashMap<>();
+                param.put("sellercode", CommonUtil.getSharedPreferences(ct, "erp_username"));
+                Bundle bundle = new Bundle();
+                bundle.putSerializable("param", param);
+                Intent intent = new Intent(ct, SelectActivity.class);
+                intent.putExtra("type", 1);
+                intent.putExtra("reid", R.style.OAThemeMeet);
+                intent.putExtras(bundle);
+                intent.putExtra("key", "customers");
+                intent.putExtra("showKey", "CU_NAME");
+                intent.putExtra("action", "mobile/crm/getCustomerbySeller.action");
+                intent.putExtra("title", "客户列表");
+                startActivityForResult(intent, 0x22);
                 break;
         }
     }

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

@@ -495,6 +495,7 @@ public class FeedbackActivity extends BaseActivity  implements View.OnClickListe
                     "}\n";
             Map<String, Object> params = new HashMap<>();
             params.put("formStore", formStore);
+            params.put("master","USOFTSYS");
             params.put("caller", "Commentsback_mobile");
             LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
             headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));

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

@@ -4,6 +4,9 @@ import android.content.Intent;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -25,6 +28,7 @@ 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.StringUtils;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
+import com.xzjmyk.pm.activity.view.ClearEditText;
 
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -104,9 +108,10 @@ public class SelectActivity extends BaseActivity {
                     if (!ListUtils.isEmpty(formBeaan)) {
                         //TODO 不为空的情况下提交给适配器
                         if (adapter == null) {
-                            adapter = new ListAdapter();
+                            adapter = new ListAdapter(formBeaan);
                             list.setAdapter(adapter);
                         } else {
+                            adapter.setFormBeaan(formBeaan);
                             adapter.notifyDataSetChanged();
                         }
                     }
@@ -118,31 +123,61 @@ public class SelectActivity extends BaseActivity {
 
         }
     };
+    private ClearEditText search_edit;
 
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         initIntent();
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_select_list);
+        setContentView(R.layout.activity_select);
         initView();
     }
 
     private void initView() {
         if (!StringUtils.isEmpty(title)) getSupportActionBar().setTitle(title);
-        list = (ListView) findViewById(R.id.list);
+        list = (ListView) findViewById(R.id.listview);
+        ClearEditText search_edit = (ClearEditText) findViewById(R.id.search_edit);
+        search_edit.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+            }
+
+            @Override
+            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+            }
+
+            @Override
+            public void afterTextChanged(Editable editable) {
+                if (ListUtils.isEmpty(formBeaan)) return;
+                String str = editable.toString().trim();
+                ArrayList<SelectBean> list = new ArrayList<>();
+                for (SelectBean e : formBeaan) {
+                    if (!StringUtils.isEmpty(e.getName()) && StringUtils.isInclude(e.getName(), str)) {
+                        list.add(e);
+                    }
+                }
+                if (adapter != null) {
+                    adapter.setFormBeaan(list);
+                    adapter.notifyDataSetChanged();
+                }
+            }
+        });
         emptyLayout = new EmptyLayout(ct, list);
         emptyLayout.setShowLoadingButton(false);
         emptyLayout.setShowEmptyButton(false);
         emptyLayout.setShowErrorButton(false);
         emptyLayout.setEmptyViewRes(R.layout.view_empty);
         adapter = new ListAdapter();
+        if (!ListUtils.isEmpty(formBeaan))
+            adapter.setFormBeaan(formBeaan);
         list.setAdapter(adapter);
         if (type == 1)
             loadDateByNet();
         list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
+                List<SelectBean> formBeaan = adapter.getFormBeaan();
                 if (isSingle) {
                     SelectBean bean = formBeaan.get(i);
                     Intent intent = new Intent();
@@ -155,6 +190,8 @@ public class SelectActivity extends BaseActivity {
                 }
             }
         });
+
+
     }
 
     private void initIntent() {
@@ -175,6 +212,11 @@ public class SelectActivity extends BaseActivity {
             param = (HashMap<String, Object>) bundle.getSerializable("param");
         } else if (type == 2) {
             formBeaan = intent.getParcelableArrayListExtra("data");
+            if (ListUtils.isEmpty(formBeaan)) {
+                Log.i("gongpengming", "空的");
+            } else {
+                Log.i("gongpengming", "不是空的");
+            }
         }
     }
 
@@ -195,6 +237,23 @@ public class SelectActivity extends BaseActivity {
     }
 
     class ListAdapter extends BaseAdapter {
+        private List<SelectBean> formBeaan;
+
+        public ListAdapter() {
+        }
+
+        public ListAdapter(List<SelectBean> formBeaan) {
+            this.formBeaan = formBeaan;
+        }
+
+        public void setFormBeaan(List<SelectBean> formBeaan) {
+            this.formBeaan = formBeaan;
+        }
+
+        public List<SelectBean> getFormBeaan() {
+            return formBeaan;
+        }
+
         @Override
         public int getCount() {
             return formBeaan == null ? 0 : formBeaan.size();

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

@@ -1,339 +0,0 @@
-package com.xzjmyk.pm.activity.ui.erp.activity.oa;
-
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AdapterView;
-import android.widget.BaseAdapter;
-import android.widget.CheckBox;
-import android.widget.ListView;
-import android.widget.TextView;
-
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.xzjmyk.pm.activity.R;
-import com.xzjmyk.pm.activity.bean.oa.SelectListBean;
-import com.xzjmyk.pm.activity.ui.base.BaseActivity;
-import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
-import com.xzjmyk.pm.activity.ui.erp.util.Constants;
-import com.xzjmyk.pm.activity.ui.erp.util.ListUtils;
-import com.xzjmyk.pm.activity.ui.erp.util.StringUtils;
-import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- *
- */
-public class SelectListActivity extends BaseActivity {
-    private ListView recycler;
-    private ListAdapter adapter;
-    private List<SelectListBean> data = null;
-    private EmptyLayout emptyLayout;
-    public static final int ADD_MEET_YAG_TYPE = 0x11;//添加会议--标签
-    public static final int ADD_MEET_ADDR_TYPE = 0x16;//添加会议--地点
-    public static final int ADD_TASK_PRIORITY = 0x12;//添加任务--紧急
-    public static final int VISIT_REPORT_PLAN_CLIENT = 0x13;//拜访计划客户列表
-    public static final int VISIT_JIE_DUAN = 0x14;//拜访计划客户列表
-    public static final int VISIT_NICHECODES = 0x15;//关联商机
-
-    private boolean isSingle = true;//是否单选
-    private int type = -1;
-    private String title;
-    private Handler handler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            if (progressDialog.isShowing()) {
-                progressDialog.dismiss();
-            }
-            if (data == null) data = new ArrayList<>();
-            else data.clear();
-            String message = null;
-            JSONObject object = null;
-            JSONArray array = null;
-            SelectListBean b = null;
-            switch (msg.what) {
-                case VISIT_REPORT_PLAN_CLIENT:
-                    message = msg.getData().getString("result");
-                    if (!JSON.parseObject(message).containsKey("customers")) return;
-                    array = JSON.parseObject(message).getJSONArray("customers");
-                    for (int i = 0; i < array.size(); i++) {
-                        object = array.getJSONObject(i);
-                        b = new SelectListBean();
-                        b.setName(object.containsKey("CU_NAME") ? object.getString("CU_NAME") : "空");
-                        b.setObject(object.toString());
-                        data.add(b);
-                    }
-                    break;
-                case VISIT_JIE_DUAN:
-                    message = msg.getData().getString("result");
-                    if (JSON.parseObject(message) != null ||
-                            JSON.parseObject(message).containsKey("success") || JSON.parseObject(message).getBoolean("success")
-                            && JSON.parseObject(message).containsKey("stages")) {
-                        array = JSON.parseObject(message).getJSONArray("stages");
-                        for (int i = 0; i < array.size(); i++) {
-                            object = array.getJSONObject(i);
-                            b = new SelectListBean();
-                            b.setName(object.containsKey("BS_NAME") ? object.getString("BS_NAME") : "空");
-                            b.setObject(object.toString());
-                            data.add(b);
-                        }
-                    }
-
-                    break;
-                case VISIT_NICHECODES:
-                    message = msg.getData().getString("result");
-                    Log.d("handlemessage:", message);
-                    if (JSON.parseObject(message) != null ||
-                            JSON.parseObject(message).containsKey("success") || JSON.parseObject(message).getBoolean("success")
-                            && JSON.parseObject(message).containsKey("stages")) {
-                        array = JSON.parseObject(message).getJSONArray("businesschance");
-                        for (int i = 0; i < array.size(); i++) {
-                            object = array.getJSONObject(i);
-                            b = new SelectListBean();
-                            b.setName(object.containsKey("name") ? object.getString("name") : "空");
-                            b.setObject(object.toString());
-                            data.add(b);
-                        }
-                    }
-                    break;
-            }
-            if (data.size() > 0)
-                adapter.notifyDataSetChanged();
-            else emptyLayout.showEmpty();
-        }
-    };
-
-    @Override
-    public boolean onCreateOptionsMenu(Menu menu) {
-        if (!isSingle) {
-            getMenuInflater().inflate(R.menu.menu_visit_save, menu);
-        }
-        return super.onCreateOptionsMenu(menu);
-    }
-
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        if (!isSingle) {
-            endActivity();
-        }
-        return super.onOptionsItemSelected(item);
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        initIntent();
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_select_list);
-        getSupportActionBar().setTitle(StringUtils.isEmpty(title) ? "选择" : title);
-        init();
-        initData();
-        initEvent();
-    }
-
-    private void initIntent() {
-        Intent intent = getIntent();
-        if (intent == null) return;
-        int action = intent.getIntExtra("type", -1);
-        setActionTheme(action);
-        isSingle = intent.getBooleanExtra("single", true);
-        type = intent.getIntExtra("type", -1);
-        title = intent.getStringExtra("title");
-    }
-
-    /*根据链过来的参数设置该界面actionbar的样式货颜色*/
-    private void setActionTheme(int action) {
-        if (action == -1) return;
-        int theme = 0;
-        switch (action) {
-            case ADD_MEET_YAG_TYPE:
-                theme = getSharedPreferences("cons", MODE_PRIVATE).getInt("theme", R.style.OAThemeMeet);
-                break;
-            case ADD_TASK_PRIORITY:
-                break;
-            case VISIT_REPORT_PLAN_CLIENT:
-                theme = getSharedPreferences("cons", MODE_PRIVATE).getInt("theme", R.style.CrmThemeTask);
-                break;
-            case VISIT_JIE_DUAN:
-                theme = getSharedPreferences("cons", MODE_PRIVATE).getInt("theme", R.style.CrmThemeTask);
-                break;
-            case VISIT_NICHECODES:
-                theme = getSharedPreferences("cons", MODE_PRIVATE).getInt("theme", R.style.CrmThemeTask);
-                break;
-            default:
-                theme = getSharedPreferences("cons", MODE_PRIVATE).getInt("theme", R.style.OAThemeSignin);
-                break;
-        }
-        if (theme != 0)
-            setTheme(theme);
-    }
-
-    private void init() {
-        recycler = (ListView) findViewById(R.id.list);
-        emptyLayout = new EmptyLayout(ct, recycler);
-        emptyLayout.setEmptyViewRes(R.layout.view_empty);
-        emptyLayout.setShowLoadingButton(false);
-        emptyLayout.setShowEmptyButton(false);
-        emptyLayout.setShowErrorButton(false);
-        adapter = new ListAdapter();
-        recycler.setAdapter(adapter);
-    }
-
-    private void initData() {
-        data = new ArrayList<>();
-        switch (type) {
-            case ADD_MEET_YAG_TYPE:
-                setMeetTagData();
-                break;
-            case ADD_TASK_PRIORITY:
-                setTaskTagData();
-                break;
-            case VISIT_REPORT_PLAN_CLIENT:
-                setVisitClientData();
-                break;
-            case VISIT_JIE_DUAN:
-                loadJieDuan();
-                break;
-            case VISIT_NICHECODES:
-                String chche = getIntent().getStringExtra("cu_code");
-                nichecodes(StringUtils.isEmpty(chche) ? "" : chche);
-                break;
-        }
-        if (!ListUtils.isEmpty(data))
-            adapter.notifyDataSetChanged();
-    }
-
-
-    private void initEvent() {
-        recycler.setOnItemClickListener(new AdapterView.OnItemClickListener() {
-            @Override
-            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
-                if (isSingle) {
-                    Intent intent = new Intent();
-                    intent.putExtra("data", data.get(i));
-                    setResult(0x20, intent);
-                    finish();
-                } else {
-                    data.get(i).setClick(true);
-                    adapter.notifyDataSetChanged();
-                }
-            }
-        });
-    }
-
-    public void nichecodes(String chche) {
-        progressDialog.show();
-        String url = Constants.getAppBaseUrl(ct) + "mobile/crm/getnichecodes.action";
-        Map<String, Object> params = new HashMap<>();
-        params.put("cu_code", chche);
-        params.put("page", 1);
-        params.put("pageSize", 100);
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, params, handler, headers, VISIT_NICHECODES, null, null, "post");
-    }
-
-    /**
-     * @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, handler, headers, VISIT_JIE_DUAN, null, null, "post");
-    }
-
-    /*获取拜访计划客户列表*/
-    private void setVisitClientData() {
-        progressDialog.show();
-        String url = Constants.getAppBaseUrl(ct) + "mobile/crm/getCustomerbySeller.action";
-        Map<String, Object> params = new HashMap<>();
-        params.put("sellercode", CommonUtil.getSharedPreferences(ct, "erp_username"));
-        LinkedHashMap<String, Object> headers = new LinkedHashMap<>();
-        headers.put("Cookie", "JSESSIONID=" + CommonUtil.getSharedPreferences(ct, "sessionId"));
-        ViewUtil.httpSendRequest(ct, url, params, handler, headers, VISIT_REPORT_PLAN_CLIENT, null, null, "post");
-    }
-
-    //获取会议标签数据
-    private void setTaskTagData() {
-        String[] str = new String[]{"特急", "紧急", "一般", "不紧急"};
-        SelectListBean b;
-        for (String e : str) {
-            b = new SelectListBean();
-            b.setName(e);
-            data.add(b);
-        }
-    }
-
-    //获取会议标签数据
-    private void setMeetTagData() {
-
-    }
-
-
-    /*结束选定退出时候*/
-    private void endActivity() {
-
-    }
-
-
-    private class ListAdapter extends BaseAdapter {
-        @Override
-        public int getCount() {
-            return ListUtils.isEmpty(data) ? 0 : data.size();
-        }
-
-        @Override
-        public Object getItem(int i) {
-            return data.get(i);
-        }
-
-        @Override
-        public long getItemId(int i) {
-            return i;
-        }
-
-        @Override
-        public View getView(int i, View view, ViewGroup viewGroup) {
-            ViewHoler holer = null;
-            if (view == null) {
-                view = LayoutInflater.from(ct).inflate(R.layout.select_list_item, null);
-                holer = new ViewHoler();
-                holer.select_scb = (CheckBox) view.findViewById(R.id.select_scb);
-                holer.name_tv = (TextView) view.findViewById(R.id.name_tv);
-                view.setTag(holer);
-            } else {
-                holer = (ViewHoler) view.getTag();
-            }
-            holer.name_tv.setText(StringUtils.isEmpty(data.get(i).getName()) ? "" : data.get(i).getName());
-            holer.select_scb.setChecked(data.get(i).isClick());
-            holer.select_scb.setFocusable(false);
-            holer.select_scb.setClickable(false);
-            return view;
-        }
-
-        class ViewHoler {
-            CheckBox select_scb;
-            TextView name_tv;
-        }
-    }
-
-
-}

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

@@ -80,7 +80,7 @@ public class UserSelectActivity extends BaseActivity {
                     for (int i = 0; i < array.size(); i++) {
                         object = array.getJSONObject(i);
                         entity = new Employees();
-                        entity.setClick(true);
+                        entity.setClick(false);
                         code = object.containsKey("em_code") ? object.getString("em_code") : "";
                         name = object.containsKey("em_name") ? object.getString("em_name") : "";
                         imId = object.containsKey("em_imid") ? object.getIntValue("em_imid") : 0;
@@ -127,7 +127,6 @@ public class UserSelectActivity extends BaseActivity {
                             adapter.setUsers(list);
                     }
                     if (selectedList != null && selectedList.size() != 0) {
-
                         for (int i = 0; i < list.size(); i++) {
                             for (int j = 0; j < selectedList.size(); j++) {
                                 if (list.get(i).getEm_name().equals(selectedList.get(j))) {

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

@@ -3,6 +3,7 @@ package com.xzjmyk.pm.activity.ui.erp.adapter;
 import android.content.Context;
 import android.graphics.drawable.Drawable;
 import android.support.v4.content.res.ResourcesCompat;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
@@ -30,9 +31,11 @@ public class OAListAdapter extends BaseAdapter {
     public OAListAdapter(Context ct) {
         this.ct = ct;
     }
+
     public JSONArray getArray() {
         return array;
     }
+
     public void setArray(JSONArray array, boolean isMe) {
         this.isMe = isMe;
         this.array = array;
@@ -64,6 +67,7 @@ public class OAListAdapter extends BaseAdapter {
             holder.addr_time_tv = (TextView) view.findViewById(R.id.addr_time_tv);
             holder.name_remak_tv = (TextView) view.findViewById(R.id.name_remak_tv);
             holder.status_tv = (TextView) view.findViewById(R.id.status_tv);
+            holder.title_tv = (TextView) view.findViewById(R.id.title_tv);
             view.setTag(holder);
         } else {
             holder = (ViewHolder) view.getTag();
@@ -77,12 +81,13 @@ public class OAListAdapter extends BaseAdapter {
         Drawable drawable = ResourcesCompat.getDrawable(ct.getResources(), R.drawable.oa_signin, null);
         drawable.setBounds(0, 0, DisplayUtil.dip2px(ct, 13), DisplayUtil.dip2px(ct, 13));
         if (isTask(object)) {
+            holder.title_tv.setVisibility(View.GONE);
             holder.doit_img.setVisibility(View.GONE);
             holder.addr_time_tv.setCompoundDrawables(null, null, null, null);
             holder.name_remak_tv.setText(getJSONString(object, "name"));
             holder.status_tv.setText(getJSONString(object, "status"));
             holder.addr_time_tv.setText(getJSONString(object, "startdate"));
-            holder.object_tv.setText(getJSONString(object, "handler"));
+            holder.object_tv.setText(getJSONString(object,"handler"));
         } else if (isVisit(object)) {
             holder.addr_time_tv.setCompoundDrawables(drawable, null, null, null);
             //状态
@@ -104,17 +109,14 @@ public class OAListAdapter extends BaseAdapter {
             } else {
                 holder.doit_img.setVisibility(View.GONE);
             }
-            //拜访联系人对象
-            if (!StringUtils.isEmpty(getJSONString(object, "nichestep")) && !StringUtils.isEmpty(getJSONString(object, "vp_contact"))) {
-                chche = getJSONString(object, "nichestep") + " > " + getJSONString(object, "vp_contact");
-            } else {
-                chche = getJSONString(object, "nichestep") + getJSONString(object, "vp_contact");
-            }
-            holder.object_tv.setText(chche);
+            //业务员
+            holder.object_tv.setText(getJSONString(object, "recordman"));
             //拜访地点
             holder.addr_time_tv.setText(getJSONString(object, "address"));
             //拜访主题
-            holder.name_remak_tv.setText(getJSONString(object, "client") + (StringUtils.isEmpty(getJSONString(object, "description")) ? "" : "     ") + getJSONString(object, "description"));
+            String title = getJSONString(object, "client") + (StringUtils.isEmpty(getJSONString(object, "description")) ? "" : "     ") + getJSONString(object, "description");
+            holder.name_remak_tv.setText(title);
+            holder.title_tv.setText(getJSONString(object, "remark"));
         } else if (isVisitRecord(object)) {
             holder.addr_time_tv.setCompoundDrawables(drawable, null, null, null);
             //状态
@@ -137,13 +139,10 @@ public class OAListAdapter extends BaseAdapter {
                 holder.doit_img.setVisibility(View.GONE);
             }
             holder.addr_time_tv.setText(getJSONString(object, "address"));
-            holder.name_remak_tv.setText(getJSONString(object, "custname") + (StringUtils.isEmpty(getJSONString(object, "vr_detail")) ? "" : "     ") + getJSONString(object, "vr_detail"));
-            if (!StringUtils.isEmpty(getJSONString(object, "vr_nichename")) && !StringUtils.isEmpty(getJSONString(object, "vr_nichestep"))) {
-                chche = getJSONString(object, "vr_nichestep") + " > " + getJSONString(object, "vr_nichename");
-            } else {
-                chche = getJSONString(object, "vr_nichestep") + getJSONString(object, "vr_nichename");
-            }
-            holder.object_tv.setText(chche);//拜访人
+            String title = getJSONString(object, "custname") + (StringUtils.isEmpty(getJSONString(object, "vr_detail")) ? "" : "     ") + getJSONString(object, "vr_detail");
+            holder.name_remak_tv.setText(title);
+            holder.title_tv.setText(getJSONString(object, "vr_title"));
+            holder.object_tv.setText(getJSONString(object,"visitman"));//拜访人
         }
     }
 
@@ -186,5 +185,6 @@ public class OAListAdapter extends BaseAdapter {
                 addr_time_tv,
                 object_tv;
         private ImageView doit_img;
+        public TextView title_tv;
     }
 }

+ 109 - 11
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/db/DBManager.java

@@ -5,6 +5,7 @@ import android.database.Cursor;
 import android.database.sqlite.SQLiteDatabase;
 import android.database.sqlite.SQLiteStatement;
 
+import com.xzjmyk.pm.activity.bean.PersonalSubscriptionBean;
 import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
 import com.xzjmyk.pm.activity.ui.erp.entity.B2BMsg;
 import com.xzjmyk.pm.activity.ui.erp.entity.EmployeesEntity;
@@ -92,7 +93,7 @@ public class DBManager {
         db.beginTransaction();
         for (int i = 0; i < hrorgsList.size(); i++) {
             HrorgsEntity entity = hrorgsList.get(i);
-            sta.bindString(1, entity.getOr_code());
+            sta.bindString(1, entity.getOr_code()==null?"":entity.getOr_code());
             sta.bindString(2, entity.getWhichsys());
             sta.bindLong(3, entity.getOr_subof());
             sta.bindString(4, entity.getCompany());
@@ -479,7 +480,7 @@ public class DBManager {
      ************** 未订阅表AllSubs操作  ***************************************
      *************************************************************************/
     public void saveToAllSubs(SubscriptionNumber subscriptionNumber) {
-        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master) values (?,?,?,?,?,?)";
+        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master,subs_username) values (?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         sqLiteStatement.bindLong(1,subscriptionNumber.getId());
         sqLiteStatement.bindString(2, subscriptionNumber.getTitle());
@@ -487,11 +488,12 @@ public class DBManager {
         sqLiteStatement.bindLong(4, subscriptionNumber.getStatus());
         sqLiteStatement.bindString(5, subscriptionNumber.getType());
         sqLiteStatement.bindString(6, subscriptionNumber.getMaster());
+        sqLiteStatement.bindString(7, subscriptionNumber.getUsername());
         sqLiteStatement.execute();
     }
 
     public void saveListToAllSubs(List<SubscriptionNumber> subscriptionNumbers){
-        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master) values (?,?,?,?,?,?)";
+        String saveSql = "replace into AllSubs(subs_id,subs_title,subs_kind,subs_status,subs_type,subs_master,subs_username) values (?,?,?,?,?,?,?)";
         SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
         for (int i = 0; i < subscriptionNumbers.size(); i++) {
             SubscriptionNumber subscriptionNumber = subscriptionNumbers.get(i);
@@ -501,6 +503,7 @@ public class DBManager {
             sqLiteStatement.bindLong(4, subscriptionNumber.getStatus());
             sqLiteStatement.bindString(5, subscriptionNumber.getType());
             sqLiteStatement.bindString(6, subscriptionNumber.getMaster());
+            sqLiteStatement.bindString(7, subscriptionNumber.getUsername());
             sqLiteStatement.execute();
         }
     }
@@ -520,6 +523,7 @@ public class DBManager {
             subscriptionNumber.setStatus(cursor.getInt(cursor.getColumnIndex("subs_status")));
             subscriptionNumber.setType(cursor.getString(cursor.getColumnIndex("subs_type")));
             subscriptionNumber.setMaster(cursor.getString(cursor.getColumnIndex("subs_master")));
+            subscriptionNumber.setUsername(cursor.getString(cursor.getColumnIndex("subs_username")));
             subscriptionNumbers.add(subscriptionNumber);
         }
         cursor.close();
@@ -531,18 +535,19 @@ public class DBManager {
     public void updateAllSubs(SubscriptionNumber subscriptionNumber) {
         String sql = "update AllSubs"
                 + " set subs_status=?"
-                + " where subs_id=? and subs_master=? ;";
+                + " where subs_id=? and subs_master=? and subs_username=? ;";
         SQLiteStatement sta = db.compileStatement(sql);
         sta.bindLong(1, subscriptionNumber.getStatus());
         sta.bindLong(2, subscriptionNumber.getId());
         sta.bindString(3, subscriptionNumber.getMaster());
+        sta.bindString(4, subscriptionNumber.getUsername());
         sta.executeInsert();
     }
 
     public void deleteFromAllSubs(SubscriptionNumber subscriptionNumber) {
         String table = "AllSubs";
-        String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster()};
-        String whereClause = "subs_id=? and subs_master=? ";
+        String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster(), subscriptionNumber.getUsername()};
+        String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
         db.delete(table, whereClause, whereArgs);
     }
 
@@ -550,19 +555,112 @@ public class DBManager {
         for (int i = 0; i < subscriptionNumbers.size(); i++) {
             SubscriptionNumber subscriptionNumber = subscriptionNumbers.get(i);
             String table = "AllSubs";
-            String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster()};
-            String whereClause = "subs_id=? and subs_master=? ";
+            String[] whereArgs = {String.valueOf(subscriptionNumber.getId()), subscriptionNumber.getMaster(), subscriptionNumber.getUsername()};
+            String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
             db.delete(table, whereClause, whereArgs);
         }
     }
 
-    public void deleteMasterSubs(String master){
+    public void deleteMasterAllSubs(String master, String username){
         String table = "AllSubs";
-        String[] whereArgs = {master};
-        String whereClause = "subs_master=? ";
+        String[] whereArgs = {master,username};
+        String whereClause = "subs_master=? and subs_username=? ";
         db.delete(table, whereClause, whereArgs);
     }
 
+    /**************************************************************************
+     ************** 已订阅表AllSubs操作  ***************************************
+     *************************************************************************/
+    public void saveToMySubs(PersonalSubscriptionBean personalSubscriptionBean) {
+        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username) values (?,?,?,?,?,?,?)";
+        SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
+        sqLiteStatement.bindLong(1, personalSubscriptionBean.getNUM_ID());
+        sqLiteStatement.bindString(2, personalSubscriptionBean.getTITLE());
+        sqLiteStatement.bindString(3, personalSubscriptionBean.getKIND());
+        sqLiteStatement.bindString(4, personalSubscriptionBean.getTYPE());
+        sqLiteStatement.bindLong(5, personalSubscriptionBean.getISAPPLED());
+        sqLiteStatement.bindString(6,personalSubscriptionBean.getMASTER());
+        sqLiteStatement.bindString(7,personalSubscriptionBean.getUSERNAME());
+        sqLiteStatement.execute();
+    }
+
+    public void saveListToMySubs(List<PersonalSubscriptionBean> personalSubscriptionBeans){
+        String saveSql = "replace into MySubs(subs_id,subs_title,subs_kind,subs_type,subs_applied,subs_master,subs_username) values (?,?,?,?,?,?,?)";
+        SQLiteStatement sqLiteStatement = db.compileStatement(saveSql);
+        for (int i = 0; i < personalSubscriptionBeans.size(); i++) {
+            PersonalSubscriptionBean personalSubscriptionBean = personalSubscriptionBeans.get(i);
+            sqLiteStatement.bindLong(1, personalSubscriptionBean.getNUM_ID());
+            sqLiteStatement.bindString(2, personalSubscriptionBean.getTITLE());
+            sqLiteStatement.bindString(3, personalSubscriptionBean.getKIND());
+            sqLiteStatement.bindString(4, personalSubscriptionBean.getTYPE());
+            sqLiteStatement.bindLong(5, personalSubscriptionBean.getISAPPLED());
+            sqLiteStatement.bindString(6,personalSubscriptionBean.getMASTER());
+            sqLiteStatement.bindString(7,personalSubscriptionBean.getUSERNAME());
+            sqLiteStatement.execute();
+        }
+    }
+
+    public List<PersonalSubscriptionBean> queryFromMySubs(String[] selectionArgs, String selection){
+        List<PersonalSubscriptionBean> personalSubscriptionBeans = new ArrayList<PersonalSubscriptionBean>();
+        String table = "MySubs";
+        String groupBy = null;
+        String having = null;
+        String orderBy = null;
+        Cursor cursor = db.query(table, null, selection, selectionArgs, groupBy, having, orderBy);
+        while (cursor.moveToNext()) {
+            PersonalSubscriptionBean personalSubscriptionBean = new PersonalSubscriptionBean();
+            personalSubscriptionBean.setNUM_ID(cursor.getInt(cursor.getColumnIndex("subs_id")));
+            personalSubscriptionBean.setTITLE(cursor.getString(cursor.getColumnIndex("subs_title")));
+            personalSubscriptionBean.setKIND(cursor.getString(cursor.getColumnIndex("subs_kind")));
+            personalSubscriptionBean.setTYPE(cursor.getString(cursor.getColumnIndex("subs_type")));
+            personalSubscriptionBean.setISAPPLED(cursor.getInt(cursor.getColumnIndex("subs_applied")));
+            personalSubscriptionBean.setMASTER(cursor.getString(cursor.getColumnIndex("subs_master")));
+            personalSubscriptionBean.setUSERNAME(cursor.getString(cursor.getColumnIndex("subs_username")));
+            personalSubscriptionBeans.add(personalSubscriptionBean);
+        }
+        cursor.close();
+
+        return personalSubscriptionBeans;
+    }
+
+
+    public void updateMySubs(PersonalSubscriptionBean personalSubscriptionBean) {
+        String sql = "update MySubs"
+                + " set subs_applied=?"
+                + " where subs_id=? and subs_master=? and subs_username=? ;";
+        SQLiteStatement sta = db.compileStatement(sql);
+        sta.bindLong(1, personalSubscriptionBean.getISAPPLED());
+        sta.bindLong(2, personalSubscriptionBean.getNUM_ID());
+        sta.bindString(3, personalSubscriptionBean.getMASTER());
+        sta.bindString(4, personalSubscriptionBean.getUSERNAME());
+        sta.executeInsert();
+    }
+
+    public void deleteFromMySubs(PersonalSubscriptionBean personalSubscriptionBean) {
+        String table = "MySubs";
+        String[] whereArgs = {String.valueOf(personalSubscriptionBean.getNUM_ID()), personalSubscriptionBean.getMASTER(), personalSubscriptionBean.getUSERNAME()};
+        String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
+        db.delete(table, whereClause, whereArgs);
+    }
+
+    public void deleteListFromMySubs(List<PersonalSubscriptionBean> personalSubscriptionBeans){
+        for (int i = 0; i < personalSubscriptionBeans.size(); i++) {
+            PersonalSubscriptionBean personalSubscriptionBean = personalSubscriptionBeans.get(i);
+            String table = "MySubs";
+            String[] whereArgs = {String.valueOf(personalSubscriptionBean.getNUM_ID()), personalSubscriptionBean.getMASTER(), personalSubscriptionBean.getUSERNAME()};
+            String whereClause = "subs_id=? and subs_master=? and subs_username=? ";
+            db.delete(table, whereClause, whereArgs);
+        }
+    }
+
+    public void deleteMasterMySubs(String master, String username){
+        String table = "MySubs";
+        String[] whereArgs = {master,username};
+        String whereClause = "subs_master=? and subs_username=? ";
+        db.delete(table, whereClause, whereArgs);
+    }
+
+
     /**
      * close database
      */

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

@@ -13,7 +13,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
  */
 public class DBOpenHelper extends SQLiteOpenHelper {
 
-    private static final int DATABASE_VERSION = 54;//数据库版本号(每添加一个表要增加版本号)
+    private static final int DATABASE_VERSION = 56;//数据库版本号(每添加一个表要增加版本号)
     public static String dataBaseName = "erp.db";//数据库名称
     public Context context;
 
@@ -36,6 +36,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL(Constants.OA_SIGNIN_TIME);//创建OA签到记录表
         db.execSQL(Constants.SubscriptionMessage);//
         db.execSQL(Constants.TABLE_ALL_SUBSCRIPTION);//未订阅列表
+        db.execSQL(Constants.TABLE_MY_SUBSCRIPTION);//已订阅列表
     }
 
     @Override
@@ -47,6 +48,7 @@ public class DBOpenHelper extends SQLiteOpenHelper {
         db.execSQL("DROP TABLE IF EXISTS Signin");
         db.execSQL("DROP TABLE IF EXISTS SubscriptionMessage");
         db.execSQL("DROP TABLE IF EXISTS AllSubs");
+        db.execSQL("DROP TABLE IF EXISTS MySubs");
         onCreate(db);
     }
 

+ 20 - 8
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/LinksManFragment.java

@@ -334,6 +334,9 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                     Friend friend = sortFriend.getBean();
                     if (friend == null) return false;
                     String userId = friend.getUserId();
+                    if (friend.getStatus() == Friend.STATUS_FRIEND) {
+
+                    }
                     if (userId.equals(Friend.ID_SYSTEM_MESSAGE) || userId.equals(Friend.ID_NEW_FRIEND_MESSAGE)) {
                         return false;
                     }
@@ -462,9 +465,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                 if (mLoginUserId == null)
                     mLoginUserId = MyApplication.getInstance().mLoginUser.getUserId();
                 friends = FriendDao.getInstance().getFriendsAndEm(mLoginUserId);
-                Log.i("gongpengming", "friends=" + friends.size());
                 getFriendByErp(friends);
-                Log.i("gongpengming", "friends=" + friends.size());
                 long delayTime = 200 - (startTime - System.currentTimeMillis());// 保证至少200ms的刷新过程
                 if (delayTime < 0) {
                     delayTime = 0;
@@ -480,7 +481,7 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
                         mSideBar.addExist("↑");
                         if (friends != null && friends.size() > 0) {
                             for (int i = 0; i < friends.size(); i++) {
-                                BaseSortModel<Friend> mode = new BaseSortModel<Friend>();
+                                BaseSortModel<Friend> mode = new BaseSortModel<>();
                                 mode.setBean(friends.get(i));
                                 setSortCondition(mode);
                                 mSortFriends.add(mode);
@@ -507,15 +508,25 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         if (ListUtils.isEmpty(emList)) return;
         ArrayList<Friend> list = new ArrayList<>();
         for (EmployeesEntity e : emList) {
-            if (!mLoginUserId.equals(String.valueOf(e.getEm_IMID())))
-                list.add(getFriendByRep(e));
+            boolean isHave = false;
             if (!ListUtils.isEmpty(friends)) {
                 for (int i = 0; i < friends.size(); i++) {
                     if ((friends.get(i).getUserId().equals(String.valueOf(e.getEm_IMID()))) || friends.get(i).getUserId().equals(mLoginUserId)) {
-                        friends.remove(i);
+                        isHave = true;
+                        if (friends.get(i).getUserId().equals(mLoginUserId)) {
+                            friends.remove(i);
+                        } else {
+                            friends.get(i).setPhone(e.getEM_MOBILE());
+                            friends.get(i).setDepart(e.getEM_DEPART());
+                            friends.get(i).setPosition(e.getEM_POSITION());
+                            friends.get(i).setEmCode(e.getEM_CODE());
+                            friends.get(i).setPrivacy(e.getEM_EMAIL());
+                        }
                         break;
                     }
                 }
+                if (!isHave)
+                    list.add(getFriendByErp(e));
             }
         }
         if (!ListUtils.isEmpty(friends) && !ListUtils.isEmpty(list)) {
@@ -523,17 +534,19 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         }
     }
 
-    private Friend getFriendByRep(EmployeesEntity e) {
+    private Friend getFriendByErp(EmployeesEntity e) {
         Friend friend = new Friend();
         friend.setTimeCreate((int) (System.currentTimeMillis() / 1000));
         friend.setOwnerId(mLoginUserId);
         friend.setUserId(String.valueOf(e.getEm_IMID()));
         friend.setNickName(e.getEM_NAME());
+
         friend.setPhone(e.getEM_MOBILE());
         friend.setDepart(e.getEM_DEPART());
         friend.setPosition(e.getEM_POSITION());
         friend.setEmCode(e.getEM_CODE());
         friend.setPrivacy(e.getEM_EMAIL());
+
         friend.setCompanyId(0);
         friend.setRoomFlag(0);// 0朋友 1群组
         friend.setStatus(Friend.STATUS_UNKNOW);
@@ -659,7 +672,6 @@ public class LinksManFragment extends XutilsFragment implements View.OnClickList
         params.put("access_token", MyApplication.getInstance().mAccessToken);
         params.put("toUserId", sortFriend.getBean().getUserId());
         params.put("remarkName", remarkName);
-
         ProgressDialogUtil.show(mProgressDialog);
         StringJsonObjectRequest<Result> request = new StringJsonObjectRequest<Result>(MyApplication.getInstance().getConfig().FRIENDS_REMARK, new Response.ErrorListener() {
             @Override

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

@@ -144,7 +144,7 @@ public class SigninFragment extends EasyFragment implements View.OnClickListener
                             public void run() {
                                 isSignining = false;
                             }
-                        }, 5000);
+                        }, 20000);
                         loadLog(selectTime == 0 ? TimeUtils.s_long_2_str(System.currentTimeMillis()) : TimeUtils.s_long_2_str(selectTime));
                     } else
                         Crouton.makeText(ct, "签到失败");

+ 154 - 109
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionAllFragment.java

@@ -4,22 +4,19 @@ import android.content.Intent;
 import android.os.Handler;
 import android.os.Message;
 import android.util.Log;
-import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.PopupWindow;
-import android.widget.RadioButton;
-import android.widget.RadioGroup;
 import android.widget.TextView;
-import android.widget.Toast;
 
 import com.handmark.pulltorefresh.library.PullToRefreshBase;
 import com.handmark.pulltorefresh.library.PullToRefreshListView;
 import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.AllSubscriptionAdapter;
+import com.xzjmyk.pm.activity.adapter.SubsTypeAdapter;
 import com.xzjmyk.pm.activity.bean.SubscriptionNumber;
 import com.xzjmyk.pm.activity.bean.message.AllSubscriptonKindMessage;
 import com.xzjmyk.pm.activity.ui.erp.activity.SubscribeDetailActivity;
@@ -30,6 +27,7 @@ import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
 import com.xzjmyk.pm.activity.util.DisplayUtil;
 import com.xzjmyk.pm.activity.util.SharedUtil;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 import com.xzjmyk.pm.activity.view.crouton.Style;
 
@@ -48,21 +46,23 @@ import java.util.Map;
  * 所有订阅
  * Created by RaoMeng on 2016/9/5.
  */
-public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.OnCheckedChangeListener {
+public class SubscriptionAllFragment extends BaseFragment{
     private PullToRefreshListView mPullToRefreshListView;
     private AllSubscriptionAdapter mAllSubscriptionAdapter;
     private List<AllSubscriptonKindMessage> mAllSubscriptonKindMessages;
     private List<SubscriptionNumber> mSubscriptionNumbers;
     private EmptyLayout mEmptyLayout;
-    private RadioGroup mRadioGroup;
     private int rbPos = 0;
     private List<String> keyStrings = new ArrayList<>();
     private final static int SUBSCRIBE_DETAIL_REQUEST = 33;
     private static int mClickedPos = -1;
-    String currentMaster;
+    private String currentMaster;//当前账套
+    private String currentUser;//当前账号
     private DBManager mDbManager;
     private PopupWindow mDeletePopupWindow;
 
+    private ListView mTypeListView;
+    private SubsTypeAdapter mSubsTypeAdapter;
     @Override
     protected int getLayout() {
         return R.layout.fragment_all_subscription;
@@ -71,13 +71,15 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
     @Override
     protected void initViews() {
         mDbManager = new DBManager(getActivity());
-        mRadioGroup = (RadioGroup) root.findViewById(R.id.subscription_all_rg);
         currentMaster = CommonUtil.getSharedPreferences(getActivity(), "erp_master");
+        currentUser = CommonUtil.getSharedPreferences(getActivity(), "erp_username");
         mPullToRefreshListView = (PullToRefreshListView) root.findViewById(R.id.subscription_all_ptlv);
         mSubscriptionNumbers = new ArrayList<>();
         mAllSubscriptionAdapter = new AllSubscriptionAdapter(getActivity(), mSubscriptionNumbers);
         mAllSubscriptonKindMessages = new ArrayList<>();
 
+        mTypeListView = (ListView) root.findViewById(R.id.subscription_all_type_lv);
+        mSubsTypeAdapter = new SubsTypeAdapter(getActivity(),keyStrings);
         mEmptyLayout = new EmptyLayout(getActivity(), mPullToRefreshListView.getRefreshableView());
         mEmptyLayout.setShowLoadingButton(false);
         mEmptyLayout.setShowEmptyButton(false);
@@ -87,6 +89,7 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
 
     @Override
     protected void initEvents() {
+        mTypeListView.setAdapter(mSubsTypeAdapter);
         mPullToRefreshListView.setAdapter(mAllSubscriptionAdapter);
         mPullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_START);
         mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
@@ -108,10 +111,10 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                 }, 1000);
             }
         });
-        mRadioGroup.setOnCheckedChangeListener(this);
         mPullToRefreshListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                ToastUtil.showToast(getActivity(), "暂不可点击!");
                 mClickedPos = position;
                 Intent intent = new Intent();
                 intent.setClass(getActivity(), SubscribeDetailActivity.class);
@@ -128,11 +131,10 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
             public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
                 View popView = View.inflate(getActivity(), R.layout.pop_subs_delete, null);
                 TextView deleteTv = (TextView) popView.findViewById(R.id.pop_subs_delete_tv);
-                deleteTv.setText("删除订阅号");
+                deleteTv.setText("删除订阅号");
                 deleteTv.setOnClickListener(new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
-                        Toast.makeText(getActivity(), position + "", Toast.LENGTH_SHORT).show();
                         mDbManager.deleteFromAllSubs(mSubscriptionNumbers.get(position - 1));
                         mSubscriptionNumbers.remove(position - 1);
                         mAllSubscriptonKindMessages.get(rbPos).setSubscriptionNumbers(mSubscriptionNumbers);
@@ -140,12 +142,21 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                         if (mSubscriptionNumbers.size() == 0) {
                             mAllSubscriptonKindMessages.remove(rbPos);
                             keyStrings.remove(rbPos);
+                            initKeyStrings();
                             if (keyStrings.size() == 0) {
-                                mRadioGroup.setVisibility(View.GONE);
+                                mSubsTypeAdapter.notifyDataSetChanged();
+                                mTypeListView.setVisibility(View.GONE);
+                                mEmptyLayout.showEmpty();
+                                mSubscriptionNumbers.clear();
+                                mAllSubscriptionAdapter.notifyDataSetChanged();
                             } else {
                                 rbPos = 0;
-                                mRadioGroup.removeAllViews();
-                                initRadioGroup();
+                                mTypeListView.setVisibility(View.VISIBLE);
+                                mSubsTypeAdapter.notifyDataSetChanged();
+                                mSubscriptionNumbers.clear();
+                                mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                                mAllSubscriptionAdapter.notifyDataSetChanged();
+
                             }
                         }
                         closeDeletePopupWindow();
@@ -167,35 +178,91 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                 return true;
             }
         });
+
+        mTypeListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                mSubsTypeAdapter.setSelectItem(position);
+                mSubsTypeAdapter.notifyDataSetChanged();
+                rbPos = position;
+
+                mSubscriptionNumbers.clear();
+                if (mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers().size() != 0) {
+                    mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                    mAllSubscriptionAdapter.notifyDataSetChanged();
+                }
+            }
+        });
+
+        mTypeListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
+            @Override
+            public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
+                View popView = View.inflate(getActivity(), R.layout.pop_subs_delete, null);
+                TextView deleteTv = (TextView) popView.findViewById(R.id.pop_subs_delete_tv);
+                deleteTv.setText("删除该订阅类");
+                deleteTv.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View v) {
+                        mDbManager.deleteListFromAllSubs(mAllSubscriptonKindMessages.get(position).getSubscriptionNumbers());
+                        mAllSubscriptonKindMessages.remove(position);
+                        keyStrings.remove(position);
+                        initKeyStrings();
+                        if (keyStrings.size() == 0) {
+                            mSubsTypeAdapter.notifyDataSetChanged();
+                            mTypeListView.setVisibility(View.GONE);
+                            mEmptyLayout.showEmpty();
+                            mSubscriptionNumbers.clear();
+                            mAllSubscriptionAdapter.notifyDataSetChanged();
+                        } else {
+                            rbPos = 0;
+                            mTypeListView.setVisibility(View.VISIBLE);
+                            mSubsTypeAdapter.notifyDataSetChanged();
+
+                            mSubscriptionNumbers.clear();
+                            mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                            mAllSubscriptionAdapter.notifyDataSetChanged();
+                        }
+                        closeDeletePopupWindow();
+                    }
+                });
+
+                mDeletePopupWindow = new PopupWindow(popView, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
+                mDeletePopupWindow.setOutsideTouchable(true);
+                mDeletePopupWindow.setFocusable(true);
+                mDeletePopupWindow.showAtLocation(getActivity().getWindow().getDecorView(), Gravity.CENTER, 0, 0);
+                DisplayUtil.backgroundAlpha(getActivity(), 0.5f);
+                mDeletePopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
+                    @Override
+                    public void onDismiss() {
+                        closeDeletePopupWindow();
+                    }
+                });
+
+                return true;
+            }
+        });
     }
 
-    private void initRadioGroup() {
-        StringBuilder keyStringBuilder = new StringBuilder();
-        for (int i = 0; i < keyStrings.size(); i++) {
-            keyStringBuilder.append("," + keyStrings.get(i));
-            final RadioButton radioButton = new RadioButton(getActivity());
-            radioButton.setButtonDrawable(null);
-            radioButton.setGravity(Gravity.CENTER);
-            radioButton.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
-            radioButton.setBackground(getResources().getDrawable(R.drawable.selector_subscribe_bg));
-            radioButton.setText(keyStrings.get(i));
-            radioButton.setTextColor(getResources().getColor(R.color.selector_subscribe_tv));
-            radioButton.setPadding(0, 30, 0, 30);
-            radioButton.setId(i);
-
-            if (i == rbPos) {
-//                                radioButton.setTextColor(getResources().getColor(R.color.red));
-                radioButton.setChecked(true);
-            } else {
-//                                radioButton.setTextColor(getResources().getColor(R.color.black));
-                radioButton.setChecked(false);
+    private void initKeyStrings() {
+        StringBuilder keyStringBuilder = null;
+        if (keyStrings.size() != 0){
+            keyStringBuilder = new StringBuilder();
+            for (int i = 0; i < keyStrings.size(); i++) {
+                keyStringBuilder.append("," + keyStrings.get(i));
+
+                if (i == rbPos) {
+                    mSubsTypeAdapter.setSelectItem(i);
+                    mSubsTypeAdapter.notifyDataSetChanged();
+                }
             }
-            mRadioGroup.addView(radioButton, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
-        }
-        if (keyStringBuilder.length() > 2) {
-            keyStringBuilder.delete(0, 1);
+            if (keyStringBuilder.length() > 2) {
+                keyStringBuilder.delete(0, 1);
+            }
+            SharedUtil.putString(currentMaster + currentUser + "subs", keyStringBuilder.toString());
+        }else {
+            SharedUtil.putString(currentMaster + currentUser + "subs", null);
         }
-        SharedUtil.putString(currentMaster + "subs", keyStringBuilder.toString());
+
     }
 
     private void closeDeletePopupWindow() {
@@ -210,9 +277,8 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
 
     @Override
     protected void initDatas() {
-//        mAllSubscriptonKindMessages = (List<AllSubscriptonKindMessage>) MyApplication.getDataCacheFromMap("all_subs_cache");
         Log.d("currentMaster: ", currentMaster);
-        String cacheKeys = SharedUtil.getString(currentMaster + "subs");
+        String cacheKeys = SharedUtil.getString(currentMaster + currentUser + "subs");
         if (cacheKeys != null) {
             String[] cacheKeysArray = cacheKeys.split(",");
             for (int i = 0; i < cacheKeysArray.length; i++) {
@@ -220,43 +286,45 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
             }
         }
         try {
-//            List<SubscriptionNumber> dbSubscriptionNumbers = MyApplication.mDbUtils.findAll(SubscriptionNumber.class);
             List<SubscriptionNumber> dbSubscriptionNumbers
-                    = mDbManager.queryFromAllSubs(new String[]{currentMaster}, "subs_master=?");
-            if (dbSubscriptionNumbers == null) {
+                    = mDbManager.queryFromAllSubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
+            if (dbSubscriptionNumbers == null || dbSubscriptionNumbers.size() == 0) {
                 sendAllSubscriptionRequest();
-                Toast.makeText(getActivity(), "网络加载", Toast.LENGTH_SHORT).show();
+//                Toast.makeText(getActivity(), "网络加载", Toast.LENGTH_SHORT).show();
             } else {
-                Toast.makeText(getActivity(), "本地加载", Toast.LENGTH_SHORT).show();
-                for (int i = 0; i < keyStrings.size(); i++) {
-                    AllSubscriptonKindMessage tempSubscriptonKindMessage = new AllSubscriptonKindMessage();
-                    List<SubscriptionNumber> tempSubscriptionNumbers = new ArrayList<>();
-                    String currentKey = keyStrings.get(i);
-                    for (int j = 0; j < dbSubscriptionNumbers.size(); j++) {
-                        SubscriptionNumber currentSubscriptionNumber = dbSubscriptionNumbers.get(j);
-                        if (currentSubscriptionNumber.getType().equals(currentKey)) {
-                            tempSubscriptionNumbers.add(currentSubscriptionNumber);
-                        }
-                    }
-                    tempSubscriptonKindMessage.setSubscriptionKind(currentKey);
-                    tempSubscriptonKindMessage.setSubscriptionNumbers(tempSubscriptionNumbers);
-
-                    mAllSubscriptonKindMessages.add(tempSubscriptonKindMessage);
-                }
-
+//                Toast.makeText(getActivity(), "本地加载", Toast.LENGTH_SHORT).show();
+                initKeyStrings();
                 if (keyStrings.size() == 0) {
-                    mRadioGroup.setVisibility(View.GONE);
+                    mSubsTypeAdapter.notifyDataSetChanged();
+                    mTypeListView.setVisibility(View.GONE);
                     mEmptyLayout.showEmpty();
+                    mSubscriptionNumbers.clear();
+                    mAllSubscriptionAdapter.notifyDataSetChanged();
                 } else {
-                    mRadioGroup.setVisibility(View.VISIBLE);
-                    initRadioGroup();
+                    mTypeListView.setVisibility(View.VISIBLE);
+                    mSubsTypeAdapter.notifyDataSetChanged();
+                    for (int i = 0; i < keyStrings.size(); i++) {
+                        AllSubscriptonKindMessage tempSubscriptonKindMessage = new AllSubscriptonKindMessage();
+                        List<SubscriptionNumber> tempSubscriptionNumbers = new ArrayList<>();
+                        String currentKey = keyStrings.get(i);
+                        for (int j = 0; j < dbSubscriptionNumbers.size(); j++) {
+                            SubscriptionNumber currentSubscriptionNumber = dbSubscriptionNumbers.get(j);
+                            if (currentSubscriptionNumber.getType().equals(currentKey)) {
+                                tempSubscriptionNumbers.add(currentSubscriptionNumber);
+                            }
+                        }
+                        tempSubscriptonKindMessage.setSubscriptionKind(currentKey);
+                        tempSubscriptonKindMessage.setSubscriptionNumbers(tempSubscriptionNumbers);
+
+                        mAllSubscriptonKindMessages.add(tempSubscriptonKindMessage);
+                    }
+                    mSubscriptionNumbers.clear();
+                    mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                    Log.d("allsubscription:", mSubscriptionNumbers.toString());
+                    mAllSubscriptionAdapter.notifyDataSetChanged();
                 }
 
             }
-            mSubscriptionNumbers.clear();
-            mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
-            Log.d("allsubscription:", mSubscriptionNumbers.toString());
-            mAllSubscriptionAdapter.notifyDataSetChanged();
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -283,12 +351,7 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
             switch (msg.what) {
                 case GET_ALL_SUBSCRIPTION:
                     progressDialog.dismiss();
-//                    try {
-//                        MyApplication.mDbUtils.deleteAll(SubscriptionNumber.class);
-//                    } catch (DbException e) {
-//                        e.printStackTrace();
-//                    }
-                    mDbManager.deleteMasterSubs(currentMaster);
+                    mDbManager.deleteMasterAllSubs(currentMaster,currentUser);
                     String resultJson = msg.getData().getString("result");
                     Log.d("allsubscriptionResult: ", resultJson);
                     try {
@@ -303,12 +366,12 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                                 Crouton.makeText(getActivity(), "没有未订阅数据", 0xff99cc00, 1500).show();
                             }
                             keyStrings.clear();
-                            mRadioGroup.removeAllViews();
+                            mSubsTypeAdapter.notifyDataSetChanged();
+                            mTypeListView.setVisibility(View.GONE);
                             return;
                         }
 
                         keyStrings.clear();
-                        mRadioGroup.removeAllViews();
                         while (iterator.hasNext()) {
                             String key = iterator.next().toString();
 
@@ -328,6 +391,7 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                                 subscriptionNumber.setStatus(subsObject.getInt("status"));
                                 subscriptionNumber.setType(key);
                                 subscriptionNumber.setMaster(currentMaster);
+                                subscriptionNumber.setUsername(currentUser);
                                 if (subsObject.getInt("status") != 1) {
                                     subscriptionNumbers.add(subscriptionNumber);
                                 }
@@ -335,11 +399,8 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                             if (subscriptionNumbers.size() != 0) {
                                 keyStrings.add(key);
                                 subscriptonKindMessage.setSubscriptionNumbers(subscriptionNumbers);
-                                /*try {
-                                    MyApplication.mDbUtils.saveAll(subscriptionNumbers);
-                                } catch (DbException e) {
-                                    e.printStackTrace();
-                                }*/
+
+                                mSubsTypeAdapter.notifyDataSetChanged();
                                 mDbManager.saveListToAllSubs(subscriptionNumbers);
                                 mAllSubscriptonKindMessages.add(subscriptonKindMessage);
                             }
@@ -348,17 +409,20 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
                     } catch (JSONException e) {
                         e.printStackTrace();
                     }
-
+                    initKeyStrings();
                     if (keyStrings.size() == 0) {
-                        mRadioGroup.setVisibility(View.GONE);
+                        mTypeListView.setVisibility(View.GONE);
+
+                        mSubscriptionNumbers.clear();
+                        mAllSubscriptionAdapter.notifyDataSetChanged();
                     } else {
-                        mRadioGroup.setVisibility(View.VISIBLE);
-                        initRadioGroup();
+                        mTypeListView.setVisibility(View.VISIBLE);
+                        mSubsTypeAdapter.notifyDataSetChanged();
+                        mSubscriptionNumbers.clear();
+                        mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
+                        Log.d("allsubscription:", mSubscriptionNumbers.toString());
+                        mAllSubscriptionAdapter.notifyDataSetChanged();
                     }
-                    mSubscriptionNumbers.clear();
-                    mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
-                    Log.d("allsubscription:", mSubscriptionNumbers.toString());
-                    mAllSubscriptionAdapter.notifyDataSetChanged();
 
                     if (mPullToRefreshListView.isRefreshing()) {
                         mPullToRefreshListView.onRefreshComplete();
@@ -373,25 +437,6 @@ public class SubscriptionAllFragment extends BaseFragment implements RadioGroup.
         }
     };
 
-    @Override
-    public void onCheckedChanged(RadioGroup group, int checkedId) {
-        rbPos = checkedId;
-/*
-        for (int i = 0; i < keyStrings.size(); i++) {
-            RadioButton currentButton = (RadioButton) group.findViewById(i);
-            if (i == checkedId){
-                currentButton.setTextColor(getResources().getColor(R.color.red));
-            }else {
-                currentButton.setTextColor(getResources().getColor(R.color.black));
-            }
-        }*/
-        mSubscriptionNumbers.clear();
-        if (mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers().size() != 0) {
-            mSubscriptionNumbers.addAll(mAllSubscriptonKindMessages.get(rbPos).getSubscriptionNumbers());
-            mAllSubscriptionAdapter.notifyDataSetChanged();
-        }
-    }
-
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == SUBSCRIBE_DETAIL_REQUEST && resultCode == 9 && data != null) {

+ 28 - 5
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/fragment/SubscriptionMyFragment.java

@@ -15,10 +15,12 @@ import com.xzjmyk.pm.activity.R;
 import com.xzjmyk.pm.activity.adapter.MySubscriptionAdapter;
 import com.xzjmyk.pm.activity.bean.PersonalSubscriptionBean;
 import com.xzjmyk.pm.activity.ui.erp.activity.SubscribeDetailActivity;
+import com.xzjmyk.pm.activity.ui.erp.db.DBManager;
 import com.xzjmyk.pm.activity.ui.erp.net.ViewUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.CommonUtil;
 import com.xzjmyk.pm.activity.ui.erp.util.Constants;
 import com.xzjmyk.pm.activity.ui.erp.view.EmptyLayout;
+import com.xzjmyk.pm.activity.util.ToastUtil;
 import com.xzjmyk.pm.activity.view.crouton.Crouton;
 
 import org.json.JSONArray;
@@ -39,13 +41,14 @@ public class SubscriptionMyFragment extends BaseFragment {
     private PullToRefreshListView mPullListView;
     private List<PersonalSubscriptionBean> mPersonalSubscriptionBeans;
     private MySubscriptionAdapter mMySubscriptionAdapter;
-
-    private final static int GET_MY_SUBSCRIPTION = 12;
-
     private EmptyLayout mEmptyLayout;
     private static int mClickedPosition = -1;
+    private final static int GET_MY_SUBSCRIPTION = 12;
     private static int SUBSCRIBE_MY_DETAIL_REQUEST = 45;
 
+    private DBManager mDbManager;
+    private String currentMaster;
+    private String currentUser;
     @Override
     protected int getLayout() {
         return R.layout.fragment_my_subscription;
@@ -53,6 +56,9 @@ public class SubscriptionMyFragment extends BaseFragment {
 
     @Override
     protected void initViews() {
+        mDbManager = new DBManager(getActivity());
+        currentMaster = CommonUtil.getSharedPreferences(getActivity(), "erp_master");
+        currentUser = CommonUtil.getSharedPreferences(getActivity(), "erp_username");
         mPersonalSubscriptionBeans = new ArrayList<>();
         mPullListView = (PullToRefreshListView) root.findViewById(R.id.my_subscripton_smlv);
         mMySubscriptionAdapter = new MySubscriptionAdapter(getActivity(),mPersonalSubscriptionBeans);
@@ -86,6 +92,7 @@ public class SubscriptionMyFragment extends BaseFragment {
         mPullListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                ToastUtil.showToast(getActivity(),"暂不可点击!");
                 mClickedPosition = position;
                 Intent intent = new Intent();
                 intent.setClass(getActivity(), SubscribeDetailActivity.class);
@@ -100,7 +107,19 @@ public class SubscriptionMyFragment extends BaseFragment {
 
     @Override
     protected void initDatas() {
-        sendSubscriptionRequest();
+        List<PersonalSubscriptionBean> dbPersonalSubscriptionBeans = mDbManager.queryFromMySubs(new String[]{currentMaster,currentUser}, "subs_master=? and subs_username=? ");
+        if (dbPersonalSubscriptionBeans == null || dbPersonalSubscriptionBeans.size() == 0){
+            Toast.makeText(getActivity(), "网络加载", Toast.LENGTH_SHORT).show();
+            sendSubscriptionRequest();
+        }else {
+            Toast.makeText(getActivity(), "本地加载", Toast.LENGTH_SHORT).show();
+            mPersonalSubscriptionBeans.clear();
+            mPersonalSubscriptionBeans.addAll(dbPersonalSubscriptionBeans);
+            mMySubscriptionAdapter.notifyDataSetChanged();
+            if (mPersonalSubscriptionBeans.size() == 0){
+                mEmptyLayout.showEmpty();
+            }
+        }
     }
 
     /**
@@ -120,6 +139,7 @@ public class SubscriptionMyFragment extends BaseFragment {
     @Override
     public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (requestCode == SUBSCRIBE_MY_DETAIL_REQUEST && resultCode == 44){
+            mDbManager.deleteFromMySubs(mPersonalSubscriptionBeans.get(mClickedPosition - 1));
             mPersonalSubscriptionBeans.remove(mClickedPosition - 1);
             mMySubscriptionAdapter.notifyDataSetChanged();
         }
@@ -131,6 +151,7 @@ public class SubscriptionMyFragment extends BaseFragment {
             switch (msg.what){
                 case GET_MY_SUBSCRIPTION:
                     progressDialog.dismiss();
+                    mDbManager.deleteMasterMySubs(currentMaster,currentUser);
                     String resultJson = msg.getData().getString("result");
                     Log.d("subscriptionResult",resultJson);
                     try {
@@ -152,10 +173,12 @@ public class SubscriptionMyFragment extends BaseFragment {
                                     personalSubscriptionBean.setKIND(currentObject.getString("KIND_"));
                                     personalSubscriptionBean.setTYPE(currentObject.getString("TYPE_"));
                                     personalSubscriptionBean.setISAPPLED(currentObject.getInt("ISAPPLIED_"));
-
+                                    personalSubscriptionBean.setMASTER(currentMaster);
+                                    personalSubscriptionBean.setUSERNAME(currentUser);
                                     mPersonalSubscriptionBeans.add(personalSubscriptionBean);
                                 }
                                 mMySubscriptionAdapter.notifyDataSetChanged();
+                                mDbManager.saveListToMySubs(mPersonalSubscriptionBeans);
                                 if (mPullListView.isRefreshing()){
                                     mPullListView.onRefreshComplete();
                                     Crouton.makeText(getActivity(),"刷新成功", 0xff99cc00, 1500).show();

+ 17 - 3
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/erp/util/Constants.java

@@ -84,7 +84,7 @@ public class Constants {
     public static final String SubscriptionMessage = "CREATE TABLE SubscriptionMessage(id_,num_id_,instance_id_ ,createdate_,title_," +
             "son_title_,status_,EMP_ID_,RN_,SONTITLE_,SUMDATA_,name)";
 
-    //订阅号表
+    //所有订阅号表
     public static final String TABLE_ALL_SUBSCRIPTION = "CREATE TABLE AllSubs "
             + "(id integer primary key autoincrement,"
             + "subs_id integer,"
@@ -92,8 +92,22 @@ public class Constants {
             + "subs_kind varchar(50),"
             + "subs_status integer,"
             + "subs_type varchar(50),"
-            + "subs_master varchar(50)"+
-            ")";
+            + "subs_master varchar(50),"
+            + "subs_username varchar(50)"
+            +")";
+
+    //已订阅号表
+    public static final String TABLE_MY_SUBSCRIPTION = "CREATE TABLE MySubs "
+            + "(id integer primary key autoincrement,"
+            + "subs_id integer,"
+            + "subs_title varchar(50),"
+            + "subs_kind varchar(50),"
+            + "subs_type varchar(50),"
+            + "subs_applied integer,"
+            + "subs_master varchar(50),"
+            + "subs_username varchar(50)"
+            + ")";
+
 
 
 

+ 14 - 15
WeiChat/src/main/java/com/xzjmyk/pm/activity/ui/nearby/UserListActivity.java

@@ -3,11 +3,11 @@ package com.xzjmyk.pm.activity.ui.nearby;
 import android.content.Intent;
 import android.os.Bundle;
 import android.text.TextUtils;
+import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.AdapterView;
 import android.widget.ListView;
-import android.widget.Toast;
 
 import com.android.volley.Response.ErrorListener;
 import com.android.volley.VolleyError;
@@ -69,24 +69,24 @@ public class UserListActivity extends BaseActivity {
 
         mPullToRefreshListView.getRefreshableView().setAdapter(mAdapter);
         mPullToRefreshListView.setShowIndicator(false);
-        requestData(true);
-        if(mAdapter!=null){
-            ToastMessage("数据已加载完毕");
-        }else{
-            Toast.makeText(getApplication(),"网络异常,请稍后再试",Toast.LENGTH_SHORT).show();
-        }
-       /* mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
+
+//        mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener<ListView>() {
+//            @Override
+//            public void onRefresh(PullToRefreshBase<ListView> refreshView) {
+//                requestData(true);
+//            }
+//        });
+
+        mPullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
             @Override
             public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
-               //requestData(true);
-                Toast.makeText(getApplication(),"数据已加载完毕",Toast.LENGTH_SHORT).show();
-                }
+                requestData(true);
+            }
             @Override
             public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                 requestData(false);
-                Toast.makeText(getApplication(),"数据已加载完毕",Toast.LENGTH_SHORT).show();
             }
-        });*/
+        });
 
         mPullToRefreshListView.getRefreshableView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
@@ -102,9 +102,8 @@ public class UserListActivity extends BaseActivity {
     private void requestData(final boolean isPullDwonToRefersh) {
         if (isPullDwonToRefersh) {
             mPageIndex = 0;
-        } else {
-            mPageIndex++;
         }
+        Log.i("gongpengming","mPageIndex="+mPageIndex);
         HashMap<String, String> params = new HashMap<String, String>();
         params.put("pageIndex", String.valueOf(mPageIndex));
         params.put("pageSize", String.valueOf(AppConfig.PAGE_SIZE));

+ 1 - 1
WeiChat/src/main/java/com/xzjmyk/pm/activity/view/NoSlideViewpager.java

@@ -9,7 +9,7 @@ import android.view.MotionEvent;
  * Created by RaoMeng on 2016/9/5.
  */
 public class NoSlideViewpager extends ViewPager {
-    private boolean noSlide = true;
+    private boolean noSlide = false;
 
     public NoSlideViewpager(Context context) {
         super(context);

+ 8 - 1
WeiChat/src/main/res/layout/activity_oamain.xml

@@ -377,7 +377,14 @@
                 android:layout_weight="1"
                 android:gravity="center"
                 android:textColor="@color/white" />
-
+            <TextView
+                android:layout_width="0dp"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="2dp"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:textColor="@color/white" />
+            
             <TextView
                 android:layout_width="0dp"
                 android:layout_height="wrap_content"

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

@@ -7,7 +7,6 @@
     tools:context="com.xzjmyk.pm.activity.ui.message.SelectActivity">
 
     <RelativeLayout
-        android:visibility="gone"
         android:layout_width="match_parent"
         android:layout_height="48dp"
         android:background="@drawable/bg_bar"

+ 0 - 15
WeiChat/src/main/res/layout/activity_select_list.xml

@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<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"
-    tools:context="com.xzjmyk.pm.activity.ui.erp.activity.oa.SelectListActivity">
-
-    <ListView
-        android:id="@+id/list"
-        android:layout_width="match_parent"
-        android:layout_height="match_parent"
-        android:divider="@color/item_line"
-        android:dividerHeight="1px"
-        android:padding="5dp" />
-</RelativeLayout>

+ 4 - 5
WeiChat/src/main/res/layout/fragment_all_subscription.xml

@@ -4,13 +4,12 @@
     android:layout_height="match_parent"
     android:orientation="horizontal">
 
-    <RadioGroup
-        android:id="@+id/subscription_all_rg"
+    <ListView
+        android:id="@+id/subscription_all_type_lv"
         android:layout_width="80dp"
         android:layout_height="match_parent"
-        android:background="@color/umeng_socialize_ucenter_bg"
-        android:visibility="gone">
-    </RadioGroup>
+        android:background="#FFE2E0E0"
+        android:visibility="gone"/>
     <View
         android:layout_width="1dp"
         android:layout_height="match_parent"

+ 13 - 2
WeiChat/src/main/res/layout/item_oa_list.xml

@@ -27,6 +27,18 @@
         android:textColor="@color/text_main"
         android:textSize="@dimen/text_min" />
 
+    <TextView
+        android:id="@+id/title_tv"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_marginRight="10dp"
+        android:layout_toLeftOf="@id/status_tv"
+        android:ellipsize="end"
+        android:layout_below="@id/name_remak_tv"
+        android:maxLines="2"
+        android:textColor="@color/text_main"
+        android:textSize="@dimen/text_min" />
     <ImageView
         android:id="@+id/doit_img"
         android:layout_width="wrap_content"
@@ -43,7 +55,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignParentLeft="true"
-        android:layout_below="@id/name_remak_tv"
+        android:layout_below="@id/title_tv"
         android:layout_marginRight="10dp"
         android:layout_marginTop="5dp"
         android:layout_toLeftOf="@id/status_tv"
@@ -64,7 +76,6 @@
         android:layout_toLeftOf="@id/status_tv"
         android:ellipsize="end"
         android:maxLines="2"
-        android:text="object_tv"
         android:textColor="@color/text_hine"
         android:textSize="@dimen/text_min" />
 

+ 4 - 4
WeiChat/src/main/res/layout/layout_my_subscribe_list.xml

@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
-    android:layout_height="70dp"
+    android:layout_height="60dp"
     android:padding="10dp"
     android:gravity="center_vertical">
 
     <ImageView
         android:id="@+id/my_subscribe_iv"
-        android:layout_width="50dp"
-        android:layout_height="50dp"
+        android:layout_width="40dp"
+        android:layout_height="40dp"
         android:scaleType="fitXY"
         />
 
@@ -19,7 +19,7 @@
         android:layout_toRightOf="@id/my_subscribe_iv"
         android:layout_marginLeft="10dp"
         android:layout_centerVertical="true"
-        android:textSize="18sp"
+        android:textSize="16sp"
         android:textStyle="bold"/>
 
     <TextView

+ 18 - 0
WeiChat/src/main/res/layout/list_subs_type.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/list_subs_type_tv"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingLeft="5dp"
+        android:paddingRight="5dp"
+        android:paddingTop="12dp"
+        android:paddingBottom="12dp"
+        android:textSize="14sp"
+        android:gravity="center"
+        />
+</LinearLayout>

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

@@ -27,7 +27,6 @@
             android:layout_height="wrap_content"
             android:background="@drawable/user_nick_name_bg"
             android:gravity="center_vertical"
-            android:singleLine="true"
             android:text="texts"
             android:textColor="@color/text_main"
             android:textSize="@dimen/text_main"

+ 28 - 0
WeiChat/src/main/res/layout/umeng_socialize_shareboard_item.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="80dp"
+    android:layout_height="80dp"
+    android:background="@drawable/umeng_socialize_shareboard_item_background" >
+
+    <ImageView
+        android:id="@+id/umeng_socialize_shareboard_image"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_marginTop="10dp"
+        android:layout_centerHorizontal="true"
+        android:scaleType="fitXY"
+        />
+	<TextView 
+	    android:layout_width="wrap_content"
+	    android:layout_height="20dp"
+	    android:id="@+id/umeng_socialize_shareboard_pltform_name"
+	    android:layout_alignParentBottom="true"
+	    android:layout_marginBottom="4dp"
+	    android:layout_centerHorizontal="true"
+	    android:layout_marginLeft="2dp"
+	    android:layout_marginRight="2dp"
+	    android:text="QQ空间"
+	    android:singleLine="true"
+	    android:textSize="11sp"
+	    android:gravity="center"/>
+</RelativeLayout>